programmer's documentation
cs_parameters.h
Go to the documentation of this file.
1 #ifndef __CS_PARAMETERS_H__
2 #define __CS_PARAMETERS_H__
3 
4 /*============================================================================
5  * General parameters management.
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2016 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  * Standard C library headers
32  *----------------------------------------------------------------------------*/
33 
34 #include <stdarg.h>
35 
36 /*----------------------------------------------------------------------------
37  * Local headers
38  *----------------------------------------------------------------------------*/
39 
40 #include "cs_defs.h"
41 #include "cs_field.h"
42 
43 /*----------------------------------------------------------------------------*/
44 
46 
47 /*=============================================================================
48  * Macro definitions
49  *============================================================================*/
50 
51 /*============================================================================
52  * Type definitions
53  *============================================================================*/
54 
55 /* Parameter check behavior when an error is detected */
56 
57 typedef enum {
58 
62 
64 
65 /*----------------------------------------------------------------------------
66  * Structure of variable calculation options
67  *----------------------------------------------------------------------------*/
68 
69 typedef struct {
70  int iwarni;
71  int iconv;
72  int istat;
73  int idiff;
74  int idifft;
75  int idften;
76  int iswdyn;
77  int ischcv;
78  int ibdtso;
79  int isstpc;
80  int nswrgr;
81  int nswrsm;
82  int imrgra;
83  int imligr;
84  int ircflu;
85  int iwgrec; /* gradient calculation
86  - 0: standard (default)
87  - 1: weighted (could be used with imvisf = 1) */
88  double thetav;
89  double blencv;
90  double epsilo;
91  double epsrsm;
92  double epsrgr;
93  double climgr;
94  double extrag;
95  double relaxv;
97 
98 /*----------------------------------------------------------------------------
99  * Structure of the solving info
100  *----------------------------------------------------------------------------*/
101 
102 typedef struct {
103  int n_it;
104  double rhs_norm;
105  double res_norm;
106  double derive;
107  double l2residual;
109 
110 /*----------------------------------------------------------------------------
111  * Structure of condensation modelling physical properties
112  *----------------------------------------------------------------------------*/
113 
114 typedef struct {
115  double mol_mas;
116  double cp;
117  double vol_dif;
118  double mu_a;
119  double mu_b;
120  double lambda_a;
121  double lambda_b;
122  double muref; /* ref. viscosity for Sutherland law */
123  double lamref; /* ref. thermal conductivity for Sutherland law */
124  double trefmu; /* ref. temperature for viscosity in Sutherland law */
125  double treflam; /* ref. temperature for conductivity Sutherland law */
126  double smu; /* Sutherland temperature for viscosity */
127  double slam; /* Sutherland temperature for conductivity */
129 
130 /*----------------------------------------------------------------------------
131  * Boundary condition types
132  *----------------------------------------------------------------------------*/
133 
134 enum {
135  CS_INDEF = 1,
136  CS_INLET = 2,
141  CS_ESICF = 7,
142  CS_SSPCF = 8,
143  CS_SOPCF = 9,
144  CS_EPHCF = 10,
145  CS_EQHCF = 11,
146  CS_COUPLED = 12, /* coupled face */
147  CS_COUPLED_FD = 13, /* coupled face with decentered flux */
151 };
152 
153 /*----------------------------------------------------------------------------
154  * Space discretisation options descriptor
155  *----------------------------------------------------------------------------*/
156 
157 typedef struct {
158 
159  int imvisf; /* face viscosity field interpolation
160  - 1: harmonic
161  - 0: arithmetic (default) */
162 
163  int imrgra; /* type of gradient reconstruction
164  - 0: iterative process
165  - 1: standard least square method
166  - 2: least square method with extended
167  neighborhood
168  - 3: least square method with reduced extended
169  neighborhood
170  - 4: iterative precess initialized by the least
171  square method */
172 
173  double anomax; /* non orthogonality angle of the faces, in radians.
174  For larger angle values, cells with one node
175  on the wall are kept in the extended support of
176  the neighboring cells. */
177 
178  int iflxmw; /* method to compute interior mass flux due to ALE
179  mesh velocity
180  - 1: based on cell center mesh velocity
181  - 0: based on nodes displacement */
182 
184 
185 /*----------------------------------------------------------------------------
186  * PISO descriptor
187  *----------------------------------------------------------------------------*/
188 
189 typedef struct {
190 
191  int nterup; /* number of interations on the pressure-velocity
192  coupling on Navier-Stokes */
193 
194  double epsup; /* relative precision for the convergence test of
195  the iterative process on pressure-velocity
196  coupling */
197 
198  double xnrmu; /* norm of the increment
199  \f$ \vect{u}^{k+1} - \vect{u}^k \f$
200  of the iterative process on pressure-velocity
201  coupling */
202 
203  double xnrmu0; /* norm of \f$ \vect{u}^0 \f$ */
204 
205 } cs_piso_t;
206 
207 /*============================================================================
208  * Static global variables
209  *============================================================================*/
210 
211 /* Pointer to space discretisation options structure */
212 
213 extern const cs_space_disc_t *cs_glob_space_disc;
214 
215 /* Pointer to PISO options structure */
216 
217 extern const cs_piso_t *cs_glob_piso;
218 
219 /*=============================================================================
220  * Public function prototypes
221  *============================================================================*/
222 
223 /*----------------------------------------------------------------------------*/
231 /*----------------------------------------------------------------------------*/
232 
233 cs_piso_t *
234 cs_get_glob_piso(void);
235 
236 /*----------------------------------------------------------------------------*/
243 /*----------------------------------------------------------------------------*/
244 
245 void
247 
248 /*----------------------------------------------------------------------------*/
254 /*----------------------------------------------------------------------------*/
255 
256 void
258 
259 /*----------------------------------------------------------------------------*/
265 /*----------------------------------------------------------------------------*/
266 
267 void
269 
270 /*----------------------------------------------------------------------------*/
279 /*----------------------------------------------------------------------------*/
280 
281 void
282 cs_parameters_add_variable(const char *name,
283  int dim);
284 
285 /*----------------------------------------------------------------------------*/
294 /*----------------------------------------------------------------------------*/
295 
296 void
297 cs_parameters_add_variable_variance(const char *name,
298  const char *variable_name);
299 
300 /*----------------------------------------------------------------------------*/
308 /*----------------------------------------------------------------------------*/
309 
310 void
311 cs_parameters_add_property(const char *name,
312  int dim,
313  int location_id);
314 
315 /*----------------------------------------------------------------------------*/
324 /*----------------------------------------------------------------------------*/
325 
326 int
328 
329 /*----------------------------------------------------------------------------*/
338 /*----------------------------------------------------------------------------*/
339 
340 int
342 
343 /*----------------------------------------------------------------------------*/
347 /*----------------------------------------------------------------------------*/
348 
349 void
351 
352 /*----------------------------------------------------------------------------*/
356 /*----------------------------------------------------------------------------*/
357 
358 void
360 
361 /*----------------------------------------------------------------------------*/
369 /*----------------------------------------------------------------------------*/
370 
371 cs_field_t *
373 
374 /*----------------------------------------------------------------------------*/
385 /*----------------------------------------------------------------------------*/
386 
387 cs_field_t *
389 
390 /*----------------------------------------------------------------------------*/
397 /*----------------------------------------------------------------------------*/
398 
401 
402 /*----------------------------------------------------------------------------*/
412 /*----------------------------------------------------------------------------*/
413 
414 #if defined(__GNUC__)
415 
416 void
418  const char *section_desc,
419  const char *format,
420  ...)
421  __attribute__((format(printf, 3, 4)));
422 
423 #else
424 
425 void
427  const char *section_desc,
428  const char *format,
429  ...);
430 
431 #endif
432 
433 /*----------------------------------------------------------------------------*/
443 /*----------------------------------------------------------------------------*/
444 
445 void
447  const char *section_desc,
448  const char *format,
449  ...);
450 
451 /*----------------------------------------------------------------------------*/
459 /*----------------------------------------------------------------------------*/
460 
461 void
463  const char *section_desc);
464 
465 /*----------------------------------------------------------------------------*/
471 /*----------------------------------------------------------------------------*/
472 
473 void
475 
476 /*----------------------------------------------------------------------------*/
488 /*----------------------------------------------------------------------------*/
489 
490 void
492  const char *section_desc,
493  const char *param_name,
494  int param_value,
495  int range_l,
496  int range_u);
497 
498 /*----------------------------------------------------------------------------*/
512 /*----------------------------------------------------------------------------*/
513 
514 void
516  const char *section_desc,
517  const char *param_name,
518  int param_value,
519  int enum_size,
520  const int *enum_values,
521  const char *enum_names[]);
522 
523 /*----------------------------------------------------------------------------*/
527 /*----------------------------------------------------------------------------*/
528 
529 void
531 
532 /*----------------------------------------------------------------------------*/
533 
535 
536 #endif /* __CS_PARAMETERS_H__ */
Definition: cs_parameters.h:141
cs_field_t * cs_parameters_add_boundary_values(cs_field_t *f)
Define a boundary values field for a variable field.
Definition: cs_parameters.c:790
Definition: cs_parameters.h:102
double mol_mas
Definition: cs_parameters.h:115
int nswrsm
Definition: cs_parameters.h:81
double epsilo
Definition: cs_parameters.h:90
double slam
Definition: cs_parameters.h:127
int idiff
Definition: cs_parameters.h:73
const cs_space_disc_t * cs_glob_space_disc
Definition: cs_parameters.h:138
void cs_parameters_create_added_variables(void)
Create previously added user variables.
Definition: cs_parameters.c:669
Field descriptor.
Definition: cs_field.h:121
int nterup
Definition: cs_parameters.h:191
double lambda_a
Definition: cs_parameters.h:120
Definition: cs_parameters.h:150
double smu
Definition: cs_parameters.h:126
double lambda_b
Definition: cs_parameters.h:121
int iswdyn
Definition: cs_parameters.h:76
int istat
Definition: cs_parameters.h:72
void cs_parameters_add_variable(const char *name, int dim)
Solved variables are always defined on cells.
Definition: cs_parameters.c:545
void cs_parameters_read_restart_info(void)
Read general restart info.
Definition: cs_parameters.c:523
#define BEGIN_C_DECLS
Definition: cs_defs.h:448
void cs_parameters_add_variable_variance(const char *name, const char *variable_name)
Define a user variable which is a variance of another variable.
Definition: cs_parameters.c:581
double trefmu
Definition: cs_parameters.h:124
Definition: cs_parameters.h:140
double thetav
Definition: cs_parameters.h:88
void cs_parameters_add_property(const char *name, int dim, int location_id)
Define a user property.
Definition: cs_parameters.c:613
double anomax
Definition: cs_parameters.h:173
Definition: cs_parameters.h:149
int ircflu
Definition: cs_parameters.h:84
double extrag
Definition: cs_parameters.h:94
double cp
Definition: cs_parameters.h:116
double blencv
Definition: cs_parameters.h:89
void cs_parameters_create_added_properties(void)
Create previously added user properties.
Definition: cs_parameters.c:742
int imrgra
Definition: cs_parameters.h:82
Definition: cs_parameters.h:135
Definition: cs_parameters.h:114
Definition: cs_parameters.h:136
int idften
Definition: cs_parameters.h:75
void cs_parameters_error(cs_parameter_error_behavior_t err_behavior, const char *section_desc, const char *format,...)
Print general parameters error or warning info.
Definition: cs_parameters.c:999
Definition: cs_parameters.h:148
int iwgrec
Definition: cs_parameters.h:85
int iconv
Definition: cs_parameters.h:71
int iwarni
Definition: cs_parameters.h:70
int idifft
Definition: cs_parameters.h:74
double epsup
Definition: cs_parameters.h:194
int cs_parameters_n_added_variables(void)
Return the number of defined user variables not added yet.
Definition: cs_parameters.c:643
double vol_dif
Definition: cs_parameters.h:117
cs_piso_t * cs_get_glob_piso(void)
Provide acces to cs_glob_piso.
Definition: cs_parameters.c:413
double epsrsm
Definition: cs_parameters.h:91
void cs_parameters_define_field_key_gas_mix(void)
Define field key for condensation.
Definition: cs_parameters.c:503
int imrgra
Definition: cs_parameters.h:163
double xnrmu
Definition: cs_parameters.h:198
double climgr
Definition: cs_parameters.h:93
const cs_piso_t * cs_glob_piso
Definition: cs_parameters.h:139
int ibdtso
Definition: cs_parameters.h:78
void cs_parameters_error_header(cs_parameter_error_behavior_t err_behavior, const char *section_desc)
Print header for a given parameters error message type.
Definition: cs_parameters.c:1029
Definition: cs_parameters.h:59
double mu_a
Definition: cs_parameters.h:118
int n_it
Definition: cs_parameters.h:103
double l2residual
Definition: cs_parameters.h:107
int imligr
Definition: cs_parameters.h:83
PISO options descriptor.
Definition: cs_parameters.h:189
Definition: cs_parameters.h:69
void cs_parameters_is_in_range_int(cs_parameter_error_behavior_t err_behavior, const char *section_desc, const char *param_name, int param_value, int range_l, int range_u)
Check that a given integer keyword has values in a specified range.
Definition: cs_parameters.c:1086
Definition: cs_parameters.h:142
#define END_C_DECLS
Definition: cs_defs.h:449
void cs_parameters_is_in_list_int(cs_parameter_error_behavior_t err_behavior, const char *section_desc, const char *param_name, int param_value, int enum_size, const int *enum_values, const char *enum_names[])
Check that a given integer keyword has values in a specified range.
Definition: cs_parameters.c:1125
Definition: cs_parameters.h:61
int imvisf
Definition: cs_parameters.h:159
Definition: cs_parameters.h:157
Definition: cs_parameters.h:147
double relaxv
Definition: cs_parameters.h:95
int cs_parameters_n_added_properties(void)
Return the number of defined user properties not added yet.
Definition: cs_parameters.c:657
cs_parameter_error_behavior_t
Definition: cs_parameters.h:57
double lamref
Definition: cs_parameters.h:123
void cs_parameters_error_barrier(void)
Abort if the the parameter errors count is nonzero.
Definition: cs_parameters.c:1183
Definition: cs_parameters.h:143
Definition: cs_parameters.h:144
double muref
Definition: cs_parameters.h:122
int ischcv
Definition: cs_parameters.h:77
double rhs_norm
Definition: cs_parameters.h:104
Definition: cs_parameters.h:60
void cs_parameters_define_field_keys(void)
Define general field keys.
Definition: cs_parameters.c:428
int nswrgr
Definition: cs_parameters.h:80
void cs_parameters_error_footer(cs_parameter_error_behavior_t err_behavior)
Print footer for a given parameters error message type.
Definition: cs_parameters.c:1063
Definition: cs_parameters.h:145
int iflxmw
Definition: cs_parameters.h:178
Definition: cs_parameters.h:146
Definition: cs_parameters.h:137
double xnrmu0
Definition: cs_parameters.h:203
double treflam
Definition: cs_parameters.h:125
double derive
Definition: cs_parameters.h:106
cs_var_cal_opt_t cs_parameters_var_cal_opt_default(void)
Return a local variable calculation options structure, with default options.
Definition: cs_parameters.c:981
double mu_b
Definition: cs_parameters.h:119
cs_field_t * cs_parameters_add_boundary_temperature(void)
Define a boundary values field for temperature, if applicable.
Definition: cs_parameters.c:895
double epsrgr
Definition: cs_parameters.h:92
int isstpc
Definition: cs_parameters.h:79
double res_norm
Definition: cs_parameters.h:105