ADflow  v1.0
ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
paramTurb.F90
Go to the documentation of this file.
1 module paramturb
2 !
3 ! Module that contains the constants for the turbulence models
4 ! as well as some global variables/parameters for the turbulent
5 ! routines.
6 !
7  use constants, only: realtype, inttype
8  use inputphysics, only: rsak => sakappa, rsacb1 => sacb1, rsacb2 => sacb2, &
9  rsacb3 => sasigma, rsacv1 => sacv1, rsacw2 => sacw2, &
10  rsacw3 => sacw3, rsact1 => sact1, rsact2 => sact2, &
11  rsact3 => sact3, rsact4 => sact4, rsacrot => sacrot
12  implicit none
13  save
14 !
15 ! Spalart-Allmaras constants. rsaK, rsaCb1, rsaCb2, rsaCb3, rsaCv1,
16 ! rsaCw2, rsaCw3, rsaCt1, rsaCt2, rsaCt3, rsaCt4, rsaCrot are imported
17 ! directly from inputPhysics via USE renaming above.
18 ! rsaCw1 is derived: cb1/kappa^2 + (1+cb2)/sigma, computed at init.
19 !
20  real(kind=realtype) :: rsacw1
21 !
22 ! K-omega constants.
23 !
24  real(kind=realtype), parameter :: rkwk = 0.41_realtype
25  real(kind=realtype), parameter :: rkwsigk1 = 0.5_realtype
26  real(kind=realtype), parameter :: rkwsigw1 = 0.5_realtype
27  real(kind=realtype), parameter :: rkwsigd1 = 0.5_realtype
28  real(kind=realtype), parameter :: rkwbeta1 = 0.0750_realtype
29  real(kind=realtype), parameter :: rkwbetas = 0.09_realtype
30 !
31 ! K-omega SST constants.
32 !
33  real(kind=realtype), parameter :: rsstk = 0.41_realtype
34  real(kind=realtype), parameter :: rssta1 = 0.31_realtype
35  real(kind=realtype), parameter :: rsstbetas = 0.09_realtype
36 
37  real(kind=realtype), parameter :: rsstsigk1 = 0.85_realtype
38  real(kind=realtype), parameter :: rsstsigw1 = 0.5_realtype
39  real(kind=realtype), parameter :: rsstbeta1 = 0.0750_realtype
40 
41  real(kind=realtype), parameter :: rsstsigk2 = 1.0_realtype
42  real(kind=realtype), parameter :: rsstsigw2 = 0.856_realtype
43  real(kind=realtype), parameter :: rsstbeta2 = 0.0828_realtype
44 !
45 ! K-tau constants.
46 !
47  real(kind=realtype), parameter :: rktk = 0.41_realtype
48  real(kind=realtype), parameter :: rktsigk1 = 0.5_realtype
49  real(kind=realtype), parameter :: rktsigt1 = 0.5_realtype
50  real(kind=realtype), parameter :: rktsigd1 = 0.5_realtype
51  real(kind=realtype), parameter :: rktbeta1 = 0.0750_realtype
52  real(kind=realtype), parameter :: rktbetas = 0.09_realtype
53 !
54 ! V2-f constants.
55 !
56  real(kind=realtype), parameter :: rvfc1 = 1.4_realtype
57  real(kind=realtype), parameter :: rvfc2 = 0.3_realtype
58  real(kind=realtype), parameter :: rvfbeta = 1.9_realtype
59  real(kind=realtype), parameter :: rvfsigk1 = 1.0_realtype
60  real(kind=realtype), parameter :: rvfsige1 = 0.7692307692_realtype
61  real(kind=realtype), parameter :: rvfsigv1 = 1.00_realtype
62  real(kind=realtype), parameter :: rvfcn = 70.0_realtype
63 
64  real(kind=realtype), parameter :: rvfn1cmu = 0.190_realtype
65  real(kind=realtype), parameter :: rvfn1a = 1.300_realtype
66  real(kind=realtype), parameter :: rvfn1b = 0.250_realtype
67  real(kind=realtype), parameter :: rvfn1cl = 0.300_realtype
68  real(kind=realtype), parameter :: rvfn6cmu = 0.220_realtype
69  real(kind=realtype), parameter :: rvfn6a = 1.400_realtype
70  real(kind=realtype), parameter :: rvfn6b = 0.045_realtype
71  real(kind=realtype), parameter :: rvfn6cl = 0.230_realtype
72 
73  real(kind=realtype) :: rvflimitk, rvflimite, rvfcl
74  real(kind=realtype) :: rvfcmu
75 !
76 ! Variables to store the parameters for the wall functions fits.
77 ! As these variables depend on the turbulence model they are set
78 ! during runtime. Allocatables are used, because the number of
79 ! fits could be different for the different models.
80 ! The curve is divided in a number of intervals and is
81 ! constructed such that both the function and the derivatives
82 ! are continuous. Consequently cubic polynomials are used.
83 !
84  ! nFit: Number of intervals of the curve.
85  ! ypT(0:nFit): y+ values at the interval boundaries.
86  ! reT(0:nFit): Reynolds number at the interval
87  ! boundaries, where the Reynolds number is
88  ! defined with the local velocity and the
89  ! wall distance.
90  ! up0(nFit): Coefficient 0 in the fit for the
91  ! nondimensional tangential velocity as a
92  ! function of the Reynolds number.
93  ! up1(nFit): Idem for coefficient 1.
94  ! up2(nFit): Idem for coefficient 2.
95  ! up3(nFit): Idem for coefficient 3.
96  ! tup0(nFit,nt1:nt2): Coefficient 0 in the fit for the
97  ! nondimensional turbulence variables as a
98  ! function of y+.
99  ! tup1(nFit,nt1:nt2): Idem for coefficient 1.
100  ! tup2(nFit,nt1:nt2): Idem for coefficient 2.
101  ! tup3(nFit,nt1:nt2): Idem for coefficient 3.
102  ! tuLogFit(nt1:nt2): Whether or not the logarithm of the variable
103  ! has been fitted.
104 
105  integer(kind=intType) :: nfit
106 
107  real(kind=realtype), dimension(:), allocatable :: ypt, ret
108  real(kind=realtype), dimension(:), allocatable :: up0, up1
109  real(kind=realtype), dimension(:), allocatable :: up2, up3
110 
111  real(kind=realtype), dimension(:, :), allocatable :: tup0, tup1
112  real(kind=realtype), dimension(:, :), allocatable :: tup2, tup3
113 #ifndef USE_TAPENADE
114  real(kind=realtype), dimension(:), allocatable :: yptb, retb
115  real(kind=realtype), dimension(:), allocatable :: up0b, up1b
116  real(kind=realtype), dimension(:), allocatable :: up2b, up3b
117 #endif
118 
119  logical, dimension(:), allocatable :: tulogfit
120 
121 end module paramturb
real(kind=realtype) sacv1
Definition: inputParam.F90:612
real(kind=realtype) sacrot
Definition: inputParam.F90:613
real(kind=realtype) sacb1
Definition: inputParam.F90:612
real(kind=realtype) sasigma
Definition: inputParam.F90:612
real(kind=realtype) sakappa
Definition: inputParam.F90:612
real(kind=realtype) sact1
Definition: inputParam.F90:613
real(kind=realtype) sacb2
Definition: inputParam.F90:612
real(kind=realtype) sacw3
Definition: inputParam.F90:613
real(kind=realtype) sact2
Definition: inputParam.F90:613
real(kind=realtype) sact3
Definition: inputParam.F90:613
real(kind=realtype) sact4
Definition: inputParam.F90:613
real(kind=realtype) sacw2
Definition: inputParam.F90:613
real(kind=realtype), parameter rvfn6cmu
Definition: paramTurb.F90:68
real(kind=realtype), parameter rssta1
Definition: paramTurb.F90:34
real(kind=realtype), parameter rvfc2
Definition: paramTurb.F90:57
real(kind=realtype), dimension(:, :), allocatable tup1
Definition: paramTurb.F90:111
real(kind=realtype), parameter rkwsigd1
Definition: paramTurb.F90:27
real(kind=realtype), parameter rsstbeta1
Definition: paramTurb.F90:39
integer(kind=inttype) nfit
Definition: paramTurb.F90:105
real(kind=realtype), parameter rkwbetas
Definition: paramTurb.F90:29
real(kind=realtype), parameter rktbeta1
Definition: paramTurb.F90:51
real(kind=realtype) rvflimite
Definition: paramTurb.F90:73
real(kind=realtype), dimension(:), allocatable ypt
Definition: paramTurb.F90:107
real(kind=realtype), parameter rvfn6a
Definition: paramTurb.F90:69
real(kind=realtype), dimension(:), allocatable ret
Definition: paramTurb.F90:107
real(kind=realtype), dimension(:), allocatable up1b
Definition: paramTurb.F90:115
real(kind=realtype), dimension(:), allocatable yptb
Definition: paramTurb.F90:114
real(kind=realtype), parameter rvfn1cmu
Definition: paramTurb.F90:64
real(kind=realtype), parameter rktsigk1
Definition: paramTurb.F90:48
real(kind=realtype), parameter rkwsigk1
Definition: paramTurb.F90:25
real(kind=realtype), parameter rktsigt1
Definition: paramTurb.F90:49
real(kind=realtype), parameter rsstk
Definition: paramTurb.F90:33
real(kind=realtype), parameter rsstbeta2
Definition: paramTurb.F90:43
real(kind=realtype), parameter rvfn6cl
Definition: paramTurb.F90:71
real(kind=realtype), dimension(:), allocatable up0b
Definition: paramTurb.F90:115
real(kind=realtype), parameter rsstbetas
Definition: paramTurb.F90:35
real(kind=realtype) rvfcmu
Definition: paramTurb.F90:74
real(kind=realtype), parameter rvfsigv1
Definition: paramTurb.F90:61
real(kind=realtype), parameter rsstsigw1
Definition: paramTurb.F90:38
real(kind=realtype), parameter rktbetas
Definition: paramTurb.F90:52
real(kind=realtype), dimension(:), allocatable up1
Definition: paramTurb.F90:108
real(kind=realtype), parameter rktk
Definition: paramTurb.F90:47
real(kind=realtype), parameter rvfcn
Definition: paramTurb.F90:62
logical, dimension(:), allocatable tulogfit
Definition: paramTurb.F90:119
real(kind=realtype), dimension(:), allocatable up3b
Definition: paramTurb.F90:116
real(kind=realtype), parameter rvfn6b
Definition: paramTurb.F90:70
real(kind=realtype), parameter rsstsigk2
Definition: paramTurb.F90:41
real(kind=realtype), dimension(:, :), allocatable tup2
Definition: paramTurb.F90:112
real(kind=realtype), parameter rvfbeta
Definition: paramTurb.F90:58
real(kind=realtype), dimension(:, :), allocatable tup0
Definition: paramTurb.F90:111
real(kind=realtype), parameter rsstsigw2
Definition: paramTurb.F90:42
real(kind=realtype) rvfcl
Definition: paramTurb.F90:73
real(kind=realtype), parameter rvfsigk1
Definition: paramTurb.F90:59
real(kind=realtype), parameter rvfsige1
Definition: paramTurb.F90:60
real(kind=realtype), parameter rktsigd1
Definition: paramTurb.F90:50
real(kind=realtype), dimension(:), allocatable up2b
Definition: paramTurb.F90:116
real(kind=realtype), parameter rvfn1cl
Definition: paramTurb.F90:67
real(kind=realtype) rvflimitk
Definition: paramTurb.F90:73
real(kind=realtype), parameter rkwk
Definition: paramTurb.F90:24
real(kind=realtype), dimension(:), allocatable up0
Definition: paramTurb.F90:108
real(kind=realtype) rsacw1
Definition: paramTurb.F90:20
real(kind=realtype), parameter rsstsigk1
Definition: paramTurb.F90:37
real(kind=realtype), dimension(:), allocatable up2
Definition: paramTurb.F90:109
real(kind=realtype), parameter rvfn1a
Definition: paramTurb.F90:65
real(kind=realtype), parameter rvfn1b
Definition: paramTurb.F90:66
real(kind=realtype), dimension(:), allocatable retb
Definition: paramTurb.F90:114
real(kind=realtype), parameter rkwsigw1
Definition: paramTurb.F90:26
real(kind=realtype), dimension(:, :), allocatable tup3
Definition: paramTurb.F90:112
real(kind=realtype), parameter rkwbeta1
Definition: paramTurb.F90:28
real(kind=realtype), parameter rvfc1
Definition: paramTurb.F90:56
real(kind=realtype), dimension(:), allocatable up3
Definition: paramTurb.F90:109