8.2
general documentation
cs_param_types.h
Go to the documentation of this file.
1 #ifndef __CS_PARAM_TYPES_H__
2 #define __CS_PARAM_TYPES_H__
3 
4 /*============================================================================
5  * Set of definitions of structures and types used for setting a case
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2024 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 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_defs.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*============================================================================
41  * Macro definitions
42  *============================================================================*/
43 
57 #define CS_DOF_VTX_SCAL 0
58 #define CS_DOF_VTX_VECT 1
59 #define CS_DOF_FACE_SCAL 2
60 #define CS_DOF_FACE_VECT 3
61 #define CS_DOF_FACE_SCAP1 3
62 #define CS_DOF_FACE_SCAP2 4
63 #define CS_DOF_FACE_VECP0 3
64 #define CS_DOF_FACE_VECP1 5
65 #define CS_DOF_FACE_VECP2 6
66 #define CS_DOF_EDGE_SCAL 7
68 #define CS_N_DOF_CASES 8
69 
77 /*
78  * Field property type
79  */
80 
83 #define CS_ISOTROPIC_DIFFUSION (1 << 0)
84 
87 #define CS_ORTHOTROPIC_DIFFUSION (1 << 1)
88 
91 #define CS_ANISOTROPIC_LEFT_DIFFUSION (1 << 2)
92 
95 #define CS_ANISOTROPIC_RIGHT_DIFFUSION (1 << 3)
96 
99 #define CS_ANISOTROPIC_DIFFUSION ((1 << 2) + (1 << 3))
100 
103 /*============================================================================
104  * Type definitions
105  *============================================================================*/
106 
107 /*----------------------------------------------------------------------------*/
124 /*----------------------------------------------------------------------------*/
125 
126 typedef void
128  cs_lnum_t n_elts,
129  const cs_lnum_t *elt_ids,
130  const cs_real_t *coords,
131  bool dense_output,
132  void *input,
133  cs_real_t *retval);
134 
135 /*----------------------------------------------------------------------------*/
151 /*----------------------------------------------------------------------------*/
152 
153 typedef void
154 (cs_dof_func_t) (cs_lnum_t n_elts,
155  const cs_lnum_t *elt_ids,
156  bool dense_output,
157  void *input,
158  cs_real_t *retval);
159 
160 /*----------------------------------------------------------------------------*/
169 /*----------------------------------------------------------------------------*/
170 
171 typedef void
172 (cs_time_func_t) (double time,
173  void *input,
174  cs_real_t *retval);
175 
211 typedef enum {
212 
222 
224 
226 
239 typedef enum {
240 
243 
245 
247 
274 typedef enum {
275 
282 
284 
286 
307 typedef enum {
308 
312 
314 
316 
351 typedef enum {
352 
360 
362 
364 
384 typedef enum {
385 
389 
391 
393 
419 typedef enum {
420 
424 
426 
428 
476 typedef enum {
477 
487 
489 
491 
521 typedef enum {
522 
527 
529 
531 
537 typedef struct {
538 
554  double atol;
555  double rtol;
556  double dtol;
558 
560 
581 typedef enum {
582 
587 
589 
617 typedef enum {
618 
623 
625 
627 
652 typedef enum {
653 
659 
661 
663 
726 typedef enum {
727 
729 
743 
745 
747 
806 typedef enum {
807 
809 
824 
826 
828 
835 typedef enum {
836 
846 
848 
854 typedef enum {
855 
860 
862 
867 /*============================================================================
868  * Global variables
869  *============================================================================*/
870 
871 /* Separation lines: header1, header2 (compatible with markdown), other */
872 
873 extern const char cs_sep_h1[80];
874 extern const char cs_sep_h2[80];
875 extern const char cs_sepline[80];
876 extern const char cs_med_sepline[50];
877 
878 /*============================================================================
879  * Public function prototypes
880  *============================================================================*/
881 
882 /*----------------------------------------------------------------------------*/
891 /*----------------------------------------------------------------------------*/
892 
893 bool
895 
896 /*----------------------------------------------------------------------------*/
904 /*----------------------------------------------------------------------------*/
905 
906 const char *
908 
909 /*----------------------------------------------------------------------------*/
917 /*----------------------------------------------------------------------------*/
918 
919 const char *
921 
922 /*----------------------------------------------------------------------------*/
930 /*----------------------------------------------------------------------------*/
931 
932 const char *
934 
935 /*----------------------------------------------------------------------------*/
943 /*----------------------------------------------------------------------------*/
944 
945 const char *
947 
948 /*----------------------------------------------------------------------------*/
956 /*----------------------------------------------------------------------------*/
957 
958 const char *
960 
961 /*----------------------------------------------------------------------------*/
970 /*----------------------------------------------------------------------------*/
971 
972 const char *
974 
975 /*----------------------------------------------------------------------------*/
983 /*----------------------------------------------------------------------------*/
984 
985 const char *
987 
988 /*----------------------------------------------------------------------------*/
996 /*----------------------------------------------------------------------------*/
997 
998 const char *
1000 
1001 /*----------------------------------------------------------------------------*/
1009 /*----------------------------------------------------------------------------*/
1010 
1011 const char *
1013 
1014 /*----------------------------------------------------------------------------*/
1022 /*----------------------------------------------------------------------------*/
1023 
1024 const char *
1026 
1027 /*----------------------------------------------------------------------------*/
1035 /*----------------------------------------------------------------------------*/
1036 
1037 const char *
1039 
1040 /*----------------------------------------------------------------------------*/
1048 /*----------------------------------------------------------------------------*/
1049 
1050 const char *
1052 
1053 /*----------------------------------------------------------------------------*/
1061 /*----------------------------------------------------------------------------*/
1062 
1063 const char *
1065 
1066 /*----------------------------------------------------------------------------*/
1074 /*----------------------------------------------------------------------------*/
1075 
1076 const char *
1078 
1079 /*----------------------------------------------------------------------------*/
1080 
1082 
1083 #endif /* __CS_PARAM_TYPES_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
#define END_C_DECLS
Definition: cs_defs.h:529
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
void() cs_dof_func_t(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, void *input, cs_real_t *retval)
Generic function pointer for computing a quantity at predefined locations such as degrees of freedom ...
Definition: cs_param_types.h:154
const char * cs_param_get_nl_algo_label(cs_param_nl_algo_t algo)
Get the label (short name) of the non-linear algorithm.
Definition: cs_param_types.c:466
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition: cs_param_types.h:211
@ CS_SPACE_SCHEME_CDOVCB
Definition: cs_param_types.h:215
@ CS_SPACE_SCHEME_HHO_P2
Definition: cs_param_types.h:221
@ CS_SPACE_SCHEME_LEGACY
Definition: cs_param_types.h:213
@ CS_SPACE_SCHEME_CDOEB
Definition: cs_param_types.h:216
@ CS_SPACE_SCHEME_CDOCB
Definition: cs_param_types.h:218
@ CS_SPACE_SCHEME_HHO_P0
Definition: cs_param_types.h:219
@ CS_SPACE_SCHEME_CDOFB
Definition: cs_param_types.h:217
@ CS_SPACE_SCHEME_CDOVB
Definition: cs_param_types.h:214
@ CS_SPACE_SCHEME_HHO_P1
Definition: cs_param_types.h:220
@ CS_SPACE_N_SCHEMES
Definition: cs_param_types.h:223
const char * cs_param_get_advection_extrapol_name(cs_param_advection_extrapol_t extrapol)
Get the label associated to the extrapolation used for the advection field.
Definition: cs_param_types.c:363
cs_param_advection_form_t
Definition: cs_param_types.h:307
@ CS_PARAM_ADVECTION_FORM_NONCONS
Definition: cs_param_types.h:310
@ CS_PARAM_ADVECTION_FORM_CONSERV
Definition: cs_param_types.h:309
@ CS_PARAM_ADVECTION_FORM_SKEWSYM
Definition: cs_param_types.h:311
@ CS_PARAM_N_ADVECTION_FORMULATIONS
Definition: cs_param_types.h:313
void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool dense_output, void *input, cs_real_t *retval)
Generic function pointer for an evaluation relying on an analytic function.
Definition: cs_param_types.h:127
const char cs_sep_h2[80]
Definition: cs_param_types.c:68
cs_param_resnorm_type_t
Definition: cs_param_types.h:835
@ CS_PARAM_RESNORM_FILTERED_RHS
Definition: cs_param_types.h:842
@ CS_PARAM_N_RESNORM_TYPES
Definition: cs_param_types.h:845
@ CS_PARAM_RESNORM_NORM2_RHS
Definition: cs_param_types.h:838
@ CS_PARAM_RESNORM_WEIGHTED_RHS
Definition: cs_param_types.h:840
@ CS_PARAM_RESNORM_NONE
Definition: cs_param_types.h:837
cs_param_solver_class_t
Class of iterative solvers to consider for solver the linear system.
Definition: cs_param_types.h:617
@ CS_PARAM_SOLVER_CLASS_CS
Definition: cs_param_types.h:619
@ CS_PARAM_SOLVER_CLASS_PETSC
Definition: cs_param_types.h:622
@ CS_PARAM_SOLVER_CLASS_MUMPS
Definition: cs_param_types.h:621
@ CS_PARAM_SOLVER_CLASS_HYPRE
Definition: cs_param_types.h:620
@ CS_PARAM_N_SOLVER_CLASSES
Definition: cs_param_types.h:624
const char * cs_param_get_precond_name(cs_param_precond_type_t precond)
Get the name of the preconditioner.
Definition: cs_param_types.c:583
cs_param_bc_type_t
Definition: cs_param_types.h:476
@ CS_PARAM_N_BC_TYPES
Definition: cs_param_types.h:488
@ CS_PARAM_BC_SLIDING
Definition: cs_param_types.h:484
@ CS_PARAM_BC_ROBIN
Definition: cs_param_types.h:483
@ CS_PARAM_BC_NEUMANN
Definition: cs_param_types.h:481
@ CS_PARAM_BC_DIRICHLET
Definition: cs_param_types.h:479
@ CS_PARAM_BC_HMG_DIRICHLET
Definition: cs_param_types.h:478
@ CS_PARAM_BC_NEUMANN_FULL
Definition: cs_param_types.h:482
@ CS_PARAM_BC_CIRCULATION
Definition: cs_param_types.h:485
@ CS_PARAM_BC_WALL_PRESCRIBED
Definition: cs_param_types.h:486
@ CS_PARAM_BC_HMG_NEUMANN
Definition: cs_param_types.h:480
cs_param_precond_type_t
Definition: cs_param_types.h:726
@ CS_PARAM_PRECOND_ILU0
Definition: cs_param_types.h:737
@ CS_PARAM_PRECOND_LU
Definition: cs_param_types.h:736
@ CS_PARAM_PRECOND_BJACOB_ILU0
Definition: cs_param_types.h:731
@ CS_PARAM_PRECOND_NONE
Definition: cs_param_types.h:728
@ CS_PARAM_PRECOND_GKB_GMRES
Definition: cs_param_types.h:735
@ CS_PARAM_PRECOND_BJACOB_SGS
Definition: cs_param_types.h:732
@ CS_PARAM_PRECOND_SSOR
Definition: cs_param_types.h:742
@ CS_PARAM_PRECOND_DIAG
Definition: cs_param_types.h:733
@ CS_PARAM_PRECOND_POLY1
Definition: cs_param_types.h:740
@ CS_PARAM_N_PRECOND_TYPES
Definition: cs_param_types.h:744
@ CS_PARAM_PRECOND_MUMPS
Definition: cs_param_types.h:739
@ CS_PARAM_PRECOND_AMG
Definition: cs_param_types.h:730
@ CS_PARAM_PRECOND_GKB_CG
Definition: cs_param_types.h:734
@ CS_PARAM_PRECOND_POLY2
Definition: cs_param_types.h:741
@ CS_PARAM_PRECOND_ICC0
Definition: cs_param_types.h:738
cs_param_advection_extrapol_t
Choice of how to extrapolate the advection field in the advection term.
Definition: cs_param_types.h:419
@ CS_PARAM_N_ADVECTION_EXTRAPOLATIONS
Definition: cs_param_types.h:425
@ CS_PARAM_ADVECTION_EXTRAPOL_NONE
Definition: cs_param_types.h:421
@ CS_PARAM_ADVECTION_EXTRAPOL_ADAMS_BASHFORTH_2
Definition: cs_param_types.h:423
@ CS_PARAM_ADVECTION_EXTRAPOL_TAYLOR_2
Definition: cs_param_types.h:422
const char * cs_param_get_advection_scheme_name(cs_param_advection_scheme_t scheme)
Get the label of the advection scheme.
Definition: cs_param_types.c:310
const char cs_sepline[80]
Definition: cs_param_types.c:70
const char * cs_param_get_advection_form_name(cs_param_advection_form_t adv_form)
Get the label associated to the advection formulation.
Definition: cs_param_types.c:286
cs_param_precond_block_t
Definition: cs_param_types.h:652
@ CS_PARAM_PRECOND_BLOCK_NONE
Definition: cs_param_types.h:654
@ CS_PARAM_PRECOND_BLOCK_DIAG
Definition: cs_param_types.h:655
@ CS_PARAM_PRECOND_BLOCK_LOWER_TRIANGULAR
Definition: cs_param_types.h:656
@ CS_PARAM_PRECOND_BLOCK_UPPER_TRIANGULAR
Definition: cs_param_types.h:658
@ CS_PARAM_N_PCD_BLOCK_TYPES
Definition: cs_param_types.h:660
@ CS_PARAM_PRECOND_BLOCK_SYM_GAUSS_SEIDEL
Definition: cs_param_types.h:657
const char * cs_param_get_precond_block_name(cs_param_precond_block_t type)
Get the name of the type of block preconditioning.
Definition: cs_param_types.c:650
const char cs_med_sepline[50]
Definition: cs_param_types.c:72
const char * cs_param_get_solver_name(cs_param_solver_type_t solver)
Get the name of the solver.
Definition: cs_param_types.c:513
cs_param_bc_enforce_t
Definition: cs_param_types.h:521
@ CS_PARAM_BC_ENFORCE_WEAK_SYM
Definition: cs_param_types.h:526
@ CS_PARAM_BC_ENFORCE_ALGEBRAIC
Definition: cs_param_types.h:523
@ CS_PARAM_BC_ENFORCE_PENALIZED
Definition: cs_param_types.h:524
@ CS_PARAM_BC_ENFORCE_WEAK_NITSCHE
Definition: cs_param_types.h:525
@ CS_PARAM_N_BC_ENFORCEMENTS
Definition: cs_param_types.h:528
const char * cs_param_get_advection_strategy_name(cs_param_advection_strategy_t adv_stra)
Get the label associated to the advection strategy.
Definition: cs_param_types.c:338
void() cs_time_func_t(double time, void *input, cs_real_t *retval)
Function which defines the evolution of a quantity according to the current time and any structure gi...
Definition: cs_param_types.h:172
bool cs_param_space_scheme_is_face_based(cs_param_space_scheme_t scheme)
Return true if the space scheme has degrees of freedom on faces, otherwise false.
Definition: cs_param_types.c:207
cs_param_time_scheme_t
Definition: cs_param_types.h:274
@ CS_TIME_SCHEME_THETA
Definition: cs_param_types.h:280
@ CS_TIME_SCHEME_BDF2
Definition: cs_param_types.h:281
@ CS_TIME_SCHEME_STEADY
Definition: cs_param_types.h:276
@ CS_TIME_SCHEME_EULER_EXPLICIT
Definition: cs_param_types.h:278
@ CS_TIME_N_SCHEMES
Definition: cs_param_types.h:283
@ CS_TIME_SCHEME_EULER_IMPLICIT
Definition: cs_param_types.h:277
@ CS_TIME_SCHEME_CRANKNICO
Definition: cs_param_types.h:279
const char * cs_param_get_nl_algo_name(cs_param_nl_algo_t algo)
Get the name of the non-linear algorithm.
Definition: cs_param_types.c:442
cs_param_nl_algo_t
Class of non-linear iterative algorithm.
Definition: cs_param_types.h:581
@ CS_PARAM_N_NL_ALGOS
Definition: cs_param_types.h:586
@ CS_PARAM_NL_ALGO_ANDERSON
Definition: cs_param_types.h:585
@ CS_PARAM_NL_ALGO_PICARD
Definition: cs_param_types.h:584
@ CS_PARAM_NL_ALGO_NONE
Definition: cs_param_types.h:583
const char * cs_param_get_bc_enforcement_name(cs_param_bc_enforce_t type)
Get the name of the type of enforcement of the boundary condition.
Definition: cs_param_types.c:417
cs_param_advection_scheme_t
Definition: cs_param_types.h:351
@ CS_PARAM_ADVECTION_SCHEME_UPWIND
Definition: cs_param_types.h:359
@ CS_PARAM_ADVECTION_SCHEME_SG
Definition: cs_param_types.h:358
@ CS_PARAM_N_ADVECTION_SCHEMES
Definition: cs_param_types.h:361
@ CS_PARAM_ADVECTION_SCHEME_HYBRID_CENTERED_UPWIND
Definition: cs_param_types.h:356
@ CS_PARAM_ADVECTION_SCHEME_CIP
Definition: cs_param_types.h:354
@ CS_PARAM_ADVECTION_SCHEME_SAMARSKII
Definition: cs_param_types.h:357
@ CS_PARAM_ADVECTION_SCHEME_CIP_CW
Definition: cs_param_types.h:355
@ CS_PARAM_ADVECTION_SCHEME_CENTERED
Definition: cs_param_types.h:353
const char * cs_param_get_bc_name(cs_param_bc_type_t bc)
Get the name of the type of boundary condition.
Definition: cs_param_types.c:387
cs_param_solver_type_t
Definition: cs_param_types.h:806
@ CS_PARAM_SOLVER_NONE
Definition: cs_param_types.h:808
@ CS_PARAM_SOLVER_USER_DEFINED
Definition: cs_param_types.h:823
@ CS_PARAM_SOLVER_GAUSS_SEIDEL
Definition: cs_param_types.h:817
@ CS_PARAM_SOLVER_MUMPS
Definition: cs_param_types.h:821
@ CS_PARAM_SOLVER_FGMRES
Definition: cs_param_types.h:816
@ CS_PARAM_SOLVER_GCR
Definition: cs_param_types.h:818
@ CS_PARAM_SOLVER_BICGS
Definition: cs_param_types.h:811
@ CS_PARAM_SOLVER_AMG
Definition: cs_param_types.h:810
@ CS_PARAM_N_SOLVER_TYPES
Definition: cs_param_types.h:825
@ CS_PARAM_SOLVER_GMRES
Definition: cs_param_types.h:819
@ CS_PARAM_SOLVER_BICGS2
Definition: cs_param_types.h:812
@ CS_PARAM_SOLVER_CR3
Definition: cs_param_types.h:814
@ CS_PARAM_SOLVER_JACOBI
Definition: cs_param_types.h:820
@ CS_PARAM_SOLVER_SYM_GAUSS_SEIDEL
Definition: cs_param_types.h:822
@ CS_PARAM_SOLVER_CG
Definition: cs_param_types.h:813
@ CS_PARAM_SOLVER_FCG
Definition: cs_param_types.h:815
const char * cs_param_get_time_scheme_name(cs_param_time_scheme_t scheme)
Get the name of the time discretization scheme.
Definition: cs_param_types.c:259
cs_param_dof_reduction_t
Definition: cs_param_types.h:239
@ CS_PARAM_N_REDUCTIONS
Definition: cs_param_types.h:244
@ CS_PARAM_REDUCTION_AVERAGE
Definition: cs_param_types.h:242
@ CS_PARAM_REDUCTION_DERHAM
Definition: cs_param_types.h:241
const char cs_sep_h1[80]
Definition: cs_param_types.c:66
const char * cs_param_get_dotprod_type_name(cs_param_dotprod_type_t dp_type)
Get the name of the type of dot product to apply.
Definition: cs_param_types.c:490
const char * cs_param_get_space_scheme_name(cs_param_space_scheme_t scheme)
Get the name of the space discretization scheme.
Definition: cs_param_types.c:229
cs_param_advection_strategy_t
Choice of how to handle the advection term in an equation.
Definition: cs_param_types.h:384
@ CS_PARAM_ADVECTION_IMPLICIT_LINEARIZED
Definition: cs_param_types.h:387
@ CS_PARAM_N_ADVECTION_STRATEGIES
Definition: cs_param_types.h:390
@ CS_PARAM_ADVECTION_IMPLICIT_FULL
Definition: cs_param_types.h:386
@ CS_PARAM_ADVECTION_EXPLICIT
Definition: cs_param_types.h:388
cs_param_dotprod_type_t
Definition: cs_param_types.h:854
@ CS_PARAM_DOTPROD_CDO
Definition: cs_param_types.h:857
@ CS_PARAM_DOTPROD_EUCLIDEAN
Definition: cs_param_types.h:856
@ CS_PARAM_N_DOTPROD_TYPES
Definition: cs_param_types.h:859
char * algo
Definition: field_names.h:96
Set of parameters to check the convergence (or the divergence) of an iterative process (tolerances or...
Definition: cs_param_types.h:537
double atol
Definition: cs_param_types.h:554
double dtol
Definition: cs_param_types.h:556
int n_max_iter
Definition: cs_param_types.h:557
double rtol
Definition: cs_param_types.h:555