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

basic.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::PDRDragModels::basic
00026 
00027 Description
00028     Basic sub-grid obstacle drag model.
00029     Details supplied by J Puttock 2/7/06.
00030 
00031     <b> Sub-grid drag term </b>
00032 
00033     The resistance term (force per unit of volume) is given by:
00034 
00035     \f[
00036         R = -\frac{1}{2} \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.D
00037     \f]
00038 
00039     where:
00040 
00041         \f$ D \f$ is the tensor field "CR" in \f$ m^{-1} \f$
00042 
00043         This is term is treated implicitly in UEqn.H
00044 
00045     <b> Sub-grid turbulence generation </b>
00046 
00047     The turbulence source term \f$ G_{R} \f$ occurring in the
00048     \f$ \kappa-\epsilon \f$ equations for the generation of turbulence due
00049     to interaction with unresolved obstacles :
00050 
00051     \f$ G_{R} = C_{s}\beta_{\nu}
00052     \mu_{eff} A_{w}^{2}(\dwea{\vec{U}}-\dwea{\vec{U}_{s}})^2 + \frac{1}{2}
00053     \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.T.\dwea{\vec{U}} \f$
00054 
00055     where:
00056 
00057         \f$ C_{s} \f$ = 1
00058 
00059         \f$ \beta_{\nu} \f$ is the volume porosity (file "betav").
00060 
00061         \f$ \mu_{eff} \f$ is the effective viscosity.
00062 
00063         \f$ A_{w}^{2}\f$ is the obstacle surface area per unit of volume
00064         (file "Aw").
00065 
00066         \f$ \dwea{\vec{U}_{s}} \f$ is the slip velocity and is considered
00067         \f$ \frac{1}{2}. \dwea{\vec{U}} \f$.
00068 
00069         \f$ T \f$ is a tensor in the file CT.
00070 
00071     The term \f$ G_{R} \f$ is treated explicitly in the \f$ \kappa-\epsilon
00072     \f$ Eqs in the \link PDRkEpsilon.C \endlink file.
00073 
00074 
00075 SourceFiles
00076     basic.C
00077 
00078 \*---------------------------------------------------------------------------*/
00079 
00080 #ifndef basic_H
00081 #define basic_H
00082 
00083 #include "../PDRDragModel/PDRDragModel.H"
00084 #include "../../../XiModels/XiEqModels/XiEqModel/XiEqModel.H"
00085 
00086 
00087 namespace Foam
00088 {
00089 namespace PDRDragModels
00090 {
00091 
00092 /*---------------------------------------------------------------------------*\
00093                           Class basic Declaration
00094 \*---------------------------------------------------------------------------*/
00095 
00096 class basic
00097 :
00098     public PDRDragModel
00099 {
00100     // Private data
00101 
00102         dimensionedScalar Csu;
00103         dimensionedScalar Csk;
00104 
00105         volScalarField Aw2_;
00106         volSymmTensorField CR_;
00107         volSymmTensorField CT_;
00108 
00109 
00110     // Private Member Functions
00111 
00112         //- Disallow copy construct
00113         basic(const basic&);
00114 
00115         //- Disallow default bitwise assignment
00116         void operator=(const basic&);
00117 
00118 
00119 public:
00120 
00121     //- Runtime type information
00122     TypeName("basic");
00123 
00124 
00125     // Constructors
00126 
00127         //- Construct from components
00128         basic
00129         (
00130             const dictionary& PDRProperties,
00131             const compressible::RASModel& turbulence,
00132             const volScalarField& rho,
00133             const volVectorField& U,
00134             const surfaceScalarField& phi
00135         );
00136 
00137 
00138     // Destructor
00139 
00140         virtual ~basic();
00141 
00142 
00143     // Member Functions
00144 
00145         //- Return the momentum drag coefficient
00146         virtual tmp<volSymmTensorField> Dcu() const;
00147 
00148         //- Return the momentum drag turbulence generation rate
00149         virtual tmp<volScalarField> Gk() const;
00150 
00151         //- Update properties from given dictionary
00152         virtual bool read(const dictionary& PDRProperties);
00153 };
00154 
00155 
00156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00157 
00158 } // End namespace PDRDragModels
00159 } // End namespace Foam
00160 
00161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00162 
00163 #endif
00164 
00165 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines