Forward compatibility: flex
[foam-extend-3.2.git] / src / thermophysicalModels / reactionThermo / combustionThermo / hhuCombustionThermo / hhuCombustionThermo.H
blob2ad1768cc9e7541c672cfb66f8d5495c75e3d99d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::hhuCombustionThermo
27 Description
28     Foam::hhuCombustionThermo
30 SourceFiles
31     hhuCombustionThermo.C
32     newhhuCombustionThermo.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef hhuCombustionThermo_H
37 #define hhuCombustionThermo_H
39 #include "hCombustionThermo.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                   Class hhuCombustionThermo Declaration
48 \*---------------------------------------------------------------------------*/
50 class hhuCombustionThermo
52     public hCombustionThermo
55 protected:
57     // Protected data
59         volScalarField Tu_;
60         volScalarField hu_;
63     // Protected member functions
65         wordList huBoundaryTypes();
66         void huBoundaryCorrection(volScalarField& hu);
69 public:
71     //- Runtime type information
72     TypeName("hhuCombustionThermo");
75     // Declare run-time constructor selection tables
77         declareRunTimeSelectionTable
78         (
79             autoPtr,
80             hhuCombustionThermo,
81             fvMesh,
82             (const fvMesh& mesh, const objectRegistry& obj),
83             (mesh, obj)
84         );
87     // Constructors
89         //- Construct from dictionary and mesh
90         hhuCombustionThermo(const fvMesh&, const objectRegistry&);
93     // Selectors
95         static autoPtr<hhuCombustionThermo> New(const fvMesh&, const objectRegistry&);
97         static autoPtr<hhuCombustionThermo> New(const fvMesh& mesh)
98         {
99             return New(mesh, mesh);
100         }
103     //- Destructor
104     virtual ~hhuCombustionThermo();
107     // Member functions
109         //- Update properties
110         virtual void correct() = 0;
113         // Access to thermodynamic state variables.
115             //- Unburnt gas enthalpy [J/kg]
116             //  Non-const access allowed for transport equations
117             virtual volScalarField& hu()
118             {
119                 return hu_;
120             }
122             //- Unburnt gas enthalpy [J/kg]
123             virtual const volScalarField& hu() const
124             {
125                 return hu_;
126             }
129         // Fields derived from thermodynamic state variables
131             //- Unburnt gas enthalpy for cell-set [J/kg]
132             virtual tmp<scalarField> hu
133             (
134                 const scalarField& T,
135                 const labelList& cells
136             ) const = 0;
138             //- Unburnt gas enthalpy for patch [J/kg]
139             virtual tmp<scalarField> hu
140             (
141                 const scalarField& T,
142                 const label patchi
143             ) const = 0;
145             //- Unburnt gas temperature [K]
146             virtual const volScalarField& Tu() const
147             {
148                 return Tu_;
149             }
151             //- Burnt gas temperature [K]
152             virtual tmp<volScalarField> Tb() const = 0;
154             //- Unburnt gas density [kg/m^3]
155             virtual tmp<volScalarField> rhou() const
156             {
157                 return p_*psiu();
158             }
160             //- Burnt gas density [kg/m^3]
161             virtual tmp<volScalarField> rhob() const
162             {
163                 return p_*psib();
164             }
166             //- Unburnt gas compressibility [s^2/m^2]
167             virtual tmp<volScalarField> psiu() const = 0;
169             //- Burnt gas compressibility [s^2/m^2]
170             virtual tmp<volScalarField> psib() const = 0;
172             //- Dynamic viscosity of unburnt gas [kg/ms]
173             virtual tmp<volScalarField> muu() const = 0;
175             //- Dynamic viscosity of burnt gas [kg/ms]
176             virtual tmp<volScalarField> mub() const = 0;
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 } // End namespace Foam
184 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 #endif
188 // ************************************************************************* //