YAC 3.18.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
9#include "location.h"
10#include "field_data.h"
11#include "yac_mpi.h"
12
13// YAC PUBLIC HEADER START
14
20
21struct yac_basic_grid;
22
24 char const * name, struct yac_basic_grid_data grid_data);
25struct yac_basic_grid * yac_basic_grid_empty_new(char const * name);
27 struct yac_basic_grid * grid, struct yac_interp_field field);
29 struct yac_basic_grid * grid, struct yac_interp_field field);
31 struct yac_basic_grid * grid, enum yac_location location);
32char const * yac_basic_grid_get_name(struct yac_basic_grid * grid);
34 struct yac_basic_grid * grid);
36 struct yac_basic_grid * grid, enum yac_location location);
38 struct yac_basic_grid * grid, enum yac_location location);
40 struct yac_basic_grid * grid, enum yac_location location,
41 char const * mask_name);
43 struct yac_basic_grid * grid, enum yac_location location,
46 struct yac_basic_grid * grid, enum yac_location location,
49 struct yac_basic_grid * grid, enum yac_location location,
50 int const * mask, size_t count, char const * mask_name);
52 struct yac_basic_grid * grid, enum yac_location location,
53 int const * mask, char const * mask_name);
54void yac_basic_grid_delete(struct yac_basic_grid * grid);
55
57 char const * name, size_t nbr_vertices[2], int cyclic[2],
58 double *lon_vertices, double *lat_vertices);
59
61 char const * name, size_t nbr_vertices[2], int cyclic[2],
62 double *lon_vertices, double *lat_vertices);
63
65 char const * name, size_t nbr_vertices[2], int cyclic[2],
66 double *lon_vertices, double *lat_vertices);
67
69 char const * name, size_t nbr_vertices[2], int cyclic[2],
70 double *lon_vertices, double *lat_vertices);
71
73 char const * name, size_t nbr_vertices, size_t nbr_cells,
74 int *num_vertices_per_cell, double *x_vertices, double *y_vertices,
75 int *cell_to_vertex);
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, size_t nbr_edges,
94 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
95 int *cell_to_edge, int *edge_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_points, double *x_points, double *y_points);
114
116 char const * name, size_t nbr_points, double *x_points, double *y_points);
117
119 char const * name, size_t nbr_vertices[2], int cyclic[2],
120 double *lon_vertices, double *lat_vertices,
121 double north_pole_lon, double north_pole_lat);
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 struct yac_basic_grid * grid, char const * filename, MPI_Comm comm);
130
132 struct yac_basic_grid * grid, double * cell_areas);
133
135 yac_coordinate_pointer coordinates, size_t num_coordinates,
136 double north_pole[3]);
137
139 struct yac_basic_grid * grid, int is_fatal);
140
141// YAC PUBLIC HEADER STOP
142
143#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:427
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:453
struct yac_field_data * yac_basic_grid_get_field_data(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:316
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:184
int const * yac_basic_grid_get_field_mask(struct yac_basic_grid *grid, struct yac_interp_field field)
Definition basic_grid.c:125
struct yac_basic_grid * yac_basic_grid_new(char const *name, struct yac_basic_grid_data grid_data)
Definition basic_grid.c:57
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:342
void yac_basic_grid_to_file_parallel(struct yac_basic_grid *grid, char const *filename, MPI_Comm comm)
Definition basic_grid.c:779
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:510
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:479
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:388
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:375
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:88
struct yac_basic_grid_data * yac_basic_grid_get_data(struct yac_basic_grid *grid)
Definition basic_grid.c:144
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:488
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:440
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:291
int yac_basic_grid_check_coordinates(struct yac_basic_grid *grid, int is_fatal)
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:331
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:401
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:215
char const * yac_basic_grid_get_name(struct yac_basic_grid *grid)
Definition basic_grid.c:135
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:497
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:239
size_t yac_basic_grid_get_data_size(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:154
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:414
int const * yac_basic_grid_get_core_mask(struct yac_basic_grid *grid, enum yac_location location)
Definition basic_grid.c:108
struct yac_basic_grid * yac_basic_grid_empty_new(char const *name)
Definition basic_grid.c:70
void yac_basic_grid_delete(struct yac_basic_grid *grid)
Definition basic_grid.c:77
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:353
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:364
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:466
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:265
yac_location
Definition location.h:12
yac_coordinate_pointer * coordinates
Definition field_data.c:16
enum yac_location location
Definition basic_grid.h:16
size_t coordinates_idx
Definition basic_grid.h:17
int * cell_to_vertex
unsigned cyclic[2]
static int mask[16]
int const * location
char const * name
Definition toy_scrip.c:114
double const (* yac_const_coordinate_pointer)[3]
Definition yac_types.h:22
double(* yac_coordinate_pointer)[3]
Definition yac_types.h:21