BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / turbulenceModels / compressible / LES / GenEddyVisc / GenEddyVisc.H
blobf11a06da9b47dae8fbb29a4c030302fc07a90af3
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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::compressible::LESModels::GenEddyVisc
27 Description
28     General base class for all compressible models that can be implemented as
29     an eddy viscosity, i.e. algebraic and one-equation models.
31     Contains fields for k (SGS turbulent kinetic energy), gamma
32     (modelled viscosity) and epsilon (SGS dissipation).
34 SourceFiles
35     GenEddyVisc.C
37 \*---------------------------------------------------------------------------*/
39 #ifndef compressibleGenEddyVisc_H
40 #define compressibleGenEddyVisc_H
42 #include "LESModel.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
48 namespace compressible
50 namespace LESModels
53 /*---------------------------------------------------------------------------*\
54                            Class GenEddyVisc Declaration
55 \*---------------------------------------------------------------------------*/
57 class GenEddyVisc
59     virtual public LESModel
61     // Private Member Functions
63         // Disallow default bitwise copy construct and assignment
64         GenEddyVisc(const GenEddyVisc&);
65         GenEddyVisc& operator=(const GenEddyVisc&);
68 protected:
70     // Model coefficients
72         dimensionedScalar ce_;
73         dimensionedScalar Prt_;
76     // Fields
78         volScalarField muSgs_;
79         volScalarField alphaSgs_;
82 public:
84     //- Partial Runtime type information
85     static const word typeName;
87     // Constructors
89         //- Construct from components
90         GenEddyVisc
91         (
92             const volScalarField& rho,
93             const volVectorField& U,
94             const surfaceScalarField& phi,
95             const basicThermo& thermoPhysicalModel,
96             const word& turbulenceModelName = turbulenceModel::typeName,
97             const word& modelName = typeName
98         );
101     //- Destructor
102     virtual ~GenEddyVisc()
103     {}
106     // Member Functions
108         //- Return sub-grid disipation rate
109         virtual tmp<volScalarField> epsilon() const
110         {
111             return ce_*k()*sqrt(k())/delta();
112         }
114         //- Return viscosity
115         virtual tmp<volScalarField> muSgs() const
116         {
117             return muSgs_;
118         }
120         //- Return thermal diffusivity
121         virtual tmp<volScalarField> alphaSgs() const
122         {
123             return alphaSgs_;
124         }
126         //- Return the sub-grid stress tensor.
127         virtual tmp<volSymmTensorField> B() const;
129         //- Return the deviatoric part of the effective sub-grid
130         //  turbulence stress tensor including the laminar stress
131         virtual tmp<volSymmTensorField> devRhoBeff() const;
133         //- Returns div(rho*dev(B)).
134         // This is the additional term due to the filtering of the NSE.
135         virtual tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const;
137         //- Correct Eddy-Viscosity and related properties
138         virtual void correct(const tmp<volTensorField>& gradU);
140         //- Read LESProperties dictionary
141         virtual bool read();
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 } // End namespace LESModels
148 } // End namespace compressible
149 } // End namespace Foam
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
153 #endif
155 // ************************************************************************* //