YetAnotherCoupler 3.5.2
Loading...
Searching...
No Matches
instance.h File Reference
#include <mpi.h>
#include "component.h"
#include "couple_config.h"
Include dependency graph for instance.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define YAC_INSTANCE_CONFIG_OUTPUT_REF_COMP   "comp"
 
#define YAC_INSTANCE_CONFIG_OUTPUT_REF_SYNC   "sync"
 
#define YAC_INSTANCE_CONFIG_OUTPUT_REF_ENDDEF   "enddef"
 

Functions

struct yac_instanceyac_instance_new (MPI_Comm comm)
 
void yac_instance_dummy_new (MPI_Comm comm)
 
void yac_instance_delete (struct yac_instance *instance)
 
void yac_instance_def_datetime (struct yac_instance *instance, const char *start_datetime, const char *end_datetime)
 
char * yac_instance_get_start_datetime (struct yac_instance *instance)
 
char * yac_instance_get_end_datetime (struct yac_instance *instance)
 
struct yac_couple_configyac_instance_get_couple_config (struct yac_instance *instance)
 
void yac_instance_set_couple_config (struct yac_instance *instance, struct yac_couple_config *couple_config)
 
void yac_instance_def_components (struct yac_instance *instance, char const **comp_names, size_t num_comps)
 
int yac_instance_components_are_defined (struct yac_instance *instance)
 
struct coupling_fieldyac_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)
 
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, char const *yaxt_exchanger_name)
 
void yac_instance_sync_def (struct yac_instance *instance)
 
void yac_instance_setup (struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids)
 
char * yac_instance_setup_and_emit_config (struct yac_instance *instance, struct yac_basic_grid **grids, size_t num_grids, int emit_flags)
 
MPI_Comm yac_instance_get_comps_comm (struct yac_instance *instance, char const **comp_names, size_t num_comp_names)
 
int yac_instance_get_comp_size (struct yac_instance *instance, const char *comp_name)
 
int yac_instance_get_comp_rank (struct yac_instance *instance, const char *comp_name)
 
struct coupling_fieldyac_instance_get_field (struct yac_instance *instance, const char *comp_name, const char *grid_name, const char *field_name)
 

Macro Definition Documentation

◆ YAC_INSTANCE_CONFIG_OUTPUT_REF_COMP

#define YAC_INSTANCE_CONFIG_OUTPUT_REF_COMP   "comp"
Examples
test_couple_config.c.

Definition at line 33 of file instance.h.

◆ YAC_INSTANCE_CONFIG_OUTPUT_REF_ENDDEF

#define YAC_INSTANCE_CONFIG_OUTPUT_REF_ENDDEF   "enddef"
Examples
test_couple_config.c.

Definition at line 35 of file instance.h.

◆ YAC_INSTANCE_CONFIG_OUTPUT_REF_SYNC

#define YAC_INSTANCE_CONFIG_OUTPUT_REF_SYNC   "sync"
Examples
test_couple_config.c.

Definition at line 34 of file instance.h.

Function Documentation

◆ yac_instance_add_field()

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 )

Adds a coupling field to a yac instance

Parameters
[in]instanceyac instance
[in]field_namename of the coupling field
[in]comp_namecomponent name
[in]gridgrid
[in]interp_fieldsinterpolation fields
[in]num_interp_fieldsnumber of entries in interp_fields
[in]collection_sizecollection size of field
[in]timesteptimestep at which put/get is called for this field in ISO 8601 format
Returns
pointer to coupling field

Definition at line 1435 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_components_are_defined()

int yac_instance_components_are_defined ( struct yac_instance * instance)

Returns true if the components for this instance have already been defined

Parameters
[in]instanceyac instance

Definition at line 1430 of file instance.c.

Here is the caller graph for this function:

◆ yac_instance_def_components()

void yac_instance_def_components ( struct yac_instance * instance,
char const ** comp_names,
size_t num_comps )

Defines the components for a yac instance

Parameters
[in]instanceyac instance
[in]comp_namesnames of components
[in]num_compsnumber of entries in comp_names

Definition at line 1406 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_def_couple()

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,
char const * yaxt_exchanger_name )

Defines a couple for a yac instance

Parameters
[in]instanceyac instance
[in]src_comp_namecomponent name of the source component
[in]src_grid_namegrid name of the source grid
[in]src_field_namefield name of the source field
[in]tgt_comp_namecomponent name of the target component
[in]tgt_grid_namegrid name of the target grid
[in]tgt_field_namefield name of the target field
[in]coupling_periodtime step for the coupling
[in]time_reductiontype for reducing multiple timesteps (
See also
YAC_REDUCTION_TIME_NONE etc.)
Parameters
[in]interp_stack_configinterpolation stack config to be used
[in]src_laglag for this couple on the source component
[in]tgt_laglag for this couple on the target component
[in]weight_file_namefile name for the weights file. NULL to disable this feature
[in]mapping_on_sourceside where the mapping is computed. Currently only source = 1 and target = 0 are allowed
[in]scale_factorscale factor
[in]scale_summandscale summand
[in]num_src_mask_namesnumber of source field mask names ("0" if no source field mask names are provided)
[in]src_mask_namesarray of source field mask names ("NULL" if num_src_mask_names == 0)
[in]tgt_mask_nametarget field mask name ("NULL" if no target field mask name is provided)
[in]yaxt_exchanger_nameyaxt exchanger method to be used for the interpoolation

