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-2016 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 is y+ becomes
72  sufficiently small blending u_tau in this manner clearly becomes 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
154 
155 
156  // Protected Member Functions
157 
158  virtual void correctNut();
159 
160 public:
162  typedef typename BasicTurbulenceModel::alphaField alphaField;
163  typedef typename BasicTurbulenceModel::rhoField rhoField;
164  typedef typename BasicTurbulenceModel::transportModel transportModel;
165 
166 
167  //- Runtime type information
168  TypeName("kOmegaSSTSato");
169 
170 
171  // Constructors
172 
173  //- Construct from components
175  (
176  const alphaField& alpha,
177  const rhoField& rho,
178  const volVectorField& U,
179  const surfaceScalarField& alphaRhoPhi,
180  const surfaceScalarField& phi,
181  const transportModel& transport,
182  const word& propertiesName = turbulenceModel::propertiesName,
183  const word& type = typeName
184  );
185 
186 
187  //- Destructor
188  virtual ~kOmegaSSTSato()
189  {}
190 
191 
192  // Member Functions
193 
194  //- Read model coefficients if they have changed
195  virtual bool read();
196 
197  //- Solve the turbulence equations and correct the turbulence viscosity
198  virtual void correct();
199 };
200 
201 
202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
203 
204 } // End namespace RASModels
205 } // End namespace Foam
206 
207 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
208 
209 #ifdef NoRepository
210  #include "kOmegaSSTSato.C"
211 #endif
212 
213 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214 
215 #endif
216 
217 // ************************************************************************* //
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.
virtual bool read()
Read model coefficients if they have changed.
Definition: kOmegaSSTSato.C:86
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:461
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Namespace for OpenFOAM.