Documentation/UserGuide/Riemann Solvers

The Riemann solver is the method by which time-averaged fluxes of all conserved quantities are calculated at cell interfaces, see section 4.3 in the ApJS Method Paper. There are entire monographs written on exact and approximate Riemann solvers for hydrodynamics and MHD (e.g. E.F. Toro, Riemann Solvers and Numerical Methods for Fluid Dynamics, 1999). References to “Toro” below refer to this book.

Along with Reconstruction and the Integrator, the Riemann solver is one of the most important algorithmic elements of a Godunov scheme. For these reason, a variety of choices for the solver are implemented in Athena.

The Riemann solvers are implemented in functions in the directory /athena/src/rsolvers/

To specify the Riemann solver in Athena, configure the code with

% configure --with-flux=choice


where the table below gives the valid choices implemented in Athena.

Choice Comment Physics Reference
force Toro’s FORCE flux Hydro and MHD Toro section 7.4.2
two-shock Two-shock approximation Hydro Toro section 9.4.2
exact eact solver Hydro Toro chapter 4
hlle Harten-Lax-van Leer with Einfeldt fix Hydro and MHD Toro section 10.3
hllc Harten-Lax-van Leer with contact Hydro Toro section 10.4
hlld Harten-Lax-van Leer with contact and Alfven mode MHD Miyoshi & Kusano, JCP, 208, 305
Roe Roe’s linearized solver Hydro and MHD Toro chapter 11

For hydrodynamics, use of the Roe or HLLC solver is strongly recommended.

For MHD, use of the Roe or HLLD solver is strongly recommended.

The exact solvers are useful for testing, but are generally too slow for applications, and often do not increase the accuracy of solutions in any case.