kOmegaSSTSato.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 | Copyright (C) 2014-2017 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 Group
28  grpRASTurbulence
29 
30 Description
31  Implementation of the k-omega-SST turbulence model for dispersed bubbly
32  flows with Sato (1981) bubble induced turbulent viscosity model.
33 
34  Bubble induced turbulent viscosity model described in:
35  \verbatim
36  Sato, Y., Sadatomi, M.
37  "Momentum and heat transfer in two-phase bubble flow - I, Theory"
38  International Journal of Multiphase FLow 7, pp. 167-177, 1981.
39  \endverbatim
40 
41  Turbulence model described in:
42  \verbatim
43  Menter, F., Esch, T.
44  "Elements of Industrial Heat Transfer Prediction"
45  16th Brazilian Congress of Mechanical Engineering (COBEM),
46  Nov. 2001
47  \endverbatim
48 
49  with the addition of the optional F3 term for rough walls from
50  \verbatim
51  Hellsten, A.
52  "Some Improvements in Menter’s k-omega-SST turbulence model"
53  29th AIAA Fluid Dynamics Conference,
54  AIAA-98-2554,
55  June 1998.
56  \endverbatim
57 
58  Note that this implementation is written in terms of alpha diffusion
59  coefficients rather than the more traditional sigma (alpha = 1/sigma) so
60  that the blending can be applied to all coefficuients in a consistent
61  manner. The paper suggests that sigma is blended but this would not be
62  consistent with the blending of the k-epsilon and k-omega models.
63 
64  Also note that the error in the last term of equation (2) relating to
65  sigma has been corrected.
66 
67  Wall-functions are applied in this implementation by using equations (14)
68  to specify the near-wall omega as appropriate.
69 
70  The blending functions (15) and (16) are not currently used because of the
71  uncertainty in their origin, range of applicability and that as y+ becomes
72  sufficiently small blending u_tau in this manner is clearly nonsense.
73 
74  The default model coefficients correspond to the following:
75  \verbatim
76  kOmegaSSTCoeffs
77  {
78  alphaK1 0.85034;
79  alphaK2 1.0;
80  alphaOmega1 0.5;
81  alphaOmega2 0.85616;
82  Prt 1.0; // only for compressible
83  beta1 0.075;
84  beta2 0.0828;
85  betaStar 0.09;
86  gamma1 0.5532;
87  gamma2 0.4403;
88  a1 0.31;
89  b1 1.0;
90  c1 10.0;
91  F3 no;
92  Cmub 0.6;
93  }
94  \endverbatim
95 
96 SourceFiles
97  kOmegaSST.C
98 
99 SourceFiles
100  kOmegaSSTSato.C
101 
102 \*---------------------------------------------------------------------------*/
103 
104 #ifndef kOmegaSSTSato_H
105 #define kOmegaSSTSato_H
106 
107 #include "kOmegaSST.H"
108 
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 
111 namespace Foam
112 {
113 namespace RASModels
114 {
115 
116 /*---------------------------------------------------------------------------*\
117  Class kOmegaSSTSato Declaration
118 \*---------------------------------------------------------------------------*/
119 
120 template<class BasicTurbulenceModel>
121 class kOmegaSSTSato
122 :
123  public kOmegaSST<BasicTurbulenceModel>
124 {
125  // Private data
126 
128  <
129  typename BasicTurbulenceModel::transportModel
130  > *gasTurbulencePtr_;
131 
132 
133  // Private Member Functions
134 
135  //- Return the turbulence model for the gas phase
137  <
138  typename BasicTurbulenceModel::transportModel
139  >&
140  gasTurbulence() const;
141 
142 
143  // Disallow default bitwise copy construct and assignment
145  void operator=(const kOmegaSSTSato&);
146 
147 
148 protected:
149 
150  // Protected data
151 
152  // Model coefficients
155 
156 
157  // Protected Member Functions
158 
159  virtual void correctNut
160  (
161  const volScalarField& S2,
162  const volScalarField& F2
163  );
164 
165 
166 public:
168  typedef typename BasicTurbulenceModel::alphaField alphaField;
169  typedef typename BasicTurbulenceModel::rhoField rhoField;
170  typedef typename BasicTurbulenceModel::transportModel transportModel;
171 
172 
173  //- Runtime type information
174  TypeName("kOmegaSSTSato");
175 
176 
177  // Constructors
178 
179  //- Construct from components
181  (
182  const alphaField& alpha,
183  const rhoField& rho,
184  const volVectorField& U,
185  const surfaceScalarField& alphaRhoPhi,
186  const surfaceScalarField& phi,
187  const transportModel& transport,
188  const word& propertiesName = turbulenceModel::propertiesName,
189  const word& type = typeName
190  );
191 
192 
193  //- Destructor
194  virtual ~kOmegaSSTSato()
195  {}
196 
197 
198  // Member Functions
199 
200  //- Read model coefficients if they have changed
201  virtual bool read();
202 
203  //- Solve the turbulence equations and correct the turbulence viscosity
204  virtual void correct();
205 };
206 
207 
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 
210 } // End namespace RASModels
211 } // End namespace Foam
212 
213 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214 
215 #ifdef NoRepository
216  #include "kOmegaSSTSato.C"
217 #endif
218 
219 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
220 
221 #endif
222 
223 // ************************************************************************* //
surfaceScalarField & phi
U
Definition: pEqn.H:83
Implementation of the k-omega-SST turbulence model for dispersed bubbly flows with Sato (1981) bubble...
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
Templated abstract base class for multiphase compressible turbulence models.
fileName::Type type(const fileName &, const bool followLink=true)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:485
virtual bool read()
Read model coefficients if they have changed.
Definition: kOmegaSSTSato.C:86
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Namespace for OpenFOAM.