1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
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
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
29 Base class for all non-premixed combustion models.
34 \*---------------------------------------------------------------------------*/
36 #ifndef combustionModel_H
37 #define combustionModel_H
39 #include "IOdictionary.H"
40 #include "hsCombustionThermo.H"
41 #include "turbulenceModel.H"
42 #include "multivariateSurfaceInterpolationScheme.H"
43 #include "runTimeSelectionTables.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class combustionModel Declaration
52 \*---------------------------------------------------------------------------*/
61 //- Dictionary of coefficients for the particular model
62 dictionary combustionModelCoeffs_;
64 //- Reference to the thermodynamic
65 const hsCombustionThermo& thermo_;
67 //- Reference to the turbulence model
68 const compressible::turbulenceModel& turbulence_;
70 //- Reference to the mesh database
73 //- Reference to mass-flux field
74 const surfaceScalarField& phi_;
76 //- Reference to the density field
77 const volScalarField& rho_;
79 //- Stoichiometric air-fuel mass ratio
80 dimensionedScalar stoicRatio_;
82 //- Stoichiometric oxygen-fuel mass ratio
85 //- Heat of combustion (J/Kg)
86 dimensionedScalar qFuel_;
91 // Private Member Functions
93 //- Disallow copy construct
94 combustionModel(const combustionModel&);
96 //- Disallow default bitwise assignment
97 void operator=(const combustionModel&);
99 const basicMultiComponentMixture& composition_;
104 //- Runtime type information
105 TypeName("combustionModel");
108 // Declare run-time constructor selection table
110 declareRunTimeSelectionTable
116 const dictionary& combustionProperties,
117 const hsCombustionThermo& thermo,
118 const compressible::turbulenceModel& turbulence,
119 const surfaceScalarField& phi,
120 const volScalarField& rho
123 combustionProperties,
134 //- Return a reference to the selected combustion model
135 static autoPtr<combustionModel> New
137 const dictionary& combustionProperties,
138 const hsCombustionThermo& thermo,
139 const compressible::turbulenceModel& turbulence,
140 const surfaceScalarField& phi,
141 const volScalarField& rho
147 //- Construct from components
150 const dictionary& combustionProperties,
151 const hsCombustionThermo& thermo,
152 const compressible::turbulenceModel& turbulence,
153 const surfaceScalarField& phi,
154 const volScalarField& rho
159 virtual ~combustionModel();
166 //- Access composition
167 const basicMultiComponentMixture& composition() const
172 //- Access combustion dictionary
173 const dictionary combustionModelCoeffs() const
175 return combustionModelCoeffs_;
178 //- Access heat of combustion
179 const dimensionedScalar qFuel() const
184 //- Return normalised consumption rate of (fu - fres)
185 virtual tmp<volScalarField> wFuelNorm() const = 0;
187 //- Fuel consumption rate matrix i.e. source-term for the fuel equation
188 virtual tmp<fvScalarMatrix> R(volScalarField& fu) const;
190 //- Heat-release rate calculated from the given
191 // fuel consumption rate matrix
192 virtual tmp<volScalarField> dQ(const fvScalarMatrix& Rfu) const;
194 //- Correct combustion rate
195 virtual void correct() = 0;
197 //- Update properties from given dictionary
198 virtual bool read(const dictionary& combustionProperties) = 0;
202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
204 } // End namespace Foam
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
210 // ************************************************************************* //