In [1]:
from IPython.core.display import HTML
def css_styling():
styles = open("./styles/custom.css", "r").read()
return HTML(styles)
css_styling()
Out[1]:
Many physical theories can be written in balance law form, $$ \partial_t {\bf q} + \partial_x {\bf f}({\bf q}) = {\bf s}({\bf q}). $$ The standard example would be Euler's equations of gasdynamics, used to model high-speed fluid flow. However, there are a huge number of other models, from simple models of traffic flow, through acoustics, electromagnetics, nonlinear elasticity, plasma physics, and even up to Einstein's equations of general relativity.
Equations in balance law form have a number of generic properties. One of the most important is that they admit discontinuous solutions. This has two important effects:
The wide importance of balance laws means that these problems have been tackled and solved, for practical purposes, many times. This set of notebooks introduces the mathematical and numerical techniques needed to solve the simplest, but most important, discontinuous case: the Riemann problem.
These notebooks will assume that you have both the necessary mathematical and programming background. Essentially, if you have completed David Ketcheson's HyperPython course then you will have both, as only simple python techniques and packages will be used.
A wide variety of books and resources have been written on Riemann problems, much of it concentrating on the Euler equations. In steadily increasing order of complexity I would recommend