programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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-2017 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 iddes; /* delayed detached eddy simulation
130  - 1: true
131  - 0: false (default) */
132  int irijnu; /* pseudo eddy viscosity in the matrix of momentum
133  equation to partially implicit div( rho R )
134  - 1: true
135  - 0: false (default) */
136  int irijrb; /* accurate treatment of R at the boundary (see
137  \ref condli)
138  - 1: true
139  - 0: false (default) */
140  int irijec; /* wall echo term of R
141  - 1: true
142  - 0: false (default) */
143  int idifre; /* whole treatment of the diagonal part of the
144  diffusion tensor of R and epsilon
145  - 1: true (default)
146  - 0: simplified treatment */
147  int iclsyr; /* partial implicitation of symmetry BCs of R
148  - 1: true (default)
149  - 0: false */
150  int iclptr; /* partial implicitation of wall BCs of R
151  - 1: true
152  - 0: false (default) */
153  double xlomlg; /* mixing length */
154 
156 
157 /* LES turbulence model descriptor */
158 /*---------------------------------*/
159 
160 typedef struct {
161 
162  int idries; /* Van Driest smoothing at the wall (only for
163  itytur=4)
164  - 1: true
165  - 0: false */
166  int ivrtex; /* vortex method (in LES)
167  - 1: true
168  - 0: false (default) */
169 
171 
172 /*============================================================================
173  * Static global variables
174  *============================================================================*/
175 
176 /* Pointer to main turbulence model descriptor structure */
177 
178 extern const cs_turb_model_t *cs_glob_turb_model;
179 
180 /* Pointer to reference values for turbulence descriptor structure */
181 
183 
184 /* Pointer to RANS turbulence model descriptor structure */
185 
187 
188 /* Pointer to LES turbulence model descriptor structure */
189 
191 
192 /* Constant for turbulence models */
193 
194 extern const double cs_turb_xkappa;
195 extern const double cs_turb_vdriest;
196 extern const double cs_turb_cstlog;
197 extern const double cs_turb_cstlog_rough;
198 extern double cs_turb_cstlog_alpha;
199 extern const double cs_turb_apow;
200 extern const double cs_turb_bpow;
201 extern double cs_turb_dpow;
202 extern const double cs_turb_cmu;
203 extern double cs_turb_cmu025;
204 extern const double cs_turb_ce1;
205 extern const double cs_turb_ce2;
206 extern const double cs_turb_ce4;
207 extern const double cs_turb_sigmak;
208 extern double cs_turb_sigmae;
209 extern double cs_turb_crij1;
210 extern double cs_turb_crij2;
211 extern const double cs_turb_crij3;
212 extern const double cs_turb_crijp1;
213 extern const double cs_turb_crijp2;
214 extern const double cs_turb_cssge2;
215 extern const double cs_turb_cssgs1;
216 extern const double cs_turb_cssgs2;
217 extern const double cs_turb_cssgr1;
218 extern const double cs_turb_cssgr2;
219 extern const double cs_turb_cssgr3;
220 extern const double cs_turb_cssgr4;
221 extern const double cs_turb_cssgr5;
222 extern const double cs_turb_cebms1;
223 extern const double cs_turb_cebms2;
224 extern const double cs_turb_cebmr1, cebmr2, cebmr3, cebmr4, cebmr5, cebmr6;
225 extern double cs_turb_csrij;
226 extern const double cs_turb_cebme2;
227 extern const double cs_turb_cebmmu;
228 extern const double cs_turb_xcl;
229 extern const double cs_turb_xa1;
230 extern const double cs_turb_xct;
231 extern const double cs_turb_xceta;
232 extern const double cs_turb_cpale1;
233 extern const double cs_turb_cpale2;
234 extern const double cs_turb_cpale3;
235 extern const double cs_turb_cpale4;
236 extern const double cs_turb_cpalse;
237 extern const double cs_turb_cpalmu;
238 extern const double cs_turb_cpalc1;
239 extern const double cs_turb_cpalc2;
240 extern const double cs_turb_cpalct;
241 extern const double cs_turb_cpalcl;
242 extern const double cs_turb_cpalet;
243 extern const double cs_turb_ckwsk1;
244 extern const double cs_turb_ckwsk2;
245 extern const double cs_turb_ckwsw1;
246 extern const double cs_turb_ckwsw2;
247 extern const double cs_turb_ckwbt1;
248 extern const double cs_turb_ckwbt2;
249 extern double cs_turb_ckwgm1;
250 extern double cs_turb_ckwgm2;
251 extern const double cs_turb_ckwa1;
252 extern const double cs_turb_ckwc1;
253 extern const double cs_turb_csab1;
254 extern const double cs_turb_csab2;
255 extern const double cs_turb_csasig;
256 extern const double cs_turb_csav1;
257 extern double cs_turb_csaw1;
258 extern const double cs_turb_csaw2;
259 extern const double cs_turb_csaw3;
260 extern const double cs_turb_cssr1;
261 extern const double cs_turb_cssr2;
262 extern const double cs_turb_cssr3;
263 extern const double cs_turb_ccaze2;
264 extern const double cs_turb_ccazsc;
265 extern const double cs_turb_ccaza;
266 extern const double cs_turb_ccazb;
267 extern const double cs_turb_ccazc;
268 extern const double cs_turb_ccazd;
269 extern const double cs_turb_xlesfl;
270 extern const double cs_turb_ales;
271 extern const double cs_turb_bles;
272 extern double cs_turb_csmago;
273 extern const double cs_turb_xlesfd;
274 extern double cs_turb_smagmx;
275 extern double cs_turb_smagmn;
276 extern const double cs_turb_cdries;
277 extern const double cs_turb_cv2fa1;
278 extern const double cs_turb_cv2fe2;
279 extern const double cs_turb_cv2fmu;
280 extern const double cs_turb_cv2fc1;
281 extern const double cs_turb_cv2fc2;
282 extern const double cs_turb_cv2fct;
283 extern const double cs_turb_cv2fcl;
284 extern const double cs_turb_cv2fet;
285 extern const double cs_turb_cwale;
286 extern const double cs_turb_xiafm;
287 extern const double cs_turb_etaafm;
288 extern const double cs_turb_c1trit;
289 extern const double cs_turb_c2trit;
290 extern const double cs_turb_c3trit;
291 extern const double cs_turb_c4trit;
292 extern const double cs_turb_cthafm;
293 extern const double cs_turb_cthdfm;
294 
295 /*=============================================================================
296  * Public function prototypes
297  *============================================================================*/
298 
299 /*----------------------------------------------------------------------------
300  * Provide acces to cs_glob_turb_model
301  *
302  * needed to initialize structure with GUI
303  *----------------------------------------------------------------------------*/
304 
307 
308 /*----------------------------------------------------------------------------
309  * Compute turbulence model constants,
310  * some of which may depend on the model choice.
311  *----------------------------------------------------------------------------*/
312 
313 void
315 
316 /*----------------------------------------------------------------------------
317  * Provide acces to cs_glob_turb_ref_values
318  *
319  * needed to initialize structure with GUI
320  *----------------------------------------------------------------------------*/
321 
324 
325 /*----------------------------------------------------------------------------
326  * Provide acces to cs_glob_turb_rans_model
327  *
328  * needed to initialize structure with GUI
329  *----------------------------------------------------------------------------*/
330 
333 
334 /*----------------------------------------------------------------------------
335  * Provide acces to cs_glob_turb_les_model
336  *
337  * needed to initialize structure with GUI
338  *----------------------------------------------------------------------------*/
339 
342 
343 /*----------------------------------------------------------------------------*
344  * Print the turbulence model parameters to setup.log.
345  *----------------------------------------------------------------------------*/
346 
347 void
349 
350 /*----------------------------------------------------------------------------*
351  * Print the turbulent constants to setup.log.
352  *----------------------------------------------------------------------------*/
353 
354 void
356 
357 /*----------------------------------------------------------------------------*/
358 
360 
361 #endif /* __CS_TURBULENCE_MODEL_H__ */
const double cs_turb_csav1
Definition: cs_turbulence_model.c:712
const double cs_turb_cv2fmu
Definition: cs_turbulence_model.c:871
const double cs_turb_ckwsw1
Definition: cs_turbulence_model.c:637
const double cs_turb_cstlog
Definition: cs_turbulence_model.c:387
double cs_turb_csrij
Definition: cs_turbulence_model.c:568
int itytur
Definition: cs_turbulence_model.h:70
const double cs_turb_ckwsw2
Definition: cs_turbulence_model.c:643
const cs_turb_rans_model_t * cs_glob_turb_rans_model
const double cs_turb_cebmr1
Definition: cs_turbulence_model.c:557
const double cs_turb_cssgr4
Definition: cs_turbulence_model.c:543
const double cs_turb_cssgr2
Definition: cs_turbulence_model.c:531
const double cebmr3
void cs_turb_constants_log_setup(void)
Print the turbulent constants to setup.log.
Definition: cs_turbulence_model.c:1547
double cs_turb_ckwgm2
Definition: cs_turbulence_model.c:678
const double cs_turb_cpalct
Definition: cs_turbulence_model.c:613
double xlomlg
Definition: cs_turbulence_model.h:153
const double cs_turb_c3trit
Definition: cs_turbulence_model.c:931
int irijec
Definition: cs_turbulence_model.h:140
const double cs_turb_ccazd
Definition: cs_turbulence_model.c:772
const double cs_turb_crijp2
Definition: cs_turbulence_model.c:501
const double cs_turb_cv2fe2
Definition: cs_turbulence_model.c:865
#define BEGIN_C_DECLS
Definition: cs_defs.h:453
const double cebmr2
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:1221
const double cs_turb_ccaze2
Definition: cs_turbulence_model.c:747
Turbulence model general options descriptor.
Definition: cs_turbulence_model.h:51
int idries
Definition: cs_turbulence_model.h:162
int irijrb
Definition: cs_turbulence_model.h:136
double cs_turb_crij2
Definition: cs_turbulence_model.c:478
const double cs_turb_ales
Definition: cs_turbulence_model.c:791
double almax
Definition: cs_turbulence_model.h:79
double cs_turb_crij1
Definition: cs_turbulence_model.c:472
const double cs_turb_cssr3
Definition: cs_turbulence_model.c:742
const double cs_turb_xceta
Definition: cs_turbulence_model.c:586
int igrari
Definition: cs_turbulence_model.h:116
int irccor
Definition: cs_turbulence_model.h:90
int iddes
Definition: cs_turbulence_model.h:129
const double cs_turb_ce4
Definition: cs_turbulence_model.c:453
double cs_turb_sigmae
Definition: cs_turbulence_model.c:466
const double cs_turb_ckwsk2
Definition: cs_turbulence_model.c:631
int itycor
Definition: cs_turbulence_model.h:94
const double cs_turb_cssgr3
Definition: cs_turbulence_model.c:537
int igrake
Definition: cs_turbulence_model.h:113
const double cs_turb_xiafm
Definition: cs_turbulence_model.c:911
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:493
const double cs_turb_sigmak
Definition: cs_turbulence_model.c:459
const double cs_turb_cpalc2
Definition: cs_turbulence_model.c:610
const double cs_turb_cpale2
Definition: cs_turbulence_model.c:592
int irijnu
Definition: cs_turbulence_model.h:132
const double cs_turb_apow
Definition: cs_turbulence_model.c:411
int reinit_turb
Definition: cs_turbulence_model.h:123
int iclptr
Definition: cs_turbulence_model.h:150
const double cs_turb_cpale3
Definition: cs_turbulence_model.c:595
void cs_turb_model_log_setup(void)
Print the turbulence model parameters to setup.log.
Definition: cs_turbulence_model.c:1233
const double cs_turb_xa1
Definition: cs_turbulence_model.c:580
const double cs_turb_cebmmu
Definition: cs_turbulence_model.c:574
const double cs_turb_ckwa1
Definition: cs_turbulence_model.c:685
double cs_turb_cmu025
Definition: cs_turbulence_model.c:428
const double cs_turb_cebms2
Definition: cs_turbulence_model.c:555
const double cs_turb_cv2fc1
Definition: cs_turbulence_model.c:877
const double cs_turb_cv2fa1
Definition: cs_turbulence_model.c:859
const double cs_turb_xlesfl
Definition: cs_turbulence_model.c:782
const double cs_turb_cpalse
Definition: cs_turbulence_model.c:601
const double cebmr5
const double cs_turb_c1trit
Definition: cs_turbulence_model.c:921
const double cs_turb_bles
Definition: cs_turbulence_model.c:800
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:1148
const cs_turb_ref_values_t * cs_glob_turb_ref_values
const double cs_turb_cmu
Definition: cs_turbulence_model.c:425
const double cs_turb_csaw3
Definition: cs_turbulence_model.c:727
const double cs_turb_cv2fct
Definition: cs_turbulence_model.c:889
const double cs_turb_cssgs1
Definition: cs_turbulence_model.c:513
const double cs_turb_cv2fet
Definition: cs_turbulence_model.c:901
const double cs_turb_cv2fc2
Definition: cs_turbulence_model.c:883
const double cs_turb_cstlog_rough
Definition: cs_turbulence_model.c:398
const double cs_turb_xkappa
Definition: cs_turbulence_model.c:367
double cs_turb_ckwgm1
Definition: cs_turbulence_model.c:667
const double cs_turb_csab2
Definition: cs_turbulence_model.c:702
const double cs_turb_csab1
Definition: cs_turbulence_model.c:697
const double cs_turb_ccazc
Definition: cs_turbulence_model.c:767
const double cebmr6
const double cs_turb_ccazsc
Definition: cs_turbulence_model.c:752
int ikecou
Definition: cs_turbulence_model.h:119
const double cs_turb_cssgr5
Definition: cs_turbulence_model.c:549
const double cs_turb_ccazb
Definition: cs_turbulence_model.c:762
double cs_turb_smagmx
Definition: cs_turbulence_model.c:834
const double cs_turb_ckwbt2
Definition: cs_turbulence_model.c:655
const double cs_turb_cpalcl
Definition: cs_turbulence_model.c:616
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:1193
int idifre
Definition: cs_turbulence_model.h:143
int iturb
Definition: cs_turbulence_model.h:53
const double cs_turb_ckwsk1
Definition: cs_turbulence_model.c:625
const double cs_turb_cpalet
Definition: cs_turbulence_model.c:619
LES turbulence model descriptor.
Definition: cs_turbulence_model.h:160
const double cs_turb_vdriest
Definition: cs_turbulence_model.c:376
#define END_C_DECLS
Definition: cs_defs.h:454
const double cs_turb_cpale1
Definition: cs_turbulence_model.c:589
const double cs_turb_cthafm
Definition: cs_turbulence_model.c:941
double cs_turb_smagmn
Definition: cs_turbulence_model.c:844
const double cebmr4
cs_turb_model_t * cs_get_glob_turb_model(void)
Provide acces to cs_glob_turb_model.
Definition: cs_turbulence_model.c:1135
const double cs_turb_ce1
Definition: cs_turbulence_model.c:436
const double cs_turb_csasig
Definition: cs_turbulence_model.c:707
const double cs_turb_c4trit
Definition: cs_turbulence_model.c:936
const double cs_turb_cssgs2
Definition: cs_turbulence_model.c:519
const double cs_turb_cdries
Definition: cs_turbulence_model.c:853
int iclsyr
Definition: cs_turbulence_model.h:147
const double cs_turb_cebme2
Definition: cs_turbulence_model.c:571
const double cs_turb_cpalmu
Definition: cs_turbulence_model.c:604
const double cs_turb_crij3
Definition: cs_turbulence_model.c:484
int iclkep
Definition: cs_turbulence_model.h:105
const double cs_turb_cv2fcl
Definition: cs_turbulence_model.c:895
const double cs_turb_cwale
Definition: cs_turbulence_model.c:906
double cs_turb_csmago
Definition: cs_turbulence_model.c:814
const double cs_turb_ckwbt1
Definition: cs_turbulence_model.c:649
const double cs_turb_xcl
Definition: cs_turbulence_model.c:577
const cs_turb_model_t * cs_glob_turb_model
const double cs_turb_c2trit
Definition: cs_turbulence_model.c:926
double uref
Definition: cs_turbulence_model.h:81
const double cs_turb_xlesfd
Definition: cs_turbulence_model.c:824
const double cs_turb_cssgr1
Definition: cs_turbulence_model.c:525
const double cs_turb_etaafm
Definition: cs_turbulence_model.c:916
int igrhok
Definition: cs_turbulence_model.h:109
const double cs_turb_ccaza
Definition: cs_turbulence_model.c:757
double cs_turb_csaw1
Definition: cs_turbulence_model.c:717
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:1207
int idirsm
Definition: cs_turbulence_model.h:100
const double cs_turb_ckwc1
Definition: cs_turbulence_model.c:692
const double cs_turb_cssge2
Definition: cs_turbulence_model.c:507
double cs_turb_dpow
Definition: cs_turbulence_model.c:417
int irijco
Definition: cs_turbulence_model.h:126
const double cs_turb_cpalc1
Definition: cs_turbulence_model.c:607
const double cs_turb_csaw2
Definition: cs_turbulence_model.c:722
const double cs_turb_cssr1
Definition: cs_turbulence_model.c:732
int ivrtex
Definition: cs_turbulence_model.h:166
const double cs_turb_bpow
Definition: cs_turbulence_model.c:414
const double cs_turb_cebms1
Definition: cs_turbulence_model.c:552
const double cs_turb_xct
Definition: cs_turbulence_model.c:583
double cs_turb_cstlog_alpha
Definition: cs_turbulence_model.c:408
const double cs_turb_cthdfm
Definition: cs_turbulence_model.c:946
const double cs_turb_ce2
Definition: cs_turbulence_model.c:444
const double cs_turb_cssr2
Definition: cs_turbulence_model.c:737
const double cs_turb_cpale4
Definition: cs_turbulence_model.c:598