YetAnotherCoupler 3.5.2
Loading...
Searching...
No Matches
basic_grid.c File Reference
#include <stdio.h>
#include <string.h>
#include "basic_grid.h"
#include "grid_cell.h"
#include "field_data_set.h"
#include "io_utils.h"
#include "yac_mpi_internal.h"
#include "time.h"
#include "yac_config.h"
#include "geometry.h"
Include dependency graph for basic_grid.c:

Go to the source code of this file.

Data Structures

struct  yac_basic_grid
 

Functions

struct yac_basic_gridyac_basic_grid_new (char const *name, struct yac_basic_grid_data grid_data)
 
struct yac_basic_gridyac_basic_grid_empty_new (char const *name)
 
void yac_basic_grid_delete (struct yac_basic_grid *grid)
 
yac_const_coordinate_pointer yac_basic_grid_get_field_coordinates (struct yac_basic_grid *grid, struct yac_interp_field field)
 
int const * yac_basic_grid_get_core_mask (struct yac_basic_grid *grid, enum yac_location location)
 
int const * yac_basic_grid_get_field_mask (struct yac_basic_grid *grid, struct yac_interp_field field)
 
char const * yac_basic_grid_get_name (struct yac_basic_grid *grid)
 
struct yac_basic_grid_datayac_basic_grid_get_data (struct yac_basic_grid *grid)
 
size_t yac_basic_grid_get_data_size (struct yac_basic_grid *grid, enum yac_location location)
 
size_t yac_basic_grid_get_data_size_f2c (struct yac_basic_grid *grid, int location)
 
size_t yac_basic_grid_get_named_mask_idx (struct yac_basic_grid *grid, enum yac_location location, char const *mask_name)
 
size_t yac_basic_grid_add_coordinates_nocpy (struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates)
 
size_t yac_basic_grid_add_coordinates_nocpy_f2c (struct yac_basic_grid *grid, int location, double *coordinates)
 
size_t yac_basic_grid_add_coordinates (struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates, size_t count)
 
size_t yac_basic_grid_add_coordinates_f2c (struct yac_basic_grid *grid, int location, double *coordinates, size_t count)
 
size_t yac_basic_grid_add_mask_nocpy (struct yac_basic_grid *grid, enum yac_location location, int const *mask, char const *mask_name)
 
size_t yac_basic_grid_add_mask_nocpy_f2c (struct yac_basic_grid *grid, int location, int const *mask, char const *mask_name)
 
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)
 
size_t yac_basic_grid_add_mask_f2c (struct yac_basic_grid *grid, int location, int const *mask, size_t count, char const *mask_name)
 
struct yac_field_datayac_basic_grid_get_field_data (struct yac_basic_grid *grid, enum yac_location location)
 
