programmer's documentation
Data Structures | Enumerations | Functions
cs_domain.h File Reference
#include "cs_time_step.h"
#include "cs_mesh.h"
#include "cs_mesh_quantities.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_quantities.h"
#include "cs_param.h"
#include "cs_equation.h"
#include "cs_property.h"
#include "cs_advection_field.h"
#include "cs_groundwater.h"
Include dependency graph for cs_domain.h:

Go to the source code of this file.

Data Structures

struct  cs_domain_t
 

Enumerations

enum  cs_domain_key_t {
  CS_DOMAIN_DEFAULT_BOUNDARY, CS_DOMAIN_OUTPUT_NT, CS_DOMAIN_OUTPUT_DT, CS_DOMAIN_PROFILING,
  CS_DOMAIN_NTMAX, CS_DOMAIN_TMAX, CS_DOMAIN_VERBOSITY, CS_DOMAIN_N_KEYS
}
 

Functions

cs_domain_tcs_domain_init (const cs_mesh_t *mesh, const cs_mesh_quantities_t *mesh_quantities)
 Create and initialize of cs_domain_t structure. More...
 
cs_domain_tcs_domain_free (cs_domain_t *domain)
 Free a cs_domain_t structure. More...
 
void cs_domain_set_param (cs_domain_t *domain, cs_domain_key_t key, const char *keyval)
 Set auxiliary parameters related to a cs_domain_t structure. More...
 
bool cs_domain_needs_log (const cs_domain_t *domain)
 Check if an ouput is requested according to the domain setting. More...
 
void cs_domain_summary (const cs_domain_t *domain)
 Summary of a cs_domain_t structure. More...
 
void cs_domain_last_setup (cs_domain_t *domain)
 Proceed to the last settings of a cs_domain_t structure. More...
 
void cs_domain_add_boundary (cs_domain_t *domain, const char *ml_name, const char *bdy_name)
 Add a boundary type defined on a mesh location. More...
 
void cs_domain_def_time_step_by_function (cs_domain_t *domain, cs_timestep_func_t *func)
 Define the value of the time step thanks to a predefined function. More...
 
void cs_domain_def_time_step_by_value (cs_domain_t *domain, double dt)
 Define the value of the time step. More...
 
bool cs_domain_needs_iterate (cs_domain_t *domain)
 Check if one needs to continue iterations in time. More...
 
void cs_domain_define_current_time_step (cs_domain_t *domain)
 Set the current time step for this new time iteration. More...
 
void cs_domain_increment_time (cs_domain_t *domain)
 Update time step after one temporal iteration. More...
 
void cs_domain_add_property (cs_domain_t *domain, const char *pty_name, const char *type_name, int n_subdomains)
 Add a new property to the current computational domain. More...
 
cs_property_t * cs_domain_get_property (const cs_domain_t *domain, const char *ref_name)
 Find the related property definition from its name. More...
 
void cs_domain_add_advection_field (cs_domain_t *domain, const char *adv_name)
 Add a new advection field to the current computational domain. More...
 
cs_adv_field_t * cs_domain_get_advection_field (const cs_domain_t *domain, const char *ref_name)
 Find the related advection field definition from its name. More...
 
cs_equation_t * cs_domain_get_equation (const cs_domain_t *domain, const char *eqname)
 Find the cs_equation_t structure whith name eqname Return NULL if not find. More...
 
void cs_domain_activate_wall_distance (cs_domain_t *domain)
 Activate the computation of the wall distance. More...
 
void cs_domain_activate_groundwater (cs_domain_t *domain, const char *kw_type, const char *kw_time, int n_soils, int n_tracers)
 Activate the computation of the Richards' equation. More...
 
cs_groundwater_t * cs_domain_get_groundwater (const cs_domain_t *domain)
 Retrieve the pointer to a cs_groundwater_t structure related to this domain. More...
 
void cs_domain_add_groundwater_tracer (cs_domain_t *domain, const char *eq_name, const char *var_name)
 Add a new equation related to the groundwater flow module This equation is a particular type of unsteady advection-diffusion reaction eq. Tracer is advected thanks to the darcian velocity and diffusion/reaction parameters result from a physical modelling. More...
 
void cs_domain_set_groundwater_tracer (cs_domain_t *domain, const char *eq_name, const char *ml_name, double wmd, double alpha_l, double alpha_t, double bulk_density, double distrib_coef, double reaction_rate)
 Set the parameters related to a tracer equation used in the groundwater flow module. More...
 
void cs_domain_setup_predefined_equations (cs_domain_t *domain)
 Setup predefined equations which are activated. More...
 
