Upwind Difference Scheme

Category: CFD Solver Methods | Revised 2026-10-01
CAE visualization for upwind schemes theory - technical simulation diagram
Upwind Differencing Scheme

Theory: how face values are formed

Overview

🙋

My CFD settings offer first-order upwind, second-order upwind and QUICK for convection. Which should I pick?

🎓

Finite volume needs face values to compute fluxes through cell faces; upwind schemes build them from upstream (upwind) cells. First-order upwind takes the upstream value as is — stable and non-oscillatory, but peaks flatten steadily. Second-order upwind and QUICK extrapolate from two or more upstream cells with lines or curves, more accurate but overshooting at sharp changes. The choice depends on what matters. Let's carry the same profile with each and compare.

Face-value formulas

$$ \phi_{i+1/2}^{UDS} = \phi_i,\quad \phi_{i+1/2}^{LUD} = \tfrac{3}{2}\phi_i - \tfrac{1}{2}\phi_{i-1},\quad \phi_{i+1/2}^{QUICK} = \tfrac{3}{8}\phi_{i+1} + \tfrac{3}{4}\phi_i - \tfrac{1}{8}\phi_{i-1} $$

For flow from left to right (side $i$ upstream). First-order upwind (UDS), linear upwind (LUD) and QUICK use progressively more points and higher accuracy.

Limited TVD schemes

$$ \phi_{i+1/2} = \phi_i + \tfrac{1}{2}\psi(r)\,(\phi_{i+1} - \phi_i),\quad r = \frac{\phi_i - \phi_{i-1}}{\phi_{i+1} - \phi_i},\quad \psi_{minmod} = \max(0, \min(1, r)),\ \ \psi_{vL} = \frac{r + |r|}{1 + |r|} $$

$r$ is the ratio of neighbouring gradients: near 1 where smooth, zero or negative near sharp changes or extrema, where the limiter $\psi$ weakens the second-order correction to prevent overshoot.

Coffee Break Trivia

Godunov's theorem

In 1959 the Soviet mathematician Godunov proved that non-oscillatory linear schemes can be at most first-order accurate — fixed-coefficient schemes can't combine high accuracy with freedom from oscillation. To overcome this barrier, 1970s–80s researchers devised nonlinear schemes whose coefficients adapt to the solution, notably van Leer's MUSCL and Harten's TVD. Limiters sidestep Godunov's theorem by switching between second order where smooth and first order where steep.

Worked example: carrying a peak and a square wave once around

On a periodic domain of 100 cells, with CFL 0.4 and two-stage Runge–Kutta, a square wave (height 1) and a Gaussian peak (height 1) were carried once around; ideally both return unchanged:

SchemeSquare maxSquare minGaussian peakGaussian L1 error
First-order upwind0.6830.0000.3330.086
Second-order upwind1.190−0.2150.7460.064
QUICK1.100−0.1010.9260.009
TVD(minmod)0.9640.0000.6130.037
TVD(van Leer)0.9990.0000.7500.021
🙋

QUICK preserves the peak best, yet overshoots the square wave by 10%.

🎓

Right — accurate where smooth but oscillatory at steps. Concentrations or temperatures below zero or above bounds can break property calculations or drive reactions with negative concentration. Second-order upwind overshot the square wave by 19%. TVD keeps within 0–1 even at steps, and van Leer still keeps 75% of the peak. First-order upwind is safe but flattens the peak to a third. The basic split: QUICK or second-order upwind for accuracy in smooth flows, TVD for steps and sharp fronts.

Selection guidance

  1. Start the first few hundred iterations with first-order upwind for stability, then switch to higher order.
  2. Report final results at second order or higher (LUD, QUICK, TVD); don't stay first order.
  3. Use TVD for bounded quantities: concentration, volume fraction, turbulence quantities.
  4. Confirm grid independence with the scheme you actually use.
  5. Grids aligned with the flow give less numerical diffusion.
Coffee Break Trivia

“Smoke that mixes too much”

A tunnel-ventilation CFD spread and diluted smoke far faster than in experiments. For stability, first-order upwind had been kept to the end, and its numerical diffusion added to the real turbulent diffusion. Switching to limited second-order upwind (TVD) kept the smoke layer distinct and brought concentrations close to experiment. Don't keep stabilising settings all the way to the reported results.

Common mistakes

Mistakes and fixes

MistakeEffectFix
First-order to the endMixing overestimatedSwitch to second order+
QUICK for bounded quantitiesNegative concentration or fractionUse TVD
Mistaking wiggles for physicsWrong conclusionsCheck with another scheme
Over-restrictive limiterPeaks clippedModerate limiters such as van Leer
Ignoring grid alignmentDiffusion in skewed flowFlow-aligned grids
🙋

I'd like to learn related topics.

Related Simulators

Experience the theory firsthand with the interactive simulator for this field

All Simulators

Related fields

Thermal AnalysisV&V · Quality AssuranceStructural Analysis
Rate this article
Thank you for your feedback!
Helpful
More details
Report error
Helpful
0
More details
0
Report error
0