Skip to content
cfd-lab:~/en/posts/2026-07-28-turbulent-fla…● online

Translated from the author's Korean original. Read the original (한국어)

NOTE #115DAY TUE 유체역학DATE 2026.07.28UPDATED 2026.10.19READ 10 min read#Combustion#Turbulence#Premixed-Flame#Damkohler#Flame-Speed

Where Turbulence Stops Speeding Up a Flame — Damköhler's Wrinkling Hypothesis and Bending

The linear branch is geometry. The bend and the quench are fits: a wrinkling cap of 6 and a quench Karlovitz number of 25.

A wildfire spreads faster as the wind picks up. At 5 m/s the flame front outruns a sprinting person. But keep raising the wind and past a certain speed the fire blows itself out. Firefighters call it blow-off. Measure a turbulent premixed flame on a laboratory burner and the curve has exactly the same shape.

Raise the turbulence intensity u′u' and the turbulent flame speed STS_T climbs almost linearly at first. Then it bends over. That flattening is the bending effect. Push further and the flame quenches. The straight part is area. The bend is a cap on wrinkles. Quenching is the time of the smallest eddies.

The slider u′/SLu'/S_L deepens the wrinkles, and the measured Σ\Sigma falls away from the straight-line prediction.

What to watch: the drawn front's measured arc length is forced to equal S_T/S_L, so a faster flame is a literally longer line. Raise u'/S_L and the amber linear-law ghost runs away from the real front — that gap is the bending effect. Lower l_t/δ_L to drive Ka past 25 and the sheet thickens, desaturates, then breaks into holes.

Push u′/SLu'/S_L to 6 and measured Σ\Sigma stalls near 4 while the straight line reaches 7. Drop lt/δLl_t/\delta_L to 2 and push u′/SLu'/S_L to 12: the badge flips to quenching and Σ\Sigma falls from 3.5 to 2.0.

Why turbulence speeds a flame up#

For a methane-air premixed flame the laminar flame speed (the speed at which the front propagates on its own into a quiescent mixture) SLS_L is about 0.40 m/s at room conditions. The flame thickness δL\delta_L is around 0.5 mm. No engine runs on those numbers. Crossing a 40 mm bore in 2 ms takes 20 m/s. That is 50 times SLS_L.

Turbulence fills the gap. That is why we define a turbulent flame speed STS_T. The definition comes out of an integral of the reaction rate. Integrate the mean fuel mass fraction transport equation across the flame brush along its normal, cancel the diffusion terms, and this is what is left.

ρuST(YFu−YFb)=−∫−∞+∞ω˙F‾ dn\rho_u S_T \left(Y_F^u - Y_F^b\right) = -\int_{-\infty}^{+\infty} \overline{\dot{\omega}_F}\ \mathrm{d}n

ρu\rho_u is the fresh gas density, YFuY_F^u and YFbY_F^b the fuel mass fractions on the fresh and burnt sides, ω˙F‾\overline{\dot{\omega}_F} the mean fuel reaction rate, and nn the coordinate normal to the mean flame brush.

The point worth holding onto is that this is a direct extension of the relation used for laminar flames — the laminar version carries the instantaneous reaction rate in place of ω˙F‾\overline{\dot{\omega}_F}. So STS_T is not a quantity defined as a velocity. It is an integrated measure of how much burning happens per unit area. That single fact explains everything that follows.

The wrong intuition — turbulence mixes the fuel better?#

The most common explanation goes like this. Turbulence mixes fuel and air better, so the reaction goes faster. For a premixed flame that is wrong.

Premixed means what it says: fuel and air were already mixed before ignition. The gas ahead of the front is a perfectly uniform mixture. There is nothing left for turbulence to mix. Mixing governs the speed of diffusion flames, where fuel and oxidizer arrive separately, not of premixed flames.