void cs_domain_add_user_equation (cs_domain_t *domain, const char *eqname, const char *varname, const char *key_type, const char *key_bc)
 Add a new user equation to a domain. More...
 
void cs_domain_create_fields (cs_domain_t *domain)
 Create a cs_field_t structure for each equation defined in the domain. More...
 
void cs_domain_solve (cs_domain_t *domain)
 Solve all the equations of a computational domain for one time step. More...
 
void cs_domain_postprocess (cs_domain_t *domain)
 Process the computed solution. More...
 
void cs_domain_write_restart (const cs_domain_t *domain)
 Write a restart file for the CDO module. More...
 

Enumeration Type Documentation

◆ cs_domain_key_t

Enumerator
CS_DOMAIN_DEFAULT_BOUNDARY 
CS_DOMAIN_OUTPUT_NT 
CS_DOMAIN_OUTPUT_DT 
CS_DOMAIN_PROFILING 
CS_DOMAIN_NTMAX 
CS_DOMAIN_TMAX 
CS_DOMAIN_VERBOSITY 
CS_DOMAIN_N_KEYS 

Function Documentation

◆ cs_domain_activate_groundwater()

void cs_domain_activate_groundwater ( cs_domain_t domain,
const char *  kw_type,
const char *  kw_time,
int  n_soils,
int  n_tracers 
)

Activate the computation of the Richards' equation.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]kw_type"isotropic", "orthotropic or "anisotropic" \param[in] kw_time Richards equation is "steady" or "unsteady"
[in]n_soilsnumber of soils to consider
[in]n_tracersnumber of tracer equations

◆ cs_domain_activate_wall_distance()

void cs_domain_activate_wall_distance ( cs_domain_t domain)

Activate the computation of the wall distance.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_add_advection_field()

void cs_domain_add_advection_field ( cs_domain_t domain,
const char *  adv_name 
)

Add a new advection field to the current computational domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]adv_namename of the advection field to add

◆ cs_domain_add_boundary()

void cs_domain_add_boundary ( cs_domain_t domain,
const char *  ml_name,
const char *  bdy_name 
)

Add a boundary type defined on a mesh location.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]ml_namemesh location name
[in]bdy_namekey name of boundary to set

◆ cs_domain_add_groundwater_tracer()

void cs_domain_add_groundwater_tracer ( cs_domain_t domain,
const char *  eq_name,
const char *  var_name 
)

Add a new equation related to the groundwater flow module This equation is a particular type of unsteady advection-diffusion reaction eq. Tracer is advected thanks to the darcian velocity and diffusion/reaction parameters result from a physical modelling.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]eqnamename of the equation
[in]varnamename of the related variable

◆ cs_domain_add_property()

void cs_domain_add_property ( cs_domain_t domain,
const char *  pty_name,
const char *  type_name,
int  n_subdomains 
)

Add a new property to the current computational domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]pty_namename of the property to add
[in]type_namekey name related to the type of property
[in]n_subdomainsspecify a definition in n_subdomains

◆ cs_domain_add_user_equation()

void cs_domain_add_user_equation ( cs_domain_t domain,
const char *  eqname,
const char *  varname,
const char *  key_type,
const char *  key_bc 
)

Add a new user equation to a domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]eqnamename of the equation
[in]varnamename of the related variable
[in]key_typetype of equation: "scalar", "vector", "tensor"
[in]key_bctype of boundary condition set by default "zero_value" or "zero_flux"

◆ cs_domain_create_fields()

void cs_domain_create_fields ( cs_domain_t domain)

Create a cs_field_t structure for each equation defined in the domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure

Create a cs_field_t structure for each equation defined in the domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_def_time_step_by_function()

void cs_domain_def_time_step_by_function ( cs_domain_t domain,
cs_timestep_func_t func 
)

Define the value of the time step thanks to a predefined function.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]funcpointer to a cs_timestep_func_t function

◆ cs_domain_def_time_step_by_value()

void cs_domain_def_time_step_by_value ( cs_domain_t domain,
double  dt 
)

Define the value of the time step.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]dtvalue of the constant time step

◆ cs_domain_define_current_time_step()

void cs_domain_define_current_time_step ( cs_domain_t domain)

Set the current time step for this new time iteration.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_free()

cs_domain_t* cs_domain_free ( cs_domain_t domain)

Free a cs_domain_t structure.

Parameters
[in,out]domainpointer to the cs_domain_t structure to free
Returns
a NULL pointer

◆ cs_domain_get_advection_field()

cs_adv_field_t* cs_domain_get_advection_field ( const cs_domain_t domain,
const char *  ref_name 
)

Find the related advection field definition from its name.

