clawpack / riemann_book

An interactive book about the Riemann problem for hyperbolic PDEs, using Jupyter notebooks.
BSD 3-Clause "New" or "Revised" License
264 stars 95 forks source link
book hyperbolic-equations jupyter-notebook mathematics numerical-methods partial-differential-equations python riemann-solver

Build Status

Riemann Problems and Jupyter Solutions

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

This repository contains source files for a book that illustrates Riemann solutions and approximate Riemann solvers in Jupyter notebooks. The print version of the book is available from SIAM, and also as an ebook. You can view a pdf version of the contents, preface, and index.

Riemann Problems and Jupyter Solutions
    Theory and Approximate Solvers for Hyperbolic PDEs
by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo
SIAM, 2020.   ISBN: 978-1-611976-20-5
ebook: DOI 10.1137/1.9781611976212

See https://bookstore.siam.org/fa16/bonus for additional information and links to the html rendered notebooks. These are static views (no execution or interactive widgets), but some notebooks include animations that will play.

The recommended way to fully experience the book is by running the Jupyter notebooks:

Branches

The FA16 branch of this repository corresponds to notebooks as converted into the SIAM book. The master branch may be updated in the future.

Installation

To install the dependencies, first install a Fortran compiler. Then do the following in a terminal:

pip install clawpack
git clone https://github.com/clawpack/riemann_book
cd riemann_book
pip install -r requirements.txt
jupyter nbextension enable --py widgetsnbextension
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextension enable equation-numbering/main

You can test your installation by running

python test.py

A table of contents and suggested order for reading the notebooks is given in Index.ipynb.

If you want to compile the PDF locally, you must also install the package bookbook.

Docker

Rather than installing all the dependencies, if you have Docker installed you can use

$ docker pull clawpack/rbook

to obtain a docker image that has all the notebooks and dependencies installed. This was built using the Dockerfile in this repository, which could be modified to build a new image also containing other material, if desired. See Docker.md for further instructions.

Execute in the cloud

Binder

Rather than installing anything on your own computer, you can run the notebooks on the cloud using the free binder service.
Simply navigate to this link in a browser:

https://mybinder.org/v2/gh/clawpack/riemann_book/FA16

This may take a few minutes to start up a notebook server on a Jupyterhub. Then navigate to riemann_book and open Index.ipynb to get started.

License

Code

The code in this repository, including all code samples in the notebooks, is released under the 3-Clause BSD License. See LICENSE-CODE for the license and read more at the Open Source Initiative.

Text

The text content of the notebooks is released under the CC-BY-NC-ND License. See LICENSE-TEXT.md for the license and read more at Creative Commons.

Contents

Taken from the notebook Index.ipynb, these are the notebooks that also appear in the printed book: