YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
couple_config_couple.h
Go to the documentation of this file.
1// Copyright (c) 2026 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef YAC_COUPLE_CONFIG_COUPLE_H
6#define YAC_COUPLE_CONFIG_COUPLE_H
7
8#include <stddef.h>
9
11
20 size_t component_indices[2]; // Has to be stored in ascending order
23};
24
36 struct yac_couple_config_couple * couple,
37 size_t component_idx_a, size_t component_idx_b);
38
39
46
54 struct yac_couple_config_couple * couple,
55 size_t const * old_to_new_idx);
56
66 struct yac_couple_config_couple * couples,
67 size_t num_couples, size_t comp_idx, size_t const * old_to_new_idx);
68
76 struct yac_couple_config_couple ** couples, size_t * num_couples);
77
85 struct yac_couple_config * couple_config, MPI_Comm comm);
86
97 struct yac_couple_config * couple_config,
98 size_t component_idx_a, size_t component_idx_b);
99
114 size_t num_couples,
115 struct yac_couple_config_couple const * couples,
116 struct yac_couple_config_couple const * pattern);
117
128 struct yac_couple_config_couple const * couple,
129 size_t component_idx);
130
147 struct yac_couple_config_couple const * couple,
148 size_t component_idx, size_t field_idx);
149
164 struct yac_couple_config_couple const * couple,
165 size_t src_component_idx, size_t src_field_idx,
166 size_t tgt_component_idx, size_t tgt_field_idx);
167
175 struct yac_couple_config_couple * couple,
176 struct yac_couple_config_field_couple * field_couple);
177
204 struct yac_couple_config_couple * couple,
205 size_t src_comp_idx, size_t src_field_idx, int src_lag,
206 size_t tgt_comp_idx, size_t tgt_field_idx, int tgt_lag,
207 char const * coupling_period, int time_reduction,
208 struct yac_interp_stack_config * interp_stack,
209 int mapping_on_source, const char * weight_file_name,
210 double scale_factor, double scale_summand,
211 int weight_file_on_existing,
212 size_t num_src_mask_names, char const * const * src_mask_names,
213 char const * tgt_mask_name, char const * yaxt_exchanger_name,
214 struct yac_collection_selection const * collection_selection,
215 int use_raw_exchange);
216
226 struct yac_couple_config_couple const * couple,
227 size_t field_couple_idx);
228
238 struct yac_couple_config_couple const * couple,
239 size_t field_couple_idx);
240
250 struct yac_couple_config_couple const * couple,
251 size_t field_couple_idx);
252
262 struct yac_couple_config_couple const * couple,
263 size_t field_couple_idx);
264
274 struct yac_couple_config_couple const * couple,
275 size_t field_couple_idx);
276
286 struct yac_couple_config_couple const * couple,
287 size_t field_couple_idx);
288
299 struct yac_couple_config_couple const * couple,
300 size_t field_couple_idx);
301
311 struct yac_couple_config_couple const * couple,
312 size_t field_couple_idx);
313
323 struct yac_couple_config_couple const * couple,
324 size_t field_couple_idx);
325
335 struct yac_couple_config_couple const * couple,
336 size_t field_couple_idx);
337
347 struct yac_couple_config_couple const * couple,
348 size_t field_couple_idx);
349
359 struct yac_couple_config_couple const * couple,
360 size_t field_couple_idx,
361 char const * const ** mask_names, size_t * num_mask_names);
362
372 struct yac_couple_config_couple const * couple,
373 size_t field_couple_idx);
374
384 struct yac_couple_config_couple const * couple,
385 size_t field_couple_idx);
386
395struct yac_collection_selection const *
397 struct yac_couple_config_couple const * couple,
398 size_t field_couple_idx);
399
409 struct yac_couple_config_couple const * couple,
410 size_t field_couple_idx);
411
421 struct yac_couple_config_couple const * couple,
422 size_t field_couple_idx);
423
433 struct yac_couple_config_couple const * couple,
434 size_t field_couple_idx);
435
445 struct yac_couple_config_couple const * couple,
446 size_t field_couple_idx);
447
457 struct yac_couple_config_couple const * couple,
458 size_t field_couple_idx);
459
476 struct yac_couple_config_couple const * couple,
477 struct yac_couple_config const * couple_config,
478 char const * tgt_field_name, char const * tgt_grid_name,
479 char const * tgt_comp_name);
480
481#endif // YAC_COUPLE_CONFIG_COUPLE_H
unsigned component_idx[3]
yac_reduction_type
size_t yac_couple_config_couple_get_source_component_idx(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
void yac_couple_config_couples_free(struct yac_couple_config_couple **couples, size_t *num_couples)
int yac_couple_config_couple_has_component(struct yac_couple_config_couple const *couple, size_t component_idx)
void yac_couple_config_couple_free(struct yac_couple_config_couple *couple)
void yac_couple_config_couple_append_or_merge_field_couple_from_definition(struct yac_couple_config_couple *couple, size_t src_comp_idx, size_t src_field_idx, int src_lag, size_t tgt_comp_idx, size_t tgt_field_idx, int tgt_lag, char const *coupling_period, int time_reduction, struct yac_interp_stack_config *interp_stack, int mapping_on_source, const char *weight_file_name, double scale_factor, double scale_summand, int weight_file_on_existing, 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)
char const * yac_couple_config_couple_get_coupling_period(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
struct yac_couple_config_couple * yac_couple_config_couple_find(size_t num_couples, struct yac_couple_config_couple const *couples, struct yac_couple_config_couple const *pattern)
int yac_couple_config_couple_get_mapping_on_source(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
void yac_couple_config_couple_update_field_indices(struct yac_couple_config_couple *couples, size_t num_couples, size_t comp_idx, size_t const *old_to_new_idx)
int yac_couple_config_couple_get_field_role_from_field_idx(struct yac_couple_config_couple const *couple, size_t component_idx, size_t field_idx)
size_t yac_couple_config_couple_get_source_field_idx(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
size_t yac_couple_config_couple_get_target_field_idx(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
size_t yac_couple_config_couple_find_field_couple_with_target(struct yac_couple_config_couple const *couple, struct yac_couple_config const *couple_config, char const *tgt_field_name, char const *tgt_grid_name, char const *tgt_comp_name)
int yac_couple_config_couple_get_enforce_write_weight_file(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
char const * yac_couple_config_couple_get_yaxt_exchanger_name(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
void yac_couple_config_couple_init(struct yac_couple_config_couple *couple, size_t component_idx_a, size_t component_idx_b)
void yac_couple_config_couples_merge(struct yac_couple_config *couple_config, MPI_Comm comm)
double yac_couple_config_couple_get_scale_factor(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
struct yac_collection_selection const * yac_couple_config_couple_get_collection_selection(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
int yac_couple_config_couple_get_source_lag(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
int yac_couple_config_couple_get_target_lag(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
void yac_couple_config_couple_get_src_mask_names(struct yac_couple_config_couple const *couple, size_t field_couple_idx, char const *const **mask_names, size_t *num_mask_names)
char const * yac_couple_config_couple_get_tgt_mask_name(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
struct yac_interp_stack_config * yac_couple_config_couple_get_interp_stack(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
void yac_couple_config_couple_append_or_merge_field_couple(struct yac_couple_config_couple *couple, struct yac_couple_config_field_couple *field_couple)
void yac_couple_config_couple_update_component_indices(struct yac_couple_config_couple *couple, size_t const *old_to_new_idx)
int yac_couple_config_couple_has_field_couple(struct yac_couple_config_couple const *couple, size_t src_component_idx, size_t src_field_idx, size_t tgt_component_idx, size_t tgt_field_idx)
int yac_couple_config_couple_get_use_raw_exchange(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
enum yac_weight_file_on_existing yac_couple_config_couple_get_weight_file_on_existing(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
size_t yac_couple_config_couples_append(struct yac_couple_config *couple_config, size_t component_idx_a, size_t component_idx_b)
double yac_couple_config_couple_get_scale_summand(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
enum yac_reduction_type yac_couple_config_couple_get_coupling_period_operation(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
char const * yac_couple_config_couple_get_weight_file_name(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
size_t yac_couple_config_couple_get_target_component_idx(struct yac_couple_config_couple const *couple, size_t field_couple_idx)
yac_weight_file_on_existing
struct yac_couple_config_field_couple * field_couples
char const * weight_file_name
char const tgt_grid_name[]