Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / turbulenceModels / incompressible / LES / spectEddyVisc / spectEddyVisc.H
blobf196a76720d4defc965c2e68e88eaaf15e516ec6
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::incompressible::LESModels::spectEddyVisc
27 Description
28     The Isochoric spectral Eddy Viscosity Model for incompressible flows.
30     Algebraic eddy viscosity SGS model founded on the assumption that
31     local equilibrium prevail and that viscous effects may be of importance.
33     Thus,
34     @verbatim
35         B = 2/3*k*I - 2*nuSgs*dev(D)
36         Beff = 2/3*k*I - 2*nuEff*dev(D)
38     where
40         k = cK1*delta^(2/3)*eps^(2/3)*exp(-cK2*delta^(4/3)*nu*eps^(-1/3)) -
41             ck3*sqrt(eps*nu)*erfc(ck4*delta^(-2/3)*sqrt(nu)*eps^(-1/6)))
43         nuEff = nu/(1 - exp(-cB*pow((nu/nuEff), 1.0/3.0)*pow(Re, -2.0/3.0)))
44         nuSgs = nuEff - nu
46         Re = delta^2*mag(D)/nu
47     @endverbatim
49 SourceFiles
50     spectEddyVisc.C
52 \*---------------------------------------------------------------------------*/
54 #ifndef spectEddyVisc_H
55 #define spectEddyVisc_H
57 #include "GenEddyVisc.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 namespace Foam
63 namespace incompressible
65 namespace LESModels
68 /*---------------------------------------------------------------------------*\
69                            Class spectEddyVisc Declaration
70 \*---------------------------------------------------------------------------*/
72 class spectEddyVisc
74     public GenEddyVisc
76     // Private data
78         dimensionedScalar cB_;
79         dimensionedScalar cK1_;
80         dimensionedScalar cK2_;
81         dimensionedScalar cK3_;
82         dimensionedScalar cK4_;
85     // Private Member Functions
87         //- Update sub-grid scale fields
88         void updateSubGridScaleFields(const volTensorField& gradU);
90         // Disallow default bitwise copy construct and assignment
91         spectEddyVisc(const spectEddyVisc&);
92         spectEddyVisc& operator=(const spectEddyVisc&);
95 public:
97     //- Runtime type information
98     TypeName("spectEddyVisc");
100     // Constructors
102         // Construct from components
103         spectEddyVisc
104         (
105             const volVectorField& U,
106             const surfaceScalarField& phi,
107             transportModel& transport
108         );
111     //- Destructor
112     virtual ~spectEddyVisc()
113     {}
116     // Member Functions
118         //- Return SGS kinetic energy
119         virtual tmp<volScalarField> k() const;
121         //- Correct Eddy-Viscosity and related properties
122         virtual void correct(const tmp<volTensorField>&);
124         //- Read LESProperties dictionary
125         virtual bool read();
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 } // End namespace LESModels
132 } // End namespace incompressible
133 } // End namespace Foam
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 #endif
139 // ************************************************************************* //