struct yac_basic_gridyac_basic_grid_reg_2d_new (char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
 
struct yac_basic_gridyac_basic_grid_reg_2d_deg_new (char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
 
struct yac_basic_gridyac_basic_grid_curve_2d_new (char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
 
struct yac_basic_gridyac_basic_grid_curve_2d_deg_new (char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_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)
 
struct yac_basic_gridyac_basic_grid_cloud_new (char const *name, size_t nbr_points, double *x_points, double *y_points)
 
struct yac_basic_gridyac_basic_grid_cloud_deg_new (char const *name, size_t nbr_points, double *x_points, double *y_points)
 
static int def_dim (char const *filename, int ncid, char const *name, size_t dim_len, int file_is_new)
 
static void def_var (char const *filename, int ncid, char const *name, nc_type type, int ndims, const int *dimids, char const *att_name, char const *att_value, int file_is_new)
 
static void create_grid_file (char const *filename, char const *grid_name, size_t num_cells, int num_vertices_per_cell, int cell_center_coords_avaiable, int cell_global_ids_available, int core_cell_mask_available, int vertex_global_ids_available, int core_vertex_mask_available, int edge_global_ids_available, int core_edge_mask_available)
 
static void put_vara (int ncid, char const *grid_name, char const *var_ext, size_t *start, size_t *count, void const *buffer)
 
void yac_basic_grid_to_file_parallel (struct yac_basic_grid *grid, char const *filename, MPI_Comm comm)
 
void yac_basic_grid_compute_cell_areas (struct yac_basic_grid *grid, double *cell_areas)
 

Variables

static struct yac_basic_grid_data yac_basic_grid_data_empty
 

Function Documentation

◆ create_grid_file()

static void create_grid_file ( char const * filename,
char const * grid_name,
size_t num_cells,
int num_vertices_per_cell,
int cell_center_coords_avaiable,
int cell_global_ids_available,
int core_cell_mask_available,
int vertex_global_ids_available,
int core_vertex_mask_available,
int edge_global_ids_available,
int core_edge_mask_available )
static

Definition at line 597 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ def_dim()

static int def_dim ( char const * filename,
int ncid,
char const * name,
size_t dim_len,
int file_is_new )
static

Definition at line 492 of file basic_grid.c.

Here is the caller graph for this function:

◆ def_var()

static void def_var ( char const * filename,
int ncid,
char const * name,
nc_type type,
int ndims,
const int * dimids,
char const * att_name,
char const * att_value,
int file_is_new )
static

Definition at line 526 of file basic_grid.c.

Here is the caller graph for this function:

◆ put_vara()

static void put_vara ( int ncid,
char const * grid_name,
char const * var_ext,
size_t * start,
size_t * count,
void const * buffer )
static

Definition at line 719 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_add_coordinates()

size_t yac_basic_grid_add_coordinates ( struct yac_basic_grid * grid,
enum yac_location location,
yac_coordinate_pointer coordinates,
size_t count )

◆ yac_basic_grid_add_coordinates_f2c()

size_t yac_basic_grid_add_coordinates_f2c ( struct yac_basic_grid * grid,
int location,
double * coordinates,
size_t count )
Examples
test_basic_grid.c.

Definition at line 248 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_add_coordinates_nocpy()

◆ yac_basic_grid_add_coordinates_nocpy_f2c()

size_t yac_basic_grid_add_coordinates_nocpy_f2c ( struct yac_basic_grid * grid,
int location,
double * coordinates )
Examples
test_basic_grid.c.

Definition at line 224 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_add_mask()

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 )
Examples
test_basic_grid.c, test_interp_method_avg_parallel.c, test_interp_method_conserv_parallel.c, test_interp_method_creep_parallel.c, and test_interp_method_ncc_parallel.c.

Definition at line 284 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_add_mask_f2c()

size_t yac_basic_grid_add_mask_f2c ( struct yac_basic_grid * grid,
int location,
int const * mask,
size_t count,
char const * mask_name )
Examples
test_basic_grid.c.

Definition at line 300 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_add_mask_nocpy()

size_t yac_basic_grid_add_mask_nocpy ( struct yac_basic_grid * grid,
enum yac_location location,
int const * mask,
char const * mask_name )

◆ yac_basic_grid_add_mask_nocpy_f2c()

size_t yac_basic_grid_add_mask_nocpy_f2c ( struct yac_basic_grid * grid,
int location,
int const * mask,
char const * mask_name )
Examples
test_basic_grid.c.

Definition at line 275 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_cloud_deg_new()

struct yac_basic_grid * yac_basic_grid_cloud_deg_new ( char const * name,
size_t nbr_points,
double * x_points,
double * y_points )
Examples
test_basic_grid.c.

Definition at line 481 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_cloud_new()

struct yac_basic_grid * yac_basic_grid_cloud_new ( char const * name,
size_t nbr_points,
double * x_points,
double * y_points )
Examples
test_basic_grid.c.

Definition at line 472 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_compute_cell_areas()

void yac_basic_grid_compute_cell_areas ( struct yac_basic_grid * grid,
double * cell_areas )
Examples
test_basic_grid.c.

Definition at line 1263 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_curve_2d_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 357 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_curve_2d_new()

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 )
Examples
test_basic_grid.c.

Definition at line 346 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_delete()

◆ yac_basic_grid_empty_new()

◆ yac_basic_grid_get_core_mask()

int const * yac_basic_grid_get_core_mask ( struct yac_basic_grid * grid,
enum yac_location location )
Examples
test_basic_grid.c.

Definition at line 101 of file basic_grid.c.

Here is the caller graph for this function:

◆ yac_basic_grid_get_data()

struct yac_basic_grid_data * yac_basic_grid_get_data ( struct yac_basic_grid * grid)
Examples
test_basic_grid.c, test_dist_grid_pair_parallel.c, test_interp_method_conserv_parallel.c, and test_interpolation_parallel5.c.

Definition at line 137 of file basic_grid.c.

Here is the caller graph for this function:

◆ yac_basic_grid_get_data_size()

size_t yac_basic_grid_get_data_size ( struct yac_basic_grid * grid,
enum yac_location location )
Examples
test_basic_grid.c.

Definition at line 147 of file basic_grid.c.

Here is the caller graph for this function:

◆ yac_basic_grid_get_data_size_f2c()

size_t yac_basic_grid_get_data_size_f2c ( struct yac_basic_grid * grid,
int location )
Examples
test_basic_grid.c.

Definition at line 170 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_get_field_coordinates()

yac_const_coordinate_pointer yac_basic_grid_get_field_coordinates ( struct yac_basic_grid * grid,
struct yac_interp_field field )
Examples
test_basic_grid.c.

Definition at line 81 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_get_field_data()

struct yac_field_data * yac_basic_grid_get_field_data ( struct yac_basic_grid * grid,
enum yac_location location )
Examples
test_basic_grid.c.

Definition at line 309 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_get_field_mask()

int const * yac_basic_grid_get_field_mask ( struct yac_basic_grid * grid,
struct yac_interp_field field )
Examples
test_basic_grid.c.

Definition at line 118 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_get_name()

char const * yac_basic_grid_get_name ( struct yac_basic_grid * grid)
Examples
test_basic_grid.c, and test_interp_weights_parallel.c.

Definition at line 128 of file basic_grid.c.

Here is the caller graph for this function:

◆ yac_basic_grid_get_named_mask_idx()

size_t yac_basic_grid_get_named_mask_idx ( struct yac_basic_grid * grid,
enum yac_location location,
char const * mask_name )
Examples
test_basic_grid.c.

Definition at line 177 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_new()

◆ yac_basic_grid_reg_2d_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 335 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_reg_2d_new()

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 )
Examples
test_basic_grid.c.