Parameters
[in]domainpointer to a domain structure
[in]ref_namename of the adv_field to find
Returns
NULL if not found otherwise the associated pointer

◆ cs_domain_get_equation()

cs_equation_t* cs_domain_get_equation ( const cs_domain_t domain,
const char *  eqname 
)

Find the cs_equation_t structure whith name eqname Return NULL if not find.

Parameters
[in]domainpointer to a cs_domain_t structure
[in]eqnamename of the equation to find
Returns
a pointer to a cs_equation_t structure or NULL if not found

◆ cs_domain_get_groundwater()

cs_groundwater_t* cs_domain_get_groundwater ( const cs_domain_t domain)

Retrieve the pointer to a cs_groundwater_t structure related to this domain.

Parameters
[in]domainpointer to a cs_domain_t structure
Returns
a pointer to a cs_groundwater_t structure

◆ cs_domain_get_property()

cs_property_t* cs_domain_get_property ( const cs_domain_t domain,
const char *  ref_name 
)

Find the related property definition from its name.

Parameters
[in]domainpointer to a domain structure
[in]ref_namename of the property to find
Returns
NULL if not found otherwise the associated pointer

◆ cs_domain_increment_time()

void cs_domain_increment_time ( cs_domain_t domain)

Update time step after one temporal iteration.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_init()

cs_domain_t* cs_domain_init ( const cs_mesh_t mesh,
const cs_mesh_quantities_t mesh_quantities 
)

Create and initialize of cs_domain_t structure.

Parameters
[in]meshpointer to a cs_mesh_t struct.
[in]mesh_quantitiespointer to a cs_mesh_quantities_t struct.
Returns
a pointer to a cs_domain_t structure

Create and initialize of cs_domain_t structure.

Parameters
[in]meshpointer to a cs_mesh_t struct.
[in]mesh_quantitiespointer to a cs_mesh_quantities_t struct.
Returns
a pointer to a cs_domain_t structure

◆ cs_domain_last_setup()

void cs_domain_last_setup ( cs_domain_t domain)

Proceed to the last settings of a cs_domain_t structure.

Parameters
[in,out]domainpointer to the cs_domain_t structure to set

◆ cs_domain_needs_iterate()

bool cs_domain_needs_iterate ( cs_domain_t domain)

Check if one needs to continue iterations in time.

Parameters
[in,out]domainpointer to a cs_domain_t structure
Returns
true or false

◆ cs_domain_needs_log()

bool cs_domain_needs_log ( const cs_domain_t domain)

Check if an ouput is requested according to the domain setting.

Parameters
[in]domainpointer to a cs_domain_t structure
Returns
true or false

◆ cs_domain_postprocess()

void cs_domain_postprocess ( cs_domain_t domain)

Process the computed solution.

Parameters
[in]domainpointer to a cs_domain_t structure

◆ cs_domain_set_groundwater_tracer()

void cs_domain_set_groundwater_tracer ( cs_domain_t domain,
const char *  eq_name,
const char *  ml_name,
double  wmd,
double  alpha_l,
double  alpha_t,
double  bulk_density,
double  distrib_coef,
double  reaction_rate 
)

Set the parameters related to a tracer equation used in the groundwater flow module.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]eqnamename of the equation
[in]ml_namename of the related mesh location
[in]wmdvalue of the water molecular diffusivity
[in]alpha_lvalue of the longitudinal dispersivity
[in]alpha_tvalue of the transversal dispersivity
[in]bulk_densityvalue of the bulk density
[in]distrib_coefvalue of the distribution coefficient
[in]reaction_ratevalue of the first order rate of reaction

◆ cs_domain_set_param()

void cs_domain_set_param ( cs_domain_t domain,
cs_domain_key_t  key,
const char *  keyval 
)

Set auxiliary parameters related to a cs_domain_t structure.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]keykey related to the parameter to set
[in]keyvalvalue related to the parameter to set

◆ cs_domain_setup_predefined_equations()

void cs_domain_setup_predefined_equations ( cs_domain_t domain)

Setup predefined equations which are activated.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_solve()

void cs_domain_solve ( cs_domain_t domain)

Solve all the equations of a computational domain for one time step.

Parameters
[in,out]domainpointer to a cs_domain_t structure

◆ cs_domain_summary()

void cs_domain_summary ( const cs_domain_t domain)

Summary of a cs_domain_t structure.

Parameters
[in]domainpointer to the cs_domain_t structure to summarize

◆ cs_domain_write_restart()

void cs_domain_write_restart ( const cs_domain_t domain)

Write a restart file for the CDO module.

Parameters
[in]domainpointer to a cs_domain_t structure