kOmegaSST.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) 2011-2016 OpenFOAM Foundation
9  Copyright (C) 2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::RASModels::kOmegaSST
29 
30 Group
31  grpRASTurbulence
32 
33 Description
34  Implementation of the k-omega-SST turbulence model for
35  incompressible and compressible flows.
36 
37  Light wrapper around base class.
38 
39  Turbulence model described in:
40  \verbatim
41  Menter, F. R. & Esch, T. (2001).
42  Elements of Industrial Heat Transfer Prediction.
43  16th Brazilian Congress of Mechanical Engineering (COBEM).
44  \endverbatim
45 
46  with updated coefficients from
47  \verbatim
48  Menter, F. R., Kuntz, M., and Langtry, R. (2003).
49  Ten Years of Industrial Experience with the SST Turbulence Model.
50  Turbulence, Heat and Mass Transfer 4, ed: K. Hanjalic, Y. Nagano,
51  & M. Tummers, Begell House, Inc., 625 - 632.
52  \endverbatim
53 
54  but with the consistent production terms from the 2001 paper as form in the
55  2003 paper is a typo, see
56  \verbatim
57  http://turbmodels.larc.nasa.gov/sst.html
58  \endverbatim
59 
60  and the addition of the optional F3 term for rough walls from
61  \verbatim
62  Hellsten, A. (1998).
63  "Some Improvements in Menter’s k-omega-SST turbulence model"
64  29th AIAA Fluid Dynamics Conference, AIAA-98-2554.
65  \endverbatim
66 
67  Note that this implementation is written in terms of alpha diffusion
68  coefficients rather than the more traditional sigma (alpha = 1/sigma) so
69  that the blending can be applied to all coefficuients in a consistent
70  manner. The paper suggests that sigma is blended but this would not be
71  consistent with the blending of the k-epsilon and k-omega models.
72 
73  Also note that the error in the last term of equation (2) relating to
74  sigma has been corrected.
75 
76  Wall-functions are applied in this implementation by using equations (14)
77  to specify the near-wall omega as appropriate.
78 
79  The blending functions (15) and (16) are not currently used because of the
80  uncertainty in their origin, range of applicability and that if y+ becomes
81  sufficiently small blending u_tau in this manner clearly becomes nonsense.
82 
83  The default model coefficients are
84  \verbatim
85  kOmegaSSTCoeffs
86  {
87  alphaK1 0.85;
88  alphaK2 1.0;
89  alphaOmega1 0.5;
90  alphaOmega2 0.856;
91  beta1 0.075;
92  beta2 0.0828;
93  betaStar 0.09;
94  gamma1 5/9;
95  gamma2 0.44;
96  a1 0.31;
97  b1 1.0;
98  c1 10.0;
99  F3 no;
100  }
101  \endverbatim
102 
103 SourceFiles
104  kOmegaSST.C
105 
106 SeeAlso
107  kOmegaSSTBase.H
108 
109 \*---------------------------------------------------------------------------*/
110 
111 #ifndef kOmegaSST_H
112 #define kOmegaSST_H
113 
114 #include "kOmegaSSTBase.H"
115 #include "RASModel.H"
116 #include "eddyViscosity.H"
117 
118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 
120 namespace Foam
121 {
122 namespace RASModels
123 {
124 
125 /*---------------------------------------------------------------------------*\
126  Class kOmegaSST Declaration
127 \*---------------------------------------------------------------------------*/
128 
129 template<class BasicTurbulenceModel>
130 class kOmegaSST
131 :
132  public kOmegaSSTBase<eddyViscosity<RASModel<BasicTurbulenceModel>>>
133 {
134  // Private Member Functions
135 
136  //- No copy construct
137  kOmegaSST(const kOmegaSST&) = delete;
138 
139  //- No copy assignment
140  void operator=(const kOmegaSST&) = delete;
141 
142 
143 protected:
144 
145  // Protected Member Functions
146 
147  virtual void correctNut(const volScalarField& S2);
148  virtual void correctNut();
149 
150 
151 public:
152 
153  typedef typename BasicTurbulenceModel::alphaField alphaField;
154  typedef typename BasicTurbulenceModel::rhoField rhoField;
155  typedef typename BasicTurbulenceModel::transportModel transportModel;
156 
157 
158  //- Runtime type information
159  TypeName("kOmegaSST");
160 
161 
162  // Constructors
163 
164  //- Construct from components
165  kOmegaSST
166  (
167  const alphaField& alpha,
168  const rhoField& rho,
169  const volVectorField& U,
170  const surfaceScalarField& alphaRhoPhi,
171  const surfaceScalarField& phi,
172  const transportModel& transport,
173  const word& propertiesName = turbulenceModel::propertiesName,
174  const word& type = typeName
175  );
176 
177 
178  //- Destructor
179  virtual ~kOmegaSST() = default;
180 };
181 
182 
183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184 
185 } // End namespace RASModels
186 } // End namespace Foam
187 
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 #ifdef NoRepository
190  #include "kOmegaSST.C"
191 #endif
192 
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
194 #endif
195 
196 // ************************************************************************* //
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::RASModels::kOmegaSST
Implementation of the k-omega-SST turbulence model for incompressible and compressible flows.
Definition: kOmegaSST.H:129
Foam::constant::atomic::alpha
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Definition: readThermalProperties.H:212
Foam::turbulenceModel::propertiesName
static const word propertiesName
Default name of the turbulence properties dictionary.
Definition: turbulenceModel.H:100
rho
rho
Definition: readInitialConditions.H:88
Foam::RASModels::kOmegaSST::alphaField
BasicTurbulenceModel::alphaField alphaField
Definition: kOmegaSST.H:152
eddyViscosity.H
Foam::RASModels::kOmegaSST::rhoField
BasicTurbulenceModel::rhoField rhoField
Definition: kOmegaSST.H:153
kOmegaSSTBase.H
Foam::RASModels::kOmegaSST::TypeName
TypeName("kOmegaSST")
Runtime type information.
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::RASModels::kOmegaSST::~kOmegaSST
virtual ~kOmegaSST()=default
Destructor.
RASModel.H
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::RASModels::kOmegaSST::transportModel
BasicTurbulenceModel::transportModel transportModel
Definition: kOmegaSST.H:154
U
U
Definition: pEqn.H:72
Foam::type
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:590
Foam::RASModels::kOmegaSST::correctNut
virtual void correctNut()
Definition: kOmegaSST.C:54
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::kOmegaSSTBase
Base class implementation of the k-omega-SST turbulence model for incompressible and compressible flo...
Definition: kOmegaSSTBase.H:128