Project IV (MATH4072) 2021-22


Solving the Riemann problem

Prof. A Yeates

Description

When he wasn't occupied hypothesizing about number theory (or doing many other important things), the great mathematician Bernhard Riemann found time to study the practical problem of shock waves in gases. This led to the so-called Riemann problem - an initial value problem comprising a conservation equation together with piecewise-constant initial data.

In PDEs III, you learnt how to solve such problems on paper using the method of characteristics. This project is concerned with how to solve these problems numerically on a computer. Typically this would be done as part of a wider simulation in computational fluid dynamics, rather than in a 1D "test problem". Nevertheless, even the 1D problem turns out to be surprisingly difficult. The difficulty stems from the fact that traditional "finite-difference" schemes for approximating derivatives rely on smoothness of the function for their good behaviour.

Sod's shock tube.Sod's shock tube is a particular case of the Riemann problem, and a classic test for numerical fluid codes. You start with a step-function of high density on the left and low density on the right, and the solution evolves into 5 distinct regions (remember PDEs III).

There are quite a few videos of the solution on YouTube - e.g. this one uses a numerical method called a "Riemann solver".

We will look into the theory of finite volume methods that are based on approximating the integral form of the conservation equations. Many clever schemes have been suggested over the past half century, so there is ample scope for specialization. An important part of the project will be writing your own code for some of the schemes in Python.

The challenge: how well can you solve the Riemann problem?

Prerequisites

PDEs III is required as a pre-requisite, along with either Numerical Analysis II or Mathematical Modelling II. A willingness to write your own code in Python is essential (guidance can be given).

Resources

There are some excellent lecture notes on finite volume methods here - for example, you could have a look at Chapter 3.

Detailed references include Durran (or the newer edition), or LeVeque (electronic edition).

email: A Yeates