This repository contains work on a book in progress to illustrate Riemann solvers in Jupyter notebooks. Contributors: @ketch, @rjleveque, and @maojrs.
The notebooks are saved in Github with the output stripped out. You can view the html rendered notebooks with output intact on this webpage. These are static views (no execution or interactive widgets), but some notebooks include animations that will play. These may not be up to date with the versions in this repository during the development phase of this project.
To install the dependencies for the book, see https://github.com/clawpack/riemann_book/wiki/Installation. Then clone this repository to get all the notebooks. You might start with Index.ipynb
.
Rather than installing all the dependencies, if you have Docker installed you can use the Dockerfile
in this repository. See Docker.md
for instructions.
[Add instructions for Dockerhub]
Rather than installing software, you can execute the notebooks on the cloud using the Microsoft Azure Notebooks cloud service: Create a free account and then clone the riemann_book library. These may not be up to date with the versions in this repository during the development phase of this project.
This is still under development using the latest version of binder. You can try it out for these notebooks at this link: https://beta.mybinder.org/v2/gh/clawpack/riemann_book/master
This should start up a notebook server on a Jupyterhub that lets you execute all the notebooks with no installation required.
Parentheticals indicate concepts introduced for the first time.
Part I: Exact Riemann solutions
- Advection
- Acoustics (eigenvalue analysis, characteristics, similarity solutions)
- Traffic flow (shocks, rarefactions, conservation, jump conditions)
- Burgers' (weak solutions)
- Shallow water (jump conditions for a nonlinear system; Riemann invariants, integral curves, Hugoniot Loci) (see also this and this)
- How to solve the Riemann problem exactly -- go in depth into SW solver, including Newton iteration to find root of piecewise function
- Shallow water with a tracer (contact waves)
- Euler equations
Part II: Approximate solvers
- Motivation and approaches to approximate solvers (waves vs fluxes)
- Transonic rarefactions and entropy fixes
- Linearized solvers (Roe) (non-physical solutions)
- LLF and HLL and extensions (smearing of contacts)
- Comparison of solvers for shallow water
- Comparison of solvers for Euler
- Comparison of full numerical solutions for Woodward-Colella blast wave problem
Part III: Riemann problems in heterogeneous media
- Advection (conservative vs color)
- Acoustics (conservative vs non-conservative)
- Variable speed-limit traffic
- Nonlinear elasticity (forward reference to nonconservative nonlinear problems)
- Shock tube with different ratio of specific heats
- Euler with Tamman EOS
Part IV: Source terms
- Approaches: source at interface vs other approaches (not covered here), well-balancing? stiffness?
- Scalar example(s) (advection-reaction, traffic with on-ramps, burgers-reaction) (well-balancing)
- Shallow water with bathymetry
- Euler with gravity
- Reactive Euler?
- Discuss viscous source terms?
Part V: Non-classical problems
- Nonconvex fluxes (Buckley-Leverett, Osher solution)
- Pressureless gas (non-diagonalizable)
- (nonconvex flux systems -- MHD?)
- Nonconservative, nonlinear systems (path-conservative solvers)
Part VI: Multidimensional systems
- Planar Riemann problem for a multi-D system (e.g. Acoustics, SW, Euler) (shear waves)
- Elasticity
- Quadrants problem (2D Euler Riemann-like problem)
- Cylindrical shallow water
Chapters with a complete draft have the box checked. Chapters that are required are in bold. The remaining chapters are optional and will depend on the authors finding time to complete them.
- Advection - conservative and color equation
- Acoustics - constant coefficient and arbitrary rho, K on each side - Mauricio
- Traffic flow - scalar - David
- Traffic flow with variable speed limit - David
- Burgers' - with/without entropy fix - Mauricio
- Buckley-Leverett - Randy
- Shallow water - Exact, Roe, HLLE (and with tracer)
- Shallow water with topography, Augmented solver - Randy
- Shallow water in cylindrical coordinates - David
- p-system / nonlinear elasticity - David
- Euler - Exact, Roe, HLL, HLLE, HLLC
- Euler with general EOS - Mauricio
- Reactive Euler - Luiz Faria wrote some solvers here: https://github.com/ketch/pyclaw-detonation
- Traffic - systems
- LLF and HLL solvers for arbitrary equations
- Layered shallow water - David
- MHD
- Relativistic Euler
- Dusty gas
- Two-phase flow
- Elasticity - Mauricio
- Acoustics + mapped grids - Mauricio
- Shallow water
- Euler
- Maxwell's equations
- Arbitrary normal direction on mapped grid
- Poro-elasticity
- Description of the equations
- physical derivation
- Analysis of the hyperbolic structure:
- Jacobian; eigenvalues and eigenvectors
- Rankine-Hugoniot jump conditions
- Riemann invariants
- structure of centered rarefaction waves
- Riemann solvers
- Exact Riemann solver
- Approximate Riemann solvers
- Solvers for mapped grids
- Well-balanced solvers incorporating source terms
- Solvers with and without entropy fix
- Discussion and solvers for the transverse problem
- Comparisons
- Results using Clawpack with different solvers