ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / reactionThermo / combustionThermo / hsCombustionThermo / hsCombustionThermo.H
blob3727cbfb808916c71cf7b340761ec5c30928909b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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::hsCombustionThermo
27 Description
28     Sensible enthalpy variant of combustionThermo
30 SourceFiles
31     hsCombustionThermo.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef hsCombustionThermo_H
36 #define hsCombustionThermo_H
38 #include "basicPsiThermo.H"
39 #include "basicMultiComponentMixture.H"
40 #include "autoPtr.H"
41 #include "runTimeSelectionTables.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                      Class hsCombustionThermo Declaration
50 \*---------------------------------------------------------------------------*/
52 class hsCombustionThermo
54     public basicPsiThermo
57 protected:
59     // Protected data
61         //- Sensible enthalpy field
62         volScalarField hs_;
65 public:
67     //- Runtime type information
68     TypeName("hsCombustionThermo");
71     //- Declare run-time constructor selection tables
72     declareRunTimeSelectionTable
73     (
74         autoPtr,
75         hsCombustionThermo,
76         fvMesh,
77         (const fvMesh& mesh),
78         (mesh)
79     );
82     // Constructors
84         //- Construct from dictionary and mesh
85         hsCombustionThermo(const fvMesh&);
88     // Selectors
90         //- Standard selection based on fvMesh
91         static autoPtr<hsCombustionThermo> New(const fvMesh&);
93         //- Select and check that package contains 'thermoType'
94         static autoPtr<hsCombustionThermo> NewType
95         (
96             const fvMesh&,
97             const word& thermoType
98         );
101     //- Destructor
102     virtual ~hsCombustionThermo();
105     // Member functions
107         //- Return the composition of the multi-component mixture
108         virtual basicMultiComponentMixture& composition() = 0;
110         //- Return the composition of the multi-component mixture
111         virtual const basicMultiComponentMixture& composition() const = 0;
114         // Access to thermodynamic state variables
116             //- Sensible enthalpy [J/kg]
117             //  Non-const access allowed for transport equations
118             virtual volScalarField& hs()
119             {
120                 return hs_;
121             }
123             //- Sensible enthalpy [J/kg]
124             virtual const volScalarField& hs() const
125             {
126                 return hs_;
127             }
130         //- Update properties
131         virtual void correct() = 0;
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 } // End namespace Foam
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 #endif
143 // ************************************************************************* //