YAC 3.7.1
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
17struct yac_instance;
26struct yac_instance * yac_instance_new(MPI_Comm comm);
27
32void yac_instance_dummy_new(MPI_Comm comm);
33
34
39void yac_instance_delete(struct yac_instance * instance);
40
48 struct yac_instance * instance, const char * start_datetime,
49 const char * end_datetime );
50
56char * yac_instance_get_start_datetime(struct yac_instance * instance);
57
63char * yac_instance_get_end_datetime(struct yac_instance * instance);
64
71 struct yac_instance * instance);
72
79 struct yac_instance * instance,
80 struct yac_couple_config * couple_config);
81
89 struct yac_instance * instance, char const ** comp_names, size_t num_comps);
90
96 struct yac_instance * instance);
97
112 struct yac_instance * instance, char const * field_name,
113 char const * comp_name, struct yac_basic_grid * grid,
115 int collection_size, char const * timestep);
116
158 struct yac_instance * instance,
159 char const * src_comp_name, char const * src_grid_name, char const * src_field_name,
160 char const * tgt_comp_name, char const * tgt_grid_name, char const * tgt_field_name,
161 char const * coupling_period, int time_reduction,
162 struct yac_interp_stack_config * interp_stack_config, int src_lag, int tgt_lag,
163 const char* weight_file_name, int weight_file_on_existing,
164 int mapping_on_source, double scale_factor, double scale_summand,
165 size_t num_src_mask_names, char const * const * src_mask_names,
166 char const * tgt_mask_name, char const * yaxt_exchanger_name,
167 int use_raw_exchange);
168
173void yac_instance_sync_def(struct yac_instance * instance);
174
183 struct yac_instance * instance, struct yac_basic_grid ** grids, size_t num_grids);
184
198 struct yac_instance * instance, struct yac_basic_grid ** grids,
199 size_t num_grids, int emit_flags);
200
209 struct yac_instance * instance,
210 char const ** comp_names, size_t num_comp_names);
211
213 struct yac_instance * instance,
214 const char* comp_name);
215
217 struct yac_instance * instance,
218 const char* comp_name);
219
220struct coupling_field* yac_instance_get_field(struct yac_instance * instance,
221 const char * comp_name, const char* grid_name, const char * field_name);
222
223#endif // INSTANCE_H
void yac_instance_delete(struct yac_instance *instance)
Definition instance.c:1421
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:1357
int yac_instance_get_comp_rank(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1387
char * yac_instance_get_start_datetime(struct yac_instance *instance)
Definition instance.c:1461
char * yac_instance_get_end_datetime(struct yac_instance *instance)
Definition instance.c:1466
void yac_instance_def_datetime(struct yac_instance *instance, const char *start_datetime, const char *end_datetime)
Definition instance.c:1453
void yac_instance_setup(struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids)
Definition instance.c:1333
void yac_instance_sync_def(struct yac_instance *instance)
Definition instance.c:1323
struct yac_instance * yac_instance_new(MPI_Comm comm)
Definition instance.c:1396
int yac_instance_components_are_defined(struct yac_instance *instance)
Definition instance.c:1495
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, int use_raw_exchange)
Definition instance.c:1559
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:1500
void yac_instance_set_couple_config(struct yac_instance *instance, struct yac_couple_config *couple_config)
Definition instance.c:1444
void yac_instance_dummy_new(MPI_Comm comm)
Definition instance.c:1415
void yac_instance_def_components(struct yac_instance *instance, char const **comp_names, size_t num_comps)
Definition instance.c:1471
struct yac_couple_config * yac_instance_get_couple_config(struct yac_instance *instance)
Definition instance.c:1438
int yac_instance_get_comp_size(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1378
MPI_Comm yac_instance_get_comps_comm(struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
Definition instance.c:1369
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:1583
int use_raw_exchange
Definition fields.c:44
struct yac_basic_grid * grid
Definition fields.c:22
struct yac_interp_field * interp_fields
Definition fields.c:24
size_t num_interp_fields
Definition fields.c:25
char * timestep
Definition fields.c:27
MPI_Comm comm
Definition instance.c:81
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:145
struct yac_basic_grid ** grids
Definition yac.c:144