EBRSM.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::RASModels::EBRSM
28
29Group
30 grpRASTurbulence
31
32Description
33 Manceau (2015)'s elliptic-blending Reynolds-stress turbulence model
34 for incompressible and compressible flows.
35
36 References:
37 \verbatim
38 Standard model (tag:M):
39 Manceau, R. (2015).
40 Recent progress in the development of the elliptic
41 blending Reynolds-stress model.
42 International Journal of Heat and Fluid Flow, 51, 195-220.
43 DOI:10.1016/j.ijheatfluidflow.2014.09.002
44
45 Simple gradient diffusion hypothesis (tag:LM):
46 Lardeau, S., & Manceau, R. (2014).
47 Computations of complex flow configurations using
48 a modified elliptic-blending Reynolds-stress model.
49 10th International ERCOFTAC Symposium on Engineering
50 Turbulence Modelling and Measurements. Marbella, Spain.
51 https://hal.archives-ouvertes.fr/hal-01051799
52 \endverbatim
53
54 The default model coefficients are (M:p. 219):
55 \verbatim
56 EBRSMCoeffs
57 {
58 g1 3.4;
59 g1star 1.8;
60 g3 0.8;
61 g3star 1.3;
62 g4 1.25;
63 g5 0.2;
64 Cmu 0.21;
65 Ceps1 1.44;
66 Ceps2 1.83;
67 sigmaK 1.0;
68 sigmaEps 1.15;
69 A1 0.065;
70 Ct 6.0;
71 Cl 0.133;
72 Ceta 80.0;
73 Cstability 10.0;
74
75 simpleGradientDiffusion false;
76 }
77 \endverbatim
78
79Note
80 - \c g5 coefficient has been changed from its original value of 0.4 to 0.2
81 after obtaining better results in smooth-wall plane channel flow cases.
82
83SourceFiles
84 EBRSM.C
85
86\*---------------------------------------------------------------------------*/
87
88#ifndef Foam_RASModels_EBRSM_H
89#define Foam_RASModels_EBRSM_H
90
91#include "RASModel.H"
92#include "ReynoldsStress.H"
93
94// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
95
96namespace Foam
97{
98namespace RASModels
99{
100
101/*---------------------------------------------------------------------------*\
102 Class EBRSM Declaration
103\*---------------------------------------------------------------------------*/
104
105template<class BasicTurbulenceModel>
106class EBRSM
107:
108 public ReynoldsStress<RASModel<BasicTurbulenceModel>>
109{
110 // Private Data
111
112 Switch simpleGradientDiffusion_;
113
114 // Coefficients
115
117 dimensionedScalar g1star_;
119 dimensionedScalar g3star_;
123 dimensionedScalar Ceps1_;
124 dimensionedScalar Ceps2_;
125 dimensionedScalar sigmaK_;
126 dimensionedScalar sigmaEps_;
130 dimensionedScalar Ceta_;
131 dimensionedScalar Cstability_;
132
133 // Fields
134
135 //- Elliptic blending factor [-]
137
138 //- Turbulent kinetic energy [m2/s2]
140
141 //- Turbulent kinetic energy dissipation rate [m2/s3]
142 volScalarField epsilon_;
143
144
145 // Private Member Functions
146
147 //- Return the Durbin-limited length-scale field
148 // Thickness of region of influence of near-wall model
149 tmp<volScalarField> calcL() const;
150
151 //- Return the approximate wall-normal vector field
152 tmp<volVectorField> calcN() const;
153
154 //- Return the turbulent time scale bounded by Kolmogorov time scale
155 tmp<volScalarField> calcTau() const;
156
157 //- Return the effective diffusivity for epsilon or R
158 //- by using the generalised gradient diffusion hypothesis
160 (
161 const volScalarField& tau,
162 const dimensionedScalar& sigma
163 ) const;
164
165 //- Return the effective diffusivity for epsilon or R
166 //- by using the simple gradient diffusion hypothesis
168 (
169 const dimensionedScalar& sigma
170 ) const;
171
172 //- Return dissipation-production stimulator in the buffer layer
173 tmp<volScalarField> Ceps1Prime(const volScalarField& G) const;
174
175 //- Update the eddy-viscosity
176 virtual void correctNut();
177
178
179 //- No copy construct
180 EBRSM(const EBRSM&) = delete;
181
182 //- No copy assignment
183 void operator=(const EBRSM&) = delete;
184
185
186public:
188 typedef typename BasicTurbulenceModel::alphaField alphaField;
189 typedef typename BasicTurbulenceModel::rhoField rhoField;
190 typedef typename BasicTurbulenceModel::transportModel transportModel;
191
192
193 //- Runtime type information
194 TypeName("EBRSM");
195
196
197 // Constructors
198
199 //- Construct from components
200 EBRSM
201 (
202 const alphaField& alpha,
203 const rhoField& rho,
204 const volVectorField& U,
205 const surfaceScalarField& alphaRhoPhi,
206 const surfaceScalarField& phi,
207 const transportModel& transport,
208 const word& propertiesName = turbulenceModel::propertiesName,
209 const word& type = typeName
210 );
211
212
213 //- Destructor
214 virtual ~EBRSM() = default;
215
216
217 // Member Functions
218
219 //- Return the turbulence kinetic energy dissipation rate
220 virtual tmp<volScalarField> epsilon() const
221 {
222 return epsilon_;
223 }
224
225 //- Re-read model coefficients if they have changed
226 virtual bool read();
227
228 //- Solve the transport equations and correct the turbulent viscosity
229 virtual void correct();
230};
231
232
233// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
234
235} // End namespace RASModels
236} // End namespace Foam
237
238// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
239
240#ifdef NoRepository
241 #include "EBRSM.C"
242#endif
243
244// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
245
246#endif
247
248// ************************************************************************* //
surfaceScalarField & phi
Manceau (2015)'s elliptic-blending Reynolds-stress turbulence model for incompressible and compressib...
Definition: EBRSM.H:108
BasicTurbulenceModel::alphaField alphaField
Definition: EBRSM.H:187
BasicTurbulenceModel::rhoField rhoField
Definition: EBRSM.H:188
virtual void correct()
Solve the transport equations and correct the turbulent viscosity.
Definition: EBRSM.C:406
virtual ~EBRSM()=default
Destructor.
TypeName("EBRSM")
Runtime type information.
BasicTurbulenceModel::transportModel transportModel
Definition: EBRSM.H:189
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
Definition: EBRSM.H:219
virtual bool read()
Re-read model coefficients if they have changed.
Definition: EBRSM.C:372
Reynolds-stress turbulence model base class.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
Definition: Switch.H:78
A class for managing temporary objects.
Definition: tmp.H:65
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from Foam::string.
Definition: word.H:68
U
Definition: pEqn.H:72
Namespace for OpenFOAM.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:598
volScalarField & alpha
const dimensionedScalar & D
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73