The CFL Condition — Stability and Von Neumann Analysis

Summary

Studied the Lax Equivalence Theorem, Von Neumann stability analysis, and the CFL (Courant–Friedrichs–Lewy) condition. The CFL condition requires that physical information must not travel farther in one time step than the numerical stencil can reach. Satisfying CFL is necessary for many explicit schemes, but not always sufficient for stability.


Lax Equivalence Theorem

A fundamental result for linear initial-value problems (IVPs):

For a consistent finite-difference method applied to a well-posed linear IVP, the method is convergent if and only if it is stable.

This links two practical questions — does the numerical solution approach the true solution? (convergence) and do roundoff errors stay bounded? (stability).


Von Neumann stability analysis

Von Neumann analysis studies how a single Fourier mode of the numerical error is amplified over one time step.

  1. Decompose the error at time tnt_n into Fourier modes:

    ϵjn=mEmneikmjΔx\epsilon_j^n = \sum_m E_m^n\, e^{i k_m j \Delta x}

  2. Find the amplification factor GG defined by Emn+1=GEmnE_m^{n+1} = G\, E_m^n.

  3. The scheme is stable if G1|G| \le 1 for all wavenumbers kmk_m (i.e. for all θ=kmΔx\theta = k_m \Delta x).

If G>1|G| > 1 for any mode, that error component grows exponentially and the scheme is unstable.


Example 1: Heat equation (diffusion)

ut=α2ux2\frac{\partial u}{\partial t} = \alpha \frac{\partial^2 u}{\partial x^2}

Forward Euler in time, central difference in space (FTCS):

uin+1=uin+r(ui+1n2uin+ui1n),r=αΔtΔx2u_i^{n+1} = u_i^n + r\left(u_{i+1}^n - 2u_i^n + u_{i-1}^n\right), \qquad r = \frac{\alpha\,\Delta t}{\Delta x^2}

Applying the same update to the error ϵ\epsilon and substituting a Fourier mode ϵin=Eneiθj\epsilon_i^n = E^n e^{i\theta j} with θ=kΔx\theta = k\,\Delta x:

G=1+r(eiθ2+eiθ)=14rsin2 ⁣(θ2)G = 1 + r\left(e^{i\theta} - 2 + e^{-i\theta}\right) = 1 - 4r\sin^2\!\left(\frac{\theta}{2}\right)

Stability: G1|G| \le 1 for all θ[π,π]\theta \in [-\pi, \pi].

  • At θ=0\theta = 0: G=1G = 1 (neutral — no growth).
  • Worst case at θ=π\theta = \pi: G=14rG = 1 - 4r.

Requiring 14r11 - 4r \ge -1 gives:

r=αΔtΔx212\boxed{r = \frac{\alpha\,\Delta t}{\Delta x^2} \le \frac{1}{2}}

This is the stability limit for explicit FTCS on the heat equation.


Example 2: 1D linear advection (upwind scheme)

ut+cux=0,c>0\frac{\partial u}{\partial t} + c\,\frac{\partial u}{\partial x} = 0, \qquad c > 0

Forward Euler in time, backward difference in space (upwind):

uin+1uinΔt+cuinui1nΔx=0\frac{u_i^{n+1} - u_i^n}{\Delta t} + c\,\frac{u_i^n - u_{i-1}^n}{\Delta x} = 0

uin+1=uinν(uinui1n)=(1ν)uin+νui1nu_i^{n+1} = u_i^n - \nu\left(u_i^n - u_{i-1}^n\right) = (1-\nu)\,u_i^n + \nu\,u_{i-1}^n

where the Courant number is:

ν=cΔtΔx\nu = \frac{c\,\Delta t}{\Delta x}

Von Neumann analysis gives:

G=1ν(1eiθ)G = 1 - \nu\left(1 - e^{-i\theta}\right)

For 0ν10 \le \nu \le 1, one can show G1|G| \le 1 for all θ\theta. The CFL condition for this upwind scheme is:

ν=cΔtΔx1\boxed{\nu = \frac{c\,\Delta t}{\Delta x} \le 1}

Physical meaning: A fluid parcel must not travel more than one grid cell per time step — information cannot outrun the numerical stencil.


CFL is necessary but not sufficient

The CFL condition states that information should not propagate farther than one mesh spacing per time step. However, satisfying CFL does not guarantee stability for every scheme.

Counterexample — FTCS for advection:

Using forward time and central space for ut+cux=0u_t + c u_x = 0, Von Neumann analysis shows G>1|G| > 1 for some Fourier modes even when ν1\nu \le 1. FTCS is unconditionally unstable for the pure advection equation, regardless of the time-step size.

Scheme Equation CFL / stability limit
FTCS Heat (ut=αuxxu_t = \alpha u_{xx}) r1/2r \le 1/2
Upwind Advection (ut+cux=0u_t + c u_x = 0, c>0c>0) ν1\nu \le 1
FTCS Advection Unstable (even with small Δt\Delta t)

Takeaways

  1. Lax theorem: consistency + stability \Leftrightarrow convergence (linear well-posed IVPs).
  2. Von Neumann: track G|G| for every Fourier mode; require G1|G| \le 1.
  3. CFL: Δt\Delta t must be small enough that the numerical domain of dependence covers the physical domain of dependence.
  4. Always verify stability for the specific scheme — CFL alone is not enough.

References & code

Add simulation plots or code links here when ready.

The CFL Condition — Stability and Von Neumann Analysis | Laramie Community Hub