-
Notifications
You must be signed in to change notification settings - Fork 2
The Riemann problem
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.
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 and . The flux can then be computed like,
.
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,
,
where ctop=max(cmax, cmin).