OpenFOAM Combustion Analysis

Category: Open-Source CAE | Revised 2026-10-02
CAE visualization for openfoam combustion theory - technical simulation diagram
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

$$ \mathrm{CH_4} + 2(\mathrm{O_2} + 3.76\,\mathrm{N_2}) \rightarrow \mathrm{CO_2} + 2\,\mathrm{H_2O} + 7.52\,\mathrm{N_2},\qquad \left(\frac{A}{F}\right)_{st} = \frac{2(32.00 + 3.76\times 28.01)}{16.04} = 17.1 $$

The air needed to burn one mole of methane completely; numbers are molar masses (g/mol).

Heat release and flame thickness

$$ \dot{Q} = \dot{m}_f\, LHV,\qquad \delta_d = \frac{\alpha}{S_L},\qquad \Delta x \le \frac{\delta_{th}}{10} $$

ṁ_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.

Coffee Break Trivia

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)

ItemValueUse
Stoichiometric air-fuel ratio (mass)17.1Check inlet conditions
CH₄ and O₂ mass fractions at stoichiometry0.055 / 0.220Initial and inlet mass fractions
Heat release for 1 g/s fuel50 kWEnergy balance check
Air flow (equivalence ratio 1.0 / 0.8)17.1 / 21.4 g/sInlet flow
Laminar burning velocity (literature)≈ 0.37 m/s1D flame verification
Diffusive thickness α/S_L59 µm
Thermal thickness (typical)≈ 0.45 mm≤ 45 µm cells for 10 across
Adiabatic flame temperature (equilibrium, typical)≈ 2,230 KUpper 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

  1. Choose the mechanism (global, reduced or detailed) by required accuracy and cost.
  2. Compare burning velocity and adiabatic flame temperature with literature in a 1D laminar flame.
  3. Set the turbulent combustion model (EDC, PaSR, etc.) and the chemistry ODE solver.
  4. Verify inlet flows and mass fractions against energy balance and stoichiometry before the main run.
  5. Compare outlet temperature, composition and wall temperatures with measurements or design values; tune radiation and heat loss.
Coffee Break Trivia

“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

MistakeEffectFix
One-step global reaction onlyTemperatures hundreds of K highTwo-step or reduced mechanism
Constant specific heatOverheatingTemperature-dependent properties
Mass fractions not summing to 1Wrong composition and temperatureRecheck inlet conditions
Directly resolving a flame thinner than cellsWrong burning velocityCombustion model or refinement
Unsuitable chemistry ODE settingsDivergence or very slow runsStiff-problem solver
🙋

I'd like to learn related topics.

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 Simulators

Experience the theory firsthand with the interactive simulator for this field

All Simulators

Related fields

Structural AnalysisFluid Analysis (CFD)Thermal Analysis
Rate this article
Thank you for your feedback!
Helpful
More details
Report error
Helpful
0
More details
0
Report error
0