YAC 3.7.0
Yet Another Coupler
Loading...
Searching...
No Matches
basic_grid.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 BASIC_GRID_H
6#define BASIC_GRID_H
7
8#include "basic_grid_data.h"
9#include "location.h"
10#include "field_data.h"
11
12// YAC PUBLIC HEADER START
13
25
26struct yac_basic_grid;
27
29 char const * name, struct yac_basic_grid_data grid_data);
30struct yac_basic_grid * yac_basic_grid_empty_new(char const * name);
32 struct yac_basic_grid * grid, struct yac_interp_field field);
34 struct yac_basic_grid * grid, struct yac_interp_field field);
36 struct yac_basic_grid * grid, enum yac_location location);
37char const * yac_basic_grid_get_name(struct yac_basic_grid * grid);
39 struct yac_basic_grid * grid);
41 struct yac_basic_grid * grid, enum yac_location location);
43 struct yac_basic_grid * grid, enum yac_location location);
45 struct yac_basic_grid * grid, enum yac_location location,
46 char const * mask_name);
48 struct yac_basic_grid * grid, enum yac_location location,
51 struct yac_basic_grid * grid, enum yac_location location,
54 struct yac_basic_grid * grid, enum yac_location location,
55 int const * mask, size_t count, char const * mask_name);
57 struct yac_basic_grid * grid, enum yac_location location,
58 int const * mask, char const * mask_name);
59void yac_basic_grid_delete(struct yac_basic_grid * grid);
60
62 char const * name, size_t nbr_vertices[2], int cyclic[2],
63 double *lon_vertices, double *lat_vertices);
64
66 char const * name, size_t nbr_vertices[2], int cyclic[2],
67 double *lon_vertices, double *lat_vertices);
68
70 char const * name, size_t nbr_vertices[2], int cyclic[2],
71 double *lon_vertices, double *lat_vertices);
72
74 char const * name, size_t nbr_vertices[2], int cyclic[2],
75 double *lon_vertices, double *lat_vertices);
76
78 char const * name, size_t nbr_vertices, size_t nbr_cells,
79 int *num_vertices_per_cell, double *x_vertices, double *y_vertices,
80 int *cell_to_vertex);
81
83 char const * name, size_t nbr_vertices, size_t nbr_cells,
84 int *num_vertices_per_cell, double *x_vertices, double *y_vertices,
85 int *cell_to_vertex);
86
88 char const * name, size_t nbr_vertices, size_t nbr_cells,
89 int *num_vertices_per_cell, double *x_vertices, double *y_vertices,
90 int *cell_to_vertex);
91
93 char const * name, size_t nbr_vertices, size_t nbr_cells,
94 int *num_vertices_per_cell, double *x_vertices, double *y_vertices,
95 int *cell_to_vertex);
96
98 char const * name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
99 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
100 int *cell_to_edge, int *edge_to_vertex);
101
103 char const * name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
104 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
105 int *cell_to_edge, int *edge_to_vertex);
106
108 char const * name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
109 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
110 int *cell_to_edge, int *edge_to_vertex);
111
113 char const * name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
114 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
115 int *cell_to_edge, int *edge_to_vertex);
116
118 char const * name, size_t nbr_points, double *x_points, double *y_points);
119
121 char const * name, size_t nbr_points, double *x_points, double *y_points);
122
124 char const * name, size_t nbr_vertices[2], int cyclic[2],
125 double *lon_vertices, double *lat_vertices,
126 double north_pole_lon, double north_pole_lat);
127
129 char const * name, size_t nbr_vertices[2], int cyclic[2],
130 double *lon_vertices, double *lat_vertices,
131 double north_pole_lon, double north_pole_lat);
132
134 struct yac_basic_grid * grid, char const * filename, MPI_Comm comm);
135
137 struct yac_basic_grid * grid, double * cell_areas);
138
140 yac_coordinate_pointer coordinates, size_t num_coordinates,
141 double north_pole[3]);
142
143// YAC PUBLIC HEADER STOP
144
145#endif // BASIC_GRID_H
struct yac_basic_grid * yac_basic_grid_unstruct_edge_new(char const *name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex)
Definition basic_grid.c:420
struct yac_basic_grid * yac_basic_grid_unstruct_edge_ll_new(char const *name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex)
Definition basic_grid.c:446
struct yac_field_data * yac_basic_grid_get_field_data(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:309
size_t yac_basic_grid_get_named_mask_idx(struct yac_basic_grid *grid, enum yac_location location, char const *mask_name)
Definition basic_grid.c:177
int const * yac_basic_grid_get_field_mask(struct yac_basic_grid *grid, struct yac_interp_field field)
Definition basic_grid.c:118
struct yac_basic_grid * yac_basic_grid_new(char const *name, struct yac_basic_grid_data grid_data)
Definition basic_grid.c:50
struct yac_basic_grid * yac_basic_grid_reg_2d_deg_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition basic_grid.c:335
void yac_basic_grid_to_file_parallel(struct yac_basic_grid *grid, char const *filename, MPI_Comm comm)
Definition basic_grid.c:768
struct yac_basic_grid * yac_basic_grid_reg_2d_rot_deg_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices, double north_pole_lon, double north_pole_lat)
Definition basic_grid.c:503
struct yac_basic_grid * yac_basic_grid_cloud_new(char const *name, size_t nbr_points, double *x_points, double *y_points)
Definition basic_grid.c:472
struct yac_basic_grid * yac_basic_grid_unstruct_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
Definition basic_grid.c:381
struct yac_basic_grid * yac_basic_grid_unstruct_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
Definition basic_grid.c:368
void yac_rotate_coordinates(yac_coordinate_pointer coordinates, size_t num_coordinates, double north_pole[3])
yac_const_coordinate_pointer yac_basic_grid_get_field_coordinates(struct yac_basic_grid *grid, struct yac_interp_field field)
Definition basic_grid.c:81
struct yac_basic_grid_data * yac_basic_grid_get_data(struct yac_basic_grid *grid)
Definition basic_grid.c:137
struct yac_basic_grid * yac_basic_grid_cloud_deg_new(char const *name, size_t nbr_points, double *x_points, double *y_points)
Definition basic_grid.c:481
struct yac_basic_grid * yac_basic_grid_unstruct_edge_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex)
Definition basic_grid.c:433
size_t yac_basic_grid_add_mask(struct yac_basic_grid *grid, enum yac_location location, int const *mask, size_t count, char const *mask_name)
Definition basic_grid.c:284
struct yac_basic_grid * yac_basic_grid_reg_2d_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition basic_grid.c:324
struct yac_basic_grid * yac_basic_grid_unstruct_ll_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
Definition basic_grid.c:394
size_t yac_basic_grid_add_coordinates_nocpy(struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates)
Definition basic_grid.c:208
char const * yac_basic_grid_get_name(struct yac_basic_grid *grid)
Definition basic_grid.c:128
void yac_basic_grid_compute_cell_areas(struct yac_basic_grid *grid, double *cell_areas)
struct yac_basic_grid * yac_basic_grid_reg_2d_rot_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices, double north_pole_lon, double north_pole_lat)
Definition basic_grid.c:490
size_t yac_basic_grid_add_coordinates(struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates, size_t count)
Definition basic_grid.c:232
size_t yac_basic_grid_get_data_size(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:147
struct yac_basic_grid * yac_basic_grid_unstruct_ll_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
Definition basic_grid.c:407
int const * yac_basic_grid_get_core_mask(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:101
struct yac_basic_grid * yac_basic_grid_empty_new(char const *name)
Definition basic_grid.c:63
void yac_basic_grid_delete(struct yac_basic_grid *grid)
Definition basic_grid.c:70
struct yac_basic_grid * yac_basic_grid_curve_2d_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition basic_grid.c:346
struct yac_basic_grid * yac_basic_grid_curve_2d_deg_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition basic_grid.c:357
struct yac_basic_grid * yac_basic_grid_unstruct_edge_ll_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex)
Definition basic_grid.c:459
size_t yac_basic_grid_add_mask_nocpy(struct yac_basic_grid *grid, enum yac_location location, int const *mask, char const *mask_name)
Definition basic_grid.c:258
yac_location
Definition location.h:12
yac_coordinate_pointer * coordinates
Definition field_data.c:16
enum yac_location location
Definition basic_grid.h:21
size_t coordinates_idx
Definition basic_grid.h:22
double const (* yac_const_coordinate_pointer)[3]
Definition yac_types.h:20
double(* yac_coordinate_pointer)[3]
Definition yac_types.h:19