YAC 3.18.0
Yet Another Coupler
Loading...
Searching...
No Matches
basic_grid_data.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_DATA_H
6#define BASIC_GRID_DATA_H
7
8#include "yac_types.h"
9#include "grids/grid_cell.h"
10
11// YAC PUBLIC HEADER START
12
18 size_t num_cells; // number of local cells (owned by local process)
19 size_t num_vertices; // number of local vertices (owned by local process)
20 size_t num_edges; // number of local edges (owned by local process)
28 size_t * cell_to_edge;
34 size_t num_total_cells; // number of locally stored cells
35 size_t num_total_vertices; // number of locally stored vertices
36 size_t num_total_edges; // number of locally stored edges
37};
38
40 size_t nbr_vertices[2], int cyclic[2],
41 double *lon_vertices, double *lat_vertices);
42
44 size_t nbr_vertices[2], int cyclic[2],
45 double *lon_vertices, double *lat_vertices);
46
48 size_t nbr_vertices[2], int cyclic[2],
49 double *lon_vertices, double *lat_vertices);
50
52 size_t nbr_vertices[2], int cyclic[2],
53 double *lon_vertices, double *lat_vertices);
54
56 size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell,
57 double *x_vertices, double *y_vertices, int *cell_to_vertex);
58
60 size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell,
61 double *x_vertices, double *y_vertices, int *cell_to_vertex);
62
64 size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell,
65 double *x_vertices, double *y_vertices, int *cell_to_vertex);
66
68 size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell,
69 double *x_vertices, double *y_vertices, int *cell_to_vertex);
70
72 size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
73 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
74 int *cell_to_edge, int *edge_to_vertex);
75
77 size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
78 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
79 int *cell_to_edge, int *edge_to_vertex);
80
82 size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
83 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
84 int *cell_to_edge, int *edge_to_vertex);
85
87 size_t nbr_vertices, size_t nbr_cells, size_t nbr_edges,
88 int *num_edges_per_cell, double *x_vertices, double *y_vertices,
89 int *cell_to_edge, int *edge_to_vertex);
90
92 size_t nbr_points, double * x_points, double * y_points);
93
95 size_t nbr_points, double * x_points, double * y_points);
96
98 size_t nbr_vertices[2], int cyclic[2],
99 double *lon_vertices, double *lat_vertices,
100 double north_pole_lon, double north_pole_lat);
101
103 size_t nbr_vertices[2], int cyclic[2],
104 double *lon_vertices, double *lat_vertices,
105 double north_pole_lon, double north_pole_lat);
106
108 struct yac_basic_grid_data grid, double * cell_areas);
109
111
112// YAC PUBLIC HEADER STOP
113
114#endif // BASIC_GRID_DATA_H
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_deg(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition grid_reg2d.c:65
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_ll(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_edge(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)
struct yac_basic_grid_data yac_generate_basic_grid_data_cloud(size_t nbr_points, double *x_points, double *y_points)
Definition grid_cloud.c:50
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_edge_deg(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)
void yac_basic_grid_data_compute_cell_areas(struct yac_basic_grid_data grid, double *cell_areas)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d_rot_deg(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices, double north_pole_lon, double north_pole_lat)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d_rot(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices, double north_pole_lon, double north_pole_lat)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_edge_ll(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)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_edge_ll_deg(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)
struct yac_basic_grid_data yac_generate_basic_grid_data_cloud_deg(size_t nbr_points, double *x_points, double *y_points)
Definition grid_cloud.c:58
struct yac_basic_grid_data yac_generate_basic_grid_data_curve_2d_deg(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid_data yac_generate_basic_grid_data_curve_2d(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
void yac_basic_grid_data_free(struct yac_basic_grid_data grid)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d_deg(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
Definition grid_reg2d.c:74
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_ll_deg(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
yac_edge_type
Definition grid_cell.h:12
yac_coordinate_pointer vertex_coordinates
size_t * vertex_to_cell_offsets
yac_size_t_2_pointer edge_to_vertex
enum yac_edge_type * edge_type
size_t * cell_to_vertex_offsets
int * cell_to_vertex
unsigned cyclic[2]
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