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 | Copyright (C) 2011-2016 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 Group
28  grpDESTurbulence
29 
30 Description
31  SpalartAllmaras IDDES turbulence model for incompressible and compressible
32  flows
33 
34  Reference:
35  \verbatim
36  Shur, M. L., Spalart, P. R., Strelets, M. K., & Travin, A. K. (2008).
37  A hybrid RANS-LES approach with delayed-DES and wall-modelled LES
38  capabilities.
39  International Journal of Heat and Fluid Flow, 29(6), 1638-1649.
40  \endverbatim
41 
42 SourceFiles
43  SpalartAllmarasIDDES.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef SpalartAllmarasIDDES_H
48 #define SpalartAllmarasIDDES_H
49 
50 #include "SpalartAllmarasDES.H"
51 #include "IDDESDelta.H"
52 
53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 
55 namespace Foam
56 {
57 namespace LESModels
58 {
59 
60 /*---------------------------------------------------------------------------*\
61  Class SpalartAllmarasIDDES Declaration
62 \*---------------------------------------------------------------------------*/
63 
64 template<class BasicTurbulenceModel>
66 :
67  public SpalartAllmarasDES<BasicTurbulenceModel>
68 {
69  // Private data
70 
71  // Model constants
72 
73  dimensionedScalar fwStar_;
76 
77  // Fields
78 
79  const IDDESDelta& IDDESDelta_;
80 
81 
82  // Private Member Functions
83 
84  tmp<volScalarField> alpha() const;
85  tmp<volScalarField> ft(const volScalarField& magGradU) const;
86  tmp<volScalarField> fl(const volScalarField& magGradU) const;
87 
89  (
90  const volScalarField& nur,
91  const volScalarField& magGradU
92  ) const;
93 
94  //- Delay function
95  tmp<volScalarField> fd(const volScalarField& magGradU) const;
96 
97  // Disallow default bitwise copy construct and assignment
99  void operator=(const SpalartAllmarasIDDES&);
100 
101 
102 protected:
103 
104  // Protected Member Functions
105 
106  //- Length scale
108  (
109  const volScalarField& chi,
110  const volScalarField& fv1,
111  const volTensorField& gradU
112  ) const;
113 
114 
115 public:
117  typedef typename BasicTurbulenceModel::alphaField alphaField;
118  typedef typename BasicTurbulenceModel::rhoField rhoField;
119  typedef typename BasicTurbulenceModel::transportModel transportModel;
120 
121 
122  //- Runtime type information
123  TypeName("SpalartAllmarasIDDES");
124 
125 
126  // Constructors
127 
128  //- Construct from components
130  (
131  const alphaField& alpha,
132  const rhoField& rho,
133  const volVectorField& U,
134  const surfaceScalarField& alphaRhoPhi,
135  const surfaceScalarField& phi,
136  const transportModel& transport,
137  const word& propertiesName = turbulenceModel::propertiesName,
138  const word& type = typeName
139  );
140 
141 
142  //- Destructor
143  virtual ~SpalartAllmarasIDDES()
144  {}
145 
146 
147  // Member Functions
148 
149  //- Read model coefficients if they have changed
150  virtual bool read();
151 };
152 
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 } // End namespace LESModels
157 } // End namespace Foam
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 #ifdef NoRepository
162  #include "SpalartAllmarasIDDES.C"
163 #endif
164 
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 
167 #endif
168 
169 // ************************************************************************* //
surfaceScalarField & phi
U
Definition: pEqn.H:83
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.
tmp< volScalarField > fv1(const volScalarField &chi) const
tmp< volScalarField > chi() const
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
TypeName("SpalartAllmarasIDDES")
Runtime type information.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:461
BasicTurbulenceModel::transportModel transportModel
A class for managing temporary objects.
Definition: PtrList.H:54
Namespace for OpenFOAM.