  An optimally efficient explicit numerical scheme for solving fluid dynamics
equations, or any other parabolic or hyperbolic system of partial differential
equations, should allow local regions to advance in time with their own,
locally constrained time steps. However, such a scheme can result in violation
of the Courant-Friedrichs-Lewy (CFL) condition, which is manifestly non-local.
Although the violations can be considered to be "weak" in a certain sense and
the corresponding numerical solution may be stable, such calculation does not
guarantee the correct propagation speed for arbitrary waves. We use an
experimental fluid dynamics code that allows cubic "patches" of grid cells to
step with independent, locally constrained time steps to demonstrate how the
CFL condition can be enforced by imposing a condition on the time steps of
neighboring patches. We perform several numerical tests that illustrate errors
introduced in the numerical solutions by weak CFL condition violations and show
how strict enforcement of the CFL condition eliminates these errors. In all our
tests the strict enforcement of the CFL condition does not impose a significant
performance penalty.