Definition at line 1494 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_def_datetime()

void yac_instance_def_datetime ( struct yac_instance * instance,
const char * start_datetime,
const char * end_datetime )

Definition of job start and end datetime

Parameters
[in]instanceyac instance
[in]start_datetimecalendar job start datetime
[in]end_datetimecalendar job end datetime

Definition at line 1388 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_delete()

void yac_instance_delete ( struct yac_instance * instance)

Destructor for a yac instance

Parameters
[in]instanceyac instance to be deleted

Definition at line 1356 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_dummy_new()

void yac_instance_dummy_new ( MPI_Comm comm)

Dummy constructor, which can be called instead of yac_instance_new.

Parameters
[in]comm

Definition at line 1350 of file instance.c.

Here is the caller graph for this function:

◆ yac_instance_get_comp_rank()

int yac_instance_get_comp_rank ( struct yac_instance * instance,
const char * comp_name )

Definition at line 1322 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_get_comp_size()

int yac_instance_get_comp_size ( struct yac_instance * instance,
const char * comp_name )

Definition at line 1313 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_get_comps_comm()

MPI_Comm yac_instance_get_comps_comm ( struct yac_instance * instance,
char const ** comp_names,
size_t num_comp_names )

returns a communicator containing all processes of the provided components

Parameters
[in]instanceyac instance
[in]comp_namescomponent names
[in]num_comp_names

Definition at line 1304 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_get_couple_config()

struct yac_couple_config * yac_instance_get_couple_config ( struct yac_instance * instance)

Get the coupling configuration data from a yac instance

Parameters
[in]instanceyac instance
Returns
coupling configuration data

Definition at line 1373 of file instance.c.

Here is the caller graph for this function:

◆ yac_instance_get_end_datetime()

char * yac_instance_get_end_datetime ( struct yac_instance * instance)

query routine for the end datetime of the job

Parameters
[in]instanceyac instance
Returns
end datetime

Definition at line 1401 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_get_field()

struct coupling_field * yac_instance_get_field ( struct yac_instance * instance,
const char * comp_name,
const char * grid_name,
const char * field_name )

Definition at line 1516 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_get_start_datetime()

char * yac_instance_get_start_datetime ( struct yac_instance * instance)

query routine for the start datetime of the job

Parameters
[in]instanceyac instance
Returns
start datetime

Definition at line 1396 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_new()

struct yac_instance * yac_instance_new ( MPI_Comm comm)

Constructor for a yac instance.

Parameters
[in]commMPI communicator that contains the processes of all components that will be registered with this yac instance
Returns
yac instance
Remarks
This is collectiv for all processes in comm.

Definition at line 1331 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_set_couple_config()

void yac_instance_set_couple_config ( struct yac_instance * instance,
struct yac_couple_config * couple_config )

Sets the coupling configuration data for a yac instance

Parameters
[in]instanceyac instance
[in]couple_configcoupling configuration data

Definition at line 1379 of file instance.c.

Here is the call graph for this function:

◆ yac_instance_setup()

void yac_instance_setup ( struct yac_instance * instance,
struct yac_basic_grid ** grids,
size_t num_grids )

initiates the generation of all data structures required for interpolation

Parameters
[in]instanceyac instance
[in]gridsall locally available basic grids
[in]num_gridsnumber of locally available basic grids

Definition at line 1268 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_setup_and_emit_config()

char * yac_instance_setup_and_emit_config ( struct yac_instance * instance,
struct yac_basic_grid ** grids,
size_t num_grids,
int emit_flags )

initiates the generation of all data structures required for interpolation

Parameters
[in]instanceyac instance
[in]gridsall locally available basic grids
[in]num_gridsnumber of locally available basic grids
[in]emit_flagsflags for configuring the generated coupling configuration output (YAC_YAML_EMITTER_DEFAULT or YAC_YAML_EMITTER_JSON)
Returns
string containing coupling configuration

Definition at line 1292 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_instance_sync_def()

void yac_instance_sync_def ( struct yac_instance * instance)

synchronizes the grid and field definitions

Parameters
[in]instanceyac instance

Definition at line 1258 of file instance.c.

Here is the call graph for this function:
Here is the caller graph for this function: