Numerical Methods for PDEs

the CFL condition

/ KOOR-ahnt FREE-drikhs LAY-vee /

When you simulate a wave travelling across a grid, common sense says the simulation must keep up with the physics. If the real wave crosses two grid cells in one time step but your explicit scheme only ever looks one cell to either side, the scheme is computing the next value from points that have not yet 'heard' about the wave — it is doomed. The CFL condition is the precise statement of this 'do not let the wave outrun the stencil' rule. It is the most famous stability constraint in all of numerical PDEs.

Make it quantitative for advection u_t + a u_x = 0. The physical wave moves a distance a*dt in one time step; one grid cell is width h. The dimensionless ratio c = |a| dt / h is the Courant number, and it measures how many grid cells the wave crosses per step. The CFL condition for a standard explicit scheme is c <= 1, i.e. dt <= h / |a|: the time step must be small enough that the wave advances at most one cell per step. The deep geometric reading is the original 1928 insight of Courant, Friedrichs and Lewy: the numerical domain of dependence (the grid points a scheme actually uses to compute a value) must contain the true domain of dependence (the region the exact PDE says influences that point). If it does not, no scheme can converge — it is simply blind to data it needs.

The practical sting is the same as FTCS: for explicit schemes the time step is chained to the mesh size, and refining the grid forces ever-smaller steps and ever-rising cost. For hyperbolic problems the chain is dt proportional to h; for explicit parabolic schemes it is the harsher dt proportional to h^2. CFL is a NECESSARY condition (you cannot beat it with a cleverer explicit scheme on the same stencil), but it is not always sufficient — von Neumann analysis gives the full stability story. Implicit schemes, whose stencil reaches across the whole grid each step, sidestep the CFL limit entirely, which is their whole reason for being.

Modelling sound (a = 340 m/s) on a grid with h = 1 m forces dt <= 1/340 ≈ 0.0029 s for an explicit scheme. Halve h to 0.5 m and you must also halve dt — twice the spatial points and twice the steps, so four times the work for one extra digit of spatial accuracy.

The Courant number c = |a|dt/h must not exceed 1 for an explicit scheme.

CFL is necessary, not always sufficient: satisfying c <= 1 does not by itself prove a scheme stable (FTCS on advection satisfies CFL yet is unstable). And it constrains only EXPLICIT schemes — implicit ones are CFL-free.

Also called
Courant–Friedrichs–Lewy conditionCourant number condition庫朗數條件庫朗-弗里德里希斯-列維條件