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-2018 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  // Disallow default bitwise copy construct and assignment
142  void operator=(const kOmegaSSTSato&);
143 
144 
145 protected:
146 
147  // Protected data
148 
149  // Model coefficients
152 
153 
154  // Protected Member Functions
155 
156  virtual void correctNut
157  (
158  const volScalarField& S2,
159  const volScalarField& F2
160  );
161 
162 
163 public:
165  typedef typename BasicTurbulenceModel::alphaField alphaField;
166  typedef typename BasicTurbulenceModel::rhoField rhoField;
167  typedef typename BasicTurbulenceModel::transportModel transportModel;
168 
169 
170  //- Runtime type information
171  TypeName("kOmegaSSTSato");
172 
173 
174  // Constructors
175 
176  //- Construct from components
178  (
179  const alphaField& alpha,
180  const rhoField& rho,
181  const volVectorField& U,
182  const surfaceScalarField& alphaRhoPhi,
183  const surfaceScalarField& phi,
184  const transportModel& transport,
185  const word& propertiesName = turbulenceModel::propertiesName,
186  const word& type = typeName
187  );
188 
189 
190  //- Destructor
191  virtual ~kOmegaSSTSato()
192  {}
193 
194 
195  // Member Functions
196 
197  //- Read model coefficients if they have changed
198  virtual bool read();
199 
200  //- Solve the turbulence equations and correct the turbulence viscosity
201  virtual void correct();
202 };
203 
204 
205 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 
207 } // End namespace RASModels
208 } // End namespace Foam
209 
210 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
211 
212 #ifdef NoRepository
213  #include "kOmegaSSTSato.C"
214 #endif
215 
216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
217 
218 #endif
219 
220 // ************************************************************************* //
Implementation of the k-omega-SST turbulence model for dispersed bubbly flows with Sato (1981) bubble...
surfaceScalarField & phi
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.
fileName::Type type(const fileName &, const bool followLink=true)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:481
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.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Namespace for OpenFOAM.