Added more documentation.
[OpenFOAM-1.5.x.git] / applications / solvers / combustion / PDRFoam / PDRModels / dragModels / basic / basic.H
blobf021b6829e981bf1a8f54178b05762b1965c1c83
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::PDRDragModels::basic
28 Description
29     Basic sub-grid obstacle drag model.
30     Details supplied by J Puttock 2/7/06.
32     <b> Sub-grid drag term </b>
34     The resistance term (force per unit of volume) is given by:
36     \f[
37         R = -\frac{1}{2} \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.D
38     \f]
40     where:
42         \f$ D \f$ is the tensor field "CR" in \f$ m^{-1} \f$
44         This is term is treated implicitly in UEqn.H
46     <b> Sub-grid turbulence generation </b>
48     The turbulence source term \f$ G_{R} \f$ occurring in the
49     \f$ \kappa-\epsilon \f$ equations for the generation of turbulence due
50     to interaction with unresolved obstacles :
52     \f$ G_{R} = C_{s}\beta_{\nu}
53     \mu_{eff} A_{w}^{2}(\dwea{\vec{U}}-\dwea{\vec{U}_{s}})^2 + \frac{1}{2}
54     \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.T.\dwea{\vec{U}} \f$
56     where:
58         \f$ C_{s} \f$ = 1
60         \f$ \beta_{\nu} \f$ is the volume porosity (file "betav").
62         \f$ \mu_{eff} \f$ is the effective viscosity.
64         \f$ A_{w}^{2}\f$ is the obstacle surface area per unit of volume
65         (file "Aw").
67         \f$ \dwea{\vec{U}_{s}} \f$ is the slip velocity and is considered
68         \f$ \frac{1}{2}. \dwea{\vec{U}} \f$.
70         \f$ T \f$ is a tensor in the file CT.
72     The term \f$ G_{R} \f$ is treated explicitly in the \f$ \kappa-\epsilon
73     \f$ Eqs in the \link PDRkEpsilon.C \endlink file.
76 SourceFiles
77     basic.C
79 \*---------------------------------------------------------------------------*/
81 #ifndef basic_H
82 #define basic_H
84 #include "PDRDragModel.H"
85 #include "XiEqModel.H"
88 namespace Foam
90 namespace PDRDragModels
93 /*---------------------------------------------------------------------------*\
94                           Class basic Declaration
95 \*---------------------------------------------------------------------------*/
97 class basic
99     public PDRDragModel
101     // Private data
103         dimensionedScalar Csu;
104         dimensionedScalar Csk;
106         volScalarField Aw2_;
107         volSymmTensorField CR_;
108         volSymmTensorField CT_;
111     // Private Member Functions
113         //- Disallow copy construct
114         basic(const basic&);
116         //- Disallow default bitwise assignment
117         void operator=(const basic&);
120 public:
122     //- Runtime type information
123     TypeName("basic");
126     // Constructors
128         //- Construct from components
129         basic
130         (
131             const dictionary& PDRProperties,
132             const compressible::RASModel& turbulence,
133             const volScalarField& rho,
134             const volVectorField& U,
135             const surfaceScalarField& phi
136         );
139     // Destructor
141         virtual ~basic();
144     // Member Functions
146         //- Return the momentum drag coefficient
147         virtual tmp<volSymmTensorField> Dcu() const;
149         //- Return the momentum drag turbulence generation rate
150         virtual tmp<volScalarField> Gk() const;
152         //- Update properties from given dictionary
153         virtual bool read(const dictionary& PDRProperties);
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 } // End namespace PDRDragModels
160 } // End namespace Foam
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 #endif
166 // ************************************************************************* //