5#ifndef DIST_GRID_INTERNAL_H
6#define DIST_GRID_INTERNAL_H
156 char const * search_grid_name,
char const * result_grid_name,
157 size_t * search_cells,
size_t count,
size_t ** result_cells,
158 size_t * num_results_per_search_cell,
struct yac_interp_field result_field);
181 size_t * cells,
size_t count,
size_t * neighbours);
213 size_t ** indices,
size_t *
count);
232 struct remote_point * point, MPI_Datatype point_info_dt, MPI_Comm comm);
244 struct remote_point * point,
void * buffer,
int buffer_size,
int * position,
245 MPI_Datatype point_info_dt, MPI_Comm comm);
258 void * buffer,
int buffer_size,
int * position,
struct remote_point * point,
259 MPI_Datatype point_info_dt, MPI_Comm comm);
283 MPI_Datatype point_info_dt, MPI_Comm comm);
296 void * buffer,
int buffer_size,
int * position,
311 size_t *
points,
size_t count);
327 yac_int * global_ids,
size_t count,
size_t * local_ids);
356 size_t * cells,
size_t count,
357 size_t ** vertex_to_cell,
size_t ** vertex_to_cell_offsets,
382 char const * grid_name_a,
size_t ** points_a,
enum yac_location location_a,
383 char const * grid_name_b,
size_t ** points_b,
enum yac_location location_b,
384 double ** weights,
size_t * count);
452 size_t * vertices,
size_t count,
size_t ** neigh_vertices,
473 size_t * vertices,
size_t count,
size_t ** vertex_to_cell,
474 size_t * num_cells_per_vertex);
void yac_dist_grid_pair_do_point_search_gc(struct yac_dist_grid_pair *grid_pair, char const *grid_name, yac_coordinate_pointer search_coords, size_t count, size_t *cells)
yac_const_coordinate_pointer yac_dist_grid_get_field_coords(struct yac_dist_grid *dist_grid, struct yac_interp_field field)
void yac_remote_point_pack(struct remote_point *point, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_dist_grid_pair_determine_dist_owner(struct yac_dist_grid_pair *grid_pair, char const *grid_name, size_t *points, size_t count, enum yac_location location, int *ranks)
void yac_dist_grid_pair_do_point_search(struct yac_dist_grid_pair *grid_pair, char const *grid_name, yac_coordinate_pointer search_coords, size_t count, size_t *cells)
size_t yac_dist_grid_get_local_count(struct yac_dist_grid *dist_grid, enum yac_location location)
struct bounding_circle const *const const_bounding_circle_pointer
void yac_remote_point_unpack(void *buffer, int buffer_size, int *position, struct remote_point *point, MPI_Datatype point_info_dt, MPI_Comm comm)
size_t const *const const_size_t_pointer
struct remote_point_infos const *const const_remote_point_infos_pointer
enum yac_edge_type const *const const_yac_edge_type_pointer
struct yac_dist_grid * yac_dist_grid_pair_get_dist_grid(struct yac_dist_grid_pair *grid_pair, char const *grid_name)
void yac_dist_grid_pair_get_aux_grid(struct yac_dist_grid_pair *grid_pair, char const *grid_name, size_t *cells, size_t count, size_t **vertex_to_cell, size_t **vertex_to_cell_offsets, int **num_cells_per_vertex, struct yac_interp_field field)
int const * yac_dist_grid_get_field_mask(struct yac_dist_grid *dist_grid, struct yac_interp_field field)
void yac_remote_points_pack(struct remote_points *points, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_remote_points_unpack(void *buffer, int buffer_size, int *position, struct remote_points **points, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_dist_grid_pair_get_vertex_neighbours(struct yac_dist_grid_pair *grid_pair, char const *grid_name, size_t *vertices, size_t count, size_t **neigh_vertices, int *num_neighs_per_vertex, struct yac_interp_field field)
int yac_remote_points_get_pack_size(struct remote_points *points, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_dist_grid_pair_get_cell_neighbours(struct yac_dist_grid_pair *grid_pair, char const *grid_name, size_t *cells, size_t count, size_t *neighbours)
MPI_Datatype yac_get_remote_point_info_mpi_datatype(MPI_Comm comm)
struct remote_point * yac_dist_grid_get_remote_points(struct yac_dist_grid *dist_grid, enum yac_location location, size_t *points, size_t count)
struct yac_const_basic_grid_data * yac_dist_grid_get_basic_grid_data(struct yac_dist_grid *dist_grid)
void yac_dist_grid_pair_relocate_point_pairs(struct yac_dist_grid_pair *grid_pair, int a_is_ref, int to_dist_owner, char const *grid_name_a, size_t **points_a, enum yac_location location_a, char const *grid_name_b, size_t **points_b, enum yac_location location_b, double **weights, size_t *count)
int const *const const_int_pointer
void yac_dist_grid_pair_do_bnd_circle_search(struct yac_dist_grid_pair *grid_pair, char const *grid_name, const_bounding_circle_pointer bnd_circles, size_t count, size_t **cells, size_t *num_results_per_bnd_circle, struct yac_interp_field field)
void yac_dist_grid_pair_do_cell_search(struct yac_dist_grid_pair *grid_pair, char const *search_grid_name, char const *result_grid_name, size_t *search_cells, size_t count, size_t **result_cells, size_t *num_results_per_search_cell, struct yac_interp_field result_field)
size_t const (*const const_size_t_2_pointer)[2]
MPI_Comm yac_dist_grid_pair_get_MPI_Comm(struct yac_dist_grid_pair *grid_pair)
void yac_dist_grid_global_to_local(struct yac_dist_grid *dist_grid, enum yac_location location, yac_int *global_ids, size_t count, size_t *local_ids)
yac_int const *const const_yac_int_pointer
void yac_dist_grid_pair_get_corner_cells(struct yac_dist_grid_pair *grid_pair, char const *grid_name, size_t *vertices, size_t count, size_t **vertex_to_cell, size_t *num_cells_per_vertex)
void yac_const_basic_grid_data_get_grid_cell(struct yac_const_basic_grid_data *grid_data, size_t cell_idx, struct yac_grid_cell *cell)
int yac_remote_point_get_pack_size(struct remote_point *point, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_dist_grid_pair_do_nnn_search(struct yac_dist_grid_pair *grid_pair, char const *grid_name, yac_coordinate_pointer search_coords, size_t count, size_t *local_ids, size_t n, struct yac_interp_field field)
void yac_dist_grid_get_local_unmasked_points(struct yac_dist_grid *grid, struct yac_interp_field field, size_t **indices, size_t *count)
struct remote_point_info single
struct remote_point_info * multi
union remote_point_infos::@1 data
struct remote_point_infos data
struct remote_point_info buffer[]
struct remote_point * data
const_bounding_circle_pointer cell_bnd_circles
const_int_pointer num_vertices_per_cell
const_size_t_pointer cell_to_vertex_offsets
const_size_t_pointer cell_to_vertex
const_size_t_pointer cell_to_edge
const_remote_point_infos_pointer cell_owners
const_yac_int_pointer ids[3]
const_size_t_pointer cell_to_edge_offsets
const_yac_edge_type_pointer edge_type
yac_const_coordinate_pointer vertex_coordinates
const_size_t_2_pointer edge_to_vertex
const_remote_point_infos_pointer edge_owners
const_remote_point_infos_pointer vertex_owners
static struct user_input_data_points ** points
double const (*const yac_const_coordinate_pointer)[3]
double(* yac_coordinate_pointer)[3]