YAC 3.21.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"
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;
19struct yac_pak;
28struct yac_instance * yac_instance_new(MPI_Comm comm);
29
34void yac_instance_dummy_new(MPI_Comm comm);
35
36
41void yac_instance_delete(struct yac_instance * instance);
42
48MPI_Comm yac_instance_get_comm(struct yac_instance * instance);
49
60 int calendar_type, char const * source);
61
69 struct yac_instance * instance, const char * start_datetime,
70 const char * end_datetime );
71
77char * yac_instance_get_start_datetime(struct yac_instance * instance);
78
84char * yac_instance_get_end_datetime(struct yac_instance * instance);
85
92 struct yac_instance * instance);
93
100 struct yac_instance * instance,
101 struct yac_couple_config * couple_config);
102
110 struct yac_instance * instance, char const ** comp_names, size_t num_comps);
111
117 struct yac_instance * instance);
118
133 struct yac_instance * instance, char const * field_name,
134 char const * comp_name, struct yac_basic_grid * grid,
136 int collection_size, char const * timestep);
137
180 struct yac_instance * instance,
181 char const * src_comp_name, char const * src_grid_name, char const * src_field_name,
182 char const * tgt_comp_name, char const * tgt_grid_name, char const * tgt_field_name,
183 char const * coupling_period, int time_reduction,
184 struct yac_interp_stack_config * interp_stack_config, int src_lag, int tgt_lag,
185 const char* weight_file_name, int weight_file_on_existing,
186 int mapping_on_source, double scale_factor, double scale_summand,
187 size_t num_src_mask_names, char const * const * src_mask_names,
188 char const * tgt_mask_name, char const * yaxt_exchanger_name,
189 struct yac_collection_selection const * collection_selection,
190 int use_raw_exchange);
191
196void yac_instance_sync_def(struct yac_instance * instance);
197
210 struct yac_instance * instance,
211 char const ** comp_names, size_t num_comp_names);
212
221 struct yac_instance * instance, struct yac_basic_grid ** grids, size_t num_grids);
222
236 struct yac_instance * instance, struct yac_basic_grid ** grids,
237 size_t num_grids, int emit_flags);
238
247 struct yac_instance * instance,
248 char const ** comp_names, size_t num_comp_names);
249
250int yac_instance_get_nbr_comps(struct yac_instance * instance);
251
253 struct yac_instance * instance,
254 const char* comp_name);
255
257 struct yac_instance * instance,
258 const char* comp_name);
259
260struct coupling_field* yac_instance_get_field(struct yac_instance * instance,
261 const char * comp_name, const char* grid_name, const char * field_name);
262
263#endif // INSTANCE_H
void yac_instance_delete(struct yac_instance *instance)
Definition instance.c:1509
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:1419
int yac_instance_get_comp_rank(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1456
char * yac_instance_get_start_datetime(struct yac_instance *instance)
Definition instance.c:1593
char * yac_instance_get_end_datetime(struct yac_instance *instance)
Definition instance.c:1598
void yac_instance_def_datetime(struct yac_instance *instance, const char *start_datetime, const char *end_datetime)
Definition instance.c:1585
void yac_instance_setup(struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids)
Definition instance.c:1369
void yac_instance_sync_def(struct yac_instance *instance)
Definition instance.c:1336
struct yac_instance * yac_instance_new(MPI_Comm comm)
Definition instance.c:1465
int yac_instance_get_nbr_comps(struct yac_instance *instance)
Definition instance.c:1440
int yac_instance_components_are_defined(struct yac_instance *instance)
Definition instance.c:1653
MPI_Comm yac_instance_get_comm(struct yac_instance *instance)
Definition instance.c:1535
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:1666
void yac_instance_set_couple_config(struct yac_instance *instance, struct yac_couple_config *couple_config)
Definition instance.c:1548
void yac_instance_dummy_new(MPI_Comm comm)
Definition instance.c:1503
void yac_instance_def_calendar(int calendar_type, char const *source)
Definition instance.c:1557
void yac_instance_def_components(struct yac_instance *instance, char const **comp_names, size_t num_comps)
Definition instance.c:1603
struct yac_couple_config * yac_instance_get_couple_config(struct yac_instance *instance)
Definition instance.c:1542
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:1729
void yac_instance_sync_def_comps(struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
Definition instance.c:1348
int yac_instance_get_comp_size(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1447
MPI_Comm yac_instance_get_comps_comm(struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
Definition instance.c:1431
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:1755
int use_raw_exchange
Definition fields.c:47
struct yac_basic_grid * grid
Definition fields.c:24
struct yac_interp_field * interp_fields
Definition fields.c:26
size_t num_interp_fields
Definition fields.c:27
char * timestep
Definition fields.c:29
MPI_Comm comm
MPI communicator that contains the processes of this YAC instance.
Definition instance.c:109
int collection_size
char const * weight_file_name
char const src_grid_name[]
char const tgt_grid_name[]