7.2
general documentation
cs_gwf_priv.h
Go to the documentation of this file.
1 #ifndef __CS_GWF_PRIV_H__
2 #define __CS_GWF_PRIV_H__
3 
4 /*============================================================================
5  * Structures/types related to the groundwater flow module
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2022 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------
29  * Local headers
30  *----------------------------------------------------------------------------*/
31 
32 #include "cs_advection_field.h"
33 #include "cs_equation_system.h"
34 #include "cs_gwf_param.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*============================================================================
41  * Macro definitions
42  *============================================================================*/
43 
44 /*============================================================================
45  * Type definitions
46  *============================================================================*/
47 
53 typedef struct {
54 
77 
79 
80 
90 typedef struct {
91 
104 
117 
130 
146 
152 
161 typedef struct {
162 
174 
187 
209 
249 
251 
257 
295 typedef struct {
296 
297  /* Set of equations associated to this modelling */
298 
311 
319 
326 
334 
341 
358 
400 
402 
406 
409 
437 
549 
551 
556 
559 
562 
563  /* These arrays are not always allocated. It depends on the numerical
564  settings */
565 
571 
618 
658 
662 
664 
670 
671 
679 typedef struct {
680 
700 
721 
733 
738 } cs_gwf_t;
739 
740 /*============================================================================
741  * Public function prototypes
742  *============================================================================*/
743 
744 /*----------------------------------------------------------------------------*/
752 /*----------------------------------------------------------------------------*/
753 
756 
757 /*----------------------------------------------------------------------------*/
763 /*----------------------------------------------------------------------------*/
764 
765 void
767 
768 /*----------------------------------------------------------------------------*/
774 /*----------------------------------------------------------------------------*/
775 
776 void
778 
779 /*----------------------------------------------------------------------------*/
789 /*----------------------------------------------------------------------------*/
790 
791 void
793  const cs_cdo_quantities_t *quant,
794  cs_param_space_scheme_t space_scheme,
795  cs_gwf_darcy_flux_t *darcy);
796 
797 /*----------------------------------------------------------------------------*/
806 /*----------------------------------------------------------------------------*/
807 
808 void
810  const cs_equation_t *eq,
811  bool cur2prev,
812  cs_gwf_darcy_flux_t *darcy);
813 
814 /*----------------------------------------------------------------------------*/
825 /*----------------------------------------------------------------------------*/
826 
827 void
829  const cs_cdo_quantities_t *quant,
830  const cs_equation_param_t *eqp,
831  cs_gwf_darcy_flux_t *darcy);
832 
833 /*----------------------------------------------------------------------------*/
834 
836 
837 #endif /* __CS_GWF_PRIV_H__ */
cs_real_t * l_saturation_submesh
Definition: cs_gwf_priv.h:569
cs_property_t * moisture_content
Definition: cs_gwf_priv.h:129
bool use_properties_on_submesh
Consider a submesh to define the liquid saturation.
Definition: cs_gwf_priv.h:657
void cs_gwf_darcy_flux_free(cs_gwf_darcy_flux_t **p_darcy)
Free a cs_gwf_darcy_flux_t structure.
Definition: cs_gwf_priv.c:161
cs_iter_algo_param_t nl_algo_param
Definition: cs_gwf_priv.h:660
cs_real_t * l_rel_permeability
Definition: cs_gwf_priv.h:560
Definition: cs_advection_field.h:150
cs_gwf_model_type_t model
Definition: cs_gwf_priv.h:697
cs_real_t * g_rel_permeability
Definition: cs_gwf_priv.h:561
cs_property_t * diff_wl_pty
Definition: cs_gwf_priv.h:399
Field descriptor.
Definition: cs_field.h:125
cs_param_nl_algo_t nl_algo_type
Definition: cs_gwf_priv.h:659
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources...
Definition: cs_equation_param.h:186
cs_property_t * diff_hg_pty
Definition: cs_gwf_priv.h:404
void * model_context
Definition: cs_gwf_priv.h:732
Structure storing all the parameters to drive the algorithm called Anderson acceleration.
Definition: cs_iter_algo.h:177
void cs_gwf_darcy_flux_balance(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_equation_param_t *eqp, cs_gwf_darcy_flux_t *darcy)
Operate the balance by zone (relying on the splitting arising from the boundary settings) for the adv...
Definition: cs_gwf_priv.c:430
bool use_coupled_solver
When a model relies on several coupled equations, there are two main options to build and solve the s...
Definition: cs_gwf_priv.h:655
cs_property_t * reac_hg_pty
Definition: cs_gwf_priv.h:405
cs_gwf_darcy_flux_t * g_darcy
Definition: cs_gwf_priv.h:357
cs_property_t * soil_capacity
Definition: cs_gwf_priv.h:208
cs_param_nl_algo_t
Class of non-linear iterative algorithm.
Definition: cs_param_types.h:546
Structure to handle the modelling of miscible or immiscible two-phase flows in a porous media...
Definition: cs_gwf_priv.h:295
cs_property_t * time_wg_pty
Definition: cs_gwf_priv.h:401
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
cs_field_t * c_pressure
Definition: cs_gwf_priv.h:434
cs_real_t * diff_hg_array
Definition: cs_gwf_priv.h:553
cs_gwf_darcy_flux_t * cs_gwf_darcy_flux_create(cs_flag_t loc_flag)
Allocate and initialize a cs_gwf_darcy_flux_t structure.
Definition: cs_gwf_priv.c:138
cs_flag_t flux_location
Definition: cs_gwf_priv.h:74
cs_real_t * time_wg_array
Definition: cs_gwf_priv.h:550
Definition: cs_cdo_connect.h:61
cs_real_t g_viscosity
Definition: cs_gwf_priv.h:612
cs_real_t * time_wl_array
Definition: cs_gwf_priv.h:546
cs_gwf_darcy_flux_t * l_darcy
Definition: cs_gwf_priv.h:356
cs_real_t w_molar_mass
Definition: cs_gwf_priv.h:614
cs_real_t * srct_wl_array
Definition: cs_gwf_priv.h:548
cs_iter_algo_t * nl_algo
Definition: cs_gwf_priv.h:663
cs_gwf_model_type_t
Type of system of equation(s) to consider for the physical modelling.
Definition: cs_gwf_param.h:102
cs_real_t * g_cell_pressure
Definition: cs_gwf_priv.h:568
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
Definition: cs_cdo_quantities.h:132
void cs_gwf_darcy_flux_log(cs_gwf_darcy_flux_t *darcy)
Log a cs_gwf_darcy_flux_t structure.
Definition: cs_gwf_priv.c:192
cs_property_t * time_hg_pty
Definition: cs_gwf_priv.h:403
cs_equation_t * richards
Definition: cs_gwf_priv.h:173
cs_real_t henry_constant
Definition: cs_gwf_priv.h:617
cs_real_t l_diffusivity_h
Definition: cs_gwf_priv.h:613
void cs_gwf_darcy_flux_update(const cs_real_t t_eval, const cs_equation_t *eq, bool cur2prev, cs_gwf_darcy_flux_t *darcy)
Update the advection field/arrays related to the Darcy flux.
Definition: cs_gwf_priv.c:327
cs_property_t * moisture_content
Definition: cs_gwf_priv.h:207
Set of common parameters to manage an iterative algorithm.
Definition: cs_iter_algo.h:101
cs_flag_t post_flag
Definition: cs_gwf_priv.h:699
cs_equation_t * richards
Definition: cs_gwf_priv.h:103
Structure to handle the Darcy flux.
Definition: cs_gwf_priv.h:53
cs_field_t * l_saturation
Definition: cs_gwf_priv.h:433
cs_real_t * l_capacity
Definition: cs_gwf_priv.h:566
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition: cs_param_types.h:207
cs_property_t * time_wl_pty
Definition: cs_gwf_priv.h:398
cs_real_t * diff_wl_array
Definition: cs_gwf_priv.h:547
cs_real_t * srct_hg_array
Definition: cs_gwf_priv.h:555
cs_real_t l_viscosity
Definition: cs_gwf_priv.h:611
cs_equation_system_t * system
Definition: cs_gwf_priv.h:340
Main set of parameters/structures to manage the groundwater flow (GWF) module. This is an explicit de...
Definition: cs_gwf_priv.h:679
cs_equation_t * wl_eq
Definition: cs_gwf_priv.h:310
cs_field_t * capacity_field
Definition: cs_gwf_priv.h:247
cs_equation_t * hg_eq
Definition: cs_gwf_priv.h:318
Structure to handle the modelling of a single-phase flows in a porous media considered as saturated...
Definition: cs_gwf_priv.h:90
cs_real_t l_mass_density
Definition: cs_gwf_priv.h:610
void cs_gwf_darcy_flux_define(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_param_space_scheme_t space_scheme, cs_gwf_darcy_flux_t *darcy)
Set the definition of the advection field attached to a cs_gwf_darcy_flux_t structure.
Definition: cs_gwf_priv.c:217
Structure to handle the modelling of a single-phase flows in a porous media considered as saturated o...
Definition: cs_gwf_priv.h:161
Main structure to handle a set of coupled equations.
Definition: cs_equation_system.h:123
cs_property_t * time_hl_pty
Definition: cs_gwf_priv.h:407
cs_field_t * pressure_head
Definition: cs_gwf_priv.h:145
cs_adv_field_t * adv_field
Definition: cs_gwf_priv.h:73
bool use_incremental_solver
When a model includes non-linearities it can be useful to formulate the problem using increment and t...
Definition: cs_gwf_priv.h:656
cs_property_t * abs_permeability
Definition: cs_gwf_priv.h:720
cs_equation_param_t * wg_eqp
Definition: cs_gwf_priv.h:325
cs_real_t * head_in_law
Definition: cs_gwf_priv.h:250
#define END_C_DECLS
Definition: cs_defs.h:511
cs_real_t * time_hg_array
Definition: cs_gwf_priv.h:552
unsigned short int cs_flag_t
Definition: cs_defs.h:324
cs_equation_param_t * hl_eqp
Definition: cs_gwf_priv.h:333
cs_iter_algo_param_aa_t anderson_param
Definition: cs_gwf_priv.h:661
Definition: cs_iter_algo.h:53
cs_flag_t flag
Definition: cs_gwf_priv.h:698
cs_field_t * g_pressure
Definition: cs_gwf_priv.h:436
cs_gwf_darcy_flux_t * darcy
Definition: cs_gwf_priv.h:116
cs_gwf_darcy_flux_t * darcy
Definition: cs_gwf_priv.h:186
cs_property_t * soil_porosity
Definition: cs_gwf_priv.h:719
cs_property_t * permeability
Definition: cs_gwf_priv.h:206
cs_field_t * pressure_head
Definition: cs_gwf_priv.h:248
cs_real_t h_molar_mass
Definition: cs_gwf_priv.h:615
Main structure to handle the discretization and the resolution of an equation.
cs_real_t * time_hl_array
Definition: cs_gwf_priv.h:557
cs_real_t * boundary_flux_val
Definition: cs_gwf_priv.h:76
cs_real_t * reac_hg_array
Definition: cs_gwf_priv.h:554
cs_real_t * l_saturation_submesh_pre
Definition: cs_gwf_priv.h:570
Structure associated to the definition of a property relying on the cs_xdef_t structure.
cs_field_t * moisture_field
Definition: cs_gwf_priv.h:246
cs_field_t * permeability_field
Definition: cs_gwf_priv.h:245
cs_field_t * l_pressure
Definition: cs_gwf_priv.h:435
cs_real_t ref_temperature
Definition: cs_gwf_priv.h:616
cs_real_t * flux_val
Definition: cs_gwf_priv.h:75
cs_real_t * capillarity_cell_pressure
Definition: cs_gwf_priv.h:567
cs_property_t * diff_hl_pty
Definition: cs_gwf_priv.h:408
cs_real_t * diff_hl_array
Definition: cs_gwf_priv.h:558