8.0
general documentation
Loading...
Searching...
No Matches
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-2023 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#include "cs_param_sles.h"
36
37/*----------------------------------------------------------------------------*/
38
40
41/*============================================================================
42 * Macro definitions
43 *============================================================================*/
44
45/*============================================================================
46 * Type definitions
47 *============================================================================*/
48
50
51/*----------------------------------------------------------------------------*/
61/*----------------------------------------------------------------------------*/
62
63typedef void
64(cs_gwf_darcy_update_t)(const cs_real_t t_eval,
65 const cs_equation_t *eq,
66 bool cur2prev,
67 void *input,
68 cs_gwf_darcy_flux_t *darcy);
69
74
110
111
120
189
197
294
331
332typedef struct {
333
334 /* Set of equations associated to this modelling */
335
346
348
354
356
361
363
369
371
376
378
392
395
434
437
439
443
446
469
474
582
586
588
593
596
599
600 /* These arrays are not always allocated. It depends on the numerical
601 settings */
602
608
646
655
695
700
704
706
710
712
713
720
786
787/*============================================================================
788 * Public function prototypes
789 *============================================================================*/
790
791/*----------------------------------------------------------------------------*/
799/*----------------------------------------------------------------------------*/
800
803
804/*----------------------------------------------------------------------------*/
810/*----------------------------------------------------------------------------*/
811
812void
814
815/*----------------------------------------------------------------------------*/
821/*----------------------------------------------------------------------------*/
822
823void
825
826/*----------------------------------------------------------------------------*/
840/*----------------------------------------------------------------------------*/
841
842void
844 const cs_cdo_quantities_t *quant,
845 cs_param_space_scheme_t space_scheme,
846 void *update_context,
847 cs_gwf_darcy_update_t *update_func,
848 cs_gwf_darcy_flux_t *darcy);
849
850/*----------------------------------------------------------------------------*/
861/*----------------------------------------------------------------------------*/
862
863void
865 const cs_cdo_quantities_t *quant,
866 const cs_equation_param_t *eqp,
867 cs_gwf_darcy_flux_t *darcy);
868
869/*----------------------------------------------------------------------------*/
870
872
873#endif /* __CS_GWF_PRIV_H__ */
#define BEGIN_C_DECLS
Definition cs_defs.h:509
double cs_real_t
Floating-point value.
Definition cs_defs.h:319
#define END_C_DECLS
Definition cs_defs.h:510
unsigned short int cs_flag_t
Definition cs_defs.h:321
cs_gwf_model_type_t
Type of system of equation(s) to consider for the physical modelling.
Definition cs_gwf_param.h:118
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:274
void cs_gwf_darcy_update_t(const cs_real_t t_eval, const cs_equation_t *eq, bool cur2prev, void *input, cs_gwf_darcy_flux_t *darcy)
Update the advection field/arrays related to the Darcy flux.
Definition cs_gwf_priv.h:64
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, void *update_context, cs_gwf_darcy_update_t *update_func, cs_gwf_darcy_flux_t *darcy)
Set the definition of the advection field attached to a cs_gwf_darcy_flux_t structure If the function...
Definition cs_gwf_priv.c:357
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:297
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:484
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:328
Structure and routines handling the SLES settings stored inside a cs_param_sles_t structure.
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition cs_param_types.h:211
cs_param_nl_algo_t
Class of non-linear iterative algorithm.
Definition cs_param_types.h:551
Definition cs_gwf_priv.h:75
cs_flag_t flux_location
Definition cs_gwf_priv.h:102
void * update_input
Definition cs_gwf_priv.h:106
cs_real_t * boundary_flux_val
Definition cs_gwf_priv.h:104
cs_gwf_darcy_update_t * update_func
Definition cs_gwf_priv.h:107
cs_adv_field_t * adv_field
Definition cs_gwf_priv.h:101
cs_real_t * flux_val
Definition cs_gwf_priv.h:103
Definition cs_advection_field.h:150
Definition cs_cdo_connect.h:61
Definition cs_cdo_quantities.h:137
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition cs_equation_param.h:192
Main structure to handle a set of coupled equations.
Definition cs_equation_system.h:123
Main structure to handle the discretization and the resolution of an equation.
Field descriptor.
Definition cs_field.h:130
Structure to handle the Darcy flux.
Structure to handle the modelling of a single-phase flows in a porous media considered as saturated.
Definition cs_gwf_priv.h:121
cs_field_t * permeability_field
Definition cs_gwf_priv.h:181
cs_field_t * pressure_head
Definition cs_gwf_priv.h:182
cs_equation_t * richards
Definition cs_gwf_priv.h:134
cs_property_t * moisture_content
Definition cs_gwf_priv.h:160
cs_gwf_darcy_flux_t * darcy
Definition cs_gwf_priv.h:147
Main set of parameters/structures to manage the groundwater flow (GWF) module. This is an explicit de...
Definition cs_gwf_priv.h:721
int verbosity
Definition cs_gwf_priv.h:743
cs_gwf_model_type_t model
Definition cs_gwf_priv.h:744
cs_property_t * soil_porosity
Definition cs_gwf_priv.h:766
cs_flag_t post_flag
Definition cs_gwf_priv.h:746
cs_flag_t flag
Definition cs_gwf_priv.h:745
cs_property_t * abs_permeability
Definition cs_gwf_priv.h:767
void * model_context
Definition cs_gwf_priv.h:779
Structure to handle the modelling of miscible or immiscible two-phase flows in a porous media.
Definition cs_gwf_priv.h:332
cs_real_t * l_saturation_submesh
Definition cs_gwf_priv.h:606
cs_real_t l_viscosity
Definition cs_gwf_priv.h:648
cs_property_t * diff_hl_pty
Definition cs_gwf_priv.h:445
cs_real_t * l_rel_permeability
Definition cs_gwf_priv.h:597
cs_property_t * time_hl_pty
Definition cs_gwf_priv.h:444
cs_real_t * time_hl_array
Definition cs_gwf_priv.h:594
cs_real_t * reac_hg_array
Definition cs_gwf_priv.h:591
cs_real_t * diff_hg_array
Definition cs_gwf_priv.h:590
cs_property_t * diff_wl_pty
Definition cs_gwf_priv.h:436
cs_real_t henry_constant
Definition cs_gwf_priv.h:654
cs_real_t * l_saturation_submesh_pre
Definition cs_gwf_priv.h:607
cs_real_t * time_wl_array
Definition cs_gwf_priv.h:583
cs_field_t * g_pressure
Definition cs_gwf_priv.h:473
cs_property_t * time_wl_pty
Definition cs_gwf_priv.h:435
bool use_explicit_dsldt_liquid
Consider an explicit treatment of the time derivative of the liquid saturation in the mass conservati...
Definition cs_gwf_priv.h:699
cs_property_t * diff_hg_pty
Definition cs_gwf_priv.h:441
cs_real_t * diff_hl_array
Definition cs_gwf_priv.h:595
cs_param_sles_cvg_t nl_algo_cvg
Definition cs_gwf_priv.h:702
cs_iter_algo_t * nl_algo
Definition cs_gwf_priv.h:705
cs_property_t * time_hg_pty
Definition cs_gwf_priv.h:440
cs_real_t g_viscosity
Definition cs_gwf_priv.h:649
cs_real_t * srct_hg_array
Definition cs_gwf_priv.h:592
cs_real_t * time_hg_array
Definition cs_gwf_priv.h:589
cs_real_t * capillarity_cell_pressure
Definition cs_gwf_priv.h:604
cs_real_t w_molar_mass
Definition cs_gwf_priv.h:651
cs_real_t * g_rel_permeability
Definition cs_gwf_priv.h:598
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:697
cs_property_t * time_wg_pty
Definition cs_gwf_priv.h:438
cs_real_t l_mass_density
Definition cs_gwf_priv.h:647
cs_real_t ref_temperature
Definition cs_gwf_priv.h:653
cs_real_t h_molar_mass
Definition cs_gwf_priv.h:652
cs_real_t * g_cell_pressure
Definition cs_gwf_priv.h:605
cs_equation_param_t * hl_eqp
Definition cs_gwf_priv.h:370
cs_equation_t * hg_eq
Definition cs_gwf_priv.h:355
cs_property_t * reac_hg_pty
Definition cs_gwf_priv.h:442
cs_iter_algo_param_aa_t anderson_param
Definition cs_gwf_priv.h:703
cs_equation_param_t * wg_eqp
Definition cs_gwf_priv.h:362
cs_real_t * srct_wl_array
Definition cs_gwf_priv.h:585
cs_field_t * l_saturation
Definition cs_gwf_priv.h:470
bool use_properties_on_submesh
Consider a submesh to define the liquid saturation.
Definition cs_gwf_priv.h:698
cs_real_t * diff_wl_array
Definition cs_gwf_priv.h:584
cs_real_t l_diffusivity_h
Definition cs_gwf_priv.h:650
cs_real_t * l_capacity
Definition cs_gwf_priv.h:603
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:696
cs_equation_system_t * system
Definition cs_gwf_priv.h:377
cs_param_nl_algo_t nl_algo_type
Definition cs_gwf_priv.h:701
cs_field_t * l_pressure
Definition cs_gwf_priv.h:472
cs_real_t * time_wg_array
Definition cs_gwf_priv.h:587
cs_equation_t * wl_eq
Definition cs_gwf_priv.h:347
cs_gwf_darcy_flux_t * l_darcy
Definition cs_gwf_priv.h:393
cs_gwf_darcy_flux_t * g_darcy
Definition cs_gwf_priv.h:394
cs_field_t * c_pressure
Definition cs_gwf_priv.h:471
Structure to handle the modelling of a single-phase flows in a porous media considered as saturated o...
Definition cs_gwf_priv.h:198
cs_field_t * moisture_field
Definition cs_gwf_priv.h:283
cs_field_t * permeability_field
Definition cs_gwf_priv.h:282
cs_field_t * pressure_head
Definition cs_gwf_priv.h:285
cs_real_t * head_in_law
Definition cs_gwf_priv.h:287
cs_property_t * soil_capacity
Definition cs_gwf_priv.h:245
cs_equation_t * richards
Definition cs_gwf_priv.h:210
cs_property_t * permeability
Definition cs_gwf_priv.h:243
cs_field_t * capacity_field
Definition cs_gwf_priv.h:284
cs_property_t * moisture_content
Definition cs_gwf_priv.h:244
cs_gwf_darcy_flux_t * darcy
Definition cs_gwf_priv.h:223
Structure storing all the parameters to drive the algorithm called Anderson acceleration.
Definition cs_iter_algo.h:140
Structure to handle the convergence of an iterative algorithm.
Definition cs_iter_algo.h:60
Set of parameters to check the convergence (or the divergence) of an iterative process (tolerances or...
Definition cs_param_sles.h:61
Structure associated to the definition of a property relying on the cs_xdef_t structure.