ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / LienCubicKELowRe / LienCubicKELowRe.H
blob4cf5143e7479f290b455b7e7a050a2c9ef5a89ee
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::incompressible::RASModels::LienCubicKELowRe
27 Description
28     Lien cubic non-linear low-Reynolds k-epsilon turbulence models for
29     incompressible flows.
31     References:
32     \verbatim
33         Lien, F.S., Chen, W.L., Leschziner, M.A.,
34         "Low-Reynolds-number eddy-viscosity modeling based on non-linear
35          stress-strain/vorticity relations"
36         Engineering Turbulence Modelling and Experiments 3
37         (Edited by Rodi, W. and Bergeles, G.), 91-100. 1996.
38         Elsevier Science Publishers.
40         Etemad, S., et al.,
41         "Turbulent flow and heat transfer in a square-sectioned U bend"
42         Progress in compuational fluid dynamics 6, 89-100. 2006.
43     \endverbatim
45 SourceFiles
46     LienCubicKELowRe.C
48 \*---------------------------------------------------------------------------*/
50 #ifndef LienCubicKELowRe_H
51 #define LienCubicKELowRe_H
53 #include "RASModel.H"
54 #include "wallDist.H"
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
58 namespace Foam
60 namespace incompressible
62 namespace RASModels
65 /*---------------------------------------------------------------------------*\
66                            Class LienCubicKELowRe Declaration
67 \*---------------------------------------------------------------------------*/
69 class LienCubicKELowRe
71     public RASModel
74 protected:
76     // Protected data
78         // Model coefficients
80             dimensionedScalar C1_;
81             dimensionedScalar C2_;
82             dimensionedScalar sigmak_;
83             dimensionedScalar sigmaEps_;
84             dimensionedScalar A1_;
85             dimensionedScalar A2_;
86             dimensionedScalar Ctau1_;
87             dimensionedScalar Ctau2_;
88             dimensionedScalar Ctau3_;
89             dimensionedScalar alphaKsi_;
91             dimensionedScalar CmuWall_;
92             dimensionedScalar kappa_;
94             dimensionedScalar Am_;
95             dimensionedScalar Aepsilon_;
96             dimensionedScalar Amu_;
99         // Fields
101             volScalarField k_;
102             volScalarField epsilon_;
104             wallDist y_;
106             volTensorField gradU_;
107             volScalarField eta_;
108             volScalarField ksi_;
109             volScalarField Cmu_;
110             volScalarField fEta_;
111             volScalarField C5viscosity_;
113             volScalarField yStar_;
115             volScalarField nut_;
117             volSymmTensorField nonlinearStress_;
120 public:
122     //- Runtime type information
123     TypeName("LienCubicKELowRe");
125     // Constructors
127         //- Construct from components
128         LienCubicKELowRe
129         (
130             const volVectorField& U,
131             const surfaceScalarField& phi,
132             transportModel& transport,
133             const word& turbulenceModelName = turbulenceModel::typeName,
134             const word& modelName = typeName
135         );
138     //- Destructor
139     virtual ~LienCubicKELowRe()
140     {}
143     // Member Functions
145         //- Return the turbulence viscosity
146         virtual tmp<volScalarField> nut() const
147         {
148             return nut_;
149         }
151         //- Return the effective diffusivity for k
152         tmp<volScalarField> DkEff() const
153         {
154             return tmp<volScalarField>
155             (
156                 new volScalarField("DkEff", nut_/sigmak_ + nu())
157             );
158         }
160         //- Return the effective diffusivity for epsilon
161         tmp<volScalarField> DepsilonEff() const
162         {
163             return tmp<volScalarField>
164             (
165                 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu())
166             );
167         }
169         //- Return the turbulence kinetic energy
170         virtual tmp<volScalarField> k() const
171         {
172             return k_;
173         }
175         //- Return the turbulence kinetic energy dissipation rate
176         virtual tmp<volScalarField> epsilon() const
177         {
178             return epsilon_;
179         }
181         //- Return the Reynolds stress tensor
182         virtual tmp<volSymmTensorField> R() const;
184         //- Return the effective stress tensor including the laminar stress
185         virtual tmp<volSymmTensorField> devReff() const;
187         //- Return the source term for the momentum equation
188         virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
190         //- Solve the turbulence equations and correct the turbulence viscosity
191         virtual void correct();
193         //- Read RASProperties dictionary
194         virtual bool read();
198 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
200 } // End namespace RASModels
201 } // Edn namespace incompressible
202 } // End namespace Foam
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 #endif
208 // ************************************************************************* //