kOmegaSSTSato.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2014-2019 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::RASModels::kOmegaSSTSato
26 
27 Description
28  Implementation of the k-omega-SST turbulence model for dispersed bubbly
29  flows with Sato (1981) bubble induced turbulent viscosity model.
30 
31  Bubble induced turbulent viscosity model described in:
32  \verbatim
33  Sato, Y., Sadatomi, M.
34  "Momentum and heat transfer in two-phase bubble flow - I, Theory"
35  International Journal of Multiphase FLow 7, pp. 167-177, 1981.
36  \endverbatim
37 
38  Turbulence model described in:
39  \verbatim
40  Menter, F., Esch, T.
41  "Elements of Industrial Heat Transfer Prediction"
42  16th Brazilian Congress of Mechanical Engineering (COBEM),
43  Nov. 2001
44  \endverbatim
45 
46  with the addition of the optional F3 term for rough walls from
47  \verbatim
48  Hellsten, A.
49  "Some Improvements in Menter’s k-omega-SST turbulence model"
50  29th AIAA Fluid Dynamics Conference,
51  AIAA-98-2554,
52  June 1998.
53  \endverbatim
54 
55  Note that this implementation is written in terms of alpha diffusion
56  coefficients rather than the more traditional sigma (alpha = 1/sigma) so
57  that the blending can be applied to all coefficuients in a consistent
58  manner. The paper suggests that sigma is blended but this would not be
59  consistent with the blending of the k-epsilon and k-omega models.
60 
61  Also note that the error in the last term of equation (2) relating to
62  sigma has been corrected.
63 
64  Wall-functions are applied in this implementation by using equations (14)
65  to specify the near-wall omega as appropriate.
66 
67  The blending functions (15) and (16) are not currently used because of the
68  uncertainty in their origin, range of applicability and that as y+ becomes
69  sufficiently small blending u_tau in this manner is clearly nonsense.
70 
71  The default model coefficients correspond to the following:
72  \verbatim
73  kOmegaSSTCoeffs
74  {
75  alphaK1 0.85034;
76  alphaK2 1.0;
77  alphaOmega1 0.5;
78  alphaOmega2 0.85616;
79  Prt 1.0; // only for compressible
80  beta1 0.075;
81  beta2 0.0828;
82  betaStar 0.09;
83  gamma1 0.5532;
84  gamma2 0.4403;
85  a1 0.31;
86  b1 1.0;
87  c1 10.0;
88  F3 no;
89  Cmub 0.6;
90  }
91  \endverbatim
92 
93 SourceFiles
94  kOmegaSST.C
95 
96 SourceFiles
97  kOmegaSSTSato.C
98 
99 \*---------------------------------------------------------------------------*/
100 
101 #ifndef kOmegaSSTSato_H
102 #define kOmegaSSTSato_H
103 
104 #include "kOmegaSST.H"
105 
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
107 
108 namespace Foam
109 {
110 namespace RASModels
111 {
112 
113 /*---------------------------------------------------------------------------*\
114  Class kOmegaSSTSato Declaration
115 \*---------------------------------------------------------------------------*/
116 
117 template<class BasicTurbulenceModel>
118 class kOmegaSSTSato
119 :
120  public kOmegaSST<BasicTurbulenceModel>
121 {
122  // Private Data
123 
125  <
126  typename BasicTurbulenceModel::transportModel
127  > *gasTurbulencePtr_;
128 
129 
130  // Private Member Functions
131 
132  //- Return the turbulence model for the gas phase
134  <
135  typename BasicTurbulenceModel::transportModel
136  >&
137  gasTurbulence() const;
138 
139 
140 protected:
141 
142  // Protected data
143 
144  // Model coefficients
147 
148 
149  // Protected Member Functions
150 
151  virtual void correctNut
152  (
153  const volScalarField& S2,
154  const volScalarField& F2
155  );
156 
157 
158 public:
160  typedef typename BasicTurbulenceModel::alphaField alphaField;
161  typedef typename BasicTurbulenceModel::rhoField rhoField;
162  typedef typename BasicTurbulenceModel::transportModel transportModel;
163 
164 
165  //- Runtime type information
166  TypeName("kOmegaSSTSato");
167 
168 
169  // Constructors
170 
171  //- Construct from components
173  (
174  const alphaField& alpha,
175  const rhoField& rho,
176  const volVectorField& U,
177  const surfaceScalarField& alphaRhoPhi,
178  const surfaceScalarField& phi,
179  const transportModel& transport,
180  const word& propertiesName = turbulenceModel::propertiesName,
181  const word& type = typeName
182  );
183 
184  //- Disallow default bitwise copy construction
185  kOmegaSSTSato(const kOmegaSSTSato&) = delete;
186 
187 
188  //- Destructor
189  virtual ~kOmegaSSTSato()
190  {}
191 
192 
193  // Member Functions
194 
195  //- Read model coefficients if they have changed
196  virtual bool read();
197 
198  //- Solve the turbulence equations and correct the turbulence viscosity
199  virtual void correct();
200 
201 
202  // Member Operators
203 
204  //- Disallow default bitwise assignment
205  void operator=(const kOmegaSSTSato&) = delete;
206 };
207 
208 
209 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
210 
211 } // End namespace RASModels
212 } // End namespace Foam
213 
214 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
215 
216 #ifdef NoRepository
217  #include "kOmegaSSTSato.C"
218 #endif
219 
220 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
221 
222 #endif
223 
224 // ************************************************************************* //
void operator=(const kOmegaSSTSato &)=delete
Disallow default bitwise assignment.
Implementation of the k-omega-SST turbulence model for dispersed bubbly flows with Sato (1981) bubble...
surfaceScalarField & phi
kOmegaSSTSato(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName, const word &type=typeName)
Construct from components.
Definition: kOmegaSSTSato.C:41
BasicTurbulenceModel::transportModel transportModel
BasicTurbulenceModel::alphaField alphaField
TypeName("kOmegaSSTSato")
Runtime type information.
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from string.
Definition: word.H:59
virtual ~kOmegaSSTSato()
Destructor.
BasicTurbulenceModel::rhoField rhoField
Specialisation for RAS of the generic kOmegaSSTBase base class. For more information, see Description of kOmegaSSTBase.H.
Definition: kOmegaSST.H:57
Templated abstract base class for multiphase compressible turbulence models.
virtual bool read()
Read model coefficients if they have changed.
Definition: kOmegaSSTSato.C:86
U
Definition: pEqn.H:72
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
Namespace for OpenFOAM.