SpalartAllmarasIDDES.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) 2011-2016 OpenFOAM Foundation
9  Copyright (C) 2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
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 
27 Class
28  Foam::LESModels::SpalartAllmarasIDDES
29 
30 Group
31  grpDESTurbulence
32 
33 Description
34  SpalartAllmaras IDDES turbulence model for incompressible and compressible
35  flows
36 
37  Reference:
38  \verbatim
39  Shur, M. L., Spalart, P. R., Strelets, M. K., & Travin, A. K. (2008).
40  A hybrid RANS-LES approach with delayed-DES and wall-modelled LES
41  capabilities.
42  International Journal of Heat and Fluid Flow, 29(6), 1638-1649.
43  \endverbatim
44 
45 SourceFiles
46  SpalartAllmarasIDDES.C
47 
48 \*---------------------------------------------------------------------------*/
49 
50 #ifndef SpalartAllmarasIDDES_H
51 #define SpalartAllmarasIDDES_H
52 
53 #include "SpalartAllmarasDES.H"
54 #include "IDDESDelta.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 namespace LESModels
61 {
62 
63 /*---------------------------------------------------------------------------*\
64  Class SpalartAllmarasIDDES Declaration
65 \*---------------------------------------------------------------------------*/
66 
67 template<class BasicTurbulenceModel>
69 :
70  public SpalartAllmarasDES<BasicTurbulenceModel>
71 {
72  // Private Member Functions
73 
74  //- Check that the supplied delta is an IDDESDelta
75  const IDDESDelta& setDelta() const;
76 
77  tmp<volScalarField> alpha() const;
78  tmp<volScalarField> ft(const volScalarField& magGradU) const;
79  tmp<volScalarField> fl(const volScalarField& magGradU) const;
80 
82  (
83  const volScalarField& nur,
84  const volScalarField& magGradU
85  ) const;
86 
87  //- Delay function
88  tmp<volScalarField> fdt(const volScalarField& magGradU) const;
89 
90  //- No copy construct
92 
93  //- No copy assignment
94  void operator=(const SpalartAllmarasIDDES&) = delete;
95 
96 
97 protected:
98 
99  // Protected data
100 
101  // Model coefficients
102 
107 
108  // Fields
109 
110  const IDDESDelta& IDDESDelta_;
111 
112  // Protected Member Functions
113 
114  //- Length scale
116  (
117  const volScalarField& chi,
118  const volScalarField& fv1,
119  const volTensorField& gradU
120  ) const;
121 
122 
123 public:
124 
125  typedef typename BasicTurbulenceModel::alphaField alphaField;
126  typedef typename BasicTurbulenceModel::rhoField rhoField;
127  typedef typename BasicTurbulenceModel::transportModel transportModel;
128 
129 
130  //- Runtime type information
131  TypeName("SpalartAllmarasIDDES");
132 
133 
134  // Constructors
135 
136  //- Construct from components
138  (
139  const alphaField& alpha,
140  const rhoField& rho,
141  const volVectorField& U,
142  const surfaceScalarField& alphaRhoPhi,
143  const surfaceScalarField& phi,
144  const transportModel& transport,
145  const word& propertiesName = turbulenceModel::propertiesName,
146  const word& type = typeName
147  );
148 
149 
150  //- Destructor
151  virtual ~SpalartAllmarasIDDES() = default;
152 
153 
154  // Member Functions
155 
156  //- Re-read model coefficients if they have changed
157  virtual bool read();
158 };
159 
160 
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 
163 } // End namespace LESModels
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #ifdef NoRepository
169  #include "SpalartAllmarasIDDES.C"
170 #endif
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #endif
175 
176 // ************************************************************************* //
Foam::LESModels::SpalartAllmarasIDDES
SpalartAllmaras IDDES turbulence model for incompressible and compressible flows.
Definition: SpalartAllmarasIDDES.H:67
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::LESModels::SpalartAllmarasIDDES::Ct_
dimensionedScalar Ct_
Definition: SpalartAllmarasIDDES.H:105
Foam::LESModels::SpalartAllmarasIDDES::dTilda
virtual tmp< volScalarField > dTilda(const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU) const
Length scale.
Definition: SpalartAllmarasIDDES.C:124
Foam::LESModels::SpalartAllmarasIDDES::rhoField
BasicTurbulenceModel::rhoField rhoField
Definition: SpalartAllmarasIDDES.H:125
Foam::turbulenceModel::propertiesName
static const word propertiesName
Default name of the turbulence properties dictionary.
Definition: turbulenceModel.H:100
Foam::LESModels::SpalartAllmarasDES
SpalartAllmarasDES DES turbulence model for incompressible and compressible flows.
Definition: SpalartAllmarasDES.H:80
Foam::LESModels::DESModel::rhoField
BasicTurbulenceModel::rhoField rhoField
Definition: DESModel.H:74
Foam::LESModels::SpalartAllmarasIDDES::IDDESDelta_
const IDDESDelta & IDDESDelta_
Definition: SpalartAllmarasIDDES.H:109
Foam::LESModels::SpalartAllmarasIDDES::Cdt1_
dimensionedScalar Cdt1_
Definition: SpalartAllmarasIDDES.H:102
Foam::LESModels::IDDESDelta
Definition: IDDESDelta.H:55
rho
rho
Definition: readInitialConditions.H:88
Foam::LESModels::SpalartAllmarasIDDES::read
virtual bool read()
Re-read model coefficients if they have changed.
Definition: SpalartAllmarasIDDES.C:238
Foam::LESModels::SpalartAllmarasDES::chi
tmp< volScalarField > chi() const
Definition: SpalartAllmarasDES.C:42
Foam::LESModels::SpalartAllmarasIDDES::~SpalartAllmarasIDDES
virtual ~SpalartAllmarasIDDES()=default
Destructor.
Foam::LESModels::SpalartAllmarasIDDES::alphaField
BasicTurbulenceModel::alphaField alphaField
Definition: SpalartAllmarasIDDES.H:124
IDDESDelta.H
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::LESModels::SpalartAllmarasIDDES::Cdt2_
dimensionedScalar Cdt2_
Definition: SpalartAllmarasIDDES.H:103
Foam::dimensioned< scalar >
SpalartAllmarasDES.H
Foam::LESModels::DESModel::transportModel
BasicTurbulenceModel::transportModel transportModel
Definition: DESModel.H:75
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
U
U
Definition: pEqn.H:72
Foam::type
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:590
Foam::LESModels::SpalartAllmarasIDDES::TypeName
TypeName("SpalartAllmarasIDDES")
Runtime type information.
Foam::LESModels::SpalartAllmarasIDDES::Cl_
dimensionedScalar Cl_
Definition: SpalartAllmarasIDDES.H:104
Foam::LESModels::SpalartAllmarasIDDES::transportModel
BasicTurbulenceModel::transportModel transportModel
Definition: SpalartAllmarasIDDES.H:126
SpalartAllmarasIDDES.C
Foam::LESModels::DESModel::alphaField
BasicTurbulenceModel::alphaField alphaField
Definition: DESModel.H:73
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::LESModels::SpalartAllmarasDES::fv1
tmp< volScalarField > fv1(const volScalarField &chi) const
Definition: SpalartAllmarasDES.C:50