programmer's documentation
Functions | Variables
cs_domain.c File Reference
#include "cs_defs.h"
#include <errno.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <bft_mem.h>
#include <bft_printf.h>
#include "cs_mesh_location.h"
#include "cs_post.h"
#include "cs_evaluate.h"
#include "cs_walldistance.h"
#include "cs_groundwater.h"
#include "cs_prototypes.h"
#include "cs_cdovb_scaleq.h"
#include "cs_cdofb_scaleq.h"
#include "cs_domain.h"
Include dependency graph for cs_domain.c:

Functions

static void _domain_post (const cs_domain_t *domain)
 Postprocessing of quantities attached to the current domain s.t. advection fields. More...
 
static void _check_boundary_setup (cs_domain_t *domain)
 Check if the setup of boundary is reliable. More...
 
static void _add_mesh_locations (cs_domain_t *domain)
 Check if the setup is reliable. More...
 
static cs_domain_boundary_t * _init_domain_boundaries (cs_lnum_t n_b_faces)
 Allocate and initialize a cs_domain_boundary_t structure. More...
 
static cs_domain_boundary_t * _free_domain_boundaries (cs_domain_boundary_t *bcs)
 Destroy a cs_domain_boundary_t structure. More...
 
static void _compute_wall_distance (cs_domain_t *domain)
 Compute the wall distance. More...
 
static void _compute_steady_user_equations (cs_domain_t *domain)
 Compute equations which user-defined and steady-state. More...
 
static void _compute_unsteady_user_equations (cs_domain_t *domain, int nt_cur)
 Compute user-defined equation which are time-dependent. More...
 
cs_domain_tcs_domain_init (const cs_mesh_t *mesh, const cs_mesh_quantities_t *mesh_quantities)
 Create and initialize 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...
 
cs_domain_tcs_domain_free (cs_domain_t *domain)
 Free a cs_domain_t structure. More...
 
void cs_domain_summary (const cs_domain_t *domain)
 Summary of a cs_domain_t structure. More...
 
void cs_domain_set_default_boundary (cs_domain_t *domain, const char *bdy_name)
 Set the boundary type by default. 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_set_output_freq (cs_domain_t *domain, int freq)
 Set the frequency at which output is done in listing. More...
 
void cs_domain_set_time_step (cs_domain_t *domain, double t_end, int nt_max, const char *defkey, void *defval)
 Setup the time step structure related to a domain. 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_add_property (cs_domain_t *domain, const char *pty_name, const char *type_name)
 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 *model)
 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, cs_real_3_t dispersivity, double bulk_density, double distrib_coef, double reaction_rate)
 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_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)
 Find the cs_equation_t structure whith name eqname Return NULL if not find. More...
 
bool cs_domain_needs_iterate (cs_domain_t *domain)
 Check if one needs to continue iterations in time. More...
 
void cs_domain_increment_time (cs_domain_t *domain)
 Update time step after one temporal iteration. More...
 
void cs_domain_solve (cs_domain_t *domain)
 Solve all the equations of a computational domain for one time step. More...
 

Variables

static const char _domain_boundary_ml_name [CS_PARAM_N_BOUNDARY_TYPES][CS_CDO_LEN_NAME]
 

Function Documentation

static void _add_mesh_locations ( cs_domain_t domain)
static

Check if the setup is reliable.

Parameters
[in]domainpointer to a cs_domain_t structure
static void _check_boundary_setup ( cs_domain_t domain)
static

Check if the setup of boundary is reliable.

Parameters
[in]domainpointer to a cs_domain_t structure
static void _compute_steady_user_equations ( cs_domain_t domain)
static

Compute equations which user-defined and steady-state.

Parameters
[in,out]domainpointer to a cs_domain_t structure
static void _compute_unsteady_user_equations ( cs_domain_t domain,
int  nt_cur 
)
static

Compute user-defined equation which are time-dependent.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]nt_curcurrent number of iteration done
static void _compute_wall_distance ( cs_domain_t domain)
static

Compute the wall distance.

Parameters
[in,out]domainpointer to a cs_domain_t structure
static void _domain_post ( const cs_domain_t domain)
static

Postprocessing of quantities attached to the current domain s.t. advection fields.

Parameters
[in]domainpointer to a cs_domain_t struct.
static cs_domain_boundary_t* _free_domain_boundaries ( cs_domain_boundary_t *  bcs)
static

Destroy a cs_domain_boundary_t structure.

Parameters
[in,out]bcspointer to the cs_domain_t structure to free
Returns
a NULL pointer
static cs_domain_boundary_t* _init_domain_boundaries ( cs_lnum_t  n_b_faces)
static

Allocate and initialize a cs_domain_boundary_t structure.

Parameters
[in]n_b_facesnumber of boundary faces
Returns
a pointer to a new allocated cs_domain_boundary_t structure
void cs_domain_activate_groundwater ( cs_domain_t domain,
const char *  model 
)

Activate the computation of the Richards' equation.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]modelkeyword related to the model used
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
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
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
void cs_domain_add_groundwater_tracer ( cs_domain_t domain,
const char *  eq_name,
const char *  var_name,
cs_real_3_t  dispersivity,
double  bulk_density,
double  distrib_coef,
double  reaction_rate 
)

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.

Add a new equation related to the groundwater flow module This equation is a specific 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
[in]dispersivitydispersivity for each axis (x, y, z]
[in]bulk_densityvalue of the bulk density
[in]distrib_coefvalue of the distribution coefficient
[in]reaction_ratevalue of the first order rate of reaction
void cs_domain_add_property ( cs_domain_t domain,
const char *  pty_name,
const char *  type_name 
)

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
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"
void cs_domain_create_fields ( cs_domain_t domain)

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

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

Parameters
[in,out]domainpointer to a cs_domain_t structure
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_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_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_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_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_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
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_t* cs_domain_init ( const cs_mesh_t mesh,
const cs_mesh_quantities_t mesh_quantities 
)

Create and initialize 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
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
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
void cs_domain_set_default_boundary ( cs_domain_t domain,
const char *  bdy_name 
)

Set the boundary type by default.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]bdy_namekey name of the default boundary
void cs_domain_set_output_freq ( cs_domain_t domain,
int  freq 
)

Set the frequency at which output is done in listing.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]freqeach freq iterations
void cs_domain_set_time_step ( cs_domain_t domain,
double  t_end,
int  nt_max,
const char *  defkey,
void *  defval 
)

Setup the time step structure related to a domain.

Parameters
[in,out]domainpointer to a cs_domain_t structure
[in]t_endfinal physical time
[in]nt_maxmax. number of temporal iterations
[in]defkeyway of defining the time step
[in]defvaldefinition of the time step
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
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
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

Variable Documentation

const char _domain_boundary_ml_name[CS_PARAM_N_BOUNDARY_TYPES][CS_CDO_LEN_NAME]
static
Initial value:
=
{ N_("domain_walls"),
N_("domain_inlets"),
N_("domain_outlets"),
N_("domain_symmetries") }
#define N_(String)
Definition: cs_defs.h:56