Course information


  • Prof. Randall LeVeque
    • Office: Lewis 328
    • Office hours: Monday 2-3, Wendesday 11-12, Thursday 2:30-3:30
    • netid for email: rjl

Class meeting times

Discussion board

Registered students should be able to access the Piazza discussion board.

Canvas page

Registered students can view grades and other materials on the Canvas page.


  • Homework: 50%, midterm: 20%, final project: 25%, peer review activities: 5%
  • See Homework and project for more information and due dates.



  • Master the basic theory of hyperbolic PDEs and nonlinear conservations laws,
  • Understand the development of high-resolution shock-capturing finite volume methods for solving these equations,
  • Learn about some applications of hyperbolic problems,
  • Gain experience in using the Clawpack software for solving these equations, including how to set up a new problem,
  • Learn the basics of Python programming and use of Jupyter notebooks (and a bit about Fortran),
  • Become comfortable using Git and GitHub and learn about the development paradigm used for Clawpack and many other open source scientific codes.


Some of the topics to be covered are listed below. See also Outline and reading assignments and Some examples.

  • Mathematical theory of linear and nonlinear systems of hyperbolic PDEs and conservation laws.

    • Eigenstructure of Jacobian matrix.
    • Shock and rarefaction waves, contact discontinuities.
    • Phase plane analysis – Hugoniot loci and integral curves.
    • Solution to the Riemann problem for linear and nonlinear systems of equations.
    • Entropy functions and admissibility criteria.
  • Theory of finite volume methods.
    • Upwind method, Godunov’s method, use of true and approximate Riemann solvers.
    • High-resolution methods with limiters, TVD methods.
    • Review concepts from AMath 586 such as dissipation, dispersion, Lax-Wendroff method, stability, CFL condition, etc.
    • Multi-dimensional finite volume methods on Cartesian and mapped grids
    • Adaptive Mesh Refinement (AMR)
  • Programming and use of Clawpack software
    • Implementing some simple methods from scratch.
    • Using Clawpack for more extensive experiments.
    • Setting up a problem, defining a Riemann solver.
    • Plotting solutions.
    • Experimenting with different methods.
  • Applications such as
    • Linear advection, acoustics, and elasticity,
    • Nonlinear Burgers’ equation, traffic flow,
    • Shallow water equations,
    • Euler equations of compressible gas dynamics.