Forward compatibility: flex
[foam-extend-3.2.git] / src / thermophysicalModels / reactionThermo / combustionThermo / hCombustionThermo / hCombustionThermo.H
blobdd452b2d832abc401bd626dffa927fa538cef9a0
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::hCombustionThermo
27 Description
28     Foam::hCombustionThermo
30 SourceFiles
31     hCombustionThermo.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef hCombustionThermo_H
36 #define hCombustionThermo_H
38 #include "basicPsiThermo.H"
39 #include "basicMultiComponentMixture.H"
40 #include "autoPtr.H"
41 #include "runTimeSelectionTables.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                      Class hCombustionThermo Declaration
50 \*---------------------------------------------------------------------------*/
52 class hCombustionThermo
54     public basicPsiThermo
57 protected:
59     // Protected data
61         //- Enthalpy field
62         volScalarField h_;
65 public:
67     //- Runtime type information
68     TypeName("hCombustionThermo");
71     //- Declare run-time constructor selection tables
72     declareRunTimeSelectionTable
73     (
74         autoPtr,
75         hCombustionThermo,
76         fvMesh,
77         (const fvMesh& mesh, const objectRegistry& obj),
78         (mesh, obj)
79     );
82     // Constructors
84         //- Construct from dictionary and mesh
85         hCombustionThermo(const fvMesh&, const objectRegistry&);
88     // Selectors
90         //- Standard selection based on fvMesh
91         static autoPtr<hCombustionThermo> New(const fvMesh&, const objectRegistry&);
93         static autoPtr<hCombustionThermo> New(const fvMesh& mesh)
94         {
95             return New(mesh, mesh);
96         }
98         //- Select and check that package contains 'thermoType'
99         static autoPtr<hCombustionThermo> NewType
100         (
101             const fvMesh&,
102             const objectRegistry&,
103             const word& thermoType
104         );
107     //- Destructor
108     virtual ~hCombustionThermo();
111     // Member functions
113         //- Return the composition of the multi-component mixture
114         virtual basicMultiComponentMixture& composition() = 0;
116         //- Return the composition of the multi-component mixture
117         virtual const basicMultiComponentMixture& composition() const = 0;
120         // Access to thermodynamic state variables
122             //- Enthalpy [J/kg]
123             //  Non-const access allowed for transport equations
124             virtual volScalarField& h()
125             {
126                 return h_;
127             }
129             //- Enthalpy [J/kg]
130             virtual const volScalarField& h() const
131             {
132                 return h_;
133             }
136         //- Update properties
137         virtual void correct() = 0;
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 } // End namespace Foam
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 #endif
149 // ************************************************************************* //