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-2018 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 BasicTurbulenceModel>
63 :
64  public SpalartAllmarasDES<BasicTurbulenceModel>
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> alpha() const;
82  tmp<volScalarField> ft(const volScalarField& magGradU) const;
83  tmp<volScalarField> fl(const volScalarField& magGradU) const;
84 
86  (
87  const volScalarField& nur,
88  const volScalarField& magGradU
89  ) const;
90 
91  //- Delay function
92  tmp<volScalarField> fd(const volScalarField& magGradU) const;
93 
94  // Disallow default bitwise copy construct and assignment
96  void operator=(const SpalartAllmarasIDDES&);
97 
98 
99 protected:
100 
101  // Protected Member Functions
102 
103  //- Length scale
105  (
106  const volScalarField& chi,
107  const volScalarField& fv1,
108  const volTensorField& gradU
109  ) const;
110 
111 
112 public:
114  typedef typename BasicTurbulenceModel::alphaField alphaField;
115  typedef typename BasicTurbulenceModel::rhoField rhoField;
116  typedef typename BasicTurbulenceModel::transportModel transportModel;
117 
118 
119  //- Runtime type information
120  TypeName("SpalartAllmarasIDDES");
121 
122 
123  // Constructors
124 
125  //- Construct from components
127  (
128  const alphaField& alpha,
129  const rhoField& rho,
130  const volVectorField& U,
131  const surfaceScalarField& alphaRhoPhi,
132  const surfaceScalarField& phi,
133  const transportModel& transport,
134  const word& propertiesName = turbulenceModel::propertiesName,
135  const word& type = typeName
136  );
137 
138 
139  //- Destructor
140  virtual ~SpalartAllmarasIDDES()
141  {}
142 
143 
144  // Member Functions
145 
146  //- Read model coefficients if they have changed
147  virtual bool read();
148 };
149 
150 
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 
153 } // End namespace LESModels
154 } // End namespace Foam
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 #ifdef NoRepository
159  #include "SpalartAllmarasIDDES.C"
160 #endif
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 #endif
165 
166 // ************************************************************************* //
surfaceScalarField & phi
BasicTurbulenceModel::rhoField rhoField
virtual tmp< volScalarField > dTilda(const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU) const
Length scale.
SpalartAllmarasDES DES turbulence model for incompressible and compressible flows.
virtual bool read()
Read model coefficients if they have changed.
SpalartAllmaras IDDES turbulence model for incompressible and compressible flows. ...
BasicTurbulenceModel::alphaField alphaField
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from string.
Definition: word.H:59
tmp< volScalarField > fv1(const volScalarField &chi) const
fileName::Type type(const fileName &, const bool followLink=true)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:481
IDDESDelta used by the IDDES (improved low Re Spalart-Allmaras DES model) The min and max delta are c...
Definition: IDDESDelta.H:52
U
Definition: pEqn.H:72
TypeName("SpalartAllmarasIDDES")
Runtime type information.
BasicTurbulenceModel::transportModel transportModel
A class for managing temporary objects.
Definition: PtrList.H:53
tmp< volScalarField > chi() const
Namespace for OpenFOAM.