CFL Condition
This module illustrates the CFL condition for stability of an
explicit finite difference discretization of the wave equation. The
domain of dependence of a hyperbolic partial differential
equation (PDE) for a given point in the problem domain is that portion
of the problem domain that influences the value of the solution at the
given point. Similarly, the domain of dependence of an explicit finite
difference scheme for a given mesh point is the set of mesh points that
affect the value of the approximate solution at the given mesh point.
The CFL condition, named for its originators Courant,
Friedrichs, and Lewy, requires that the domain of dependence of the PDE
must lie within the domain of dependence of the finite
difference scheme for each mesh point of an explicit finite difference
scheme for a hyperbolic PDE. Any explicit finite difference scheme
that violates the CFL condition is necessarily unstable, but satisfying
the CFL condition does not necessarily guarantee stability. This
module illustrates the CFL condition for the wave equation
utt = c
uxx, where the constant c
determines the wave speed. For the wave equation, the domain of
dependence for a given point is an isosceles triangle having its apex
at the given point, one edge on the spatial axis, and remaining edges
with slopes 1 ⁄ c½ and
−1 ⁄ c½. The standard
finite difference scheme for the wave equation uses centered,
second-order accurate differences in both space and time (see Wave Equation module), whose stencil also
yields a triangular-shaped domain of dependence as the numerical scheme
marches forward in time.
The coefficient c, spatial step size
Δx, and time step
Δt can be selected using the sliders below,
and the resulting domains of dependence for a typical mesh point are
drawn in the graph of the problem domain, with the mesh points of the
finite difference scheme shown as black dots, the domain of dependence
of the PDE shaded red, the domain of dependence of the difference
scheme shaded blue, and the overlap between the two domains of
dependence shaded magenta. From the geometric relationships in the
graph, it is clear that the CFL condition requires that
c½Δt ⁄Δx
≤ 1. Accordingly, the word “stable” or
“unstable” appears below the graph, depending on whether
the CFL condition is satisfied or not, respectively. Note that for
given choices of any two of the three parameters, the difference scheme
can be stable or unstable, depending on the choice of the third
parameter.
The CFL condition can be interpreted intuitively as requiring that
the distance c½Δt
traveled by a wave in one time step not exceed one spatial step
Δx, or equivalently that the numerical wave
speed Δx ⁄ Δt be at least
as fast as the physical wave speed
c½. In practice, the value of
c is determined by the physical problem being solved,
Δx is chosen to achieve the desired accuracy
in the approximate solution, and the CFL condition then becomes a limit
Δt ≤ Δx ⁄
c½ on the time step
Δt for the difference scheme to be
stable.
Reference: Michael T. Heath, Scientific Computing,
An Introductory Survey, 2nd edition, McGraw-Hill, New York,
2002. See Section 11.2.2, especially Example 11.4 and Figure 11.6.
Developers: Evan VanderZee and Michael Heath