Upwind Difference 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
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
$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.
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:
| Scheme | Square max | Square min | Gaussian peak | Gaussian L1 error |
|---|---|---|---|---|
| First-order upwind | 0.683 | 0.000 | 0.333 | 0.086 |
| Second-order upwind | 1.190 | −0.215 | 0.746 | 0.064 |
| QUICK | 1.100 | −0.101 | 0.926 | 0.009 |
| TVD(minmod) | 0.964 | 0.000 | 0.613 | 0.037 |
| TVD(van Leer) | 0.999 | 0.000 | 0.750 | 0.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
- Start the first few hundred iterations with first-order upwind for stability, then switch to higher order.
- Report final results at second order or higher (LUD, QUICK, TVD); don't stay first order.
- Use TVD for bounded quantities: concentration, volume fraction, turbulence quantities.
- Confirm grid independence with the scheme you actually use.
- Grids aligned with the flow give less numerical diffusion.
“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
| Mistake | Effect | Fix |
|---|---|---|
| First-order to the end | Mixing overestimated | Switch to second order+ |
| QUICK for bounded quantities | Negative concentration or fraction | Use TVD |
| Mistaking wiggles for physics | Wrong conclusions | Check with another scheme |
| Over-restrictive limiter | Peaks clipped | Moderate limiters such as van Leer |
| Ignoring grid alignment | Diffusion in skewed flow | Flow-aligned grids |
I'd like to learn related topics.
Try convection and diffusion with the convection–diffusion simulator. Related pages include the central difference scheme, finite volume fundamentals, time integration in CFD, density-based solvers and CFD mesh quality metrics.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators