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::LienCubicKELowRe 00026 00027 Description 00028 Lien cubic non-linear low-Reynolds k-epsilon turbulence models for 00029 incompressible flows. 00030 00031 References: 00032 @verbatim 00033 Lien, F.S., Chen, W.L., Leschziner, M.A., 00034 "Low-Reynolds-number eddy-viscosity modeling based on non-linear 00035 stress-strain/vorticity relations" 00036 Engineering Turbulence Modelling and Experiments 3 00037 (Edited by Rodi, W. and Bergeles, G.), 91-100. 1996. 00038 Elsevier Science Publishers. 00039 00040 Etemad, S., et al., 00041 "Turbulent flow and heat transfer in a square-sectioned U bend" 00042 Progress in compuational fluid dynamics 6, 89-100. 2006. 00043 @endverbatim 00044 00045 SourceFiles 00046 LienCubicKELowRe.C 00047 00048 \*---------------------------------------------------------------------------*/ 00049 00050 #ifndef LienCubicKELowRe_H 00051 #define LienCubicKELowRe_H 00052 00053 #include <incompressibleRASModels/RASModel.H> 00054 #include <finiteVolume/wallDist.H> 00055 00056 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00057 00058 namespace Foam 00059 { 00060 namespace incompressible 00061 { 00062 namespace RASModels 00063 { 00064 00065 /*---------------------------------------------------------------------------*\ 00066 Class LienCubicKELowRe Declaration 00067 \*---------------------------------------------------------------------------*/ 00068 00069 class LienCubicKELowRe 00070 : 00071 public RASModel 00072 { 00073 // Private data 00074 00075 // Model coefficients 00076 00077 dimensionedScalar C1_; 00078 dimensionedScalar C2_; 00079 dimensionedScalar sigmak_; 00080 dimensionedScalar sigmaEps_; 00081 dimensionedScalar A1_; 00082 dimensionedScalar A2_; 00083 dimensionedScalar Ctau1_; 00084 dimensionedScalar Ctau2_; 00085 dimensionedScalar Ctau3_; 00086 dimensionedScalar alphaKsi_; 00087 00088 dimensionedScalar CmuWall_; 00089 dimensionedScalar kappa_; 00090 00091 dimensionedScalar Am_; 00092 dimensionedScalar Aepsilon_; 00093 dimensionedScalar Amu_; 00094 00095 00096 // Fields 00097 00098 volScalarField k_; 00099 volScalarField epsilon_; 00100 00101 wallDist y_; 00102 00103 volTensorField gradU_; 00104 volScalarField eta_; 00105 volScalarField ksi_; 00106 volScalarField Cmu_; 00107 volScalarField fEta_; 00108 volScalarField C5viscosity_; 00109 00110 volScalarField yStar_; 00111 00112 volScalarField nut_; 00113 00114 volSymmTensorField nonlinearStress_; 00115 00116 00117 public: 00118 00119 //- Runtime type information 00120 TypeName("LienCubicKELowRe"); 00121 00122 // Constructors 00123 00124 //- Construct from components 00125 LienCubicKELowRe 00126 ( 00127 const volVectorField& U, 00128 const surfaceScalarField& phi, 00129 transportModel& transport 00130 ); 00131 00132 00133 //- Destructor 00134 virtual ~LienCubicKELowRe() 00135 {} 00136 00137 00138 // Member Functions 00139 00140 //- Return the turbulence viscosity 00141 virtual tmp<volScalarField> nut() const 00142 { 00143 return nut_; 00144 } 00145 00146 //- Return the effective diffusivity for k 00147 tmp<volScalarField> DkEff() const 00148 { 00149 return tmp<volScalarField> 00150 ( 00151 new volScalarField("DkEff", nut_/sigmak_ + nu()) 00152 ); 00153 } 00154 00155 //- Return the effective diffusivity for epsilon 00156 tmp<volScalarField> DepsilonEff() const 00157 { 00158 return tmp<volScalarField> 00159 ( 00160 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu()) 00161 ); 00162 } 00163 00164 //- Return the turbulence kinetic energy 00165 virtual tmp<volScalarField> k() const 00166 { 00167 return k_; 00168 } 00169 00170 //- Return the turbulence kinetic energy dissipation rate 00171 virtual tmp<volScalarField> epsilon() const 00172 { 00173 return epsilon_; 00174 } 00175 00176 //- Return the Reynolds stress tensor 00177 virtual tmp<volSymmTensorField> R() const; 00178 00179 //- Return the effective stress tensor including the laminar stress 00180 virtual tmp<volSymmTensorField> devReff() const; 00181 00182 //- Return the source term for the momentum equation 00183 virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; 00184 00185 //- Solve the turbulence equations and correct the turbulence viscosity 00186 virtual void correct(); 00187 00188 //- Read RASProperties dictionary 00189 virtual bool read(); 00190 }; 00191 00192 00193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00194 00195 } // End namespace RASModels 00196 } // Edn namespace incompressible 00197 } // End namespace Foam 00198 00199 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00200 00201 #endif 00202 00203 // ************************ vim: set sw=4 sts=4 et: ************************ //