YetAnotherCoupler 3.2.0_a
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
33struct yac_instance;
42struct yac_instance * yac_instance_new(MPI_Comm comm);
43
48void yac_instance_dummy_new(MPI_Comm comm);
49
50
55void yac_instance_delete(struct yac_instance * instance);
56
64 struct yac_instance * instance, const char * start_datetime,
65 const char * end_datetime );
66
72char * yac_instance_get_start_datetime(struct yac_instance * instance);
73
79char * yac_instance_get_end_datetime(struct yac_instance * instance);
80
87 struct yac_instance * instance);
88
95 struct yac_instance * instance,
96 struct yac_couple_config * couple_config);
97
105 struct yac_instance * instance, char const ** comp_names, size_t num_comps);
106
112 struct yac_instance * instance);
113
128 struct yac_instance * instance, char const * field_name,
129 char const * comp_name, struct yac_basic_grid * grid,
131 int collection_size, char const * timestep);
132
164 struct yac_instance * instance,
165 char const * src_comp_name, char const * src_grid_name, char const * src_field_name,
166 char const * tgt_comp_name, char const * tgt_grid_name, char const * tgt_field_name,
167 char const * coupling_period, int time_reduction,
168 struct yac_interp_stack_config * interp_stack_config, int src_lag, int tgt_lag,
169 const char* weight_file_name, int mapping_on_source,
170 double scale_factor, double scale_summand, size_t num_src_mask_names,
171 char const * const * src_mask_names, char const * tgt_mask_name);
172
177void yac_instance_sync_def(struct yac_instance * instance);
178
184void yac_instance_setup(struct yac_instance * instance);
185
197 struct yac_instance * instance, int emit_flags);
198
207 struct yac_instance * instance,
208 char const ** comp_names, size_t num_comp_names);
209
211 struct yac_instance * instance,
212 const char* comp_name);
213
215 struct yac_instance * instance,
216 const char* comp_name);
217
218struct coupling_field* yac_instance_get_field(struct yac_instance * instance,
219 const char * comp_name, const char* grid_name, const char * field_name);
220
221#endif // INSTANCE_H
void yac_instance_delete(struct yac_instance *instance)
Definition instance.c:1240
char * yac_instance_setup_and_emit_config(struct yac_instance *instance, int emit_flags)
Definition instance.c:1180
int yac_instance_get_comp_rank(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1206
char * yac_instance_get_start_datetime(struct yac_instance *instance)
Definition instance.c:1280
char * yac_instance_get_end_datetime(struct yac_instance *instance)
Definition instance.c:1285
void yac_instance_def_datetime(struct yac_instance *instance, const char *start_datetime, const char *end_datetime)
Definition instance.c:1272
void yac_instance_sync_def(struct yac_instance *instance)
Definition instance.c:1149
struct yac_instance * yac_instance_new(MPI_Comm comm)
Definition instance.c:1215
int yac_instance_components_are_defined(struct yac_instance *instance)
Definition instance.c:1312
void yac_instance_setup(struct yac_instance *instance)
Definition instance.c:1157
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:1317
void yac_instance_set_couple_config(struct yac_instance *instance, struct yac_couple_config *couple_config)
Definition instance.c:1263
void yac_instance_dummy_new(MPI_Comm comm)
Definition instance.c:1234
void yac_instance_def_components(struct yac_instance *instance, char const **comp_names, size_t num_comps)
Definition instance.c:1290
struct yac_couple_config * yac_instance_get_couple_config(struct yac_instance *instance)
Definition instance.c:1257
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 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)
Definition instance.c:1376
int yac_instance_get_comp_size(struct yac_instance *instance, const char *comp_name)
Definition instance.c:1197
MPI_Comm yac_instance_get_comps_comm(struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
Definition instance.c:1188
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:1397
struct yac_basic_grid * grid
Definition fields.c:20
struct yac_interp_field * interp_fields
Definition fields.c:22
size_t num_interp_fields
Definition fields.c:23
char * timestep
Definition fields.c:25
size_t collection_size
number of vertical levels or bundles
Definition fields.c:24
MPI_Comm comm
Definition instance.c:79