initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / turbulenceModels / incompressible / LES / spectEddyVisc / spectEddyVisc.H
blob8c857a2a05c988ad12bf25e724d832b4c7dc0d7f
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::incompressible::LESModels::spectEddyVisc
28 Description
29     The Isochoric spectral Eddy Viscosity Model for incompressible flows.
31     Algebraic eddy viscosity SGS model founded on the assumption that
32     local equilibrium prevail and that viscous effects may be of importance.
34     Thus,
35     @verbatim
36         B = 2/3*k*I - 2*nuSgs*dev(D)
37         Beff = 2/3*k*I - 2*nuEff*dev(D)
39     where
41         k = cK1*delta^(2/3)*eps^(2/3)*exp(-cK2*delta^(4/3)*nu*eps^(-1/3)) -
42             ck3*sqrt(eps*nu)*erfc(ck4*delta^(-2/3)*sqrt(nu)*eps^(-1/6)))
44         nuEff = nu/(1 - exp(-cB*pow((nu/nuEff), 1.0/3.0)*pow(Re, -2.0/3.0)))
45         nuSgs = nuEff - nu
47         Re = delta^2*mag(D)/nu
48     @endverbatim
50 SourceFiles
51     spectEddyVisc.C
53 \*---------------------------------------------------------------------------*/
55 #ifndef spectEddyVisc_H
56 #define spectEddyVisc_H
58 #include "GenEddyVisc.H"
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62 namespace Foam
64 namespace incompressible
66 namespace LESModels
69 /*---------------------------------------------------------------------------*\
70                            Class spectEddyVisc Declaration
71 \*---------------------------------------------------------------------------*/
73 class spectEddyVisc
75     public GenEddyVisc
77     // Private data
79         dimensionedScalar cB_;
80         dimensionedScalar cK1_;
81         dimensionedScalar cK2_;
82         dimensionedScalar cK3_;
83         dimensionedScalar cK4_;
86     // Private Member Functions
88         //- Update sub-grid scale fields
89         void updateSubGridScaleFields(const volTensorField& gradU);
91         // Disallow default bitwise copy construct and assignment
92         spectEddyVisc(const spectEddyVisc&);
93         spectEddyVisc& operator=(const spectEddyVisc&);
96 public:
98     //- Runtime type information
99     TypeName("spectEddyVisc");
101     // Constructors
103         // Construct from components
104         spectEddyVisc
105         (
106             const volVectorField& U,
107             const surfaceScalarField& phi,
108             transportModel& transport
109         );
112     //- Destructor
113     virtual ~spectEddyVisc()
114     {}
117     // Member Functions
119         //- Return SGS kinetic energy
120         virtual tmp<volScalarField> k() const;
122         //- Correct Eddy-Viscosity and related properties
123         virtual void correct(const tmp<volTensorField>&);
125         //- Read LESProperties dictionary
126         virtual bool read();
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 } // End namespace LESModels
133 } // End namespace incompressible
134 } // End namespace Foam
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 #endif
140 // ************************************************************************* //