There is a second version. Turbulence raises the effective diffusivity, so the flame goes faster. The laminar flame speed scales as SL∼D/τcS_L \sim \sqrt{D/\tau_c}. Swap DD for a turbulent diffusivity u′ltu' l_t and you get ST/SL∼u′lt/DS_T/S_L \sim \sqrt{u' l_t / D}. A square root. But the initial slope the experiments show is linear. The exponent does not match.

There is a deeper problem with both. Each assumes the flame leaves the turbulence alone. The truth runs the other way. Right after ignition the temperature jumps from 300 K to above 2000 K. The kinematic viscosity ν\nu rises roughly as T1.7T^{1.7}, so it grows by more than a factor of 20. The local Reynolds number u′lt/νu' l_t / \nu drops by the same factor. A well-developed turbulent flow can relaminarize after ignition. While the turbulence is shaking the flame, the flame is killing the turbulence.

Damköhler's answer: it is area, not speed#

Damköhler proposed a different picture. Turbulence does not make the local combustion faster. It folds the flame sheet.

There is one assumption. Every point on the wrinkled front still propagates locally at SLS_L. Chemistry is untouched; only geometry changes. Mass conservation then hands over the answer. The fresh gas passing through the true wrinkled area ATA_T has to equal the fresh gas passing through the projected area Aˉ\bar{A} of the mean flame brush.

ρuSLAT=ρuSTAˉ⟹Σ≡ATAˉ=STSL\rho_u S_L A_T = \rho_u S_T \bar{A} \quad\Longrightarrow\quad \Sigma \equiv \frac{A_T}{\bar{A}} = \frac{S_T}{S_L}

Σ\Sigma is the wrinkling factor, the flame surface area per unit projected area. The left side is an area ratio, the right side a speed ratio. They are the same number.

Turbulence sets the size of the wrinkles. While an eddy of size ltl_t pushes the front at speed u′u', the front pushes back at SLS_L. The ratio of those two displacements sets the slope of the wrinkle, and the slope sets the area gain. Out comes Damköhler's linear law.

STSL=1+u′SL\frac{S_T}{S_L} = 1 + \frac{u'}{S_L}

u′u' is the RMS velocity fluctuation of the fresh gas and SLS_L the laminar flame speed. At u′=0u' = 0 it collapses back to ST=SLS_T = S_L.

For this picture to hold, the front has to be thinner than the eddies. Two dimensionless numbers measure that condition.

Da=τtτc=lt/u′δL/SL,Ka=τcτη=(u′SL)3/2(ltδL)−1/2Da = \frac{\tau_t}{\tau_c} = \frac{l_t/u'}{\delta_L/S_L}, \qquad Ka = \frac{\tau_c}{\tau_\eta} = \left(\frac{u'}{S_L}\right)^{3/2}\left(\frac{l_t}{\delta_L}\right)^{-1/2}

DaDa is the Damköhler number (turbulent time over chemical time) and KaKa the Karlovitz number (chemical time over Kolmogorov time). τt\tau_t is the eddy turnover time, τc\tau_c the chemical time, τη\tau_\eta the timescale of the smallest eddies. When Da≫1Da \gg 1 the flame reacts faster than the eddies turn. When Ka<1Ka \lt 1 not even the smallest eddy fits inside the flame thickness. Where both hold is the flamelet regime, and Damköhler's linear law is only valid there.

What the experiments showed — bending and quenching#

The experimental data draws three regimes. Nearly linear at first. Then flat. Then quenching.

Three effects overlap to make it flatten. Wrinkles are created and destroyed. The front propagates along its own normal and keeps shaving off convex cusps. When creation and destruction balance, Σ\Sigma saturates. Once KaKa exceeds 1, small eddies enter the preheat zone, the flame thickens, and the local SLS_L drops. Stronger strain punches holes in the sheet.

One expression carries all three.

