programmer's documentation
Data Structures | Enumerations | Functions
cs_groundwater.h File Reference
#include "cs_base.h"
#include "cs_equation.h"
Include dependency graph for cs_groundwater.h:

Go to the source code of this file.

Data Structures

struct  cs_gw_genuchten_t
 
struct  cs_gw_tracy_t
 

Enumerations

enum  cs_groundwater_key_t { CS_GWKEY_GRAVITATION, CS_GWKEY_OUTPUT_MOISTURE, CS_GWKEY_N_KEYS }
 
enum  cs_groundwater_soilkey_t {
  CS_SOILKEY_SAT_MOISTURE, CS_SOILKEY_RES_MOISTURE, CS_SOILKEY_TRACY_SAT_H, CS_SOILKEY_TRACY_RES_H,
  CS_SOILKEY_N_KEYS
}
 
enum  cs_groundwater_model_t {
  CS_GROUNDWATER_MODEL_COMPOSITE, CS_GROUNDWATER_MODEL_GENUCHTEN, CS_GROUNDWATER_MODEL_SATURATED, CS_GROUNDWATER_MODEL_TRACY,
  CS_GROUNDWATER_MODEL_USER, CS_GROUNDWATER_N_MODELS
}
 

Functions

cs_groundwater_t * cs_groundwater_create (void)
 Create a structure dedicated to manage groundwater flows. More...
 
cs_groundwater_t * cs_groundwater_finalize (cs_groundwater_t *gw)
 Free the main structure related to groundwater flows. More...
 
int cs_groundwater_get_n_soils (const cs_groundwater_t *gw)
 Get the number of requested soils. More...
 
void cs_groundwater_set_param (cs_groundwater_t *gw, cs_groundwater_key_t key, const char *keyval)
 Set parameters related to a cs_groundwater_t structure. More...
 
void cs_groundwater_summary (const cs_groundwater_t *gw)
 Summary of a cs_groundwater_t structure. More...
 
cs_equation_t * cs_groundwater_initialize (const cs_cdo_connect_t *connect, int richards_eq_id, int n_soils, int n_tracer_eqs, cs_property_t *permeability, cs_property_t *soil_capacity, cs_adv_field_t *adv_field, cs_groundwater_t *gw)
 Initialize the module dedicated to groundwater flows. More...
 
void cs_groundwater_add_soil_by_value (cs_groundwater_t *gw, const char *ml_name, const char *model_kw, const char *pty_val)
 Add a new type of soil to consider in the groundwater module. More...
 
void cs_groundwater_set_soil_param (cs_groundwater_t *gw, const char *ml_name, cs_groundwater_soilkey_t key, const char *keyval)
 Set parameters related to a cs_groundwater_t structure. More...
 
cs_equation_t * cs_groundwater_add_tracer (cs_groundwater_t *gw, int tracer_eq_id, const char *eqname, const char *varname)
 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 which is given by the resolution of the Richards equation. Diffusion and reaction parameters result from a physical modelling. More...
 
void cs_groundwater_set_tracer_param (cs_groundwater_t *gw, int tracer_eq_id, const char *ml_name, double wmd, double alpha_l, double alpha_t, double bulk_density, double distrib_coef, double reaction_rate)
 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 which is given by the resolution of the Richards equation. Diffusion/reaction parameters result from a physical modelling. More...
 
void cs_groundwater_richards_setup (cs_groundwater_t *gw, cs_equation_t *richards)
 Predefined settings for the Richards equation. More...
 
bool cs_groundwater_tracer_needs_reaction (const cs_groundwater_t *gw, int eq_id)
 Check if one needs to add a reaction term for a given tracer. More...
 
bool cs_groundwater_tracer_needs_diffusion (const cs_groundwater_t *gw, int eq_id)
 Check if one needs to add a diffusion term for a given tracer. More...
 
void cs_groundwater_tracer_setup (int tracer_eq_id, cs_equation_t *eq, cs_groundwater_t *gw)
 Predefined settings for a tracer equation. More...
 
void cs_groundwater_compute (const cs_mesh_t *mesh, const cs_time_step_t *time_step, double dt_cur, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, bool do_logcvg, cs_equation_t *eqs[], cs_groundwater_t *gw)
 Compute the system related to groundwater flows module. More...
 
