CFD Time Integration Methods
Theory: explicit and implicit schemes
Overview
My CFD of the Kármán vortex street behind a cylinder settled into steady flow with the vortices dying out. What went wrong?
Check the time integration. Many codes default to first-order implicit (backward Euler), which is very stable but has strong numerical damping that gradually weakens oscillations. Combined with a large time step, it can suppress even vortex shedding that should persist. Explicit schemes are tightly limited by the CFL condition; implicit ones are stable at large steps, but whether oscillations are preserved depends on method and step. Comparing on a simple oscillator makes the difference clear.
Per-step amplification
The per-step amplification factor $G$ when each method is applied to the oscillation equation. $|G| = 1$ preserves amplitude, $|G| < 1$ damps and $|G| > 1$ diverges.
Time-step limits
Explicit schemes need fluid not to cross more than a cell per step (CFL about 1 or less) and a diffusion limit.
Time stepping began with weather forecasting
In 1922 Richardson tried forecasting weather by hand calculation; a six-hour forecast took weeks, and the result was badly wrong. One cause was that the link between time step, grid and stability was unknown. In 1928 Courant, Friedrichs and Lewy showed that explicit schemes diverge unless the time step is below a value set by grid and wave speed (the CFL condition). Implicit methods developed to escape this limit, trading it for another issue: numerical damping.
Worked example: comparing on an oscillator
An undamped oscillation (amplitude should stay constant) was solved at various steps per period, comparing amplitude remaining after ten periods and phase error per period:
| Steps per period | Explicit Euler | Implicit Euler | BDF2 | Crank–Nicolson |
|---|---|---|---|---|
| 10 | Diverges | 6×10⁻⁸ | 0.14 | 1.00 |
| 20 | Diverges | 8×10⁻⁵ | 0.68 | 1.00 |
| 40 | Diverges (×131) | 0.0076 | 0.944 | 1.00 |
| 80 | Diverges (×11.7) | 0.086 | 0.993 | 1.00 |
Phase error per period at 40 steps is 2.9° for backward Euler and BDF2 and 0.7° for Crank–Nicolson; at 80 steps, 0.7° and 0.2°.
With first-order implicit, even 40 steps leaves under 1% amplitude after ten periods.
Right. First-order implicit shaves amplitude every step, so the longer you run, the more it tells. Real Kármán vortices generate oscillation through flow instability, so they may not vanish entirely, but their strength and frequency change. BDF2 is second order with far less damping and is the practical standard for unsteady runs. Crank–Nicolson preserves amplitude but tends to leave wiggles at sharp changes. For a 0.1 m cylinder in 10 m/s flow, shedding is about 20 Hz; 40 steps per period means a 1.25 ms step. With 1 mm cells that's CFL 12.5 — impossible explicitly, so implicit it is.
Selection guidance
- Estimate the period of the fastest change of interest (shedding, pulsation).
- For unsteady results, use second-order methods such as BDF2 rather than first-order implicit.
- Set the step for 20–40 or more steps per period and check CFL.
- Halve the step and confirm frequency and amplitude don't change.
- Check inner iterations within each step have converged.
“Right frequency, half the amplitude”
A CFD study of aerodynamic oscillation of a bridge section matched wind-tunnel shedding frequency, but lift fluctuation amplitude was only about half. Time integration was first-order implicit at about 15 steps per period. Switching to BDF2 at 40 steps per period brought amplitude within 10% of experiment. Frequency reflects phase error and amplitude reflects damping, so a correct frequency doesn't guarantee a correct amplitude.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| First-order implicit for unsteady | Oscillations damped or lost | Second order such as BDF2 |
| Coarse time step | Phase and amplitude error | 20–40+ steps per period |
| Ignoring CFL explicitly | Divergence | Check CFL |
| Verifying by frequency only | Amplitude error missed | Compare amplitude too |
| Insufficient inner iterations | Lost time accuracy | Check residuals |
I'd like to learn related topics.
Estimate shedding frequency with the Strouhal and vortex shedding tool. Related methods include the PISO algorithm, SIMPLE algorithm, coupled solver, central difference scheme and finite volume fundamentals.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators