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::RASModels::LienLeschzinerLowRe 00026 00027 Description 00028 Lien and Leschziner low-Reynolds k-epsilon turbulence model for 00029 incompressible flows. 00030 00031 SourceFiles 00032 LienLeschzinerLowRe.C 00033 00034 \*---------------------------------------------------------------------------*/ 00035 00036 #ifndef LienLeschzinerLowRe_H 00037 #define LienLeschzinerLowRe_H 00038 00039 #include <incompressibleRASModels/RASModel.H> 00040 #include <finiteVolume/wallDist.H> 00041 00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00043 00044 namespace Foam 00045 { 00046 namespace incompressible 00047 { 00048 namespace RASModels 00049 { 00050 00051 /*---------------------------------------------------------------------------*\ 00052 Class LienLeschzinerLowRe Declaration 00053 \*---------------------------------------------------------------------------*/ 00054 00055 class LienLeschzinerLowRe 00056 : 00057 public RASModel 00058 { 00059 // Private data 00060 00061 // Model coefficients 00062 00063 dimensionedScalar C1_; 00064 dimensionedScalar C2_; 00065 dimensionedScalar sigmak_; 00066 dimensionedScalar sigmaEps_; 00067 dimensionedScalar Cmu_; 00068 dimensionedScalar kappa_; 00069 00070 dimensionedScalar Am_; 00071 dimensionedScalar Aepsilon_; 00072 dimensionedScalar Amu_; 00073 00074 00075 // Fields 00076 00077 volScalarField k_; 00078 volScalarField epsilon_; 00079 00080 wallDist y_; 00081 00082 volScalarField yStar_; 00083 00084 volScalarField nut_; 00085 00086 00087 public: 00088 00089 TypeName("LienLeschzinerLowRe"); 00090 00091 // Constructors 00092 00093 //- Construct from components 00094 LienLeschzinerLowRe 00095 ( 00096 const volVectorField& U, 00097 const surfaceScalarField& phi, 00098 transportModel& transport 00099 ); 00100 00101 00102 //- Destructor 00103 virtual ~LienLeschzinerLowRe() 00104 {} 00105 00106 00107 // Member Functions 00108 00109 //- Return the turbulence viscosity 00110 virtual tmp<volScalarField> nut() const 00111 { 00112 return nut_; 00113 } 00114 00115 //- Return the effective diffusivity for k 00116 tmp<volScalarField> DkEff() const 00117 { 00118 return tmp<volScalarField> 00119 ( 00120 new volScalarField("DkEff", nut_/sigmak_ + nu()) 00121 ); 00122 } 00123 00124 //- Return the effective diffusivity for epsilon 00125 tmp<volScalarField> DepsilonEff() const 00126 { 00127 return tmp<volScalarField> 00128 ( 00129 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu()) 00130 ); 00131 } 00132 00133 //- Return the turbulence kinetic energy 00134 virtual tmp<volScalarField> k() const 00135 { 00136 return k_; 00137 } 00138 00139 //- Return the turbulence kinetic energy dissipation rate 00140 virtual tmp<volScalarField> epsilon() const 00141 { 00142 return epsilon_; 00143 } 00144 00145 //- Return the Reynolds stress tensor 00146 virtual tmp<volSymmTensorField> R() const; 00147 00148 //- Return the effective stress tensor including the laminar stress 00149 virtual tmp<volSymmTensorField> devReff() const; 00150 00151 //- Return the source term for the momentum equation 00152 virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; 00153 00154 //- Solve the turbulence equations and correct the turbulence viscosity 00155 virtual void correct(); 00156 00157 //- Read RASProperties dictionary 00158 virtual bool read(); 00159 }; 00160 00161 00162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00163 00164 } // End namespace RASModels 00165 } // End namespace incompressible 00166 } // End namespace Foam 00167 00168 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00169 00170 #endif 00171 00172 // ************************ vim: set sw=4 sts=4 et: ************************ //