void cs_groundwater_extra_post (void *input, int mesh_id, int cat_id, int ent_flag[5], cs_lnum_t n_cells, cs_lnum_t n_i_faces, cs_lnum_t n_b_faces, const cs_lnum_t cell_list[], const cs_lnum_t i_face_list[], const cs_lnum_t b_face_list[], const cs_time_step_t *time_step)
 Predefined post-processing output for the groundwater flow module prototype of this function is fixed since it is a function pointer defined in cs_post.h (cs_post_time_mesh_dep_output_t) More...
 

Enumeration Type Documentation

◆ cs_groundwater_key_t

Enumerator
CS_GWKEY_GRAVITATION 
CS_GWKEY_OUTPUT_MOISTURE 
CS_GWKEY_N_KEYS 

◆ cs_groundwater_model_t

Enumerator
CS_GROUNDWATER_MODEL_COMPOSITE 
CS_GROUNDWATER_MODEL_GENUCHTEN 
CS_GROUNDWATER_MODEL_SATURATED 
CS_GROUNDWATER_MODEL_TRACY 
CS_GROUNDWATER_MODEL_USER 
CS_GROUNDWATER_N_MODELS 

◆ cs_groundwater_soilkey_t

Enumerator
CS_SOILKEY_SAT_MOISTURE 
CS_SOILKEY_RES_MOISTURE 
CS_SOILKEY_TRACY_SAT_H 
CS_SOILKEY_TRACY_RES_H 
CS_SOILKEY_N_KEYS 

Function Documentation

◆ cs_groundwater_add_soil_by_value()

void cs_groundwater_add_soil_by_value ( cs_groundwater_t *  gw,
const char *  ml_name,
const char *  model_kw,
const char *  pty_val 
)

Add a new type of soil to consider in the groundwater module.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in]ml_namename of the mesh location related to this soil
[in]model_kwkeyword related to the model used
[in]ksvalue(s) of the saturated permeability

◆ cs_groundwater_add_tracer()

cs_equation_t* cs_groundwater_add_tracer ( cs_groundwater_t *  gw,
int  tracer_eq_id,
const char *  eqname,
const char *  varname 
)

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 which is given by the resolution of the Richards equation. Diffusion and reaction parameters result from a physical modelling.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in]tracer_eq_idid related to the tracer equation
[in]eqnamename of the equation
[in]varnamename of the related variable
Returns
a pointer to a new allocated equation structure (Tracer eq.)

◆ cs_groundwater_compute()

void cs_groundwater_compute ( const cs_mesh_t mesh,
const cs_time_step_t time_step,
double  dt_cur,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq,
bool  do_logcvg,
cs_equation_t *  eqs[],
cs_groundwater_t *  gw 
)

Compute the system related to groundwater flows module.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]time_steppointer to a cs_time_step_t structure
[in]dt_curcurrent value of the time step
[in]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure
[in]do_logcvgoutput information on convergence or not
[in,out]eqsarray of pointers to cs_equation_t structures
[in,out]gwpointer to a cs_groundwater_t structure

◆ cs_groundwater_create()

cs_groundwater_t* cs_groundwater_create ( void  )

Create a structure dedicated to manage groundwater flows.

Returns
a pointer to a new allocated cs_groundwater_t structure

◆ cs_groundwater_extra_post()

void cs_groundwater_extra_post ( void *  input,
int  mesh_id,
int  cat_id,
int  ent_flag[5],
cs_lnum_t  n_cells,
cs_lnum_t  n_i_faces,
cs_lnum_t  n_b_faces,
const cs_lnum_t  cell_list[],
const cs_lnum_t  i_face_list[],
const cs_lnum_t  b_face_list[],
const cs_time_step_t time_step 
)

Predefined post-processing output for the groundwater flow module prototype of this function is fixed since it is a function pointer defined in cs_post.h (cs_post_time_mesh_dep_output_t)

Parameters
[in,out]inputpointer to a optional structure (here a cs_groundwater_t structure)
[in]mesh_idid of the output mesh for the current call
[in]cat_idcategory id of the output mesh for this call
[in]ent_flagindicate global presence of cells (ent_flag[0]), interior faces (ent_flag[1]), boundary faces (ent_flag[2]), particles (ent_flag[3]) or probes (ent_flag[4])
[in]n_cellslocal number of cells of post_mesh
[in]n_i_faceslocal number of interior faces of post_mesh
[in]n_b_faceslocal number of boundary faces of post_mesh
[in]cell_listlist of cells (1 to n)
[in]i_face_listlist of interior faces (1 to n)
[in]b_face_listlist of boundary faces (1 to n)
[in]time_steppointer to a cs_time_step_t struct.

