4.1.1 Godunov's method

\begin{figure}\centerline{\psfig{figure=../FIGURES_DATABASE/riemann.ps,width=12cm}}\end{figure}

The incorporation of the exact solution of Riemann problems to compute the numerical fluxes is due to Godunov (1959)

Godunov developed his method to solve the Euler equations of classical gas dynamics in the presence of shock waves

Outline of Godunov's method:

  1. Piecewise constant initial data: $u_j^n \approx \frac{1}{\Delta x}
\displaystyle\int_{x_{j-1/2}}^{x_{j+1/2}} u(x,t^n) dx$

  2. Solve exactly the conservation law over the time interval $[t^n,t^{n+1}]$ with initial data $u_j^n$ (family of local Riemann problems) $\Rightarrow u(x_{j+1/2},t),
\newline
t\in [t^n,t^{n+1}]$

    The solution to the Riemann problem at $x_{j+1/2}$ is a similarity solution, which is constant along each ray

    \begin{displaymath}
\frac{x-x_{j+1/2}}{t}=const.
\end{displaymath} (104)

    $u^*(u_l,u_r)$ is the exact solution along the ray $x/t=0$ with data

    \begin{displaymath}
u(x,0) = \left\{ \begin{array}{ll}
u_l & \mbox{if $x<0$} \\
u_r & \mbox{if $x>0$}
\end{array} \right.
\end{displaymath} (105)

    then we have $u(x_{j+1/2},t)\equiv u^*(u_j^n,u_{j+1}^n)$

    $\Delta t$ must be small enough so that waves from the Riemann problems do not travel farther than distance $\Delta x$ in this time step (CFL condition)

  3. Compute the numerical flux function $\hat{f}_{j+1/2} \approx \frac{1}{\Delta t} \displaystyle \int_{t^n}^{t^{n+1}}
f(u(x_{j+1/2},t)) dt$

To compute $u^*(u_j^n,u_{j+1}^n)$ we must determine the full wave structure and wave speeds in order to find where it lies in state space $\rightarrow$ computationally expensive procedure

A wide variety of approximate Riemann solvers have been proposed $\rightarrow$ much cheaper than the exact solver and equally good results when used in the Godunov or high-resolution methods