# Heat Equation

This module illustrates fully discrete finite difference methods for numerically solving the heat equation. The heat equation (also called the diffusion equation) in one space dimension is the partial differential equation ut = c uxx, where the solution u(t, x) is a function of the time variable t and the spatial variable x, and subscripts indicate partial differentiation with respect to the given independent variable. The equation is defined for any x in a given interval [a, b] and any nonnegative t. The initial condition is given by u(0, x) = f(x) for some specified function f, and boundary conditions are given by u(t, a) = α and u(t, b) = β for specified values α and β. Here we take c = 1, α = 0, and β = 0 for simplicity.

The user begins by selecting an initial function from the menu provided. The initial function, represented by a truncated Fourier sine series approximation, is plotted on a predetermined interval [a, b] for which u(0, a) = u(0, b) = 0. Next, the user chooses a fully discrete finite difference method to apply to the heat equation. The stencil of the method is shown below the list of methods, with the point being computed colored red, the points it depends on colored blue, and the remaining points colored black. Finally, the user specifies the step sizes in space and time for the discrete mesh of points used in the finite difference method. The stability limit shown below gives, for the chosen space step size, the restriction on the size of the time step in order for the numerical method to be stable. If the time step chosen violates this restriction, then the numerical solution may oscillate wildly and bear little resemblance to the true solution.

To view the numerical solution, the user chooses between two-dimensional and three-dimensional display modes and then clicks Start. The approximate solution is advanced time step by time step, and the plot of the solution is updated accordingly. In two-dimensional 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 three-dimensional display mode, the approximate solution is plotted as a surface over the space-time 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 reaching the final time, it can be resumed by again clicking Start. Clicking Reset halts any solution that may be in progress and redisplays the initial condition, allowing the user to select a different initial condition, a different solution method, or different step sizes.

Reference: Michael T. Heath, Scientific Computing, An Introductory Survey, 2nd edition, McGraw-Hill, New York, 2002. See Section 11.2.2, especially Example 11.2 and Figure 11.5.

Developers: Evan VanderZee and Michael Heath