![]() |
|
00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2005 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 the 00013 Free Software Foundation; either version 2 of the License, or (at your 00014 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, write to the Free Software Foundation, 00023 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00024 00025 Class 00026 dynMixedSmagorinsky 00027 00028 Description 00029 <pre> 00030 The Mixed Isochoric Smagorinsky Model 00031 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00032 The mixed model is a linear combination of an eddy viscosity model 00033 with a scale similarity model. 00034 00035 B = (L + C) + R = (F(v*v) - F(v)*F(v)) + R 00036 00037 The algebraic eddy viscosity SGS model is founded on the assumption 00038 that local equilibrium prevails, hence 00039 00040 R = 2/3*rho*k*I - 2*nuEff*dev(D) 00041 00042 where 00043 00044 k = cI*delta^2*||D||^2 00045 nuEff = ck*sqrt(k)*delta + nu 00046 00047 The Leonard and cross contributions are incorporated 00048 by adding, 00049 00050 + div(((filter(U*U) - filter(U)*filter(U)) - 00051 0.333*I*tr(filter(U*U) - filter(U)*filter(U)))) 00052 + div((filter(U*epsilon) - filter(U)*filter(epsilon))) 00053 00054 to the rhs. of the equations. This version implements filtering to 00055 evaluate the coefficients in the model. 00056 </pre> 00057 00058 SourceFiles 00059 dynMixedSmagorinsky.C 00060 00061 \*---------------------------------------------------------------------------*/ 00062 00063 #ifndef dynMixedSmagorinsky_H 00064 #define dynMixedSmagorinsky_H 00065 00066 #include "dynSmagorinsky.H" 00067 #include "scaleSimilarity.H" 00068 00069 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00070 00071 namespace Foam 00072 { 00073 namespace LESmodels 00074 { 00075 00076 /*---------------------------------------------------------------------------*\ 00077 Class dynMixedSmagorinsky Declaration 00078 \*---------------------------------------------------------------------------*/ 00079 00080 class dynMixedSmagorinsky 00081 : 00082 public scaleSimilarity, 00083 public dynSmagorinsky 00084 { 00085 // Private Member Functions 00086 00087 // Disallow default bitwise copy construct and assignment 00088 dynMixedSmagorinsky(const dynMixedSmagorinsky&); 00089 dynMixedSmagorinsky& operator=(const dynMixedSmagorinsky&); 00090 00091 public: 00092 00093 //- Runtime type information 00094 TypeName("dynMixedSmagorinsky"); 00095 00096 // Constructors 00097 00098 //- Constructors from components 00099 dynMixedSmagorinsky 00100 ( 00101 const volVectorField& U, 00102 const surfaceScalarField& phi, 00103 transportModel& transport 00104 ); 00105 00106 00107 // Destructor 00108 00109 ~dynMixedSmagorinsky() 00110 {} 00111 00112 00113 // Member Functions 00114 00115 //- Return B. 00116 tmp<volTensorField> B() const; 00117 00118 //- Return SGS kinetic energy 00119 tmp<volScalarField> k() const; 00120 00121 //- Return sub-grid disipation rate 00122 tmp<volScalarField> epsilon() const; 00123 00124 //- Returns div(B). 00125 // This is the additional term due to the filtering of the NSE. 00126 tmp<fvVectorMatrix> divB(volVectorField& U) const; 00127 00128 //- Correct Eddy-Viscosity and related properties 00129 void correct(const tmp<volTensorField>& gradU); 00130 00131 //- Read turbulenceProperties dictionary 00132 bool read(); 00133 }; 00134 00135 00136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00137 00138 } // End namespace LESmodels 00139 } // End namespace Foam 00140 00141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00142 00143 #endif 00144 00145 // ************************************************************************* //