Σ=STSL=1+q u′/SL1+(u′/SL)/Σ∞,q=exp⁡[−(KaKaq)2]\Sigma = \frac{S_T}{S_L} = 1 + q\ \frac{u'/S_L}{1 + (u'/S_L)/\Sigma_\infty}, \qquad q = \exp\left[-\left(\frac{Ka}{Ka_q}\right)^{2}\right]

Σ∞\Sigma_\infty is the wrinkling saturation ceiling (6.0 here), KaqKa_q the quench Karlovitz number (25.0 here), and qq a quench attenuation factor between 0 and 1. The saturating denominator produces the bending; qq produces the quenching.

Honesty is required here. This expression is not a derived law. It is a phenomenological form fitted to reproduce the observed shape of the curve. Σ∞=6.0\Sigma_\infty = 6.0 and Kaq=25.0Ka_q = 25.0 are tuning values, not physical constants, and they shift with fuel, pressure and burner geometry. The source says the same thing: predicting the bend of the curve is difficult, and predicting the quenching limits is "almost impossible". Only the linear regime came out of physics. The other two are still correlations.

Walk one row by hand. At the large scale, lt/δL=10l_t/\delta_L = 10 and u′/SL=6u'/S_L = 6, the Damköhler number is turbulent time over chemical time, so 10/6≈1.6710/6 \approx 1.67. The Karlovitz number ties the same two ratios with different exponents. Divide 61.56^{1.5} by 10\sqrt{10} and the table's 4.65 comes back. Divide that by the quench value 25, square it, and the exponential gives q≈0.966q \approx 0.966. Near 1. On this row the quench factor barely bends the curve. The denominator does. Dividing u′/SLu'/S_L by the cap of 6 adds 1, the denominator becomes 2, and the numerator 6 shrinks to 3. Then 1+0.966×3=3.901 + 0.966 \times 3 = 3.90. The linear law writes 7.00. The gap of 3.1 is not slower chemistry. The wrinkle area hit the cap.

Multiply by the laminar speed 0.40 m/s and the turbulent speed is the printed 1.559 m/s. Crossing a 40 mm bore at that speed is 0.040/1.559≈0.0260.040/1.559 \approx 0.026 s, about 26 ms. The 2 ms an engine wants is still more than ten times shorter. Raise the ratio to 12 and the large-scale wrinkling factor is only 4.03, so the speed stays near 0.40×4.03≈1.610.40 \times 4.03 \approx 1.61 m/s. The 13-fold, 5.2 m/s promised by the linear law never shows up in the bending column.

Drop only the scale, from 10 to 2, and the same ratio of 6 jumps KaKa from 4.65 to 10.39. The square root of 10/210/2 is about 2.24, and the ratio of those two Karlovitz numbers matches it. The small-eddy time got shorter. In a cascade that hands energy down the scales, that time falls below the chemical time first. At ratio 12 and scale 2, KaKa is 29.39. Divided by 25 it exceeds 1, qq drops to about 0.25, and the wrinkling factor becomes 2.00. The sheet did not gain area. The attenuation erased area that had already been folded.

The flame changes the turbulence too — baroclinic torque#

Gas expands as it crosses the front. Mass flux has to be conserved, so

ρuSL=ρbub⟹ubSL=ρuρb≈7\rho_u S_L = \rho_b u_b \quad\Longrightarrow\quad \frac{u_b}{S_L} = \frac{\rho_u}{\rho_b} \approx 7

ρb\rho_b is the burnt gas density and ubu_b the gas speed leaving the front. The flame front is a device that accelerates the flow sevenfold. That acceleration acts directly on the turbulence.

The four terms of the vorticity transport equation show the route.

