programmer's documentation
cs_turbulence_model.h
Go to the documentation of this file.
1 #ifndef __CS_TURBULENCE_MODEL_H__
2 #define __CS_TURBULENCE_MODEL_H__
3 
4 /*============================================================================
5  * Base turbulence model data.
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2018 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 
44 /*============================================================================
45  * Type definitions
46  *============================================================================*/
47 
48 /* turbulence model general options descriptor */
49 /*---------------------------------------------*/
50 
51 typedef struct {
52 
53  int iturb; /* turbulence model
54  - 0: no turbulence model (laminar flow)
55  - 10: mixing length model
56  - 20: standard k-epsilon model
57  - 21: k-epsilon model with Linear
58  Production (LP) correction
59  - 30: Rij-epsilon (LRR)
60  - 31: Rij-epsilon (SSG)
61  - 32: Rij-epsilon (EBRSM)
62  - 40: LES (constant Smagorinsky model)
63  - 41: LES ("classical" dynamic Smagorisky
64  model)
65  - 42: LES (WALE)
66  - 50: v2f phi-model
67  - 51: v2f BL-v2-k
68  - 60: k-omega SST
69  - 70: Spalart-Allmaras model */
70  int itytur; /* class of turbulence model (integer value
71  iturb/10) */
73 
74 
75 /* Reference values for turbulence structure and associated pointer */
76 /*------------------------------------------------------------------*/
77 
78 typedef struct {
79  double almax; /* characteristic macroscopic length of the
80  domain */
81  double uref; /* characteristic flow velocity */
83 
84 
85 /* rans turbulence model descriptor */
86 /*----------------------------------*/
87 
88 typedef struct {
89 
90  int irccor; /* activation of rotation/curvature correction for
91  an eddy viscosity turbulence models
92  - 0: false
93  - 1: true */
94  int itycor; /* type of rotation/curvature correction for an
95  eddy viscosity turbulence models
96  - 1: Cazalbou correction (default when irccor=1
97  and itytur=2 or 5)
98  - 2: Spalart-Shur correction (default when
99  irccor=1 and iturb=60 or 70) */
100  int idirsm; /* turbulent diffusion model for second moment
101  closure
102  - 0: scalar diffusivity (Shir model)
103  - 1: tensorial diffusivity (Daly and Harlow
104  model, default model) */
105  int iclkep; /* clipping of k and epsilon
106  - 0: absolute value clipping
107  - 1: coupled clipping based on physical
108  relationships */
109  int igrhok; /* take (2/3 rho grad k) in the momentum
110  equation
111  - 1: true
112  - 0: false (default) */
113  int igrake; /* buoyant term in k-epsilon
114  - 1: true (default if rho is variable)
115  - 0: false */
116  int igrari; /* buoyant term in Rij-epsilon
117  - 1: true (default if rho is variable)
118  - 0: false */
119  int ikecou; /* partially coupled version of
120  k-epsilon (only for iturb=20)
121  - 1: true (default)
122  - 0: false */
123  int reinit_turb; /* Advanced re-init for EBRSM and k-omega models
124  - 1: true (default)
125  - 0: false */
126  int irijco; /* coupled solving of Rij
127  - 1: true
128  - 0: false (default) */
129  int irijnu; /* pseudo eddy viscosity in the matrix of momentum
130  equation to partially implicit div( rho R )
131  - 1: true
132  - 0: false (default) */
133  int irijrb; /* accurate treatment of R at the boundary (see
134  \ref condli)
135  - 1: true
136  - 0: false (default) */
137  int irijec; /* wall echo term of R
138  - 1: true
139  - 0: false (default) */
140  int idifre; /* whole treatment of the diagonal part of the
141  diffusion tensor of R and epsilon
142  - 1: true (default)
143  - 0: simplified treatment */
144  int iclsyr; /* partial implicitation of symmetry BCs of R
145  - 1: true (default)
146  - 0: false */
147  int iclptr; /* partial implicitation of wall BCs of R
148  - 1: true
149  - 0: false (default) */
150  double xlomlg; /* mixing length */
151 
153 
154 /* les turbulence model descriptor */
155 /*---------------------------------*/
156 
157 typedef struct {
158 
159  int idries; /* Van Driest smoothing at the wall (only for
160  itytur=4)
161  - 1: true
162  - 0: false */
163  int ivrtex; /* vortex method (in LES)
164  - 1: true
165  - 0: false (default) */
166 
168 
169 /*============================================================================
170  * Static global variables
171  *============================================================================*/
172 
173 /* Pointer to main turbulence model descriptor structure */
174 
175 extern const cs_turb_model_t *cs_glob_turb_model;
176 
177 /* Pointer to reference values for turbulence descriptor structure */
178 
180 
181 /* Pointer to RANS turbulence model descriptor structure */
182 
184 
185 /* Pointer to LES turbulence model descriptor structure */
186 
188 
189 /* Constant for turbulence models */
190 
191 extern const double cs_turb_xkappa;
192 extern const double cs_turb_vdriest;
193 extern const double cs_turb_cstlog;
194 extern const double cs_turb_cstlog_rough;
195 extern double cs_turb_cstlog_alpha;
196 extern const double cs_turb_apow;
197 extern const double cs_turb_bpow;
198 extern double cs_turb_dpow;
199 extern const double cs_turb_cmu;
200 extern double cs_turb_cmu025;
201 extern const double cs_turb_ce1;
202 extern const double cs_turb_ce2;
203 extern const double cs_turb_ce4;
204 extern const double cs_turb_sigmak;
205 extern double cs_turb_sigmae;
206 extern double cs_turb_crij1;
207 extern double cs_turb_crij2;
208 extern const double cs_turb_crij3;
209 extern const double cs_turb_crijp1;
210 extern const double cs_turb_crijp2;
211 extern const double cs_turb_cssge2;
212 extern const double cs_turb_cssgs1;
213 extern const double cs_turb_cssgs2;
214 extern const double cs_turb_cssgr1;
215 extern const double cs_turb_cssgr2;
216 extern const double cs_turb_cssgr3;
217 extern const double cs_turb_cssgr4;
218 extern const double cs_turb_cssgr5;
219 extern const double cs_turb_cebms1;
220 extern const double cs_turb_cebms2;
221 extern const double cs_turb_cebmr1, cebmr2, cebmr3, cebmr4, cebmr5, cebmr6;
222 extern double cs_turb_csrij;
223 extern const double cs_turb_cebme2;
224 extern const double cs_turb_cebmmu;
225 extern const double cs_turb_xcl;
226 extern const double cs_turb_xa1;
227 extern const double cs_turb_xct;
228 extern const double cs_turb_xceta;
229 extern const double cs_turb_cpale1;
230 extern const double cs_turb_cpale2;
231 extern const double cs_turb_cpale3;
232 extern const double cs_turb_cpale4;
233 extern const double cs_turb_cpalse;
234 extern const double cs_turb_cpalmu;
235 extern const double cs_turb_cpalc1;
236 extern const double cs_turb_cpalc2;
237 extern const double cs_turb_cpalct;
238 extern const double cs_turb_cpalcl;
239 extern const double cs_turb_cpalet;
240 extern const double cs_turb_ckwsk1;
241 extern const double cs_turb_ckwsk2;
242 extern const double cs_turb_ckwsw1;
243 extern const double cs_turb_ckwsw2;
244 extern const double cs_turb_ckwbt1;
245 extern const double cs_turb_ckwbt2;
246 extern double cs_turb_ckwgm1;
247 extern double cs_turb_ckwgm2;
248 extern const double cs_turb_ckwa1;
249 extern const double cs_turb_ckwc1;
250 extern const double cs_turb_csab1;
251 extern const double cs_turb_csab2;
252 extern const double cs_turb_csasig;
253 extern const double cs_turb_csav1;
254 extern double cs_turb_csaw1;
255 extern const double cs_turb_csaw2;
256 extern const double cs_turb_csaw3;
257 extern const double cs_turb_cssr1;
258 extern const double cs_turb_cssr2;
259 extern const double cs_turb_cssr3;
260 extern const double cs_turb_ccaze2;
261 extern const double cs_turb_ccazsc;
262 extern const double cs_turb_ccaza;
263 extern const double cs_turb_ccazb;
264 extern const double cs_turb_ccazc;
265 extern const double cs_turb_ccazd;
266 extern const double cs_turb_xlesfl;
267 extern const double cs_turb_ales;
268 extern const double cs_turb_bles;
269 extern double cs_turb_csmago;
270 extern const double cs_turb_xlesfd;
271 extern double cs_turb_smagmx;
272 extern double cs_turb_smagmn;
273 extern const double cs_turb_cdries;
274 extern const double cs_turb_cv2fa1;
275 extern const double cs_turb_cv2fe2;
276 extern const double cs_turb_cv2fmu;
277 extern const double cs_turb_cv2fc1;
278 extern const double cs_turb_cv2fc2;
279 extern const double cs_turb_cv2fct;
280 extern const double cs_turb_cv2fcl;
281 extern const double cs_turb_cv2fet;
282 extern const double cs_turb_cwale;
283 extern const double cs_turb_xiafm;
284 extern const double cs_turb_etaafm;
285 extern const double cs_turb_c1trit;
286 extern const double cs_turb_c2trit;
287 extern const double cs_turb_c3trit;
288 extern const double cs_turb_c4trit;
289 extern const double cs_turb_cthafm;
290 extern const double cs_turb_cthdfm;
291 
292 /*=============================================================================
293  * Public function prototypes
294  *============================================================================*/
295 
296 /*----------------------------------------------------------------------------
297  * Provide acces to cs_glob_turb_model
298  *
299  * needed to initialize structure with GUI
300  *----------------------------------------------------------------------------*/
301 
304 
305 /*----------------------------------------------------------------------------
306  * Compute turbulence model constants,
307  * some of which may depend on the model choice.
308  *----------------------------------------------------------------------------*/
309 
310 void
312 
313 /*----------------------------------------------------------------------------
314  * Provide acces to cs_glob_turb_ref_values
315  *
316  * needed to initialize structure with GUI
317  *----------------------------------------------------------------------------*/
318 
321 
322 /*----------------------------------------------------------------------------
323  * Provide acces to cs_glob_turb_rans_model
324  *
325  * needed to initialize structure with GUI
326  *----------------------------------------------------------------------------*/
327 
330 
331 /*----------------------------------------------------------------------------
332  * Provide acces to cs_glob_turb_les_model
333  *
334  * needed to initialize structure with GUI
335  *----------------------------------------------------------------------------*/
336 
339 
340 /*----------------------------------------------------------------------------*
341  * Print the turbulence model parameters to setup.log.
342  *----------------------------------------------------------------------------*/
343 
344 void
346 
347 /*----------------------------------------------------------------------------*
348  * Print the turbulent constants to setup.log.
349  *----------------------------------------------------------------------------*/
350 
351 void
353 
354 /*----------------------------------------------------------------------------*/
355 
357 
358 #endif /* __CS_TURBULENCE_MODEL_H__ */
const double cs_turb_csav1
Definition: cs_turbulence_model.c:707
const double cs_turb_cv2fmu
Definition: cs_turbulence_model.c:866
const double cs_turb_ckwsw1
Definition: cs_turbulence_model.c:632
const double cs_turb_cstlog
Definition: cs_turbulence_model.c:382
double cs_turb_csrij
Definition: cs_turbulence_model.c:563
int itytur
Definition: cs_turbulence_model.h:70
const double cs_turb_ckwsw2
Definition: cs_turbulence_model.c:638
const cs_turb_rans_model_t * cs_glob_turb_rans_model
const double cs_turb_cebmr1
Definition: cs_turbulence_model.c:552
const double cs_turb_cssgr4
Definition: cs_turbulence_model.c:538
const double cs_turb_cssgr2
Definition: cs_turbulence_model.c:526
void cs_turb_constants_log_setup(void)
Print the turbulent constants to setup.log.
Definition: cs_turbulence_model.c:1536
double cs_turb_ckwgm2
Definition: cs_turbulence_model.c:673
const double cebmr5
Definition: cstphy.f90:433
const double cs_turb_cpalct
Definition: cs_turbulence_model.c:608
double xlomlg
Definition: cs_turbulence_model.h:150
const double cs_turb_c3trit
Definition: cs_turbulence_model.c:926
int irijec
Definition: cs_turbulence_model.h:137
const double cs_turb_ccazd
Definition: cs_turbulence_model.c:767
const double cs_turb_crijp2
Definition: cs_turbulence_model.c:496
const double cs_turb_cv2fe2
Definition: cs_turbulence_model.c:860
#define BEGIN_C_DECLS
Definition: cs_defs.h:451
cs_turb_les_model_t * cs_get_glob_turb_les_model(void)
Provide acces to cs_glob_turb_les_model.
Definition: cs_turbulence_model.c:1212
const double cs_turb_ccaze2
Definition: cs_turbulence_model.c:742
Turbulence model general options descriptor.
Definition: cs_turbulence_model.h:51
int idries
Definition: cs_turbulence_model.h:159
int irijrb
Definition: cs_turbulence_model.h:133
double cs_turb_crij2
Definition: cs_turbulence_model.c:473
const double cs_turb_ales
Definition: cs_turbulence_model.c:786
double almax
Definition: cs_turbulence_model.h:79
double cs_turb_crij1
Definition: cs_turbulence_model.c:467
const double cs_turb_cssr3
Definition: cs_turbulence_model.c:737
const double cebmr2
Definition: cstphy.f90:433
const double cs_turb_xceta
Definition: cs_turbulence_model.c:581
int igrari
Definition: cs_turbulence_model.h:116
int irccor
Definition: cs_turbulence_model.h:90
const double cs_turb_ce4
Definition: cs_turbulence_model.c:448
double cs_turb_sigmae
Definition: cs_turbulence_model.c:461
const double cs_turb_ckwsk2
Definition: cs_turbulence_model.c:626
int itycor
Definition: cs_turbulence_model.h:94
const double cs_turb_cssgr3
Definition: cs_turbulence_model.c:532
int igrake
Definition: cs_turbulence_model.h:113
const double cs_turb_xiafm
Definition: cs_turbulence_model.c:906
const cs_turb_les_model_t * cs_glob_turb_les_model
Definition: cs_turbulence_model.h:78
const double cs_turb_crijp1
Definition: cs_turbulence_model.c:488
const double cs_turb_sigmak
Definition: cs_turbulence_model.c:454
const double cs_turb_cpalc2
Definition: cs_turbulence_model.c:605
const double cs_turb_cpale2
Definition: cs_turbulence_model.c:587
int irijnu
Definition: cs_turbulence_model.h:129
const double cs_turb_apow
Definition: cs_turbulence_model.c:406
int reinit_turb
Definition: cs_turbulence_model.h:123
int iclptr
Definition: cs_turbulence_model.h:147
const double cs_turb_cpale3
Definition: cs_turbulence_model.c:590
void cs_turb_model_log_setup(void)
Print the turbulence model parameters to setup.log.
Definition: cs_turbulence_model.c:1224
const double cs_turb_xa1
Definition: cs_turbulence_model.c:575
const double cs_turb_cebmmu
Definition: cs_turbulence_model.c:569
const double cs_turb_ckwa1
Definition: cs_turbulence_model.c:680
double cs_turb_cmu025
Definition: cs_turbulence_model.c:423
const double cs_turb_cebms2
Definition: cs_turbulence_model.c:550
const double cs_turb_cv2fc1
Definition: cs_turbulence_model.c:872
const double cs_turb_cv2fa1
Definition: cs_turbulence_model.c:854
const double cs_turb_xlesfl
Definition: cs_turbulence_model.c:777
const double cs_turb_cpalse
Definition: cs_turbulence_model.c:596
const double cebmr3
Definition: cstphy.f90:433
const double cs_turb_c1trit
Definition: cs_turbulence_model.c:916
const double cs_turb_bles
Definition: cs_turbulence_model.c:795
RANS turbulence model descriptor.
Definition: cs_turbulence_model.h:88
void cs_turb_compute_constants(void)
Compute turbulence model constants, some of which may depend on the model choice. ...
Definition: cs_turbulence_model.c:1139
const cs_turb_ref_values_t * cs_glob_turb_ref_values
const double cs_turb_cmu
Definition: cs_turbulence_model.c:420
const double cs_turb_csaw3
Definition: cs_turbulence_model.c:722
const double cs_turb_cv2fct
Definition: cs_turbulence_model.c:884
const double cs_turb_cssgs1
Definition: cs_turbulence_model.c:508
const double cs_turb_cv2fet
Definition: cs_turbulence_model.c:896
const double cs_turb_cv2fc2
Definition: cs_turbulence_model.c:878
const double cs_turb_cstlog_rough
Definition: cs_turbulence_model.c:393
const double cs_turb_xkappa
Definition: cs_turbulence_model.c:362
double cs_turb_ckwgm1
Definition: cs_turbulence_model.c:662
const double cs_turb_csab2
Definition: cs_turbulence_model.c:697
const double cs_turb_csab1
Definition: cs_turbulence_model.c:692
const double cs_turb_ccazc
Definition: cs_turbulence_model.c:762
const double cs_turb_ccazsc
Definition: cs_turbulence_model.c:747
int ikecou
Definition: cs_turbulence_model.h:119
const double cebmr6
Definition: cstphy.f90:433
const double cs_turb_cssgr5
Definition: cs_turbulence_model.c:544
const double cs_turb_ccazb
Definition: cs_turbulence_model.c:757
double cs_turb_smagmx
Definition: cs_turbulence_model.c:829
const double cs_turb_ckwbt2
Definition: cs_turbulence_model.c:650
const double cs_turb_cpalcl
Definition: cs_turbulence_model.c:611
cs_turb_ref_values_t * cs_get_glob_turb_ref_values(void)
Provide acces to cs_glob_turb_ref_values.
Definition: cs_turbulence_model.c:1184
int idifre
Definition: cs_turbulence_model.h:140
int iturb
Definition: cs_turbulence_model.h:53
const double cs_turb_ckwsk1
Definition: cs_turbulence_model.c:620
const double cs_turb_cpalet
Definition: cs_turbulence_model.c:614
LES turbulence model descriptor.
Definition: cs_turbulence_model.h:157
const double cebmr4
Definition: cstphy.f90:433
const double cs_turb_vdriest
Definition: cs_turbulence_model.c:371
#define END_C_DECLS
Definition: cs_defs.h:452
const double cs_turb_cpale1
Definition: cs_turbulence_model.c:584
const double cs_turb_cthafm
Definition: cs_turbulence_model.c:936
double cs_turb_smagmn
Definition: cs_turbulence_model.c:839
cs_turb_model_t * cs_get_glob_turb_model(void)
Provide acces to cs_glob_turb_model.
Definition: cs_turbulence_model.c:1126
const double cs_turb_ce1
Definition: cs_turbulence_model.c:431
const double cs_turb_csasig
Definition: cs_turbulence_model.c:702
const double cs_turb_c4trit
Definition: cs_turbulence_model.c:931
const double cs_turb_cssgs2
Definition: cs_turbulence_model.c:514
const double cs_turb_cdries
Definition: cs_turbulence_model.c:848
int iclsyr
Definition: cs_turbulence_model.h:144
const double cs_turb_cebme2
Definition: cs_turbulence_model.c:566
const double cs_turb_cpalmu
Definition: cs_turbulence_model.c:599
const double cs_turb_crij3
Definition: cs_turbulence_model.c:479
int iclkep
Definition: cs_turbulence_model.h:105
const double cs_turb_cv2fcl
Definition: cs_turbulence_model.c:890
const double cs_turb_cwale
Definition: cs_turbulence_model.c:901
double cs_turb_csmago
Definition: cs_turbulence_model.c:809
const double cs_turb_ckwbt1
Definition: cs_turbulence_model.c:644
const double cs_turb_xcl
Definition: cs_turbulence_model.c:572
const cs_turb_model_t * cs_glob_turb_model
const double cs_turb_c2trit
Definition: cs_turbulence_model.c:921
double uref
Definition: cs_turbulence_model.h:81
const double cs_turb_xlesfd
Definition: cs_turbulence_model.c:819
const double cs_turb_cssgr1
Definition: cs_turbulence_model.c:520
const double cs_turb_etaafm
Definition: cs_turbulence_model.c:911
int igrhok
Definition: cs_turbulence_model.h:109
const double cs_turb_ccaza
Definition: cs_turbulence_model.c:752
double cs_turb_csaw1
Definition: cs_turbulence_model.c:712
cs_turb_rans_model_t * cs_get_glob_turb_rans_model(void)
Provide acces to cs_glob_turb_rans_model.
Definition: cs_turbulence_model.c:1198
int idirsm
Definition: cs_turbulence_model.h:100
const double cs_turb_ckwc1
Definition: cs_turbulence_model.c:687
const double cs_turb_cssge2
Definition: cs_turbulence_model.c:502
double cs_turb_dpow
Definition: cs_turbulence_model.c:412
int irijco
Definition: cs_turbulence_model.h:126
const double cs_turb_cpalc1
Definition: cs_turbulence_model.c:602
const double cs_turb_csaw2
Definition: cs_turbulence_model.c:717
const double cs_turb_cssr1
Definition: cs_turbulence_model.c:727
int ivrtex
Definition: cs_turbulence_model.h:163
const double cs_turb_bpow
Definition: cs_turbulence_model.c:409
const double cs_turb_cebms1
Definition: cs_turbulence_model.c:547
const double cs_turb_xct
Definition: cs_turbulence_model.c:578
double cs_turb_cstlog_alpha
Definition: cs_turbulence_model.c:403
const double cs_turb_cthdfm
Definition: cs_turbulence_model.c:941
const double cs_turb_ce2
Definition: cs_turbulence_model.c:439
const double cs_turb_cssr2
Definition: cs_turbulence_model.c:732
const double cs_turb_cpale4
Definition: cs_turbulence_model.c:593