Loading...
Searching...
No Matches
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-2022 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::LESModels::SpalartAllmarasIDDES
29
30Group
31 grpDESTurbulence
32
33Description
34 SpalartAllmaras IDDES turbulence model
35 for incompressible and compressible 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
41 and wall-modelled LES capabilities.
42 International journal of heat and fluid flow, 29(6), 1638-1649.
43 DOI:10.1016/j.ijheatfluidflow.2008.07.001
44 \endverbatim
45
46SourceFiles
47 SpalartAllmarasIDDES.C
48
49\*---------------------------------------------------------------------------*/
50
51#ifndef Foam_SpalartAllmarasIDDES_H
52#define Foam_SpalartAllmarasIDDES_H
53
54#include "SpalartAllmarasDES.H"
55#include "IDDESDelta.H"
56
57// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
58
59namespace Foam
60{
61namespace LESModels
62{
63
64/*---------------------------------------------------------------------------*\
65 Class SpalartAllmarasIDDES Declaration
66\*---------------------------------------------------------------------------*/
67
68template<class BasicTurbulenceModel>
69class SpalartAllmarasIDDES
70:
71 public SpalartAllmarasDES<BasicTurbulenceModel>
72{
73 // Private Member Functions
74
75 //- Check that the supplied delta is an IDDESDelta
76 const IDDESDelta& setDelta() const;
77
79
80 tmp<volScalarField> ft(const volScalarField& magGradU) const;
81
82 tmp<volScalarField> fl(const volScalarField& magGradU) const;
83
84 //- Delay function
85 tmp<volScalarField> fdt(const volScalarField& magGradU) const;
86
87 //- No copy construct
88 SpalartAllmarasIDDES(const SpalartAllmarasIDDES&) = delete;
89
90 //- No copy assignment
91 void operator=(const SpalartAllmarasIDDES&) = delete;
92
93
94protected:
95
96 // Protected Data
97
98 // Model coefficients
99
107 //- IDDES delta
108 const IDDESDelta& IDDESDelta_;
109
110
111 // Protected Member Functions
112
113 //- Return the length scale
115 (
116 const volScalarField& chi,
117 const volScalarField& fv1,
118 const volTensorField& gradU
119 ) const;
120
122public:
123
124 typedef typename BasicTurbulenceModel::alphaField alphaField;
125 typedef typename BasicTurbulenceModel::rhoField rhoField;
126 typedef typename BasicTurbulenceModel::transportModel transportModel;
127
128
129 //- Runtime type information
130 TypeName("SpalartAllmarasIDDES");
133 // Constructors
134
135 //- Construct from components
136 SpalartAllmarasIDDES
137 (
138 const alphaField& alpha,
139 const rhoField& rho,
140 const volVectorField& U,
141 const surfaceScalarField& alphaRhoPhi,
142 const surfaceScalarField& phi,
143 const transportModel& transport,
144 const word& propertiesName = turbulenceModel::propertiesName,
145 const word& type = typeName
146 );
148
149 //- Destructor
150 virtual ~SpalartAllmarasIDDES() = default;
151
152
153 // Member Functions
154
155 //- Re-read model coefficients if they have changed
156 virtual bool read();
157
158 //- Return the shielding function
159 virtual tmp<volScalarField> fd() const;
160};
161
162
163// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164
165} // End namespace LESModels
166} // End namespace Foam
167
168// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
169
170#ifdef NoRepository
172#endif
173
174// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
175
176#endif
177
178// ************************************************************************* //
Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel >::alphaField alphaField
Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel >::rhoField rhoField
virtual tmp< volScalarField > fd() const
Return the shielding function.
SpalartAllmarasIDDES(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName, const word &type=typeName)
Construct from components.
virtual ~SpalartAllmarasIDDES()=default
Destructor.
Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel >::transportModel transportModel
TypeName("SpalartAllmarasIDDES")
Runtime type information.
virtual tmp< volScalarField > dTilda(const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU) const
Return the length scale.
virtual bool read()
Re-read model coefficients if they have changed.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
Definition Switch.H:81
A class for managing temporary objects.
Definition tmp.H:75
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from Foam::string.
Definition word.H:66
U
Definition pEqn.H:72
Namespace for LES SGS models.
Namespace for OpenFOAM.
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
GeometricField< tensor, fvPatchField, volMesh > volTensorField
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
volScalarField & alpha
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68