FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

spectEddyVisc.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::incompressible::LESModels::spectEddyVisc
00026 
00027 Description
00028     The Isochoric spectral Eddy Viscosity Model for incompressible flows.
00029 
00030     Algebraic eddy viscosity SGS model founded on the assumption that
00031     local equilibrium prevail and that viscous effects may be of importance.
00032 
00033     Thus,
00034     @verbatim
00035         B = 2/3*k*I - 2*nuSgs*dev(D)
00036         Beff = 2/3*k*I - 2*nuEff*dev(D)
00037 
00038     where
00039 
00040         k = cK1*delta^(2/3)*eps^(2/3)*exp(-cK2*delta^(4/3)*nu*eps^(-1/3)) -
00041             ck3*sqrt(eps*nu)*erfc(ck4*delta^(-2/3)*sqrt(nu)*eps^(-1/6)))
00042 
00043         nuEff = nu/(1 - exp(-cB*pow((nu/nuEff), 1.0/3.0)*pow(Re, -2.0/3.0)))
00044         nuSgs = nuEff - nu
00045 
00046         Re = delta^2*mag(D)/nu
00047     @endverbatim
00048 
00049 SourceFiles
00050     spectEddyVisc.C
00051 
00052 \*---------------------------------------------------------------------------*/
00053 
00054 #ifndef spectEddyVisc_H
00055 #define spectEddyVisc_H
00056 
00057 #include <incompressibleLESModels/GenEddyVisc.H>
00058 
00059 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00060 
00061 namespace Foam
00062 {
00063 namespace incompressible
00064 {
00065 namespace LESModels
00066 {
00067 
00068 /*---------------------------------------------------------------------------*\
00069                            Class spectEddyVisc Declaration
00070 \*---------------------------------------------------------------------------*/
00071 
00072 class spectEddyVisc
00073 :
00074     public GenEddyVisc
00075 {
00076     // Private data
00077 
00078         dimensionedScalar cB_;
00079         dimensionedScalar cK1_;
00080         dimensionedScalar cK2_;
00081         dimensionedScalar cK3_;
00082         dimensionedScalar cK4_;
00083 
00084 
00085     // Private Member Functions
00086 
00087         //- Update sub-grid scale fields
00088         void updateSubGridScaleFields(const volTensorField& gradU);
00089 
00090         // Disallow default bitwise copy construct and assignment
00091         spectEddyVisc(const spectEddyVisc&);
00092         spectEddyVisc& operator=(const spectEddyVisc&);
00093 
00094 
00095 public:
00096 
00097     //- Runtime type information
00098     TypeName("spectEddyVisc");
00099 
00100     // Constructors
00101 
00102         // Construct from components
00103         spectEddyVisc
00104         (
00105             const volVectorField& U,
00106             const surfaceScalarField& phi,
00107             transportModel& transport
00108         );
00109 
00110 
00111     //- Destructor
00112     virtual ~spectEddyVisc()
00113     {}
00114 
00115 
00116     // Member Functions
00117 
00118         //- Return SGS kinetic energy
00119         virtual tmp<volScalarField> k() const;
00120 
00121         //- Correct Eddy-Viscosity and related properties
00122         virtual void correct(const tmp<volTensorField>&);
00123 
00124         //- Read LESProperties dictionary
00125         virtual bool read();
00126 };
00127 
00128 
00129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00130 
00131 } // End namespace LESModels
00132 } // End namespace incompressible
00133 } // End namespace Foam
00134 
00135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00136 
00137 #endif
00138 
00139 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines