Riemann Problems and Jupyter Solutions

by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo

The Github repository containing these notebooks is https://github.com/clawpack/riemann_book.

You can view html versions of these notebooks at http://www.clawpack.org/riemann_book/html/Index.html.

Parts I and II of these notebooks will also be published by SIAM as a paperback book.

Please read about the License if you wish to use or modify this material.


  • Preface -- Describes the aims and goals, and different ways to use the notebooks.

Part I: The Riemann problem and its solution

  1. Introduction -- Introduces basic ideas with some sample solutions.
  2. Advection -- The scalar advection equation is the simplest hyperbolic problem.
  3. Acoustics -- This linear system of two equations illustrates how eigenstructure is used.
  4. Burgers' equation -- The classic nonlinear scalar problem with a convex flux.
  5. Traffic flow -- A nonlinear scalar problem with a nice physical interpretation.
  6. Nonconvex_scalar -- More interesting Riemann solutions arise when the flux is not convex.
  7. Shallow water waves -- A classic nonlinear system of two equations.
  8. Shallow water with a tracer -- Adding a passively advected tracer and a linearly degenerate field.
  9. Euler equations of compressible gas dynamics -- The classic equations for an ideal gas.

Part II: Approximate solvers

  1. Approximate_solvers -- Introduction to two basic types of approximations.
  2. Burgers approximate -- Approximate solvers for a scalar problem.
  3. Shallow water_approximate -- Roe solvers, the entropy fix, positivity, HLL, and HLLE.
  4. Euler approximate -- Extension of these solvers to gas dynamics.
  5. Finite volume discretizations with approximate Riemann solvers -- Comparing how different approximate solvers perform when used with PyClaw.

Additional notebooks are under development and listed in Index2.html. Updates may appear in the Github repository in the future.