Definition at line 324 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_to_file_parallel()

void yac_basic_grid_to_file_parallel ( struct yac_basic_grid * grid,
char const * filename,
MPI_Comm comm )

Definition at line 742 of file basic_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_basic_grid_unstruct_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 381 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_edge_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 433 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_edge_ll_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 459 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_edge_ll_new()

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 )
Examples
test_basic_grid.c.

Definition at line 446 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_edge_new()

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 )
Examples
test_basic_grid.c.

Definition at line 420 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_ll_deg_new()

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 )
Examples
test_basic_grid.c.

Definition at line 407 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_ll_new()

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 )
Examples
test_basic_grid.c.

Definition at line 394 of file basic_grid.c.

Here is the call graph for this function:

◆ yac_basic_grid_unstruct_new()

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 )
Examples
test_basic_grid.c.

Definition at line 368 of file basic_grid.c.

Here is the call graph for this function:

Variable Documentation

◆ yac_basic_grid_data_empty

struct yac_basic_grid_data yac_basic_grid_data_empty
static
Initial value:
= {
.vertex_coordinates = NULL,
.cell_ids = NULL,
.vertex_ids = NULL,
.edge_ids = NULL,
.num_cells = 0,
.num_vertices = 0,
.num_edges = 0,
.core_cell_mask = NULL,
.core_vertex_mask = NULL,
.core_edge_mask = NULL,
.num_vertices_per_cell = NULL,
.num_cells_per_vertex = NULL,
.cell_to_vertex = NULL,
.cell_to_vertex_offsets = NULL,
.cell_to_edge = NULL,
.cell_to_edge_offsets = NULL,
.vertex_to_cell = NULL,
.vertex_to_cell_offsets = NULL,
.edge_to_vertex = NULL,
.edge_type = NULL,
.num_total_cells = 0,
.num_total_vertices = 0,
.num_total_edges = 0
}

Definition at line 24 of file basic_grid.c.