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