SpalartAllmarasIDDES.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) 2011-2021 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::LESModels::SpalartAllmarasIDDES
26 
27 Description
28  SpalartAllmaras IDDES turbulence model for incompressible and compressible
29  flows
30 
31  Reference:
32  \verbatim
33  Shur, M. L., Spalart, P. R., Strelets, M. K., & Travin, A. K. (2008).
34  A hybrid RANS-LES approach with delayed-DES and wall-modelled LES
35  capabilities.
36  International Journal of Heat and Fluid Flow, 29(6), 1638-1649.
37  \endverbatim
38 
39 SourceFiles
40  SpalartAllmarasIDDES.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef SpalartAllmarasIDDES_H
45 #define SpalartAllmarasIDDES_H
46 
47 #include "SpalartAllmarasDES.H"
48 #include "IDDESDelta.H"
49 
50 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 
52 namespace Foam
53 {
54 namespace LESModels
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class SpalartAllmarasIDDES Declaration
59 \*---------------------------------------------------------------------------*/
60 
61 template<class BasicMomentumTransportModel>
63 :
64  public SpalartAllmarasDES<BasicMomentumTransportModel>
65 {
66  // Private Data
67 
68  // Model constants
69 
70  dimensionedScalar fwStar_;
73 
74  // Fields
75 
76  const IDDESDelta& IDDESDelta_;
77 
78 
79  // Private Member Functions
80 
81  tmp<volScalarField::Internal> IDDESalpha() const;
82 
84  (
85  const volScalarField::Internal& magGradU
86  ) const;
87 
89  (
90  const volScalarField::Internal& magGradU
91  ) const;
92 
94  (
95  const volScalarField::Internal& nur,
96  const volScalarField::Internal& magGradU
97  ) const;
98 
99  //- Delay function
101  (
102  const volScalarField::Internal& magGradU
103  ) const;
104 
105 
106 protected:
107 
108  // Protected Member Functions
109 
110  using IOobject::modelName;
111 
112  //- Length scale
114  (
117  const volTensorField::Internal& gradU
118  ) const;
119 
120 
121 public:
123  typedef typename BasicMomentumTransportModel::alphaField alphaField;
124  typedef typename BasicMomentumTransportModel::rhoField rhoField;
125 
126 
127  //- Runtime type information
128  TypeName("SpalartAllmarasIDDES");
129 
130 
131  // Constructors
132 
133  //- Construct from components
135  (
136  const alphaField& alpha,
137  const rhoField& rho,
138  const volVectorField& U,
139  const surfaceScalarField& alphaRhoPhi,
140  const surfaceScalarField& phi,
141  const viscosity& viscosity,
142  const word& type = typeName
143  );
144 
145  //- Disallow default bitwise copy construction
147 
148 
149  //- Destructor
150  virtual ~SpalartAllmarasIDDES()
151  {}
152 
153 
154  // Member Functions
155 
156  //- Read model coefficients if they have changed
157  virtual bool read();
158 
159 
160  // Member Operators
161 
162  //- Disallow default bitwise assignment
163  void operator=(const SpalartAllmarasIDDES&) = delete;
164 };
165 
166 
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 
169 } // End namespace LESModels
170 } // End namespace Foam
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #ifdef NoRepository
175  #include "SpalartAllmarasIDDES.C"
176 #endif
177 
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
179 
180 #endif
181 
182 // ************************************************************************* //
U
Definition: pEqn.H:72
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
SpalartAllmarasDES DES turbulence model for incompressible and compressible flows.
SpalartAllmarasIDDES(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.
BasicMomentumTransportModel::alphaField alphaField
DimensionedField< scalar, volMesh > Internal
Type of the internal field from which this GeometricField is derived.
virtual bool read()
Read model coefficients if they have changed.
SpalartAllmaras IDDES turbulence model for incompressible and compressible flows. ...
BasicMomentumTransportModel::rhoField rhoField
A class for handling words, derived from string.
Definition: word.H:59
phi
Definition: correctPhi.H:3
tmp< volScalarField > fv1(const volScalarField &chi) const
Abstract base class for all fluid physical properties.
Definition: viscosity.H:49
IDDESDelta used by the IDDES (improved low Re Spalart-Allmaras DES model) The min and max delta are c...
Definition: IDDESDelta.H:52
TypeName("SpalartAllmarasIDDES")
Runtime type information.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
static word modelName(Name name, const word &model)
Return the name of the object within the given model.
virtual tmp< volScalarField::Internal > dTilda(const volScalarField::Internal &chi, const volScalarField::Internal &fv1, const volTensorField::Internal &gradU) const
Length scale.
A class for managing temporary objects.
Definition: PtrList.H:53
tmp< volScalarField > chi() const
void operator=(const SpalartAllmarasIDDES &)=delete
Disallow default bitwise assignment.
Namespace for OpenFOAM.