![]() |
|
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 scaleSimilarity 00027 00028 Description 00029 General base class for all scale similarity models. Since 00030 such models do not work without additional eddy viscosity 00031 terms, this class must be combined with an eddy viscosity 00032 model of some form. 00033 00034 SourceFiles 00035 scaleSimilarity.C 00036 00037 \*---------------------------------------------------------------------------*/ 00038 00039 #ifndef scaleSimilarity_H 00040 #define scaleSimilarity_H 00041 00042 #include "LESmodel.H" 00043 #include "LESfilter.H" 00044 00045 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00046 00047 namespace Foam 00048 { 00049 namespace LESmodels 00050 { 00051 00052 /*---------------------------------------------------------------------------*\ 00053 Class scaleSimilarity Declaration 00054 \*---------------------------------------------------------------------------*/ 00055 00056 class scaleSimilarity 00057 : 00058 virtual public LESmodel 00059 { 00060 // Private data 00061 00062 autoPtr<LESfilter> filterPtr_; 00063 LESfilter& filter_; 00064 00065 00066 // Private Member Functions 00067 00068 // Disallow default bitwise copy construct and assignment 00069 scaleSimilarity(const scaleSimilarity&); 00070 scaleSimilarity& operator=(const scaleSimilarity&); 00071 00072 00073 public: 00074 00075 //- Runtime type information 00076 TypeName("scaleSimilarity"); 00077 00078 // Constructors 00079 00080 //- Construct from components 00081 scaleSimilarity 00082 ( 00083 const volVectorField& U, 00084 const surfaceScalarField& phi, 00085 transportModel& transport 00086 ); 00087 00088 00089 // Destructor 00090 00091 ~scaleSimilarity(); 00092 00093 00094 // Member Functions 00095 00096 //- Return B. 00097 tmp<volTensorField> B() const; 00098 00099 //- Return the SGS turbulent kinetic energy. 00100 tmp<volScalarField> k() const; 00101 00102 //- Return the SGS turbulent dissipation. 00103 tmp<volScalarField> epsilon() const; 00104 00105 // Returns div(B). 00106 // This is the additional term due to the filtering of the NSE. 00107 tmp<fvVectorMatrix> divB(volVectorField& U) const; 00108 00109 //- Actual implementation of the SGS source term in the NSE 00110 // arising from the scale similarity model. 00111 tmp<volVectorField> divB() const; 00112 00113 //- Correct Eddy-Viscosity and related properties 00114 void correct(const tmp<volTensorField>&); 00115 00116 //- Read turbulenceProperties dictionary 00117 bool read(); 00118 }; 00119 00120 00121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00122 00123 } // End namespace LESmodels 00124 } // End namespace Foam 00125 00126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00127 00128 #endif 00129 00130 // ************************************************************************* //