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 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::RASModels::EBRSM
28 
29 Group
30  grpRASTurbulence
31 
32 Description
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 
79 Note
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 
83 SourceFiles
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 
96 namespace Foam
97 {
98 namespace RASModels
99 {
100 
101 /*---------------------------------------------------------------------------*\
102  Class EBRSM Declaration
103 \*---------------------------------------------------------------------------*/
104 
105 template<class BasicTurbulenceModel>
106 class EBRSM
107 :
108  public ReynoldsStress<RASModel<BasicTurbulenceModel>>
109 {
110  // Private Data
111 
112  Switch simpleGradientDiffusion_;
113 
114  // Coefficients
115 
116  dimensionedScalar g1_;
117  dimensionedScalar g1star_;
118  dimensionedScalar g3_;
119  dimensionedScalar g3star_;
120  dimensionedScalar g4_;
121  dimensionedScalar g5_;
122  dimensionedScalar Cmu_;
123  dimensionedScalar Ceps1_;
124  dimensionedScalar Ceps2_;
125  dimensionedScalar sigmaK_;
126  dimensionedScalar sigmaEps_;
127  dimensionedScalar A1_;
128  dimensionedScalar Ct_;
129  dimensionedScalar Cl_;
130  dimensionedScalar Ceta_;
131  dimensionedScalar Cstability_;
132 
133  // Fields
134 
135  //- Elliptic blending factor [-]
136  volScalarField f_;
137 
138  //- Turbulent kinetic energy [m2/s2]
139  volScalarField k_;
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 
186 public:
187 
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 // ************************************************************************* //
const dimensionedScalar G
Newtonian constant of gravitation.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
Definition: Switch.H:77
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
BasicTurbulenceModel::alphaField alphaField
Definition: EBRSM.H:208
virtual ~EBRSM()=default
Destructor.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: POSIX.C:799
BasicTurbulenceModel::rhoField rhoField
Definition: EBRSM.H:209
BasicTurbulenceModel::transportModel transportModel
Definition: EBRSM.H:210
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from Foam::string.
Definition: word.H:63
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
Definition: EBRSM.H:248
Manceau (2015)&#39;s elliptic-blending Reynolds-stress turbulence model for incompressible and compressib...
Definition: EBRSM.H:101
virtual bool read()
Re-read model coefficients if they have changed.
Definition: EBRSM.C:365
U
Definition: pEqn.H:72
virtual void correct()
Solve the transport equations and correct the turbulent viscosity.
Definition: EBRSM.C:399
TypeName("EBRSM")
Runtime type information.
const dimensionedScalar & D
A class for managing temporary objects.
Definition: HashPtrTable.H:50
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Namespace for OpenFOAM.
Reynolds-stress turbulence model base class.