Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / LES / SpalartAllmarasIDDES / SpalartAllmarasIDDES.H
bloba4b8aedd5dd0b81e06ab2d75a4cd18745ff69dc2
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2008-2011 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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.
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.
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/>.
24 Class
25     Foam::incompressible::LESModels::SpalartAllmarasIDDES
27 Description
28     SpalartAllmarasIDDES LES turbulence model for incompressible flows
30 SourceFiles
31     SpalartAllmarasIDDES.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef SpalartAllmarasIDDES_H
36 #define SpalartAllmarasIDDES_H
38 #include "SpalartAllmaras.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
44 namespace incompressible
46 namespace LESModels
49 /*---------------------------------------------------------------------------*\
50                         Class SpalartAllmarasIDDES Declaration
51 \*---------------------------------------------------------------------------*/
53 class SpalartAllmarasIDDES
55     public SpalartAllmaras
57     // Private data
59         // Model constants
61             autoPtr<LESdelta> hmax_;
62             autoPtr<LESdelta> IDDESDelta_;
63             dimensionedScalar fwStar_;
64             dimensionedScalar cl_;
65             dimensionedScalar ct_;
68     // Private Member Functions
70         tmp<volScalarField> alpha() const;
71         tmp<volScalarField> ft(const volScalarField& S) const;
72         tmp<volScalarField> fl(const volScalarField& S) const;
74         tmp<volScalarField> rd
75         (
76             const volScalarField& visc,
77             const volScalarField& S
78         ) const;
80         //- Delay function
81         tmp<volScalarField> fd(const volScalarField& S) const;
83         // Disallow default bitwise copy construct and assignment
84         SpalartAllmarasIDDES(const SpalartAllmarasIDDES&);
85         SpalartAllmarasIDDES& operator=(const SpalartAllmarasIDDES&);
88 protected:
90     // Protected Member Functions
92         //- Length scale
93         virtual tmp<volScalarField> dTilda(const volScalarField& S) const;
96 public:
98     //- Runtime type information
99     TypeName("SpalartAllmarasIDDES");
102     // Constructors
104         //- Construct from components
105         SpalartAllmarasIDDES
106         (
107             const volVectorField& U,
108             const surfaceScalarField& phi,
109             transportModel& transport,
110             const word& turbulenceModelName = turbulenceModel::typeName,
111             const word& modelName = typeName
112         );
115     //- Destructor
116     virtual ~SpalartAllmarasIDDES()
117     {}
120     // Member Functions
122         //- Access function to filter width
123         virtual const volScalarField& delta() const
124         {
125             return IDDESDelta_();
126         }
128         //- Read LESProperties dictionary
129         virtual bool read();
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace LESModels
136 } // End namespace incompressible
137 } // End namespace Foam
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 #endif
143 // ************************************************************************* //