FreeFOAM The Cross-Platform CFD Toolkit
combustionModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
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.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::combustionModel
26 
27 Description
28  Base class for all non-premixed combustion models.
29 
30 SourceFiles
31  combustionModel.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef combustionModel_H
36 #define combustionModel_H
37 
38 #include <OpenFOAM/IOdictionary.H>
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class combustionModel Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 {
55 
56 protected:
57 
58  // Protected data
59 
60  //- Dictionary of coefficients for the particular model
62 
63  //- Reference to the thermodynamic
65 
66  //- Reference to the turbulence model
67  const compressible::turbulenceModel& turbulence_;
68 
69  //- Reference to the mesh database
70  const fvMesh& mesh_;
71 
72  //- Reference to mass-flux field
74 
75  //- Reference to the density field
77 
78  //- Stoichiometric air-fuel mass ratio
80 
81  //- Stoichiometric oxygen-fuel mass ratio
83 
84  //- Heat of combustion (J/Kg)
86 
87 
88 private:
89 
90  // Private Member Functions
91 
92  //- Disallow copy construct
94 
95  //- Disallow default bitwise assignment
96  void operator=(const combustionModel&);
97 
98  const basicMultiComponentMixture& composition_;
99 
100 
101 public:
102 
103  //- Runtime type information
104  TypeName("combustionModel");
105 
106 
107  // Declare run-time constructor selection table
108 
110  (
111  autoPtr,
113  dictionary,
114  (
116  const hsCombustionThermo& thermo,
117  const compressible::turbulenceModel& turbulence,
118  const surfaceScalarField& phi,
119  const volScalarField& rho
120  ),
121  (
122  combustionProperties,
123  thermo,
124  turbulence,
125  phi,
126  rho
127  )
128  );
129 
130 
131  // Selectors
132 
133  //- Return a reference to the selected combustion model
135  (
136  const dictionary& combustionProperties,
137  const hsCombustionThermo& thermo,
138  const compressible::turbulenceModel& turbulence,
139  const surfaceScalarField& phi,
140  const volScalarField& rho
141  );
142 
143 
144  // Constructors
145 
146  //- Construct from components
148  (
149  const dictionary& combustionProperties,
150  const hsCombustionThermo& thermo,
151  const compressible::turbulenceModel& turbulence,
152  const surfaceScalarField& phi,
153  const volScalarField& rho
154  );
155 
156 
157  //- Destructor
158  virtual ~combustionModel();
159 
160 
161  // Member Functions
162 
163  // Access functions
164 
165  //- Access composition
167  {
168  return composition_;
169  }
170 
171  //- Access combustion dictionary
173  {
174  return combustionModelCoeffs_;
175  }
176 
177  //- Access heat of combustion
178  const dimensionedScalar qFuel() const
179  {
180  return qFuel_;
181  }
182 
183  //- Return normalised consumption rate of (fu - fres)
184  virtual tmp<volScalarField> wFuelNorm() const = 0;
185 
186  //- Fuel consumption rate matrix i.e. source-term for the fuel equation
187  virtual tmp<fvScalarMatrix> R(volScalarField& fu) const;
188 
189  //- Heat-release rate calculated from the given
190  // fuel consumption rate matrix
191  virtual tmp<volScalarField> dQ(const fvScalarMatrix& Rfu) const;
192 
193  //- Correct combustion rate
194  virtual void correct() = 0;
195 
196  //- Update properties from given dictionary
197  virtual bool read(const dictionary& combustionProperties) = 0;
198 };
199 
200 
201 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
202 
203 } // End namespace Foam
204 
205 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 
207 #endif
208 
209 // ************************************************************************* //