YAC 3.13.0
Yet Another Coupler
Loading...
Searching...
No Matches
instance.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 INSTANCE_H
6#define INSTANCE_H
7
8#include <mpi.h>
9
10#include "component.h"
11#include "couple_config.h"
12
13#define YAC_INSTANCE_CONFIG_OUTPUT_REF_COMP "comp"
14#define YAC_INSTANCE_CONFIG_OUTPUT_REF_SYNC "sync"
15#define YAC_INSTANCE_CONFIG_OUTPUT_REF_ENDDEF "enddef"
16
18struct yac_instance;
27struct yac_instance * yac_instance_new(MPI_Comm comm);
28
33void yac_instance_dummy_new(MPI_Comm comm);
34
35
40void yac_instance_delete(struct yac_instance * instance);
41
47MPI_Comm yac_instance_get_comm(struct yac_instance * instance);
48
56 struct yac_instance * instance, const char * start_datetime,
57 const char * end_datetime );
58
64char * yac_instance_get_start_datetime(struct yac_instance * instance);
65
71char * yac_instance_get_end_datetime(struct yac_instance * instance);
72
79 struct yac_instance * instance);
80
87 struct yac_instance * instance,
88 struct yac_couple_config * couple_config);
89
97 struct yac_instance * instance, char const ** comp_names, size_t num_comps);
98
104 struct yac_instance * instance);
105
120 struct yac_instance * instance, char const * field_name,
121 char const * comp_name, struct yac_basic_grid * grid,
123 int collection_size, char const * timestep);
124
167 struct yac_instance * instance,
168 char const * src_comp_name, char const * src_grid_name, char const * src_field_name,
169 char const * tgt_comp_name, char const * tgt_grid_name, char const * tgt_field_name,
170 char const * coupling_period, int time_reduction,
171 struct yac_interp_stack_config * interp_stack_config, int src_lag, int tgt_lag,
172 const char* weight_file_name, int weight_file_on_existing,
173 int mapping_on_source, double scale_factor, double scale_summand,
174 size_t num_src_mask_names, char const * const * src_mask_names,
175 char const * tgt_mask_name, char const * yaxt_exchanger_name,
176 struct yac_collection_selection const * collection_selection,
177 int use_raw_exchange);
178
183void yac_instance_sync_def(struct yac_instance * instance);
184
193 struct yac_instance * instance, struct yac_basic_grid ** grids, size_t num_grids);
194
208 struct yac_instance * instance, struct yac_basic_grid ** grids,
209 size_t num_grids, int emit_flags);
210
219 struct yac_instance * instance,
220 char const ** comp_names, size_t num_comp_names);
221
222int yac_instance_get_nbr_comps(struct yac_instance * instance);
223
225 struct yac_instance * instance,
226 const char* comp_name);
227
229 struct yac_instance * instance,
230 const char* comp_name);
231
232struct coupling_field* yac_instance_get_field(struct yac_instance * instance,
233 const char * comp_name, const char* grid_name, const char * field_name);
234
235#endif // INSTANCE_H
void yac_instance_delete(struct yac_instance *instance)
Definition instance.c:1403
char * yac_instance_setup_and_emit_config(struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids, int emit_flags)
Definition instance.c:1332
int yac_instance_get_comp_rank(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1369
char * yac_instance_get_start_datetime(struct yac_instance *instance)
Definition instance.c:1450
char * yac_instance_get_end_datetime(struct yac_instance *instance)
Definition instance.c:1455
void yac_instance_def_datetime(struct yac_instance *instance, const char *start_datetime, const char *end_datetime)
Definition instance.c:1442
void yac_instance_setup(struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids)
Definition instance.c:1308
void yac_instance_sync_def(struct yac_instance *instance)
Definition instance.c:1298
struct yac_instance * yac_instance_new(MPI_Comm comm)
Definition instance.c:1378
int yac_instance_get_nbr_comps(struct yac_instance *instance)
Definition instance.c:1353
int yac_instance_components_are_defined(struct yac_instance *instance)
Definition instance.c:1484
MPI_Comm yac_instance_get_comm(struct yac_instance *instance)
Definition instance.c:1420
struct coupling_field * yac_instance_add_field(struct yac_instance *instance, char const *field_name, char const *comp_name, struct yac_basic_grid *grid, struct yac_interp_field *interp_fields, size_t num_interp_fields, int collection_size, char const *timestep)
Definition instance.c:1489
void yac_instance_set_couple_config(struct yac_instance *instance, struct yac_couple_config *couple_config)
Definition instance.c:1433
void yac_instance_dummy_new(MPI_Comm comm)
Definition instance.c:1397
void yac_instance_def_components(struct yac_instance *instance, char const **comp_names, size_t num_comps)
Definition instance.c:1460
struct yac_couple_config * yac_instance_get_couple_config(struct yac_instance *instance)
Definition instance.c:1427
void yac_instance_def_couple(struct yac_instance *instance, char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_period, int time_reduction, struct yac_interp_stack_config *interp_stack_config, int src_lag, int tgt_lag, const char *weight_file_name, int weight_file_on_existing, int mapping_on_source, double scale_factor, double scale_summand, size_t num_src_mask_names, char const *const *src_mask_names, char const *tgt_mask_name, char const *yaxt_exchanger_name, struct yac_collection_selection const *collection_selection, int use_raw_exchange)
Definition instance.c:1548
int yac_instance_get_comp_size(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1360
MPI_Comm yac_instance_get_comps_comm(struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
Definition instance.c:1344
struct coupling_field * yac_instance_get_field(struct yac_instance *instance, const char *comp_name, const char *grid_name, const char *field_name)
Definition instance.c:1574
int use_raw_exchange
Definition fields.c:45
struct yac_basic_grid * grid
Definition fields.c:23
struct yac_interp_field * interp_fields
Definition fields.c:25
size_t num_interp_fields
Definition fields.c:26
char * timestep
Definition fields.c:28
MPI_Comm comm
MPI communicator that contains the processes of this YAC instance.
Definition instance.c:99
int collection_size
char const * weight_file_name
char const src_grid_name[]
char const tgt_grid_name[]
size_t num_grids
Definition yac.c:156
struct yac_basic_grid ** grids
Definition yac.c:155