ENH: Include relative includes directly, instead of using -I
[freefoam.git] / applications / solvers / combustion / PDRFoam / PDRModels / dragModels / basic / basic.H
bloba14a431711b7c0770a083687dd4f3ab581bf0ce7
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::PDRDragModels::basic
27 Description
28     Basic sub-grid obstacle drag model.
29     Details supplied by J Puttock 2/7/06.
31     <b> Sub-grid drag term </b>
33     The resistance term (force per unit of volume) is given by:
35     \f[
36         R = -\frac{1}{2} \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.D
37     \f]
39     where:
41         \f$ D \f$ is the tensor field "CR" in \f$ m^{-1} \f$
43         This is term is treated implicitly in UEqn.H
45     <b> Sub-grid turbulence generation </b>
47     The turbulence source term \f$ G_{R} \f$ occurring in the
48     \f$ \kappa-\epsilon \f$ equations for the generation of turbulence due
49     to interaction with unresolved obstacles :
51     \f$ G_{R} = C_{s}\beta_{\nu}
52     \mu_{eff} A_{w}^{2}(\dwea{\vec{U}}-\dwea{\vec{U}_{s}})^2 + \frac{1}{2}
53     \rho \vert \dwea{\vec{U}} \vert \dwea{\vec{U}}.T.\dwea{\vec{U}} \f$
55     where:
57         \f$ C_{s} \f$ = 1
59         \f$ \beta_{\nu} \f$ is the volume porosity (file "betav").
61         \f$ \mu_{eff} \f$ is the effective viscosity.
63         \f$ A_{w}^{2}\f$ is the obstacle surface area per unit of volume
64         (file "Aw").
66         \f$ \dwea{\vec{U}_{s}} \f$ is the slip velocity and is considered
67         \f$ \frac{1}{2}. \dwea{\vec{U}} \f$.
69         \f$ T \f$ is a tensor in the file CT.
71     The term \f$ G_{R} \f$ is treated explicitly in the \f$ \kappa-\epsilon
72     \f$ Eqs in the \link PDRkEpsilon.C \endlink file.
75 SourceFiles
76     basic.C
78 \*---------------------------------------------------------------------------*/
80 #ifndef basic_H
81 #define basic_H
83 #include "../PDRDragModel/PDRDragModel.H"
84 #include "../../../XiModels/XiEqModels/XiEqModel/XiEqModel.H"
87 namespace Foam
89 namespace PDRDragModels
92 /*---------------------------------------------------------------------------*\
93                           Class basic Declaration
94 \*---------------------------------------------------------------------------*/
96 class basic
98     public PDRDragModel
100     // Private data
102         dimensionedScalar Csu;
103         dimensionedScalar Csk;
105         volScalarField Aw2_;
106         volSymmTensorField CR_;
107         volSymmTensorField CT_;
110     // Private Member Functions
112         //- Disallow copy construct
113         basic(const basic&);
115         //- Disallow default bitwise assignment
116         void operator=(const basic&);
119 public:
121     //- Runtime type information
122     TypeName("basic");
125     // Constructors
127         //- Construct from components
128         basic
129         (
130             const dictionary& PDRProperties,
131             const compressible::RASModel& turbulence,
132             const volScalarField& rho,
133             const volVectorField& U,
134             const surfaceScalarField& phi
135         );
138     // Destructor
140         virtual ~basic();
143     // Member Functions
145         //- Return the momentum drag coefficient
146         virtual tmp<volSymmTensorField> Dcu() const;
148         //- Return the momentum drag turbulence generation rate
149         virtual tmp<volScalarField> Gk() const;
151         //- Update properties from given dictionary
152         virtual bool read(const dictionary& PDRProperties);
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158 } // End namespace PDRDragModels
159 } // End namespace Foam
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 #endif
165 // ************************ vim: set sw=4 sts=4 et: ************************ //