YetAnotherCoupler 3.5.2
|
Go to the source code of this file.
Data Structures | |
struct | yac_const_basic_grid_data |
Typedefs | |
typedef size_t const (*const | const_size_t_2_pointer)[2] |
typedef int const * | const_int_pointer |
typedef size_t const *const | const_size_t_pointer |
typedef yac_int const * | const_yac_int_pointer |
typedef enum yac_edge_type const *const | const_yac_edge_type_pointer |
typedef struct bounding_circle const *const | const_bounding_circle_pointer |
typedef struct remote_point_infos const *const | const_remote_point_infos_pointer |
Functions | |
MPI_Comm | yac_dist_grid_pair_get_MPI_Comm (struct yac_dist_grid_pair *grid_pair) |
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_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) |
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) |
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, double max_search_distance) |
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) |
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) |
struct yac_const_basic_grid_data * | yac_dist_grid_get_basic_grid_data (struct yac_dist_grid *dist_grid) |
size_t | yac_dist_grid_get_local_count (struct yac_dist_grid *dist_grid, enum yac_location location) |
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 * | yac_dist_grid_get_remote_points (struct yac_dist_grid *dist_grid, enum yac_location location, size_t *points, size_t count) |
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) |
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) |
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 * | yac_dist_grid_get_field_mask (struct yac_dist_grid *dist_grid, struct yac_interp_field field) |
yac_const_coordinate_pointer | yac_dist_grid_get_field_coords (struct yac_dist_grid *dist_grid, struct yac_interp_field field) |
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) |
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_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) |
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) |
typedef struct bounding_circle const* const const_bounding_circle_pointer |
Definition at line 18 of file dist_grid_internal.h.
typedef int const* const_int_pointer |
Definition at line 14 of file dist_grid_internal.h.
typedef struct remote_point_infos const* const const_remote_point_infos_pointer |
Definition at line 19 of file dist_grid_internal.h.
typedef size_t const(* const const_size_t_2_pointer)[2] |
Definition at line 13 of file dist_grid_internal.h.
typedef size_t const* const const_size_t_pointer |
Definition at line 15 of file dist_grid_internal.h.
typedef enum yac_edge_type const* const const_yac_edge_type_pointer |
Definition at line 17 of file dist_grid_internal.h.
typedef yac_int const* const_yac_int_pointer |
Definition at line 16 of file dist_grid_internal.h.
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 ) |
returns the data for a selected grid cell
[in] | grid_data | basic grid data |
[in] | cell_idx | local id of the selected cell |
[out] | cell | cell data |
Definition at line 2649 of file dist_grid.c.
struct yac_const_basic_grid_data * yac_dist_grid_get_basic_grid_data | ( | struct yac_dist_grid * | dist_grid | ) |
gets the basic grid data of a distributed grid
[in] | dist_grid | distributed grid |
Definition at line 2441 of file dist_grid.c.
yac_const_coordinate_pointer yac_dist_grid_get_field_coords | ( | struct yac_dist_grid * | dist_grid, |
struct yac_interp_field | field ) |
returns a pointer to a field coordinates
[in] | dist_grid | distributed grid |
[in] | field | field for which the coordinates are to be returned |
Definition at line 2545 of file dist_grid.c.
int const * yac_dist_grid_get_field_mask | ( | struct yac_dist_grid * | dist_grid, |
struct yac_interp_field | field ) |
returns a pointer to a field mask
[in] | dist_grid | distributed grid |
[in] | field | field for which the mask is to be returned |
Definition at line 2533 of file dist_grid.c.
size_t yac_dist_grid_get_local_count | ( | struct yac_dist_grid * | dist_grid, |
enum yac_location | location ) |
gets the number of points in the local part of the distributed grid
[in] | dist_grid | distributed grid |
[in] | location | location of the points |
Definition at line 2449 of file dist_grid.c.
void yac_dist_grid_get_local_unmasked_points | ( | struct yac_dist_grid * | grid, |
struct yac_interp_field | field, | ||
size_t ** | indices, | ||
size_t * | count ) |
gets all unmasked points available in the local part of the distributed grid
[in] | grid | distributed grid |
[in] | field | field description |
[out] | indices | local indices of all unmasked local cells |
[out] | count | number of entries in indices |
Definition at line 2500 of file dist_grid.c.
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 ) |
allocates and returns remote_point informations for a list of selected points
[in] | dist_grid | distributed grid |
[in] | location | location of the requested points |
[in] | points | local ids of selected points |
[in] | count | number of entries in points |
Definition at line 5467 of file dist_grid.c.
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 ) |
returns the local ids for the provided global ids
[in] | dist_grid | distributed grid |
[in] | location | location of the selected points |
[in] | global_ids | global ids of the selected points |
[in] | count | number of entries in global_ids |
[out] | local_ids | local ids of the selected points |
Definition at line 5549 of file dist_grid.c.
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 ) |
Determines the ranks of the distributed owners for the selected points
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid on which this routine is supposed to work on |
[in] | points | local ids of selected points |
[in] | count | number of entries in points |
[in] | location | location of the requested points |
[out] | ranks | distributed owners of selected points |
Definition at line 6416 of file dist_grid.c.
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 ) |
search for all cells matching the provided bounding circles
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid for which the search is to be performed |
[in] | bnd_circles | search bounding circles |
[in] | count | number of search bounding circles |
[out] | cells | local ids of results cells |
[out] | num_results_per_bnd_circle | number of results per bounding circle |
[in] | field | field description |
Definition at line 4731 of file dist_grid.c.
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 ) |
search for matches between cells of the two grids within the grid pair
[in] | grid_pair | distributed grid pair |
[in] | search_grid_name | grid name of the grid from which to take the search cells |
[in] | result_grid_name | grid name of the grid from which to take the matching cells |
[in] | search_cells | local ids of search cells |
[in] | count | number of search cells |
[out] | result_cells | local ids of results cells |
[out] | num_results_per_search_cell | number of results per search cell |
[in] | result_field | field description |
Definition at line 5045 of file dist_grid.c.
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, | ||
double | max_search_distance ) |
does a n-nearest-neighbour search
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid for which the search is to be performed |
[in] | search_coords | search coordinates |
[in] | count | number of search coordinates |
[out] | local_ids | local ids of results points |
[in] | n | number of points per search coordinate |
[in] | field | field description |
[in] | max_search_distance | routine does not return further away then this value (valid range: [0;M_PI]) |
Definition at line 4414 of file dist_grid.c.
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 ) |
search for cells that map to the provided search coordinates
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid for which the search is to be performed |
[in] | search_coords | search coordinates |
[in] | count | number of search coordinates |
[out] | cells | local ids of matching cells |
Definition at line 4237 of file dist_grid.c.
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 ) |
search for cells that map to the provided search coordinates
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid for which the search is to be performed |
[in] | search_coords | search coordinates |
[in] | count | number of search coordinates |
[out] | cells | local ids of matching cells |
Definition at line 4245 of file dist_grid.c.
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 ) |
generates for all vertices of the grid the list of all cells surrounding the vertices
vertices not belonging to the selected cells will have a zero entry in num_cells_per_vertex
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid on which this routine is supposed to work on |
[in] | cells | selected cells |
[in] | count | number of entries in cells |
[out] | vertex_to_cell | list of result cells for all vertices associated to the selected cells |
[out] | vertex_to_cell_offsets | the results cells for vertex i can be found at: vertex_to_cell + vertex_to_cell_offsets[i] |
[out] | num_cells_per_vertex | number of result cells for each vertex |
[in] | field | if the provided field contains a mask for cells, it will be used |
Definition at line 6132 of file dist_grid.c.
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 ) |
gets neighbouring grid cells for all provided cells
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid for which the search is to be performed |
[in] | cells | local ids of cells for which the neighbours are to be determined |
[in] | count | number for entries in cells |
[out] | neighbours | neighbours for all edges of all provided cells |
Definition at line 5458 of file dist_grid.c.
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 ) |
Determines for all provided vertices the cells surrouding them.
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid on which this routine is supposed to work on |
[in] | vertices | local ids of selected vertices |
[in] | count | number of entries in vertices |
[out] | vertex_to_cell | list of result cells for all vertices associated to the selected cells |
[out] | num_cells_per_vertex | number of result cells for each vertex |
Definition at line 6082 of file dist_grid.c.
struct yac_dist_grid * yac_dist_grid_pair_get_dist_grid | ( | struct yac_dist_grid_pair * | grid_pair, |
char const * | grid_name ) |
gets one of the two grids from the distributed grid pairs
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the selected grid |
Definition at line 2429 of file dist_grid.c.
MPI_Comm yac_dist_grid_pair_get_MPI_Comm | ( | struct yac_dist_grid_pair * | grid_pair | ) |
gets a communicator containing all ranks of the distributed grid pair
[in] | grid_pair | distributed grid pair |
Definition at line 2424 of file dist_grid.c.
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 ) |
Determines all non-masked neighour vertices for the selected vertices
[in] | grid_pair | distributed grid pair |
[in] | grid_name | grid name of the grid on which this routine is supposed to work on |
[in] | vertices | local ids of selected vertices |
[in] | count | number of entries in vertices |
[out] | neigh_vertices | neighbour vertices |
[out] | num_neighs_per_vertex | number of neighbours per vertex |
[in] | field | if the provided field contains a mask for corners, it will be used |
Definition at line 5996 of file dist_grid.c.
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 ) |
Each point in a distributed grid has a unique owner rank.
This routine relocates point pairs of two grids. If (a_is_ref != 0), this routine will relocate the point pairs such that each process only has pairs with points_a being owned by the respective process.
[in] | grid_pair | distributed grid pair |
[in] | a_is_ref | determines whether points_a or points_b are used as the sorting reference |
[in] | to_dist_owner | determines whether the sorting is based on the dist or orig owner of the respective points |
[in] | grid_name_a | grid name for the a-part of point pairs |
[in,out] | points_a | local ids of the a-part of the point pairs |
[in] | location_a | location of the a-part of the point pairs |
[in] | grid_name_b | grid name for the b-part of point pairs |
[in,out] | points_b | local ids of the b-part of the point pairs |
[in] | location_b | location of the b-part of the point pairs |
[in,out] | weights | weights for all point pairs |
[in,out] | count | number of point pairs before and after this routine |
Definition at line 6467 of file dist_grid.c.