DωDt=(ω⋅∇)u⏟I−ω(∇⋅u)⏟II+ν∇2ω⏟III+1ρ2∇ρ×∇p⏟IV\frac{\mathrm{D}\boldsymbol{\omega}}{\mathrm{D}t} = \underbrace{(\boldsymbol{\omega}\cdot\nabla)\mathbf{u}}_{\text{I}} - \underbrace{\boldsymbol{\omega}(\nabla\cdot\mathbf{u})}_{\text{II}} + \underbrace{\nu\nabla^{2}\boldsymbol{\omega}}_{\text{III}} + \underbrace{\frac{1}{\rho^{2}}\nabla\rho\times\nabla p}_{\text{IV}}

ω\boldsymbol{\omega} is the vorticity vector, u\mathbf{u} the velocity, ρ\rho the density, pp the pressure. I is vortex stretching, II is dilatation, III is viscous dissipation, and IV is the baroclinic torque (the torque that appears when the density gradient and the pressure gradient are misaligned).

In cold turbulence II and IV are zero. Add a flame and both come alive. At the front ∇⋅u>0\nabla \cdot \mathbf{u} \gt 0, so II removes vorticity. IV, on the other hand, creates new vorticity. The ∇ρ\nabla \rho across the front is large and normal to the surface, while the ∇p\nabla p from the acceleration points elsewhere. Their cross product is nonzero. That is the source of what is called flame-generated turbulence.

A density ratio near 7 is not only a speed story. With fresh-gas SL=0.40S_L = 0.40 m/s the gas leaves the front at about 2.8 m/s. Once temperature jumps from 300 K past 2000 K, kinematic viscosity follows T1.7T^{1.7} and grows by more than 20, so the Reynolds number u′lt/νu' l_t / \nu drops by the same factor. Term II removes vorticity where the gas expands. Term IV puts vorticity back in proportion to how far ∇ρ\nabla\rho and ∇p\nabla p miss each other.

