FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

hhuMixtureThermo.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::hhuMixtureThermo
00026 
00027 Description
00028     Foam::hhuMixtureThermo
00029 
00030 SourceFiles
00031     hhuMixtureThermo.C
00032 
00033 \*---------------------------------------------------------------------------*/
00034 
00035 #ifndef hhuMixtureThermo_H
00036 #define hhuMixtureThermo_H
00037 
00038 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00039 
00040 namespace Foam
00041 {
00042 
00043 /*---------------------------------------------------------------------------*\
00044                       Class hhuMixtureThermo Declaration
00045 \*---------------------------------------------------------------------------*/
00046 
00047 template<class MixtureType>
00048 class hhuMixtureThermo
00049 :
00050     public hhuCombustionThermo,
00051     public MixtureType
00052 {
00053     // Private member functions
00054 
00055         void calculate();
00056 
00057         //- Construct as copy (not implemented)
00058         hhuMixtureThermo(const hhuMixtureThermo<MixtureType>&);
00059 
00060 
00061 public:
00062 
00063     //- Runtime type information
00064     TypeName("hhuMixtureThermo");
00065 
00066 
00067     // Constructors
00068 
00069         //- Construct from mesh
00070         hhuMixtureThermo(const fvMesh&);
00071 
00072 
00073     //- Destructor
00074     virtual ~hhuMixtureThermo();
00075 
00076 
00077     // Member functions
00078 
00079         //- Return the compostion of the multi-component mixture
00080         virtual basicMultiComponentMixture& composition()
00081         {
00082             return *this;
00083         }
00084 
00085         //- Return the compostion of the multi-component mixture
00086         virtual const basicMultiComponentMixture& composition() const
00087         {
00088             return *this;
00089         }
00090 
00091         //- Update properties
00092         virtual void correct();
00093 
00094         //- Chemical enthalpy [J/kg]
00095         virtual tmp<volScalarField> hc() const;
00096 
00097 
00098         // Fields derived from thermodynamic state variables
00099 
00100             //- Enthalpy for cell-set [J/kg]
00101             virtual tmp<scalarField> h
00102             (
00103                 const scalarField& T,
00104                 const labelList& cells
00105             ) const;
00106 
00107             //- Enthalpy for patch [J/kg]
00108             virtual tmp<scalarField> h
00109             (
00110                 const scalarField& T,
00111                 const label patchi
00112             ) const;
00113 
00114             //- Heat capacity at constant pressure for patch [J/kg/K]
00115             virtual tmp<scalarField> Cp
00116             (
00117                 const scalarField& T,
00118                 const label patchi
00119             ) const;
00120 
00121             //- Heat capacity at constant pressure [J/kg/K]
00122             virtual tmp<volScalarField> Cp() const;
00123 
00124             //- Unburnt gas enthalpy for cell-set [J/kg]
00125             virtual tmp<scalarField> hu
00126             (
00127                 const scalarField& T,
00128                 const labelList& cells
00129             ) const;
00130 
00131             //- Unburnt gas enthalpy for patch [J/kg]
00132             virtual tmp<scalarField> hu
00133             (
00134                 const scalarField& T,
00135                 const label patchi
00136             ) const;
00137 
00138 
00139             //- Burnt gas temperature [K]
00140             virtual tmp<volScalarField> Tb() const;
00141 
00142             //- Unburnt gas compressibility [s^2/m^2]
00143             virtual tmp<volScalarField> psiu() const;
00144 
00145             //- Burnt gas compressibility [s^2/m^2]
00146             virtual tmp<volScalarField> psib() const;
00147 
00148 
00149         // Access to transport variables
00150 
00151             //- Dynamic viscosity of unburnt gas [kg/ms]
00152             virtual tmp<volScalarField> muu() const;
00153 
00154             //- Dynamic viscosity of burnt gas [kg/ms]
00155             virtual tmp<volScalarField> mub() const;
00156 
00157 
00158         //- Read thermophysicalProperties dictionary
00159         virtual bool read();
00160 };
00161 
00162 
00163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00164 
00165 } // End namespace Foam
00166 
00167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00168 
00169 #ifdef NoRepository
00170 #   include "hhuMixtureThermo.C"
00171 #endif
00172 
00173 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00174 
00175 #endif
00176 
00177 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines