Skip to content

The Riemann problem

Vedant Dhruv edited this page Nov 22, 2021 · 2 revisions

Reconstruction

In order to solve the local Riemann problem at the zone faces, one needs the value of the primitives at said zone faces. For a cell-centered scheme this means reconstructing the left and right states from their cell-centered values. In Godunov's original formulation he considered a piecewise constant distribution. However, this would make the scheme first order accurate. To maintain second order accuracy, a higher order reconstruction scheme must be employed. The options available in iharm currently are (i) piecewise linear reconstruction with monotonised central-difference limiter (MC) (ii) piecewise parabolic method (PPM) and (iii) weighted essentially non-oscillatory (WENO). The details of each reconstruction scheme are beyond the scope of this wiki but one can read more it here and here. reconstruction in reconstruction.c takes care of zone-interface reconstruction for all primitives.

Flux calculation

Having reconstructed the left and right states at the zone interface, we need to use these to compute the flux. iharm uses a HLL Riemann solver (cf. Harten, Lax and van Leer) which assumes a Riemann solution consisting of the fastest and slowest moving waves. In our problem, these are the two fast magnetosonic waves. The wave speeds are computed for the left state (cmaxL and cminL) and right state (cmaxR and cminR) by mhd_vchar along the direction that we are computing the flux. The maximum left-propagating wave speed and minimum right-propagating wave speeds are computed (cmax and cmin respectively) like equation and equation. The flux can then be computed like,

equation.

iharm currently computes a simplified form of the HLL flux, the local Lax-Friedrichs flux which utilizes only one wave speed in its final expression for the flux,

equation,

where ctop=max(cmax, cmin).