7.0
general documentation
cs_gwf.h File Reference
#include "cs_base.h"
#include "cs_equation.h"
#include "cs_gwf_soil.h"
#include "cs_gwf_tracer.h"
+ Include dependency graph for cs_gwf.h:

Go to the source code of this file.

Macros

#define CS_GWF_ADV_FIELD_NAME   "darcy_velocity"
 
Flags specifying the kind of post-processing to perform in

!

   the groundwater flow module
#define CS_GWF_POST_CAPACITY   (1 << 0)
 Activate the post-processing of the capacity (property in front of the unsteady term in Richards equation) More...
 
#define CS_GWF_POST_MOISTURE   (1 << 1)
 Activate the post-processing of the moisture content. More...
 
#define CS_GWF_POST_PERMEABILITY   (1 << 2)
 Activate the post-processing of the permeability field. More...
 
#define CS_GWF_POST_DARCY_FLUX_BALANCE   (1 << 3)
 Compute the overall balance at the different boundaries of the Darcy flux. More...
 
#define CS_GWF_POST_DARCY_FLUX_DIVERGENCE   (1 << 4)
 Compute in each control volume (vertices or cells w.r.t the space scheme) the divergence of the Darcy flux. More...
 
#define CS_GWF_POST_DARCY_FLUX_AT_BOUNDARY   (1 << 5)
 Define a field at boundary faces for the Darcy flux and activate the post-processing. More...
 

Typedefs

typedef cs_flag_t cs_gwf_model_t
 

Enumerations

Flags specifying the general behavior of the groundwater flow module
enum  cs_gwf_model_bit_t {
  CS_GWF_GRAVITATION = 1<< 0, CS_GWF_RICHARDS_UNSTEADY = 1<< 1, CS_GWF_SOIL_PROPERTY_UNSTEADY = 1<< 2, CS_GWF_SOIL_ALL_SATURATED = 1<< 3,
  CS_GWF_FORCE_RICHARDS_ITERATIONS = 1<< 6, CS_GWF_RESCALE_HEAD_TO_ZERO_MEAN_VALUE = 1<< 7, CS_GWF_ENFORCE_DIVERGENCE_FREE = 1<< 8
}
 elemental modelling choice either from the physical viewpoint or the numerical viewpoint More...
 

Functions

bool cs_gwf_is_activated (void)
 Check if the groundwater flow module has been activated. More...
 
cs_gwf_t * cs_gwf_activate (cs_property_type_t pty_type, cs_flag_t flag)
 Initialize the module dedicated to groundwater flows. More...
 
cs_gwf_t * cs_gwf_destroy_all (void)
 Free the main structure related to groundwater flows. More...
 
void cs_gwf_log_setup (void)
 Summary of the main cs_gwf_t structure. More...
 
void cs_gwf_set_post_options (cs_flag_t post_flag)
 Set the flag dedicated to the post-processing of the GWF module. More...
 
