YetAnotherCoupler 3.2.0_a
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions
proc_sphere_part.c File Reference
#include "string.h"
#include "proc_sphere_part.h"
#include "yac_mpi_internal.h"
Include dependency graph for proc_sphere_part.c:

Go to the source code of this file.

Data Structures

struct  proc_sphere_part_node_data
 
struct  proc_sphere_part_node
 
struct  neigh_search_data
 

Enumerations

enum  splicomm_tags { DATA_SIZE_TAG , DATA_TAG }
 

Functions

static int get_proc_sphere_part_node_data_pack_size (struct proc_sphere_part_node_data node_data, MPI_Comm comm)
 
static int get_proc_sphere_part_node_pack_size (struct proc_sphere_part_node node, MPI_Comm comm)
 
static void pack_proc_sphere_part_node_data (struct proc_sphere_part_node_data node_data, void *pack_buffer, int pack_buffer_size, int *position, MPI_Comm comm)
 
static void pack_proc_sphere_part_node (struct proc_sphere_part_node *node, void *pack_buffer, int pack_buffer_size, int *position, MPI_Comm comm)
 
static struct proc_sphere_part_node_data unpack_proc_sphere_part_node_data (void *pack_buffer, int pack_buffer_size, int *position, MPI_Comm comm)
 
static struct proc_sphere_part_nodeunpack_proc_sphere_part_node (void *pack_buffer, int pack_buffer_size, int *position, MPI_Comm comm)
 
static struct proc_sphere_part_node_data get_remote_data (struct proc_sphere_part_node_data local_data, struct yac_group_comm local_group_comm, struct yac_group_comm remote_group_comm)
 
static void compute_redist_recvcounts_rdispls (uint64_t comm_rank, uint64_t split_rank, uint64_t comm_size, uint64_t global_sizes[2], uint64_t(*all_bucket_sizes)[2], int *counts, int *displs, size_t *recv_count)
 
static void compute_redist_sendcounts_sdispls (uint64_t comm_rank, uint64_t split_rank, uint64_t comm_size, uint64_t global_sizes[2], uint64_t(*all_bucket_sizes)[2], uint64_t U_size, int *counts, int *displs)
 
static int compare_dist_cells_coord (const void *a, const void *b)
 
static void remove_duplicated_cells (struct dist_cell *cells, size_t *num_cells)
 
static struct proc_sphere_part_noderedistribute_cells_recursive (struct dist_cell **cells, size_t *num_cells, struct yac_group_comm group_comm, double prev_gc_norm_vector[3], MPI_Datatype dist_cell_dt)
 
static MPI_Datatype yac_get_dist_cell_mpi_datatype (MPI_Comm comm)
 
struct proc_sphere_part_nodeyac_redistribute_cells (struct dist_cell **cells, size_t *num_cells, MPI_Comm comm)
 
static int is_serial_node (struct proc_sphere_part_node *node)
 
void yac_proc_sphere_part_do_point_search (struct proc_sphere_part_node *node, yac_coordinate_pointer search_coords, size_t count, int *ranks)
 
static void bnd_circle_search (struct proc_sphere_part_node *node, struct bounding_circle bnd_circle, int *ranks, int *rank_count)
 
void yac_proc_sphere_part_do_bnd_circle_search (struct proc_sphere_part_node *node, struct bounding_circle bnd_circle, int *ranks, int *rank_count)
 
static int get_leaf_ranks (struct proc_sphere_part_node *node, int *ranks)
 
static void get_neigh_ranks (struct proc_sphere_part_node *node, uint64_t *leaf_sizes, uint64_t min_size, uint64_t **inner_node_sizes, int *send_flags, int *recv_flags, int comm_rank, struct neigh_search_data *last_valid_node)
 
static uint64_t determine_node_sizes (struct proc_sphere_part_node *node, uint64_t *leaf_sizes, uint64_t **inner_node_sizes)
 
void yac_proc_sphere_part_get_neigh_ranks (struct proc_sphere_part_node *node, uint64_t *leaf_sizes, uint64_t min_size, int *send_flags, int *recv_flags, int comm_rank, int comm_size)
 
void yac_proc_sphere_part_node_delete (struct proc_sphere_part_node *node)
 

Enumeration Type Documentation

◆ splicomm_tags

Enumerator
DATA_SIZE_TAG 
DATA_TAG 

Definition at line 12 of file proc_sphere_part.c.

Function Documentation

◆ bnd_circle_search()

static void bnd_circle_search ( struct proc_sphere_part_node node,
struct bounding_circle  bnd_circle,
int *  ranks,
int *  rank_count 
)
static

Definition at line 671 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_dist_cells_coord()

static int compare_dist_cells_coord ( const void *  a,
const void *  b 
)
static

Definition at line 299 of file proc_sphere_part.c.

Here is the caller graph for this function:

◆ compute_redist_recvcounts_rdispls()

static void compute_redist_recvcounts_rdispls ( uint64_t  comm_rank,
uint64_t  split_rank,
uint64_t  comm_size,
uint64_t  global_sizes[2],
uint64_t(*)  all_bucket_sizes[2],
int *  counts,
int *  displs,
size_t *  recv_count 
)
static

