YetAnotherCoupler 3.2.0
Loading...
Searching...
No Matches
Functions
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.

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)
 
void yac_instance_sync_def (struct yac_instance *instance)
 
void yac_instance_setup (struct yac_instance *instance)
 
char * yac_instance_setup_and_emit_config (struct yac_instance *instance, 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)
 

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 1317 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 1312 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 1290 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 
)

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)

Definition at line 1376 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 1272 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 1240 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 1234 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 1206 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 1197 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 1188 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 1257 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 1285 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 1397 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 1280 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 1215 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 1263 of file instance.c.

Here is the call graph for this function:

◆ yac_instance_setup()

void yac_instance_setup ( struct yac_instance instance)

initiates the generation of all data structures required for interpolation

Parameters
[in]instanceyac instance

Definition at line 1157 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,
int  emit_flags 
)

initiates the generation of all data structures required for interpolation

Parameters
[in]instanceyac instance
[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 1180 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 1149 of file instance.c.

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