1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
10 OpenFOAM is free software: you can redistribute it and/or modify it
11 under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
15 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 You should have received a copy of the GNU General Public License
21 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27 Base class for all non-premixed combustion models based on single step
33 \*---------------------------------------------------------------------------*/
35 #ifndef combustionModel_H
36 #define combustionModel_H
38 #include "IOdictionary.H"
39 #include "hsCombustionThermo.H"
40 #include "turbulenceModel.H"
41 #include "runTimeSelectionTables.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 /*---------------------------------------------------------------------------*\
49 Class combustionModel Declaration
50 \*---------------------------------------------------------------------------*/
59 //- Dictionary of coefficients for the particular model
62 //- Reference to the thermodynamics
63 hsCombustionThermo& thermo_;
65 //- Reference to the turbulence model
66 const compressible::turbulenceModel& turbulence_;
68 //- Reference to the mesh database
71 //- Reference to mass-flux field
72 const surfaceScalarField& phi_;
74 //- Reference to the density field
75 const volScalarField& rho_;
80 // Private Member Functions
82 //- Disallow copy construct
83 combustionModel(const combustionModel&);
85 //- Disallow default bitwise assignment
86 void operator=(const combustionModel&);
91 //- Runtime type information
92 TypeName("combustionModel");
95 // Declare run-time constructor selection table
97 declareRunTimeSelectionTable
103 const dictionary& combustionProperties,
104 hsCombustionThermo& thermo,
105 const compressible::turbulenceModel& turbulence,
106 const surfaceScalarField& phi,
107 const volScalarField& rho
110 combustionProperties,
121 //- Return a reference to the selected combustion model
122 static autoPtr<combustionModel> New
124 const dictionary& combustionProperties,
125 hsCombustionThermo& thermo,
126 const compressible::turbulenceModel& turbulence,
127 const surfaceScalarField& phi,
128 const volScalarField& rho
134 //- Construct null from components
137 const dictionary& combustionProps,
138 hsCombustionThermo& thermo,
139 const compressible::turbulenceModel& turbulence,
140 const surfaceScalarField& phi,
141 const volScalarField& rho
144 //- Construct from components
147 const word& modelType,
148 const dictionary& combustionProperties,
149 hsCombustionThermo& thermo,
150 const compressible::turbulenceModel& turbulence,
151 const surfaceScalarField& phi,
152 const volScalarField& rho
157 virtual ~combustionModel();
164 //- Access combustion dictionary
165 const dictionary coeffs() const
173 //- Correct combustion rate
174 virtual void correct();
176 //- Fuel consumption rate matrix, i.e. source term for fuel equation
177 virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
179 //- Heat release rate calculated from fuel consumption rate matrix
180 virtual tmp<volScalarField> dQ() const;
182 //- Return normalised consumption rate of (fu - fres)
183 virtual tmp<Foam::volScalarField> wFuelNorm() const;
188 //- Update properties from given dictionary
189 virtual bool read(const dictionary& combustionProps);
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
195 } // End namespace Foam
197 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
201 // ************************************************************************* //