SSG.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) 2015-2023 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::SSG
26 
27 Description
28  Speziale, Sarkar and Gatski Reynolds-stress turbulence model for
29  incompressible and compressible flows.
30 
31  Reference:
32  \verbatim
33  Speziale, C. G., Sarkar, S., & Gatski, T. B. (1991).
34  Modelling the pressure–strain correlation of turbulence:
35  an invariant dynamical systems approach.
36  Journal of Fluid Mechanics, 227, 245-272.
37  \endverbatim
38 
39  Including the generalised gradient diffusion model of
40  Daly and Harlow:
41  \verbatim
42  Daly, B. J., & Harlow, F. H. (1970).
43  Transport equations in turbulence.
44  Physics of Fluids (1958-1988), 13(11), 2634-2649.
45  \endverbatim
46 
47  The default model coefficients are:
48  \verbatim
49  SSGCoeffs
50  {
51  Cmu 0.09;
52 
53  C1 3.4;
54  C1s 1.8;
55  C2 4.2;
56  C3 0.8;
57  C3s 1.3;
58  C4 1.25;
59  C5 0.4;
60 
61  Ceps1 1.44;
62  Ceps2 1.92;
63  Cs 0.25;
64  Ceps 0.15;
65 
66  couplingFactor 0.0;
67  }
68  \endverbatim
69 
70 SourceFiles
71  SSG.C
72 
73 \*---------------------------------------------------------------------------*/
74 
75 #ifndef SSG_H
76 #define SSG_H
77 
78 #include "RASModel.H"
79 #include "ReynoldsStress.H"
80 
81 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
82 
83 namespace Foam
84 {
85 namespace RASModels
86 {
87 
88 /*---------------------------------------------------------------------------*\
89  Class SSG Declaration
90 \*---------------------------------------------------------------------------*/
91 
92 template<class BasicMomentumTransportModel>
93 class SSG
94 :
95  public ReynoldsStress<RASModel<BasicMomentumTransportModel>>
96 {
97 protected:
98 
99  // Protected data
100 
101  // Model coefficients
102 
104 
112 
117 
118  // Fields
119 
122 
123 
124  // Protected Member Functions
125 
126  //- Bound epsilon and return Cmu*sqr(k) for nut
128 
129  //- Correct the eddy-viscosity nut
130  virtual void correctNut();
131 
132  //- Source term for the epsilon equation
133  virtual tmp<fvScalarMatrix> epsilonSource() const;
134 
135 
136 public:
137 
138  typedef typename BasicMomentumTransportModel::alphaField alphaField;
139  typedef typename BasicMomentumTransportModel::rhoField rhoField;
140 
141 
142  //- Runtime type information
143  TypeName("SSG");
144 
145 
146  // Constructors
147 
148  //- Construct from components
149  SSG
150  (
151  const alphaField& alpha,
152  const rhoField& rho,
153  const volVectorField& U,
154  const surfaceScalarField& alphaRhoPhi,
155  const surfaceScalarField& phi,
156  const viscosity& viscosity,
157  const word& type = typeName
158  );
159 
160  //- Disallow default bitwise copy construction
161  SSG(const SSG&) = delete;
162 
163 
164  //- Destructor
165  virtual ~SSG()
166  {}
167 
168 
169  // Member Functions
170 
171  //- Read model coefficients if they have changed
172  virtual bool read();
173 
174  //- Return the turbulence kinetic energy
175  virtual tmp<volScalarField> k() const
176  {
177  return k_;
178  }
179 
180  //- Return the turbulence kinetic energy dissipation rate
181  virtual tmp<volScalarField> epsilon() const
182  {
183  return epsilon_;
184  }
185 
186  //- Return the turbulence specific dissipation rate
187  virtual tmp<volScalarField> omega() const
188  {
189  return volScalarField::New
190  (
191  "omega",
192  epsilon_/(Cmu_*k_)
193  );
194  }
195 
196  //- Return the effective diffusivity for R
198 
199  //- Return the effective diffusivity for epsilon
201 
202  //- Solve the turbulence equations and correct eddy-Viscosity and
203  // related properties
204  virtual void correct();
205 
206 
207  // Member Operators
208 
209  //- Disallow default bitwise assignment
210  void operator=(const SSG&) = delete;
211 };
212 
213 
214 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
215 
216 } // End namespace RASModels
217 } // End namespace Foam
218 
219 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
220 
221 #ifdef NoRepository
222  #include "SSG.C"
223 #endif
224 
225 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
226 
227 #endif
228 
229 // ************************************************************************* //
Generic GeometricField class.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
BasicMomentumTransportModel::alphaField alphaField
Definition: RASModel.H:93
BasicMomentumTransportModel::rhoField rhoField
Definition: RASModel.H:94
Speziale, Sarkar and Gatski Reynolds-stress turbulence model for incompressible and compressible flow...
Definition: SSG.H:95
BasicMomentumTransportModel::alphaField alphaField
Definition: SSG.H:137
volScalarField epsilon_
Definition: SSG.H:120
tmp< volSymmTensorField > DepsilonEff() const
Return the effective diffusivity for epsilon.
Definition: SSG.C:285
virtual tmp< fvScalarMatrix > epsilonSource() const
Source term for the epsilon equation.
Definition: SSG.C:59
volScalarField k_
Definition: SSG.H:119
dimensionedScalar C1_
Definition: SSG.H:104
void operator=(const SSG &)=delete
Disallow default bitwise assignment.
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
Definition: SSG.H:174
dimensionedScalar C4_
Definition: SSG.H:109
virtual tmp< volScalarField > omega() const
Return the turbulence specific dissipation rate.
Definition: SSG.H:186
virtual void correct()
Solve the turbulence equations and correct eddy-Viscosity and.
Definition: SSG.C:296
dimensionedScalar Ceps2_
Definition: SSG.H:113
tmp< volScalarField > boundEpsilon()
Bound epsilon and return Cmu*sqr(k) for nut.
Definition: SSG.C:41
virtual ~SSG()
Destructor.
Definition: SSG.H:164
tmp< volSymmTensorField > DREff() const
Return the effective diffusivity for R.
Definition: SSG.C:274
TypeName("SSG")
Runtime type information.
dimensionedScalar C2_
Definition: SSG.H:106
dimensionedScalar C1s_
Definition: SSG.H:105
SSG(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity, const word &type=typeName)
Construct from components.
Definition: SSG.C:76
dimensionedScalar C3s_
Definition: SSG.H:108
virtual void correctNut()
Correct the eddy-viscosity nut.
Definition: SSG.C:50
dimensionedScalar Cs_
Definition: SSG.H:114
dimensionedScalar C5_
Definition: SSG.H:110
dimensionedScalar Ceps1_
Definition: SSG.H:112
dimensionedScalar Cmu_
Definition: SSG.H:102
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
Definition: SSG.H:180
dimensionedScalar C3_
Definition: SSG.H:107
dimensionedScalar Ceps_
Definition: SSG.H:115
virtual bool read()
Read model coefficients if they have changed.
Definition: SSG.C:246
BasicMomentumTransportModel::rhoField rhoField
Definition: SSG.H:138
Reynolds-stress turbulence model base class.
A class for managing temporary objects.
Definition: tmp.H:55
Abstract base class for all fluid physical properties.
Definition: viscosity.H:50
A class for handling words, derived from string.
Definition: word.H:62
U
Definition: pEqn.H:72
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
Namespace for OpenFOAM.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488