7.2
general documentation
cs_gwf_tracer.c File Reference
#include <assert.h>
#include <ctype.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <bft_mem.h>
#include "cs_field.h"
#include "cs_gwf_soil.h"
#include "cs_hodge.h"
#include "cs_log.h"
#include "cs_math.h"
#include "cs_mesh_location.h"
#include "cs_parall.h"
#include "cs_post.h"
#include "cs_reco.h"
#include "cs_gwf_tracer.h"
+ Include dependency graph for cs_gwf_tracer.c:

Macros

#define CS_GWF_TRACER_DBG   0
 

Functions

static void _get_time_pty4std_sat_tracer (cs_lnum_t n_elts, const cs_lnum_t elt_ids[], bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in time-dependent term of the simulation of tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_eval_t. More...
 
static void _get_time_pty4std_sat_tracer_cw (const cs_cell_mesh_t *cm, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in time-dependent term of the simulation of tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_cell_eval_cw_t. More...
 
static void _get_time_pty4std_tracer (cs_lnum_t n_elts, const cs_lnum_t elt_ids[], bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in time-dependent term of the simulation of tracer equations This function fits the generic prototype of cs_xdef_eval_t. More...
 
static void _get_time_pty4std_tracer_cw (const cs_cell_mesh_t *cm, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in time-dependent term of the simulation of tracer equations This function fits the generic prototype of cs_xdef_cell_eval_cw_t. More...
 
static void _get_reaction_pty4std_sat_tracer (cs_lnum_t n_elts, const cs_lnum_t elt_ids[], bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. Case of a fully saturated model This function fits the generic prototype of cs_xdef_cell_eval_t. More...
 
static void _get_reaction_pty4std_sat_tracer_cw (const cs_cell_mesh_t *cm, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_cell_eval_cw_t. More...
 
static void _get_reaction_pty4std_tracer (cs_lnum_t n_elts, const cs_lnum_t elt_ids[], bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. This function fits the generic prototype of cs_xdef_cell_eval_t. More...
 
static void _get_reaction_pty4std_tracer_cw (const cs_cell_mesh_t *cm, cs_real_t t_eval, void *context, cs_real_t *result)
 Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. This function fits the generic prototype of cs_xdef_cell_eval_cw_t. More...
 
static void _update_sat_diff_pty (cs_gwf_tracer_t *tracer, cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Update physical properties for a (non-user) tracer model. Only the diffusivity is updated (reaction property and time property are defined by function). Case of a fully saturated model. Generic function relying on the prototype cs_gwf_tracer_update_t. More...
 
static void _update_diff_pty (cs_gwf_tracer_t *tracer, cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Update physical properties for a (non-user) tracer model. Only the diffusivity is updated (reaction property and time property are defined by function). Generic function relying on the prototype cs_gwf_tracer_update_t. More...
 
static void _update_precipitation_vb (cs_gwf_tracer_t *tracer, cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Update physical properties for a non-user tracer model. Case of a tracer with the precipitation/dissolution modelling and a vertex-based scheme. Generic function relying on the prototype cs_gwf_tracer_update_t. More...
 
static void _add_precipitation (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_gwf_tracer_t *tracer)
 Add quantities related to the precipitation model. More...
 
static cs_real_t _integrate_saturated_tracer (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_equation_t *eq, const cs_gwf_tracer_default_context_t *tc, const cs_zone_t *z)
 Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions. Case of a fully saturated model. More...
 
static cs_real_t _integrate_tracer (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_equation_t *eq, const cs_gwf_tracer_default_context_t *tc, const cs_zone_t *z)
 Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions. General case. More...
 
static void _free_default_tracer_context (cs_gwf_tracer_t *tracer)
 Free the context related to a standard tracer equation Rely on the generic prototype cs_gwf_tracer_free_context_t. More...
 
static void _create_default_tracer_context (cs_gwf_tracer_t *tracer)
 Create and initialize the context by default for a "standard" tracer. More...
 
static cs_gwf_tracer_t * _create_tracer (cs_gwf_tracer_model_t tr_model, cs_gwf_model_type_t gwf_model, const char *eq_name, const char *var_name, cs_adv_field_t *adv_field)
 Create a new cs_gwf_tracer_t structure and initialize its members by default. More...
 
cs_gwf_tracer_t * cs_gwf_tracer_by_name (const char *eq_name)
 Retrieve the pointer to the cs_gwf_tracer_t structure associated to the name given as parameter. More...
 
cs_gwf_tracer_t * cs_gwf_tracer_add (cs_gwf_tracer_model_t tr_model, cs_gwf_model_type_t gwf_model, const char *eq_name, const char *var_name, cs_adv_field_t *adv_field, cs_gwf_tracer_init_setup_t *init_setup, cs_gwf_tracer_finalize_setup_t *finalize_setup)
 Create a new cs_gwf_tracer_t structure and initialize its members by default. Add a new equation related to the groundwater flow module. This equation is a specific transport equation. Tracer is advected thanks to the darcian velocity which is given by the resolution of the Richards equation. Diffusion/reaction parameters result from a physical modelling. More...
 
void cs_gwf_tracer_free_all (void)
 Free all tracers. More...
 
cs_real_t cs_gwf_tracer_get_time_theta_max (void)
 Retrieve the max. value of the theta parameter associated to a time scheme. Loop on all tracer equations. More...
 
void cs_gwf_tracer_set_main_param (cs_gwf_tracer_t *tracer, const char *soil_name, double wmd, double alpha_l, double alpha_t, double distrib_coef, double reaction_rate)
 Set a tracer for a specified soil when the tracer is attached to the default model. More...
 
void cs_gwf_tracer_set_precip_param (cs_gwf_tracer_t *tracer, const char *soil_name, double conc_w_star)
 For a specified soil set the parameters corresponding to a precipitation modelling of a tracer transport. More...
 
void cs_gwf_tracer_init_setup (void)
 Initial setup step for tracer equations. Soils and equation parameters are defined at this stage. Create new cs_field_t structures according to the setting. More...
 
void cs_gwf_tracer_finalize_setup (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Finalize the tracer setup. More...
 
void cs_gwf_tracer_update_diff_tensor (cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Update the diffusion tensor related to each tracer equation. More...
 
void cs_gwf_tracer_log_all (void)
 Display the main features related to each tracer. More...
 
void cs_gwf_tracer_compute_steady_all (const cs_mesh_t *mesh, const cs_time_step_t *time_step, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq)
 Compute the steady-state for all tracer equations. Nothing is done if all equations are unsteady. More...
 
void cs_gwf_tracer_compute_all (const cs_mesh_t *mesh, const cs_time_step_t *time_step, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq)
 Compute the new (unsteady) state for all tracer equations. Nothing is done if all equations are steady. More...
 
void cs_gwf_tracer_default_init_setup (cs_gwf_tracer_t *tracer)
 Add terms to the algebraic system related to a tracer equation according to the settings. Case of the default tracer modelling Rely on the generic function: cs_gwf_tracer_add_terms_t. More...
 
void cs_gwf_tracer_sat_finalize_setup (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_adv_field_t *adv, cs_gwf_tracer_t *tracer)
 Set the parameters related to a standard tracer equation. More...
 
void cs_gwf_tracer_unsat_finalize_setup (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_adv_field_t *adv, cs_gwf_tracer_t *tracer)
 Set the parameters related to a standard tracer equation in case of an unsaturated flow model. More...
 
cs_real_t cs_gwf_tracer_integrate (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_gwf_tracer_t *tracer, const char *z_name)
 Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions. More...
 

Variables

static const char _err_empty_tracer []
 
static int _n_tracers = 0
 
static cs_gwf_tracer_t ** _tracers = NULL
 
static cs_real_tcs_shared_liquid_saturation = NULL
 

Macro Definition Documentation

◆ CS_GWF_TRACER_DBG

#define CS_GWF_TRACER_DBG   0

Function Documentation

◆ _add_precipitation()

static void _add_precipitation ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
cs_gwf_tracer_t *  tracer 
)
static

Add quantities related to the precipitation model.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in,out]tracerpointer to a cs_gwf_tracer_t structure

◆ _create_default_tracer_context()

static void _create_default_tracer_context ( cs_gwf_tracer_t *  tracer)
static

Create and initialize the context by default for a "standard" tracer.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_t structure

◆ _create_tracer()

static cs_gwf_tracer_t* _create_tracer ( cs_gwf_tracer_model_t  tr_model,
cs_gwf_model_type_t  gwf_model,
const char *  eq_name,
const char *  var_name,
cs_adv_field_t adv_field 
)
static

Create a new cs_gwf_tracer_t structure and initialize its members by default.

Parameters
[in]tr_modelmodel related to this tracer
[in]gwf_modelmain model for the GWF module
[in]eq_namename of the tracer equation
[in]var_namename of the related variable
[in]adv_fieldpointer to a cs_adv_field_t structure
Returns
a pointer to the new allocated structure

◆ _free_default_tracer_context()

static void _free_default_tracer_context ( cs_gwf_tracer_t *  tracer)
static

Free the context related to a standard tracer equation Rely on the generic prototype cs_gwf_tracer_free_context_t.

Parameters
[in,out]tracerpointer to a structure cs_gwf_tracer_t

◆ _get_reaction_pty4std_sat_tracer()

static void _get_reaction_pty4std_sat_tracer ( cs_lnum_t  n_elts,
const cs_lnum_t  elt_ids[],
bool  dense_output,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. Case of a fully saturated model This function fits the generic prototype of cs_xdef_cell_eval_t.

Parameters
[in]n_eltsnumber of elements to consider
[in]elt_idslist of element ids
[in]dense_outputindirection for output (true or false)
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_reaction_pty4std_sat_tracer_cw()

static void _get_reaction_pty4std_sat_tracer_cw ( const cs_cell_mesh_t cm,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_cell_eval_cw_t.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_reaction_pty4std_tracer()

static void _get_reaction_pty4std_tracer ( cs_lnum_t  n_elts,
const cs_lnum_t  elt_ids[],
bool  dense_output,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. This function fits the generic prototype of cs_xdef_cell_eval_t.

Parameters
[in]n_eltsnumber of elements to consider
[in]elt_idslist of element ids
[in]dense_outputindirection for output (true or false)
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_reaction_pty4std_tracer_cw()

static void _get_reaction_pty4std_tracer_cw ( const cs_cell_mesh_t cm,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in the reaction term for the simulation of standard tracer equations. This function fits the generic prototype of cs_xdef_cell_eval_cw_t.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_time_pty4std_sat_tracer()

static void _get_time_pty4std_sat_tracer ( cs_lnum_t  n_elts,
const cs_lnum_t  elt_ids[],
bool  dense_output,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in time-dependent term of the simulation of tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_eval_t.

Parameters
[in]n_eltsnumber of elements to consider
[in]elt_idslist of element ids
[in]dense_outputperform an indirection for output (true/false)
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_time_pty4std_sat_tracer_cw()

static void _get_time_pty4std_sat_tracer_cw ( const cs_cell_mesh_t cm,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in time-dependent term of the simulation of tracer equations. Case of a fully saturated model. This function fits the generic prototype of cs_xdef_cell_eval_cw_t.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextpointer to an context structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_time_pty4std_tracer()

static void _get_time_pty4std_tracer ( cs_lnum_t  n_elts,
const cs_lnum_t  elt_ids[],
bool  dense_output,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in time-dependent term of the simulation of tracer equations This function fits the generic prototype of cs_xdef_eval_t.

Parameters
[in]n_eltsnumber of elements to consider
[in]elt_idslist of element ids
[in]dense_outputperform an indirection for output (true/false)
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextNULL or pointer to a structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _get_time_pty4std_tracer_cw()

static void _get_time_pty4std_tracer_cw ( const cs_cell_mesh_t cm,
cs_real_t  t_eval,
void *  context,
cs_real_t result 
)
inlinestatic

Define the coefficient appearing in time-dependent term of the simulation of tracer equations This function fits the generic prototype of cs_xdef_cell_eval_cw_t.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one performs the evaluation
[in]contextpointer to an context structure cast on-the_fly
[in,out]resultarray storing the result (must be allocated)

◆ _integrate_saturated_tracer()

static cs_real_t _integrate_saturated_tracer ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq,
const cs_equation_t eq,
const cs_gwf_tracer_default_context_t tc,
const cs_zone_t z 
)
static

Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions. Case of a fully saturated model.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure
[in]eqequation related to a tracer
[in]tcdefault context structure for a tracer
[in]zpointer to a volume zone structure
Returns
the value of the integral

◆ _integrate_tracer()

static cs_real_t _integrate_tracer ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq,
const cs_equation_t eq,
const cs_gwf_tracer_default_context_t tc,
const cs_zone_t z 
)
static

Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions. General case.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure
[in]eqequation related to a tracer
[in]tcdefault context structure for a tracer
[in]zpointer to a volume zone structure
Returns
the value of the integral

◆ _update_diff_pty()

static void _update_diff_pty ( cs_gwf_tracer_t *  tracer,
cs_real_t  t_eval,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)
static

Update physical properties for a (non-user) tracer model. Only the diffusivity is updated (reaction property and time property are defined by function). Generic function relying on the prototype cs_gwf_tracer_update_t.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_structure
[in]t_evaltime at which one performs the evaluation
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure

◆ _update_precipitation_vb()

static void _update_precipitation_vb ( cs_gwf_tracer_t *  tracer,
cs_real_t  t_eval,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)
static

Update physical properties for a non-user tracer model. Case of a tracer with the precipitation/dissolution modelling and a vertex-based scheme. Generic function relying on the prototype cs_gwf_tracer_update_t.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_structure
[in]t_evaltime at which one performs the evaluation
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure

◆ _update_sat_diff_pty()

static void _update_sat_diff_pty ( cs_gwf_tracer_t *  tracer,
cs_real_t  t_eval,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)
static

Update physical properties for a (non-user) tracer model. Only the diffusivity is updated (reaction property and time property are defined by function). Case of a fully saturated model. Generic function relying on the prototype cs_gwf_tracer_update_t.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_structure
[in]t_evaltime at which one performs the evaluation
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure

◆ cs_gwf_tracer_add()

cs_gwf_tracer_t* cs_gwf_tracer_add ( cs_gwf_tracer_model_t  tr_model,
cs_gwf_model_type_t  gwf_model,
const char *  eq_name,
const char *  var_name,
cs_adv_field_t adv_field,
cs_gwf_tracer_init_setup_t init_setup,
cs_gwf_tracer_finalize_setup_t finalize_setup 
)

Create a new cs_gwf_tracer_t structure and initialize its members by default. Add a new equation related to the groundwater flow module. This equation is a specific transport equation. Tracer is advected thanks to the darcian velocity which is given by the resolution of the Richards equation. Diffusion/reaction parameters result from a physical modelling.

Parameters
[in]tr_modelmodel related to this tracer
[in]gwf_modelmain model for the GWF module
[in]eq_namename of the tracer equation
[in]var_namename of the related variable
[in]adv_fieldpointer to a cs_adv_field_t structure
[in]init_setupfunction pointer (predefined prototype)
[in]finalize_setupfunction pointer (predefined prototype)
Returns
a pointer to the new allocated structure

◆ cs_gwf_tracer_by_name()

cs_gwf_tracer_t* cs_gwf_tracer_by_name ( const char *  eq_name)

Retrieve the pointer to the cs_gwf_tracer_t structure associated to the name given as parameter.

Parameters
[in]eq_namename of the tracer equation
Returns
the pointer to a cs_gwf_tracer_t structure

◆ cs_gwf_tracer_compute_all()

void cs_gwf_tracer_compute_all ( const cs_mesh_t mesh,
const cs_time_step_t time_step,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq 
)

Compute the new (unsteady) state for all tracer equations. Nothing is done if all equations are steady.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]time_steppointer to a cs_time_step_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure

◆ cs_gwf_tracer_compute_steady_all()

void cs_gwf_tracer_compute_steady_all ( const cs_mesh_t mesh,
const cs_time_step_t time_step,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq 
)

Compute the steady-state for all tracer equations. Nothing is done if all equations are unsteady.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]time_steppointer to a cs_time_step_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure

◆ cs_gwf_tracer_default_init_setup()

void cs_gwf_tracer_default_init_setup ( cs_gwf_tracer_t *  tracer)

Add terms to the algebraic system related to a tracer equation according to the settings. Case of the default tracer modelling Rely on the generic function: cs_gwf_tracer_add_terms_t.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_t structure

◆ cs_gwf_tracer_finalize_setup()

void cs_gwf_tracer_finalize_setup ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)

Finalize the tracer setup.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure

◆ cs_gwf_tracer_free_all()

void cs_gwf_tracer_free_all ( void  )

Free all tracers.

Returns
a NULL pointer

◆ cs_gwf_tracer_get_time_theta_max()

cs_real_t cs_gwf_tracer_get_time_theta_max ( void  )

Retrieve the max. value of the theta parameter associated to a time scheme. Loop on all tracer equations.

Returns
the computed value

◆ cs_gwf_tracer_init_setup()

void cs_gwf_tracer_init_setup ( void  )

Initial setup step for tracer equations. Soils and equation parameters are defined at this stage. Create new cs_field_t structures according to the setting.

◆ cs_gwf_tracer_integrate()

cs_real_t cs_gwf_tracer_integrate ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq,
const cs_gwf_tracer_t *  tracer,
const char *  z_name 
)

Compute the integral over a given set of cells of the field related to a tracer equation. This integral turns out to be exact for linear functions.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure
[in]tracerpointer to a cs_gwf_tracer_t structure
[in]z_namename of the volumic zone where the integral is done (if NULL or "" all cells are considered)
Returns
the value of the integral

◆ cs_gwf_tracer_log_all()

void cs_gwf_tracer_log_all ( void  )

Display the main features related to each tracer.

◆ cs_gwf_tracer_sat_finalize_setup()

void cs_gwf_tracer_sat_finalize_setup ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_adv_field_t adv,
cs_gwf_tracer_t *  tracer 
)

Set the parameters related to a standard tracer equation.

Set the parameters related to a standard tracer equation case of a fully saturated flow model.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]advpointer to an advection field structure
[in,out]tracerpointer to a cs_gwf_tracer_t structure

◆ cs_gwf_tracer_set_main_param()

void cs_gwf_tracer_set_main_param ( cs_gwf_tracer_t *  tracer,
const char *  soil_name,
double  wmd,
double  alpha_l,
double  alpha_t,
double  distrib_coef,
double  reaction_rate 
)

Set a tracer for a specified soil when the tracer is attached to the default model.

For a specified soil set the main parameters corresponding to a default modelling of a tracer transport.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_t structure
[in]soil_namename of the related soil (or NULL if all soils are selected)
[in]wmdvalue of the water molecular diffusivity
[in]alpha_lvalue of the longitudinal dispersivity
[in]alpha_tvalue of the transversal dispersivity
[in]distrib_coefvalue of the distribution coefficient
[in]reaction_ratevalue of the first order rate of reaction

◆ cs_gwf_tracer_set_precip_param()

void cs_gwf_tracer_set_precip_param ( cs_gwf_tracer_t *  tracer,
const char *  soil_name,
double  conc_w_star 
)

For a specified soil set the parameters corresponding to a precipitation modelling of a tracer transport.

Parameters
[in,out]tracerpointer to a cs_gwf_tracer_t structure
[in]soil_namename of the related soil (or NULL if all soils are selected)
[in]conc_w_starvalue of the saturated concentration in the liquid phase

◆ cs_gwf_tracer_unsat_finalize_setup()

void cs_gwf_tracer_unsat_finalize_setup ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_adv_field_t adv,
cs_gwf_tracer_t *  tracer 
)

Set the parameters related to a standard tracer equation in case of an unsaturated flow model.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]advpointer to an advection field structure
[in,out]tracerpointer to a cs_gwf_tracer_t structure

◆ cs_gwf_tracer_update_diff_tensor()

void cs_gwf_tracer_update_diff_tensor ( cs_real_t  t_eval,
const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)

Update the diffusion tensor related to each tracer equation.

Parameters
[in]t_evaltime at which one performs the evaluation
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure

Variable Documentation

◆ _err_empty_tracer

const char _err_empty_tracer[]
static
Initial value:
=
" Stop execution. The structure related to a tracer is empty.\n"
" Please check your settings.\n"

◆ _n_tracers

int _n_tracers = 0
static

◆ _tracers

cs_gwf_tracer_t** _tracers = NULL
static

◆ cs_shared_liquid_saturation

cs_real_t* cs_shared_liquid_saturation = NULL
static