Some examples

Here are a few examples of solutions to hyperbolic partial differential equations. For some other examples, see Jupyter notebooks, Riemann problems and solutions, and the Clawpack Gallery.

Advection

The advection equation \(q_t +uq_x=0\) with constant advection velocity \(u\) is the simplest example of a hyperbolic PDE. The solution simply advects with shape unchanged.

This animation below shows an example when the velocity is \(u=1\) and periodic boundary conditions are used on a domain of length 1. The computed solution was obtained using one of the high-resolution finite volume methods to be studied in this class, using the code from $CLAW/classic/examples/advection_1d_example1:



Once Loop Reflect

Burgers’ equation

Nonlinear scalar equations lead to shock formation, as illustrated by Burgers’ equation \(u_t + \left(\frac 1 2 u^2\right)_x = 0\). This is an animation of Figure 11.8 in [FVMHP], computed using the code in $CLAW/apps/fvmbook/chap11/burgers.



Once Loop Reflect

Linear Acoustics

Linear acoustics in one space dimension can be modeled by a system of two PDEs for pressure and velocity. Below we see animations of how they evolve from initial data with zero velocity and only a disturbance in pressure. There is a reflecting boundary condition (\(v=0\)) at the left edge and an outflow boundary condition at the right edge of the domain. This is an animation of Figure 3.1 in [FVMHP], computed using the code in $CLAW/apps/fvmbook/chap3/acousimple.



Once Loop Reflect

Two dimensional Burgers’ equation

This illustrates solution of the 2D Burgers’ equation \(u_t + \left(\frac 1 2 u^2\right)_x + \left(\frac 1 2 u^2\right)_y = 0\) with piecewise constant intial data and periodic boundary conditons:



Once Loop Reflect

This was computed using adaptive mesh refinement, with patches of finer grid cells near the discontinuties where more resolution is required. Three levels of patches were used as seen in the animation below. The individual grid cells are shown only on the coarsest level.



Once Loop Reflect

This was computed using the code in $CLAW/amrclaw/examples/burgers_2d_square.