Initial release of the new fireFoam solver and ancillary libraries.
[OpenFOAM-1.6.x.git] / src / thermophysicalModels / reactionThermo / reactionThermo / mixtureThermos / hRhoMixtureThermo / hRhoMixtureThermo.H
blob28e95270d91c63fee986c1bf258ffe355f9ffe6e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2009-2009 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::hRhoMixtureThermo
28 Description
29     Foam::hRhoMixtureThermo
31 SourceFiles
32     hRhoMixtureThermo.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef hRhoMixtureThermo_H
37 #define hRhoMixtureThermo_H
39 #include "hReactionThermo.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                       Class hRhoMixtureThermo Declaration
48 \*---------------------------------------------------------------------------*/
50 template<class MixtureType>
51 class hRhoMixtureThermo
53     public hReactionThermo,
54     public MixtureType
56     // Private member functions
58         void calculate();
60         //- Construct as copy (not implemented)
61         hRhoMixtureThermo(const hRhoMixtureThermo<MixtureType>&);
64 public:
66     //- Runtime type information
67     TypeName("hRhoMixtureThermo");
70     // Constructors
72         //- Construct from mesh
73         hRhoMixtureThermo(const fvMesh&);
76     //- Destructor
77     virtual ~hRhoMixtureThermo();
80     // Member functions
82         //- Return the compostion of the multi-component mixture
83         virtual basicMultiComponentMixture& composition()
84         {
85             return *this;
86         }
88         //- Return the compostion of the multi-component mixture
89         virtual const basicMultiComponentMixture& composition() const
90         {
91             return *this;
92         }
94         //- Update properties
95         virtual void correct();
97         //- Chemical enthalpy [J/kg]
98         virtual tmp<volScalarField> hc() const;
101         // Fields derived from thermodynamic state variables
103             //- Enthalpy for cell-set [J/kg]
104             virtual tmp<scalarField> h
105             (
106                 const scalarField& T,
107                 const labelList& cells
108             ) const;
110             //- Enthalpy for patch [J/kg]
111             virtual tmp<scalarField> h
112             (
113                 const scalarField& T,
114                 const label patchi
115             ) const;
117             //- Heat capacity at constant pressure for patch [J/kg/K]
118             virtual tmp<scalarField> Cp
119             (
120                 const scalarField& T,
121                 const label patchi
122             ) const;
124             //- Heat capacity at constant pressure [J/kg/K]
125             virtual tmp<volScalarField> Cp() const;
128         //- Read thermophysicalProperties dictionary
129         virtual bool read();
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace Foam
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 #ifdef NoRepository
140 #   include "hRhoMixtureThermo.C"
141 #endif
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 #endif
147 // ************************************************************************* //