OpenFOAM Combustion Analysis
Theory: reacting-flow setup and combustion models
Overview
To simulate combustion in OpenFOAM, what do I add to an ordinary flow calculation?
Three things: species transport, reactions, and the interaction between reaction and turbulence. reactingFoam solves transport equations for each species mass fraction alongside energy, adding production, consumption and heat release from reactions. Species thermophysical data (e.g. JANAF polynomials) and reactions with rate constants go in constant/thermo and constant/reactions. Reactions run far faster than the flow, making the chemistry a 'stiff' ODE system, so a dedicated ODE solver (such as seulex or Rosenbrock) is chosen in chemistryProperties. In turbulence, the rate at which fuel and oxygen mix in sub-grid eddies controls the reaction, so a combustion model such as EDC or PaSR is chosen in combustionProperties. Most combustion failures come from a mismatch in one of these three settings.
Stoichiometry
The air needed to burn one mole of methane completely; numbers are molar masses (g/mol).
Heat release and flame thickness
ṁ_f is fuel mass flow, LHV the lower heating value (about 50 MJ/kg for methane), α unburnt thermal diffusivity, S_L laminar burning velocity, δ_d the diffusive thickness and δ_th the gradient-based thermal thickness.
GRI-Mech: the standard methane mechanism
GRI-Mech 3.0, widely used as a detailed mechanism for natural-gas combustion, was compiled in the 1990s with support from the US Gas Research Institute and comprises 53 species and 325 reactions. Its rate constants were optimised against experiments, so it remains a reference for verifying burning velocity and ignition delay. Used directly in 3D turbulent combustion it is very expensive, so practice often uses reduced mechanisms with a few to a few dozen species.
Worked examples
Stoichiometry is hand-calculated for complete combustion with dry air O₂ + 3.76N₂. Flame speed and thickness are reference scales depending on mechanism, transport, pressure, inlet temperature and definition, not reactingFoam results. Match dictionaries to the installed distribution and solver.
Example: methane-air (room temperature, atmospheric pressure)
| Item | Value | Use |
|---|---|---|
| Stoichiometric air-fuel ratio (mass) | 17.1 | Check inlet conditions |
| CH₄ and O₂ mass fractions at stoichiometry | 0.055 / 0.220 | Initial and inlet mass fractions |
| Heat release for 1 g/s fuel | 50 kW | Energy balance check |
| Air flow (equivalence ratio 1.0 / 0.8) | 17.1 / 21.4 g/s | Inlet flow |
| Laminar burning velocity (literature) | ≈ 0.37 m/s | 1D flame verification |
| Diffusive thickness α/S_L | 59 µm | |
| Thermal thickness (typical) | ≈ 0.45 mm | ≤ 45 µm cells for 10 across |
| Adiabatic flame temperature (equilibrium, typical) | ≈ 2,230 K | Upper bound for peak temperature |
Burning velocity, thermal thickness and adiabatic flame temperature are representative literature values. Solving a 1D laminar flame in reactingFoam and confirming burning velocity and peak temperature near these values before the turbulent production run is the safe path.
My combustor calculation peaked above 2,600 K. What is wrong?
Check inlet temperature, pressure, composition and chemistry first. Approximately 2,200 K is an equilibrium comparison scale for ambient methane-air, not a universal upper bound. A one-step reaction omits dissociation; adding a second step alone does not guarantee improvement. Use a validated mechanism and temperature-dependent properties, and compare same-condition equilibrium or one-dimensional flame calculations before assessing heat losses and turbulence.
Practical workflow
- Choose the mechanism (global, reduced or detailed) by required accuracy and cost.
- Compare burning velocity and adiabatic flame temperature with literature in a 1D laminar flame.
- Set the turbulent combustion model (EDC, PaSR, etc.) and the chemistry ODE solver.
- Verify inlet flows and mass fractions against energy balance and stoichiometry before the main run.
- Compare outlet temperature, composition and wall temperatures with measurements or design values; tune radiation and heat loss.
“Chemistry steps are shorter than flow steps”
Much of the slowness of combustion runs lies in integrating the chemistry. Reaction time scales can be below a microsecond, so within each flow time step (set by the Courant number) the ODE solver integrates the chemistry with even finer substeps. In OpenFOAM, TDAC (combined tabulation and reduction) or settings that skip cold, non-reacting cells can cut run time greatly. They trade accuracy for speed, so confirm with a laminar flame check that results don't change before relying on them.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| One-step global reaction only | Temperatures hundreds of K high | Two-step or reduced mechanism |
| Constant specific heat | Overheating | Temperature-dependent properties |
| Mass fractions not summing to 1 | Wrong composition and temperature | Recheck inlet conditions |
| Directly resolving a flame thinner than cells | Wrong burning velocity | Combustion model or refinement |
| Unsuitable chemistry ODE settings | Divergence or very slow runs | Stiff-problem solver |
I'd like to learn related topics.
Related pages include premixed flame models, the EDC model, chemical kinetics fundamentals, introduction to OpenFOAM and OpenFOAM post-processing.
Frequently asked questions
Which OpenFOAM solvers handle combustion?
The main one is reactingFoam (compressible, transient, multi-species reacting flow); others include sprayFoam for spray combustion. Species and reactions go in constant/reactions and thermo, the combustion model in constant/combustionProperties (laminar, EDC, PaSR, etc.), and the chemistry is integrated by the ODE solver chosen in chemistryProperties.
How fine must the mesh be to resolve a flame directly?
A stoichiometric methane-air laminar flame at room temperature and atmospheric pressure has a thermal thickness of about 0.45 mm. Ten cells across it need cells of 45 µm or less, which is impractical across a whole device. Practical turbulent combustion therefore uses models such as EDC or PaSR that represent the flame's inner structure.
How do I check combustion results?
Start with conserved quantities and known values. Methane at 1 g/s releases about 50 kW and needs 17.1 g/s of air at stoichiometry. Check that the outlet energy balance matches and that the peak temperature under adiabatic conditions does not far exceed about 2,230 K (a representative chemical-equilibrium value at stoichiometry); if it does, suspect thermophysical properties or the treatment of dissociation.
References and scope of verification
Numbers are educational reference calculations under the stated assumptions. Sources document theory and setup, not proof that these numerical values were reproduced in each package. Engineering decisions require validation for the actual conditions.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators