Numerical Methods for PDEs: Finite Differences

the CFL condition

/ C-F-L; koo-RAHNT FREED-rikhs LAY-vee /

Suppose a wave travels along a string at speed c, and you are simulating it with an explicit scheme that, in one time step, only lets each grid point talk to its immediate neighbours. If the physical wave can cross more than one grid cell in a single time step, the numerical scheme literally cannot keep up — the information physically arrives at a point before the scheme has any way to carry it there. The CFL condition is the precise statement of 'don't let the wave outrun the grid', and it caps how big the time step of an explicit scheme may be.

For one-dimensional advection or waves with speed c, grid spacing h, and time step k, the CFL condition is that the Courant number C = c*k/h must satisfy |C| <= 1 (the exact bound depends on the scheme; 1 for leapfrog and upwind). The picture behind it is the DOMAIN OF DEPENDENCE: the true solution at a point depends on a triangular region of the past (everything within distance c*t). The numerical scheme's value at that point can only depend on the cells its stencil reaches over n steps — a discrete triangle of slope h/k. CFL says the numerical domain of dependence must CONTAIN the true one; if the grid triangle is too narrow (k too large), the scheme is missing data it needs, and it goes unstable.

CFL is the fundamental reason explicit time-stepping is only conditionally stable, and it has bite. To make a simulation more accurate you shrink h, but CFL then forces you to shrink k proportionally (for advection) or faster — so doubling the spatial resolution at least doubles the number of time steps, and the cost grows superlinearly. It is also why STIFF problems and fast waves push people toward implicit schemes, whose numerical domain of dependence is the whole grid (every step solves a global system), so they have no CFL limit. The honest nuance: CFL is necessary for stability but not always sufficient — a scheme can satisfy CFL and still be unstable for other reasons — and the exact constant depends on the scheme and the number of space dimensions.

Advection at c = 2 with h = 0.1 needs k such that 2*k/0.1 = 20k <= 1, so k <= 0.05. Choosing k = 0.04 (Courant number 0.8) is stable; k = 0.06 (Courant number 1.2) violates CFL and the upwind scheme blows up. For the explicit heat equation the analogous limit is the parabolic one, k <= h^2/(2*alpha), even harsher because it scales with h^2.

Numerical domain of dependence must contain the true one: c*k/h <= 1.

CFL is NECESSARY for an explicit scheme's stability but not by itself SUFFICIENT — a scheme can obey CFL and still be unstable (FTCS for advection is the classic example: it satisfies the domain-of-dependence idea yet is unconditionally unstable). The Courant-number bound (1, 1/2, etc.) also depends on the specific scheme and the number of space dimensions.

Also called
Courant conditionCourant number bound庫朗條件庫朗-弗里德里希斯-列維條件