This feedback carries an annoying side effect. It makes the "u′u'" in an ST(u′)S_T(u') curve ambiguous. Measured in the fresh gas, in the burnt gas, or across the whole flame brush, it is three different numbers. A brush average taken without density weighting counts the intermittent switching between fresh and burnt states as fluctuation and comes out inflated. Models rarely make this distinction. It is one reason RANS codes show non-physical behavior near a flame.

Drawing the bending curve in Python#

Here is the model above transcribed straight into code. It prints the linear and bending predictions side by side at two turbulence scales.

import math
 
SIGMA_INF = 6.0     # wrinkling saturation ceiling
KA_QUENCH = 25.0    # quench Karlovitz number
 
 
def damkohler_number(u_ratio, l_ratio):
    """Da = turbulent time / chemical time."""
    return l_ratio / u_ratio
 
 
def karlovitz_number(u_ratio, l_ratio):
    """Ka = chemical time / Kolmogorov time."""
    return u_ratio**1.5 * l_ratio**-0.5
 
 
def quench_factor(ka):
    """Quench attenuation factor, falling to 0 as Ka grows."""
    return math.exp(-(ka / KA_QUENCH) ** 2)
 
 
def wrinkling_factor(u_ratio, l_ratio):
    """Sigma = S_T / S_L, with saturation and quenching."""
    ka = karlovitz_number(u_ratio, l_ratio)
    return 1.0 + quench_factor(ka) * u_ratio / (1.0 + u_ratio / SIGMA_INF)
 
 
def turbulent_flame_speed(s_laminar, u_ratio, l_ratio):
    """Turbulent flame speed [m/s]."""
    return s_laminar * wrinkling_factor(u_ratio, l_ratio)
 
 
U_RATIOS = [0.5, 1, 2, 3, 4, 6, 8, 10, 12]
 
for l_ratio in (10.0, 2.0):
    print(f"l_t/delta_L = {l_ratio:.0f}")
    print(f"{'u/SL':>6}{'Da':>9}{'Ka':>9}{'linear':>9}{'bending':>9}")
    for u_ratio in U_RATIOS:
        da = damkohler_number(u_ratio, l_ratio)
        ka = karlovitz_number(u_ratio, l_ratio)
        lin = 1.0 + u_ratio                      # Damkohler linear law
        ben = wrinkling_factor(u_ratio, l_ratio)  # saturation + quenching
        print(f"{u_ratio:6.1f}{da:9.2f}{ka:9.2f}{lin:9.2f}{ben:9.2f}")
    print()
 
print("S_T at S_L = 0.40 m/s, u'/S_L = 6, l_t/delta_L = 10 :",
      round(turbulent_flame_speed(0.40, 6.0, 10.0), 3), "m/s")

The output looks like this.

l_t/delta_L = 10
  u/SL       Da       Ka   linear  bending
   0.5    20.00     0.11     1.50     1.46
   1.0    10.00     0.32     2.00     1.86
   2.0     5.00     0.89     3.00     2.50
   3.0     3.33     1.64     4.00     2.99
   4.0     2.50     2.53     5.00     3.38
   6.0     1.67     4.65     7.00     3.90
   8.0     1.25     7.16     9.00     4.16
  10.0     1.00    10.00    11.00     4.20
  12.0     0.83    13.15    13.00     4.03
 
l_t/delta_L = 2
  u/SL       Da       Ka   linear  bending
   0.5     4.00     0.25     1.50     1.46
   1.0     2.00     0.71     2.00     1.86
   2.0     1.00     2.00     3.00     2.49
   3.0     0.67     3.67     4.00     2.96
   4.0     0.50     5.66     5.00     3.28
   6.0     0.33    10.39     7.00     3.52
   8.0     0.25    16.00     9.00     3.28
  10.0     0.20    22.36    11.00     2.68
  12.0     0.17    29.39    13.00     2.00
 
S_T at S_L = 0.40 m/s, u'/S_L = 6, l_t/delta_L = 10 : 1.559 m/s

What to watch: at the defaults (u_θ/S_L = 2, r/δ_L = 10) the vortex dies on the front and a violet counter-rotating pair is all that is left. Push u_θ/S_L past ~9 and it punches through, dragging a cusp that stays. The arrows get ρ_u/ρ_b times longer on the burnt side — that jump is the dilatation term; set ρ_u/ρ_b = 1 and the baroclinic pair disappears entirely.

Set uθ/SLu_\theta/S_L near 2 and press Release: the vortex breaks on the front and opposite vorticity appears. Toward 10 the vortex crosses and only a cusp remains. Drop ρu/ρb\rho_u/\rho_b to 1 and ∇ρ\nabla\rho vanishes, so the baroclinic term switches off.

Compare the two columns and the parting point shows up. Out to u′/SL=1u'/S_L = 1 the linear and bending values agree within 15%. By u′/SL=6u'/S_L = 6 they are already 7.00 against 3.90. And at the large scale (lt/δL=10l_t/\delta_L = 10) pushing to u′/SL=12u'/S_L = 12 still leaves Σ\Sigma near 4. At the small scale (lt/δL=2l_t/\delta_L = 2), the same u′u' drives KaKa past 29 and Σ\Sigma down to 2.0. Same turbulence intensity, but the smaller scale quenches first.

Drop Ka and the same u' hides the quench#

One cell at u′/SL=12u'/S_L = 12 holds both Σ=4.03\Sigma = 4.03 and 2.002.00. What splits them is lt/δLl_t/\delta_L, and the Karlovitz numbers are 13.15 and 29.39. The linear law writes 13.00 for both. If STS_T stalls on a burner and the reaction constants get turned first, a capped area gets read as slow chemistry.

When a RANS field looks wrong near a flame, where u′u' is sampled matters more than the model constants. Fresh gas, burnt gas, and a brush average are three different numbers. A Germano average that drives the dynamic coefficient negative is the same kind of averaging trap. Σ∞=6\Sigma_\infty = 6 and Kaq=25Ka_q = 25 were tuned for this burner. They are not constants to carry to the next fuel.

Share if you found it helpful.