Burgers' Equation
This module illustrates fully discrete finite difference methods for
numerically solving Burgers' equation, which provides a simplified
model of fluid dynamics combining nonlinear advection and linear
diffusion [1]. Burgers' equation in one dimension is the nonlinear
partial differential equation u_{t} +
u u_{x} = v
u_{xx}, where the solution
u(t, x) is a function of the time
variable t and the spatial variable x, subscripts
indicate partial differentiation with respect to the given independent
variable, and the constant v, which can be interpreted as
viscosity, controls the balance between convection and diffusion.
Considering Burgers' equation as an initialboundary value problem with
initial time t = 0, the solution u is
defined for all x in a given interval [a,
b] and any nonnegative t. An initial condition is
given by a function f(x) defined on the
interval [a, b], and the left and right
boundary conditions are given by functions
g(t) and h(t),
respectively, each defined for any nonnegative t.
In order to assess the quality of approximate numerical solutions, the
following exact solutions to Burgers' equation are used, most of which
are adapted from reference [2] below:
 Solution 1:
 Solution 2:
 Solution 3:
 Solution 4:
 Solution 5:
 Solution 6:
For any such function u(t, x)
satisfying Burgers' equation and a given interval [a,
b], a corresponding initialboundary value problem for
which u(t, x) is the solution can be
obtained by taking f(x) = u(0,
x), g(t) = u(t,
a), and h(t) = u(t,
b).
The user begins by selecting an exact solution to Burgers' equation
from the menu provided and the viscosity constant v using the slider.
The resulting initial function for the corresponding initialboundary
value problem is plotted on a predetermined interval [a,
b]. Next the user chooses a fully discrete finite
difference method to apply to Burgers' equation. Except for
LaxWendroff, the methods are described using a twoword naming
convention in which the first and second words describe the finite
difference approximations to the time derivative
u_{t} and the convective term
u_{x}, respectively. The diffusive term
u_{xx} is approximated by centered differences in
all cases. The stencil of the method selected is shown below, with the
point being computed colored red, the other points used in the
difference scheme colored blue, and any remaining points colored
black. The red and blue points are drawn with three different levels
of intensity to indicate how many of the terms in Burgers' equation
they are used to approximate. A point that is used in approximating
only one term (e.g., the diffusive term
u_{xx} ) is drawn with the lowest
intensity, while a point used in approximating all three terms has the
highest intensity. For the upwind methods, the direction of the
stencil depends on the approximate solution values where the stencil is
being applied; the stencil displayed is the one applied when the
approximate solution is positive. Finally, the user specifies the step
sizes in space and time for the discrete mesh of points used in the
finite difference method. The explicit methods may be unstable for
some choices of step sizes, but it is difficult to give an accurate
stability restriction, since for a nonlinear PDE the stability of
explicit finite difference methods depends on the approximate solution
values at each time step, and any a priori bound is likely to be overly
pessimistic. The implicit methods provided (those that use backward or
centered differencing for the time derivative) are unconditionally
stable.
To view the numerical solution, the user chooses between
twodimensional and threedimensional display modes and clicks
Start. The approximate solution is advanced time step by time
step, and the plot of the solution is updated accordingly. In
twodimensional display mode, the solution at the current time is
plotted as a curve on the spatial interval [a,
b], and solution values at each new time step replace
those at the previous time step. The approximate solution is shown in
green, and the exact solution is shown in red for comparison. In
threedimensional display mode, the approximate solution is plotted as
a surface over the spacetime plane, and solution values at each new
time step are added to the existing graph, extending it forward along
the time axis. The solution continues to advance until a fixed upper
limit is reached or the user clicks Stop. When the solution
process is stopped before the final time, it can be resumed by again
clicking Start. Clicking Reset clears any solution that
may be partially calculated and redisplays the initial condition,
allowing the user to select different parameters.
References

J. M. Burgers, A mathematical model illustrating the theory of
turbulence, Advances in Applied Mechanics, 1:171199, 1948.
 Edward R. Benton and George W. Platzman, A table of solutions of the
onedimensional Burgers equation, Quart. Appl. Math.,
30:195212, 1972. This paper is the source of the exact solutions used
in this module.
 Michael T. Heath, Scientific Computing,
An Introductory Survey, 2nd edition, McGrawHill, New York,
2002. See Computer Problem 11.5 on page 492.
 J. W. Thomas, Numerical Partial Differential Equations: Finite
Difference Methods, Springer, New York, 1995. See Section 6.10.1,
pages 344347.
Developers: Evan VanderZee and Michael Heath