Definition at line 200 of file proc_sphere_part.c.

Here is the caller graph for this function:

◆ compute_redist_sendcounts_sdispls()

static void compute_redist_sendcounts_sdispls ( uint64_t  comm_rank,
uint64_t  split_rank,
uint64_t  comm_size,
uint64_t  global_sizes[2],
uint64_t(*)  all_bucket_sizes[2],
uint64_t  U_size,
int *  counts,
int *  displs 
)
static

Definition at line 250 of file proc_sphere_part.c.

Here is the caller graph for this function:

◆ determine_node_sizes()

static uint64_t determine_node_sizes ( struct proc_sphere_part_node node,
uint64_t *  leaf_sizes,
uint64_t **  inner_node_sizes 
)
static

Definition at line 804 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_leaf_ranks()

static int get_leaf_ranks ( struct proc_sphere_part_node node,
int *  ranks 
)
static

Definition at line 725 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_neigh_ranks()

static void get_neigh_ranks ( struct proc_sphere_part_node node,
uint64_t *  leaf_sizes,
uint64_t  min_size,
uint64_t **  inner_node_sizes,
int *  send_flags,
int *  recv_flags,
int  comm_rank,
struct neigh_search_data last_valid_node 
)
static

Definition at line 744 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_proc_sphere_part_node_data_pack_size()

static int get_proc_sphere_part_node_data_pack_size ( struct proc_sphere_part_node_data  node_data,
MPI_Comm  comm 
)
static

Definition at line 52 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_proc_sphere_part_node_pack_size()

static int get_proc_sphere_part_node_pack_size ( struct proc_sphere_part_node  node,
MPI_Comm  comm 
)
static

Definition at line 40 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_remote_data()

static struct proc_sphere_part_node_data get_remote_data ( struct proc_sphere_part_node_data  local_data,
struct yac_group_comm  local_group_comm,
struct yac_group_comm  remote_group_comm 
)
static

Definition at line 143 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_serial_node()

static int is_serial_node ( struct proc_sphere_part_node node)
static

Definition at line 622 of file proc_sphere_part.c.

Here is the caller graph for this function:

◆ pack_proc_sphere_part_node()

static void pack_proc_sphere_part_node ( struct proc_sphere_part_node node,
void *  pack_buffer,
int  pack_buffer_size,
int *  position,
MPI_Comm  comm 
)
static

Definition at line 72 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_proc_sphere_part_node_data()

static void pack_proc_sphere_part_node_data ( struct proc_sphere_part_node_data  node_data,
void *  pack_buffer,
int  pack_buffer_size,
int *  position,
MPI_Comm  comm 
)
static

Definition at line 84 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ redistribute_cells_recursive()

static struct proc_sphere_part_node * redistribute_cells_recursive ( struct dist_cell **  cells,
size_t *  num_cells,
struct yac_group_comm  group_comm,
double  prev_gc_norm_vector[3],
MPI_Datatype  dist_cell_dt 
)
static

Definition at line 328 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_duplicated_cells()

static void remove_duplicated_cells ( struct dist_cell cells,
size_t *  num_cells 
)
static

Definition at line 305 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_proc_sphere_part_node()

static struct proc_sphere_part_node * unpack_proc_sphere_part_node ( void *  pack_buffer,
int  pack_buffer_size,
int *  position,
MPI_Comm  comm 
)
static

Definition at line 103 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_proc_sphere_part_node_data()

static struct proc_sphere_part_node_data unpack_proc_sphere_part_node_data ( void *  pack_buffer,
int  pack_buffer_size,
int *  position,
MPI_Comm  comm 
)
static

Definition at line 121 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_get_dist_cell_mpi_datatype()

static MPI_Datatype yac_get_dist_cell_mpi_datatype ( MPI_Comm  comm)
static

Definition at line 575 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_proc_sphere_part_do_bnd_circle_search()

void yac_proc_sphere_part_do_bnd_circle_search ( struct proc_sphere_part_node node,
struct bounding_circle  bnd_circle,
int *  ranks,
int *  rank_count 
)

Definition at line 706 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_proc_sphere_part_do_point_search()

void yac_proc_sphere_part_do_point_search ( struct proc_sphere_part_node node,
yac_coordinate_pointer  search_coords,
size_t  count,
int *  ranks 
)

Definition at line 627 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_proc_sphere_part_get_neigh_ranks()

void yac_proc_sphere_part_get_neigh_ranks ( struct proc_sphere_part_node node,
uint64_t *  leaf_sizes,
uint64_t  min_size,
int *  send_flags,
int *  recv_flags,
int  comm_rank,
int  comm_size 
)

Definition at line 827 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_proc_sphere_part_node_delete()

void yac_proc_sphere_part_node_delete ( struct proc_sphere_part_node node)
Examples
test_proc_sphere_part_parallel.c.

Definition at line 860 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_redistribute_cells()

struct proc_sphere_part_node * yac_redistribute_cells ( struct dist_cell **  cells,
size_t *  num_cells,
MPI_Comm  comm 
)
Examples
test_proc_sphere_part_parallel.c.

Definition at line 582 of file proc_sphere_part.c.

Here is the call graph for this function:
Here is the caller graph for this function: