Initial release of the new fireFoam solver and ancillary libraries.
[OpenFOAM-1.6.x.git] / src / thermophysicalModels / reactionThermo / combustionThermo / mixtureThermos / hhuMixtureThermo / hhuMixtureThermo.H
blobc55e0a9216a4616a6ce97ac3ba9810e28387e808
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-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::hhuMixtureThermo
28 Description
29     Foam::hhuMixtureThermo
31 SourceFiles
32     hhuMixtureThermo.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef hhuMixtureThermo_H
37 #define hhuMixtureThermo_H
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 namespace Foam
44 /*---------------------------------------------------------------------------*\
45                       Class hhuMixtureThermo Declaration
46 \*---------------------------------------------------------------------------*/
48 template<class MixtureType>
49 class hhuMixtureThermo
51     public hhuCombustionThermo,
52     public MixtureType
54     // Private member functions
56         void calculate();
58         //- Construct as copy (not implemented)
59         hhuMixtureThermo(const hhuMixtureThermo<MixtureType>&);
62 public:
64     //- Runtime type information
65     TypeName("hhuMixtureThermo");
68     // Constructors
70         //- Construct from mesh
71         hhuMixtureThermo(const fvMesh&);
74     //- Destructor
75     virtual ~hhuMixtureThermo();
78     // Member functions
80         //- Return the compostion of the multi-component mixture
81         virtual basicMultiComponentMixture& composition()
82         {
83             return *this;
84         }
86         //- Return the compostion of the multi-component mixture
87         virtual const basicMultiComponentMixture& composition() const
88         {
89             return *this;
90         }
92         //- Update properties
93         virtual void correct();
95         //- Chemical enthalpy [J/kg]
96         virtual tmp<volScalarField> hc() const;
99         // Fields derived from thermodynamic state variables
101             //- Enthalpy for cell-set [J/kg]
102             virtual tmp<scalarField> h
103             (
104                 const scalarField& T,
105                 const labelList& cells
106             ) const;
108             //- Enthalpy for patch [J/kg]
109             virtual tmp<scalarField> h
110             (
111                 const scalarField& T,
112                 const label patchi
113             ) const;
115             //- Heat capacity at constant pressure for patch [J/kg/K]
116             virtual tmp<scalarField> Cp
117             (
118                 const scalarField& T,
119                 const label patchi
120             ) const;
122             //- Heat capacity at constant pressure [J/kg/K]
123             virtual tmp<volScalarField> Cp() const;
125             //- Unburnt gas enthalpy for cell-set [J/kg]
126             virtual tmp<scalarField> hu
127             (
128                 const scalarField& T,
129                 const labelList& cells
130             ) const;
132             //- Unburnt gas enthalpy for patch [J/kg]
133             virtual tmp<scalarField> hu
134             (
135                 const scalarField& T,
136                 const label patchi
137             ) const;
140             //- Burnt gas temperature [K]
141             virtual tmp<volScalarField> Tb() const;
143             //- Unburnt gas compressibility [s^2/m^2]
144             virtual tmp<volScalarField> psiu() const;
146             //- Burnt gas compressibility [s^2/m^2]
147             virtual tmp<volScalarField> psib() const;
150         // Access to transport variables
152             //- Dynamic viscosity of unburnt gas [kg/ms]
153             virtual tmp<volScalarField> muu() const;
155             //- Dynamic viscosity of burnt gas [kg/ms]
156             virtual tmp<volScalarField> mub() const;
159         //- Read thermophysicalProperties dictionary
160         virtual bool read();
164 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 } // End namespace Foam
168 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
170 #ifdef NoRepository
171 #   include "hhuMixtureThermo.C"
172 #endif
174 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 #endif
178 // ************************************************************************* //