YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
dist_grid_internal.h
Go to the documentation of this file.
1// Copyright (c) 2024 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef DIST_GRID_INTERNAL_H
6#define DIST_GRID_INTERNAL_H
7
8#include "grids/dist_grid.h"
9#include "remote_point.h"
10#include "geometry.h"
11
12struct yac_dist_grid;
13typedef size_t const (* const const_size_t_2_pointer)[2];
14typedef int const * const_int_pointer;
15typedef size_t const * const const_size_t_pointer;
17typedef enum yac_edge_type const * const const_yac_edge_type_pointer;
20
37
44 struct yac_dist_grid_pair * grid_pair);
45
53 struct yac_dist_grid_pair * grid_pair, char const * grid_name);
54
67 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
68 yac_coordinate_pointer search_coords, size_t count, size_t * cells);
69
82 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
83 yac_coordinate_pointer search_coords, size_t count, size_t * cells);
84
102 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
103 yac_coordinate_pointer search_coords, size_t count, size_t * local_ids,
104 size_t n, struct yac_interp_field field, double max_search_distance);
105
118 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
119 const_bounding_circle_pointer bnd_circles, size_t count, size_t ** cells,
120 size_t * num_results_per_bnd_circle, struct yac_interp_field field);
121
136 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
137 const_bounding_circle_pointer bnd_circles, size_t count, size_t ** points,
138 size_t * num_results_per_bnd_circle, struct yac_interp_field field);
139
154 struct yac_dist_grid_pair * grid_pair,
155 char const * search_grid_name, char const * result_grid_name,
156 size_t * search_cells, size_t count, size_t ** result_cells,
157 size_t * num_results_per_search_cell, struct yac_interp_field result_field);
158
179 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
180 size_t * cells, size_t count, size_t * neighbours);
181
191
199 struct yac_dist_grid * dist_grid, enum yac_location location);
200
211 struct yac_dist_grid * grid, struct yac_interp_field field,
212 size_t ** indices, size_t * count);
213
225 struct yac_dist_grid * dist_grid, enum yac_location location,
226 size_t * points, size_t count);
227
241 struct yac_dist_grid * dist_grid, enum yac_location location,
242 yac_int * global_ids, size_t count, size_t * local_ids);
243
270 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
271 size_t * cells, size_t count,
272 size_t ** vertex_to_cell, size_t ** vertex_to_cell_offsets,
273 int ** num_cells_per_vertex, struct yac_interp_field field);
274
296 struct yac_dist_grid_pair * grid_pair, int a_is_ref, int to_dist_owner,
297 char const * grid_name_a, size_t ** points_a, enum yac_location location_a,
298 char const * grid_name_b, size_t ** points_b, enum yac_location location_b,
299 double ** weights, size_t * count);
300
309 struct yac_dist_grid * dist_grid, struct yac_interp_field field);
310
322 struct yac_dist_grid * dist_grid, struct yac_interp_field field);
323
334 struct yac_const_basic_grid_data * grid_data, size_t cell_idx,
335 struct yac_grid_cell * cell);
336
348 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
349 size_t * points, size_t count, enum yac_location location, int * ranks);
350
368 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
369 size_t * vertices, size_t count, size_t ** neigh_vertices,
370 int * num_neighs_per_vertex, struct yac_interp_field field);
371
389 struct yac_dist_grid_pair * grid_pair, char const * grid_name,
390 size_t * vertices, size_t count, size_t ** vertex_to_cell,
391 size_t * num_cells_per_vertex);
392
403 struct yac_dist_grid_pair * grid_pair, char const * grid_name);
404
405#endif // DIST_GRID_INTERNAL_H
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)
Definition dist_grid.c:4043
yac_const_coordinate_pointer yac_dist_grid_get_field_coords(struct yac_dist_grid *dist_grid, struct yac_interp_field field)
Definition dist_grid.c:2308
int const * const_int_pointer
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)
Definition dist_grid.c:6497
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)
Definition dist_grid.c:4031
size_t yac_dist_grid_get_local_count(struct yac_dist_grid *dist_grid, enum yac_location location)
Definition dist_grid.c:2212
struct bounding_circle const *const const_bounding_circle_pointer
size_t const *const const_size_t_pointer
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)
Definition dist_grid.c:4220
yac_int const * const_yac_int_pointer
yac_size_t_2_pointer yac_dist_grid_generate_edge_to_cell(struct yac_dist_grid_pair *grid_pair, char const *grid_name)
Definition dist_grid.c:6649
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)
Definition dist_grid.c:2191
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)
Definition dist_grid.c:6205
void yac_dist_grid_pair_do_dnn_search(struct yac_dist_grid_pair *grid_pair, char const *grid_name, const_bounding_circle_pointer bnd_circles, size_t count, size_t **points, size_t *num_results_per_bnd_circle, struct yac_interp_field field)
Definition dist_grid.c:4864
int const * yac_dist_grid_get_field_mask(struct yac_dist_grid *dist_grid, struct yac_interp_field field)
Definition dist_grid.c:2296
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)
Definition dist_grid.c:6041
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)
Definition dist_grid.c:5490
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)
Definition dist_grid.c:5499
struct yac_const_basic_grid_data * yac_dist_grid_get_basic_grid_data(struct yac_dist_grid *dist_grid)
Definition dist_grid.c:2204
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)
Definition dist_grid.c:6550
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)
Definition dist_grid.c:4543
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)
Definition dist_grid.c:5075
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)
Definition dist_grid.c:2186
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)
Definition dist_grid.c:5584
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)
Definition dist_grid.c:6156
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)
Definition dist_grid.c:2418
void yac_dist_grid_get_local_unmasked_points(struct yac_dist_grid *grid, struct yac_interp_field field, size_t **indices, size_t *count)
Definition dist_grid.c:2263
yac_edge_type
Definition grid_cell.h:12
yac_location
Definition location.h:12
location information about a point that is located on one or
information (global id and location) about a point that
const_bounding_circle_pointer cell_bnd_circles
const yac_const_coordinate_pointer vertex_coordinates
const_size_t_pointer cell_to_vertex_offsets
const_size_t_pointer cell_to_vertex
const const_int_pointer num_vertices_per_cell
const_size_t_pointer cell_to_edge
const_remote_point_infos_pointer cell_owners
const const_yac_int_pointer ids[3]
const_size_t_pointer cell_to_edge_offsets
const_yac_edge_type_pointer edge_type
const_size_t_2_pointer edge_to_vertex
const_remote_point_infos_pointer edge_owners
const_remote_point_infos_pointer vertex_owners
size_t count[3]
Definition dist_grid.c:115
int const * location
double const (* yac_const_coordinate_pointer)[3]
Definition yac_types.h:22
YAC_INT yac_int
Definition yac_types.h:15
size_t(* yac_size_t_2_pointer)[2]
Definition yac_types.h:25
double(* yac_coordinate_pointer)[3]
Definition yac_types.h:21