cs_gwf_tracer_t * cs_gwf_add_tracer (cs_gwf_tracer_model_t model, 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. Terms solved in the equation are activated according to the settings. More...
 
cs_gwf_tracer_t * cs_gwf_add_user_tracer (const char *eq_name, const char *var_name, cs_gwf_tracer_setup_t *setup, cs_gwf_tracer_add_terms_t *add_terms)
 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. Terms are activated according to the settings. Modelling of the tracer parameters are left to the user. 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...
 
void cs_gwf_init_setup (void)
 Predefined settings for the Richards equation and the related equations defining the groundwater flow module Create new cs_field_t structures according to the setting. More...
 
void cs_gwf_add_tracer_terms (void)
 Add new terms if needed (such as diffusion or reaction) to tracer equations according to the settings. More...
 
void cs_gwf_finalize_setup (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant)
 Last initialization step of the groundwater flow module. More...
 
void cs_gwf_update (const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts, bool cur2prev)
 Update the groundwater system (pressure head, head in law, moisture content, darcian velocity, soil capacity or permeability if needed) More...
 
void cs_gwf_compute_steady_state (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 of the groundwater flows module. Nothing is done if all equations are unsteady. More...
 
void cs_gwf_compute (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 system related to groundwater flows module. More...
 
cs_real_t cs_gwf_integrate_tracer (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...
 
void cs_gwf_extra_op (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq)
 Predefined extra-operations for the groundwater flow module. More...
 
void cs_gwf_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_ids[], const cs_lnum_t i_face_ids[], const cs_lnum_t b_face_ids[], 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...
 

Macro Definition Documentation

◆ CS_GWF_ADV_FIELD_NAME

#define CS_GWF_ADV_FIELD_NAME   "darcy_velocity"

◆ CS_GWF_POST_CAPACITY

#define CS_GWF_POST_CAPACITY   (1 << 0)

Activate the post-processing of the capacity (property in front of the unsteady term in Richards equation)

◆ CS_GWF_POST_DARCY_FLUX_AT_BOUNDARY

#define CS_GWF_POST_DARCY_FLUX_AT_BOUNDARY   (1 << 5)

Define a field at boundary faces for the Darcy flux and activate the post-processing.

◆ CS_GWF_POST_DARCY_FLUX_BALANCE

#define CS_GWF_POST_DARCY_FLUX_BALANCE   (1 << 3)

Compute the overall balance at the different boundaries of the Darcy flux.

◆ CS_GWF_POST_DARCY_FLUX_DIVERGENCE

#define CS_GWF_POST_DARCY_FLUX_DIVERGENCE   (1 << 4)

Compute in each control volume (vertices or cells w.r.t the space scheme) the divergence of the Darcy flux.

◆ CS_GWF_POST_MOISTURE

#define CS_GWF_POST_MOISTURE   (1 << 1)

Activate the post-processing of the moisture content.

◆ CS_GWF_POST_PERMEABILITY

#define CS_GWF_POST_PERMEABILITY   (1 << 2)

Activate the post-processing of the permeability field.

Typedef Documentation

◆ cs_gwf_model_t

Enumeration Type Documentation

◆ cs_gwf_model_bit_t

elemental modelling choice either from the physical viewpoint or the numerical viewpoint

Enumerator
CS_GWF_GRAVITATION 
CS_GWF_RICHARDS_UNSTEADY 
CS_GWF_SOIL_PROPERTY_UNSTEADY 
CS_GWF_SOIL_ALL_SATURATED 
CS_GWF_FORCE_RICHARDS_ITERATIONS 
CS_GWF_RESCALE_HEAD_TO_ZERO_MEAN_VALUE 
CS_GWF_ENFORCE_DIVERGENCE_FREE 

Function Documentation

◆ cs_gwf_activate()

cs_gwf_t* cs_gwf_activate ( cs_property_type_t  pty_type,
cs_flag_t  flag 
)

Initialize the module dedicated to groundwater flows.

Parameters
[in]pty_typetype of permeability (iso, ortho...)
[in]flagflag to handle this module
Returns
a pointer to a new allocated groundwater flow structure

◆ cs_gwf_add_tracer()

cs_gwf_tracer_t* cs_gwf_add_tracer ( cs_gwf_tracer_model_t  model,
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. Terms solved in the equation are activated according to the settings.

Parameters
[in]modelphysical modelling to consider (0 = default settings)
[in]eq_namename of the tracer equation
[in]var_namename of the related variable

◆ cs_gwf_add_tracer_terms()

void cs_gwf_add_tracer_terms ( void  )

Add new terms if needed (such as diffusion or reaction) to tracer equations according to the settings.

◆ cs_gwf_add_user_tracer()

cs_gwf_tracer_t* cs_gwf_add_user_tracer ( const char *  eq_name,
const char *  var_name,
cs_gwf_tracer_setup_t setup,
cs_gwf_tracer_add_terms_t add_terms 
)

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. Terms are activated according to the settings. Modelling of the tracer parameters are left to the user.

Parameters
[in]eq_namename of the tracer equation
[in]var_namename of the related variable
[in]setupfunction pointer (predefined prototype)
[in]add_termsfunction pointer (predefined prototype)

◆ cs_gwf_compute()

void cs_gwf_compute ( 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 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]connectpointer to a cs_cdo_connect_t structure
[in]cdoqpointer to a cs_cdo_quantities_t structure

◆ cs_gwf_compute_steady_state()

void cs_gwf_compute_steady_state ( 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 of the groundwater flows module. 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_destroy_all()

cs_gwf_t* cs_gwf_destroy_all ( void  )

Free the main structure related to groundwater flows.

Returns
a NULL pointer

◆ cs_gwf_extra_op()

void cs_gwf_extra_op ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq 
)

Predefined extra-operations for the groundwater flow module.

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

◆ cs_gwf_extra_post()

void cs_gwf_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_ids[],
const cs_lnum_t  i_face_ids[],
const cs_lnum_t  b_face_ids[],
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_gwf_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_idslist of cells (0 to n-1)
[in]i_face_idslist of interior faces (0 to n-1)
[in]b_face_idslist of boundary faces (0 to n-1)
[in]time_steppointer to a cs_time_step_t struct.

◆ cs_gwf_finalize_setup()

void cs_gwf_finalize_setup ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant 
)

Last initialization step of the groundwater flow module.

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

◆ cs_gwf_init_setup()

void cs_gwf_init_setup ( void  )

Predefined settings for the Richards equation and the related equations defining the groundwater flow module Create new cs_field_t structures according to the setting.

◆ cs_gwf_integrate_tracer()

cs_real_t cs_gwf_integrate_tracer ( 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_is_activated()

bool cs_gwf_is_activated ( void  )

Check if the groundwater flow module has been activated.

Returns
true or false

◆ cs_gwf_log_setup()

void cs_gwf_log_setup ( void  )

Summary of the main cs_gwf_t structure.

◆ cs_gwf_set_post_options()

void cs_gwf_set_post_options ( cs_flag_t  post_flag)

Set the flag dedicated to the post-processing of the GWF module.

Parameters
[in]post_flagflag to set

◆ 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_update()

void cs_gwf_update ( const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_time_step_t ts,
bool  cur2prev 
)

Update the groundwater system (pressure head, head in law, moisture content, darcian velocity, soil capacity or permeability if needed)

Parameters
[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]tspointer to a cs_time_step_t structure
[in]cur2prevtrue or false