#include "cs_base.h"#include "cs_cdo_connect.h"#include "cs_cdo_quantities.h"#include "cs_mesh.h"#include "cs_property.h"#include "cs_volume_zone.h"
Include dependency graph for cs_gwf_soil.h:Go to the source code of this file.
Data Structures | |
| struct | cs_gwf_soil_context_genuchten_t |
| Structure to handle the Van Genuchten-Mualen model of soil. More... | |
| struct | cs_gwf_soil_context_saturated_t |
| Parameters defining a saturated soil in a given zone. More... | |
| struct | cs_gwf_soil_t |
| Main structure to handle a soil in the groundawater flow module. Store a set of parameters and pointers describing a soil. More... | |
Typedefs | |
| typedef void() | cs_gwf_soil_update_t(const cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_zone_t *zone, void *soil_context) |
| Generic function to update the physical properties related to a hydraulic model. The soil context depends on the type of soil. More... | |
| typedef void() | cs_gwf_soil_free_context_t(void **p_context) |
| Generic function to set free the soil context of a soil structure. More... | |
Enumerations | |
| enum | cs_gwf_soil_hydraulic_model_t { CS_GWF_SOIL_GENUCHTEN, CS_GWF_SOIL_SATURATED, CS_GWF_SOIL_USER, CS_GWF_SOIL_N_HYDRAULIC_MODELS } |
| Predefined hydraulic model of soils used in the groundwater flow module. More... | |
Functions | |
| int | cs_gwf_get_n_soils (void) |
| Get the number of allocated soils. More... | |
| cs_gwf_soil_t * | cs_gwf_soil_by_id (int id) |
| Retrieve a soil structure from its id. More... | |
| cs_gwf_soil_t * | cs_gwf_soil_by_name (const char *name) |
| Retrieve a soil structure from its name. More... | |
| cs_real_t | cs_gwf_soil_get_saturated_moisture (int soil_id) |
| Get the saturated moisture for the given soil id. More... | |
| bool | cs_gwf_soil_all_saturated (void) |
| Check if all soils have been set as CS_GWF_SOIL_SATURATED. More... | |
| void | cs_gwf_soil_check (void) |
| Check that at least one soil has been defined and the model of soil exists. Raise an error if a problem is encoutered. More... | |
| cs_gwf_soil_t * | cs_gwf_soil_create (const cs_zone_t *zone, cs_gwf_soil_hydraulic_model_t model, cs_property_type_t perm_type, double saturated_moisture, double bulk_density) |
| Create a new cs_gwf_soil_t structure and add it to the array of soils. An initialization by default of all members is performed. More... | |
| void | cs_gwf_build_cell2soil (cs_lnum_t n_cells) |
| Build an array storing the associated soil for each cell. More... | |
| const short int * | cs_gwf_get_cell2soil (void) |
| Get the array storing the associated soil for each cell. More... | |
| void | cs_gwf_soil_free_all (void) |
| Free all cs_gwf_soil_t structures. More... | |
| void | cs_gwf_soil_log_setup (void) |
| Summary of the settings related to all cs_gwf_soil_t structures. More... | |
| void | cs_gwf_soil_set_iso_saturated (cs_gwf_soil_t *soil, double k_s) |
| Set a soil defined by a saturated hydraulic model and attached to an isotropic permeability. More... | |
| void | cs_gwf_soil_set_aniso_saturated (cs_gwf_soil_t *soil, double k_s[3][3]) |
| Set a soil defined by a saturated hydraulic model and attached to an anisotropic permeability. More... | |
| void | cs_gwf_soil_set_iso_genuchten (cs_gwf_soil_t *soil, double k_s, double theta_r, double alpha, double n, double L) |
| Set a soil defined by a Van Genuchten-Mualen hydraulic model and attached to an isotropic saturated permeability. More... | |
| void | cs_gwf_soil_set_aniso_genuchten (cs_gwf_soil_t *soil, double k_s[3][3], double theta_r, double alpha, double n, double L) |
| Set a soil defined by a Van Genuchten-Mualen hydraulic model and attached to an anisotropic saturated permeability. More... | |
| void | cs_gwf_soil_set_user (cs_gwf_soil_t *soil, void *context, cs_gwf_soil_update_t *update_func, cs_gwf_soil_free_context_t *free_context_func) |
| Set a soil defined by a user-defined hydraulic model. More... | |
| void | cs_gwf_soil_saturated_set_properties (cs_property_t *permeability, cs_property_t *moisture_content) |
| Set the properties of the groundwater flow module in the case where all soils are considered as saturated. More... | |
| void | cs_gwf_soil_uspf_set_arrays (cs_real_t head[], cs_real_t permeability[], cs_real_t moisture_content[], cs_real_t capacity[]) |
| Set the different arrays used in soil context for a GWF model set to unsaturated single-phase flows in a porous media. More... | |
| void | cs_gwf_soil_update (cs_real_t time_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant) |
| Update the soil properties. More... | |
| typedef void() cs_gwf_soil_free_context_t(void **p_context) |
Generic function to set free the soil context of a soil structure.
| [in,out] | context | double pointer to a structure cast on-the-fly |
| typedef void() cs_gwf_soil_update_t(const cs_real_t t_eval, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_zone_t *zone, void *soil_context) |
Generic function to update the physical properties related to a hydraulic model. The soil context depends on the type of soil.
| [in] | t_eval | time at which one performs the evaluation |
| [in] | mesh | pointer to a cs_mesh_t structure |
| [in] | connect | pointer to a cs_cdo_connect_t structure |
| [in] | quant | pointer to a cs_cdo_quantities_t structure |
| [in] | zone | pointer to a cs_zone_t |
| [in,out] | soil_context | pointer to a structure cast on-the-fly |
Predefined hydraulic model of soils used in the groundwater flow module.
| void cs_gwf_build_cell2soil | ( | cs_lnum_t | n_cells | ) |
Build an array storing the associated soil for each cell.
| [in] | n_cells | number of cells |
| const short int* cs_gwf_get_cell2soil | ( | void | ) |
Get the array storing the associated soil for each cell.
| int cs_gwf_get_n_soils | ( | void | ) |
Get the number of allocated soils.
| bool cs_gwf_soil_all_saturated | ( | void | ) |
Check if all soils have been set as CS_GWF_SOIL_SATURATED.
| cs_gwf_soil_t* cs_gwf_soil_by_id | ( | int | id | ) |
Retrieve a soil structure from its id.
| [in] | id | id to look for |
| cs_gwf_soil_t* cs_gwf_soil_by_name | ( | const char * | name | ) |
Retrieve a soil structure from its name.
| [in] | name | name to look for |
| void cs_gwf_soil_check | ( | void | ) |
Check that at least one soil has been defined and the model of soil exists. Raise an error if a problem is encoutered.
| cs_gwf_soil_t* cs_gwf_soil_create | ( | const cs_zone_t * | zone, |
| cs_gwf_soil_hydraulic_model_t | model, | ||
| cs_property_type_t | perm_type, | ||
| double | sat_moisture, | ||
| double | bulk_density | ||
| ) |
Create a new cs_gwf_soil_t structure and add it to the array of soils. An initialization by default of all members is performed.
| [in] | zone | pointer to a volume zone structure |
| [in] | model | type of modelling for the hydraulic behavior |
| [in] | perm_type | type of permeability (iso/anisotropic) |
| [in] | saturated_moisture | moisture content |
| [in] | bulk_density | value of the mass density |
| [in] | zone | pointer to a volume zone structure |
| [in] | model | type of modelling for the hydraulic behavior |
| [in] | perm_type | type of permeability (iso/anisotropic) |
| [in] | sat_moisture | value of the saturated moisture content |
| [in] | bulk_density | value of the mass density |
| void cs_gwf_soil_free_all | ( | void | ) |
Free all cs_gwf_soil_t structures.
| cs_real_t cs_gwf_soil_get_saturated_moisture | ( | int | soil_id | ) |
Get the saturated moisture for the given soil id.
| [in] | soil_id | id of the requested soil |
| void cs_gwf_soil_log_setup | ( | void | ) |
Summary of the settings related to all cs_gwf_soil_t structures.
| void cs_gwf_soil_saturated_set_properties | ( | cs_property_t * | permeability, |
| cs_property_t * | moisture_content | ||
| ) |
Set the properties of the groundwater flow module in the case where all soils are considered as saturated.
| [in,out] | permeability | pointer to a cs_property_t structure |
| [in,out] | moisture_content | pointer to a cs_property_t structure |
| void cs_gwf_soil_set_aniso_genuchten | ( | cs_gwf_soil_t * | soil, |
| double | k_s[3][3], | ||
| double | theta_r, | ||
| double | alpha, | ||
| double | n, | ||
| double | L | ||
| ) |
Set a soil defined by a Van Genuchten-Mualen hydraulic model and attached to an anisotropic saturated permeability.
The (effective) liquid saturation (also called moisture content) follows the identity S_l,eff = (S_l - theta_r)/(theta_s - theta_r) = (1 + |alpha . h|^n)^(-m)
The isotropic relative permeability is defined as: k_r = S_l,eff^L * (1 - (1 - S_l,eff^(1/m))^m))^2 where m = 1 - 1/n
| [in,out] | soil | pointer to a cs_gwf_soil_t structure |
| [in] | k_s | value of the isotropic saturated permeability |
| [in] | theta_r | residual moisture/liquid saturation |
| [in] | alpha | scale parameter (in m^-1) |
| [in] | n | shape parameter |
| [in] | L | turtuosity parameter |
| void cs_gwf_soil_set_aniso_saturated | ( | cs_gwf_soil_t * | soil, |
| double | k_s[3][3] | ||
| ) |
Set a soil defined by a saturated hydraulic model and attached to an anisotropic permeability.
| [in,out] | soil | pointer to a cs_gwf_soil_t structure |
| [in] | k_s | value of the anisotropic saturated permeability |
| void cs_gwf_soil_set_iso_genuchten | ( | cs_gwf_soil_t * | soil, |
| double | k_s, | ||
| double | theta_r, | ||
| double | alpha, | ||
| double | n, | ||
| double | L | ||
| ) |
Set a soil defined by a Van Genuchten-Mualen hydraulic model and attached to an isotropic saturated permeability.
The (effective) liquid saturation (also called moisture content) follows the identity S_l,eff = (S_l - theta_r)/(theta_s - theta_r) = (1 + |alpha . h|^n)^(-m)
The isotropic relative permeability is defined as: k_r = S_l,eff^L * (1 - (1 - S_l,eff^(1/m))^m))^2 where m = 1 - 1/n
| [in,out] | soil | pointer to a cs_gwf_soil_t structure |
| [in] | k_s | value of the isotropic saturated permeability |
| [in] | theta_r | residual moisture |
| [in] | alpha | scale parameter (in m^-1) |
| [in] | n | shape parameter |
| [in] | L | turtuosity parameter |
| void cs_gwf_soil_set_iso_saturated | ( | cs_gwf_soil_t * | soil, |
| double | k_s | ||
| ) |
Set a soil defined by a saturated hydraulic model and attached to an isotropic permeability.
| [in,out] | soil | pointer to a cs_gwf_soil_t structure |
| [in] | k_s | value of the saturated permeability |
| void cs_gwf_soil_set_user | ( | cs_gwf_soil_t * | soil, |
| void * | context, | ||
| cs_gwf_soil_update_t * | update_func, | ||
| cs_gwf_soil_free_context_t * | free_context_func | ||
| ) |
Set a soil defined by a user-defined hydraulic model.
| [in,out] | soil | pointer to a cs_gwf_soil_t structure |
| [in] | context | pointer to a structure cast on-the-fly |
| [in] | update_func | function pointer to update propoerties |
| [in] | free_context_func | function pointer to free the context |
| void cs_gwf_soil_update | ( | cs_real_t | time_eval, |
| const cs_mesh_t * | mesh, | ||
| const cs_cdo_connect_t * | connect, | ||
| const cs_cdo_quantities_t * | quant | ||
| ) |
Update the soil properties.
| [in] | time_eval | time at which one evaluates properties |
| [in] | mesh | pointer to the mesh structure |
| [in] | connect | pointer to the cdo connectivity |
| [in] | quant | pointer to the cdo quantities |
| void cs_gwf_soil_uspf_set_arrays | ( | cs_real_t | head[], |
| cs_real_t | permeability[], | ||
| cs_real_t | moisture_content[], | ||
| cs_real_t | capacity[] | ||
| ) |
Set the different arrays used in soil context for a GWF model set to unsaturated single-phase flows in a porous media.
| [in] | head | pointer to the current head values in cells |
| [in] | permeability | pointer to the current permeability values |
| [in] | moisture_content | pointer to the current moisture content values |
| [in] | capacity | pointer to the current soil capacity values |