◆ cs_groundwater_finalize()

cs_groundwater_t* cs_groundwater_finalize ( cs_groundwater_t *  gw)

Free the main structure related to groundwater flows.

Parameters
[in,out]gwpointer to a cs_groundwater_t struct. to free
Returns
a NULL pointer

◆ cs_groundwater_get_n_soils()

int cs_groundwater_get_n_soils ( const cs_groundwater_t *  gw)

Get the number of requested soils.

Parameters
[in]gwpointer to a cs_groundwater_t structure
Returns
the number of requested soils

◆ cs_groundwater_initialize()

cs_equation_t* cs_groundwater_initialize ( const cs_cdo_connect_t connect,
int  richards_eq_id,
int  n_soils,
int  n_tracer_eqs,
cs_property_t *  permeability,
cs_property_t *  soil_capacity,
cs_adv_field_t *  adv_field,
cs_groundwater_t *  gw 
)

Initialize the module dedicated to groundwater flows.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]richards_eq_idid related to the Richards equation
[in]n_soilsnumber of soils to consider
[in]n_tracersnumber of tracers to consider
[in,out]permeabilitypointer to a property structure
[in,out]soil_capacitypointer to a property structure
[in,out]adv_fieldpointer to a cs_adv_field_t structure
[in,out]gwpointer to a cs_groundwater_t structure
Returns
a pointer to a new allocated equation structure (Richards eq.)

◆ cs_groundwater_richards_setup()

void cs_groundwater_richards_setup ( cs_groundwater_t *  gw,
cs_equation_t *  richards 
)

Predefined settings for the Richards equation.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in,out]richardspointer to the related cs_equation_t structure

◆ cs_groundwater_set_param()

void cs_groundwater_set_param ( cs_groundwater_t *  gw,
cs_groundwater_key_t  key,
const char *  keyval 
)

Set parameters related to a cs_groundwater_t structure.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in]keykey related to the member of gw to set
[in]keyvalaccessor to the value to set

◆ cs_groundwater_set_soil_param()

void cs_groundwater_set_soil_param ( cs_groundwater_t *  gw,
const char *  ml_name,
cs_groundwater_soilkey_t  key,
const char *  keyval 
)

Set parameters related to a cs_groundwater_t structure.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in]ml_namename of the mesh location associated to this soil
[in]keykey related to a member of the soil to set
[in]keyvalaccessor to the value to set

◆ cs_groundwater_set_tracer_param()

void cs_groundwater_set_tracer_param ( cs_groundwater_t *  gw,
int  tracer_eq_id,
const char *  ml_name,
double  wmd,
double  alpha_l,
double  alpha_t,
double  bulk_density,
double  distrib_coef,
double  reaction_rate 
)

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 which is given by the resolution of the Richards equation. Diffusion/reaction parameters result from a physical modelling.

Parameters
[in,out]gwpointer to a cs_groundwater_t structure
[in]tracer_eq_idid related to the tracer 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_groundwater_summary()

void cs_groundwater_summary ( const cs_groundwater_t *  gw)

Summary of a cs_groundwater_t structure.

Parameters
[in]gwpointer to a cs_groundwater_t struct. to summarize

◆ cs_groundwater_tracer_needs_diffusion()

bool cs_groundwater_tracer_needs_diffusion ( const cs_groundwater_t *  gw,
int  eq_id 
)

Check if one needs to add a diffusion term for a given tracer.

Parameters
[in]gwpointer to a cs_groundwater_t structure
[in]eq_idid of the equation related to this tracer
Returns
true or false

◆ cs_groundwater_tracer_needs_reaction()

bool cs_groundwater_tracer_needs_reaction ( const cs_groundwater_t *  gw,
int  eq_id 
)

Check if one needs to add a reaction term for a given tracer.

Parameters
[in]gwpointer to a cs_groundwater_t structure
[in]eq_idid of the equation related to this tracer
Returns
true or false

◆ cs_groundwater_tracer_setup()

void cs_groundwater_tracer_setup ( int  tracer_eq_id,
cs_equation_t *  eq,
cs_groundwater_t *  gw 
)

Predefined settings for a tracer equation.

Parameters
[in]tracer_eq_idid of the equation related to this tracer
[in,out]eqpointer to the related cs_equation_t structure
[in,out]gwpointer to a cs_groundwater_t structure