Riemann solver

From HandWiki
Revision as of 21:49, 6 February 2024 by John Stpola (talk | contribs) (fix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Numerical method used to solve a Riemann problem

A Riemann solver is a numerical method used to solve a Riemann problem. They are heavily used in computational fluid dynamics and computational magnetohydrodynamics.

Definition

Generally speaking, Riemann solvers are specific methods for computing the numerical flux across a discontinuity in the Riemann problem.[1] They form an important part of high-resolution schemes; typically the right and left states for the Riemann problem are calculated using some form of nonlinear reconstruction, such as a flux limiter or a WENO method, and then used as the input for the Riemann solver.[2]

Exact solvers

Sergei K. Godunov is credited with introducing the first exact Riemann solver for the Euler equations,[3] by extending the previous CIR (Courant-Isaacson-Rees) method to non-linear systems of hyperbolic conservation laws. Modern solvers are able to simulate relativistic effects and magnetic fields.

More recent research shows that an exact series solution to the Riemann problem exists, which may converge fast enough in some cases to avoid the iterative methods required in Godunov's scheme.[4]

Approximate solvers

As iterative solutions are too costly, especially in magnetohydrodynamics, some approximations have to be made. Some popular solvers are:

Roe solver

Main page: Roe solver

Philip L. Roe used the linearisation of the Jacobian, which he then solves exactly.[5]

HLLE solver

The HLLE solver (developed by Ami Harten, Peter Lax, Bram van Leer and Einfeldt) is an approximate solution to the Riemann problem, which is only based on the integral form of the conservation laws and the largest and smallest signal velocities at the interface.[6][7] The stability and robustness of the HLLE solver is closely related to the signal velocities and a single central average state, as proposed by Einfeldt in the original paper

HLLC solver

The HLLC (Harten-Lax-van Leer-Contact) solver was introduced by Toro.[8] It restores the missing rarefaction wave by using an estimation technique, such as linearisation. More advanced techniques exist, like using the Roe average velocity for the middle wave speed. These schemes are quite robust and efficient but somewhat more diffusive.[9]

Rotated-hybrid Riemann solvers

These solvers were introduced by Hiroaki Nishikawa and Kitamura,[10] in order to overcome the carbuncle problems of the Roe solver and the excessive diffusion of the HLLE solver at the same time. They developed robust and accurate Riemann solvers by combining the Roe solver and the HLLE/Rusanov solvers: they show that being applied in two orthogonal directions the two Riemann solvers can be combined into a single Roe-type solver (the Roe solver with modified wave speeds). In particular, the one derived from the Roe and HLLE solvers, called Rotated-RHLL solver, is extremely robust (carbuncle-free for all possible test cases on both structured and unstructured grids) and accurate (as accurate as the Roe solver for the boundary layer calculation).

Other solvers

There are a variety of other solvers available, including more variants of the HLL scheme[11] and solvers based on flux-splitting via characteristic decomposition.[12]

Notes

  1. LeVeque, Randall J., 1955- (1992). Numerical methods for conservation laws (2nd ed.). Basel: Birkhäuser Verlag. ISBN 3-7643-2723-5. OCLC 25281500. 
  2. Toro, E. F. (2006). Riemann solvers and numerical methods for fluid dynamics : a practical introduction (3rd [rev.] ed.). Berlin: Springer. ISBN 978-3-540-49834-6. OCLC 405546150. 
  3. Godunov, S. K. (1959), "A difference scheme for numerical computation of discontinuous solution of hyperbolic equation", Mat. Sbornik 47: 271–306 
  4. Wu, Y.Y.; Cheung, K.F. (2008), "Explicit solution to the exact Riemann problem and application in nonlinear shallow-water equations", Int. J. Numer. Methods Fluids 57 (11): 1649–1668, doi:10.1002/fld.1696, Bibcode2008IJNMF..57.1649W 
  5. Roe, P. L. (1981), "Approximate Riemann solvers, parameter vectors and difference schemes", J. Comput. Phys. 43 (2): 357–372, doi:10.1016/0021-9991(81)90128-5, Bibcode1981JCoPh..43..357R 
  6. Harten, Amiram; Lax, Peter D.; Van Leer, Bram (1983). "On Upstream Differencing and Godunov-Type Schemes for Hyperbolic Conservation Laws". SIAM Review 25 (1): 35–61. doi:10.1137/1025002. ISSN 0036-1445. 
  7. Einfeldt, B. (1988), "On Godunov-type methods for gas dynamics", SIAM J. Numer. Anal. 25 (2): 294–318, doi:10.1137/0725021, Bibcode1988SJNA...25..294E 
  8. Toro, E. F.; Spruce, M.; Speares, W. (1994), "Restoration of the contact surface in the HLL-Riemann solver", Shock Waves 4 (1): 25–34, doi:10.1007/BF01414629, Bibcode1994ShWav...4...25T 
  9. Quirk, J. J. (1994), "A contribution to the great Riemann solver debate", Int. J. Numer. Methods Fluids 18 (6): 555–574, doi:10.1002/fld.1650180603, Bibcode1994IJNMF..18..555Q. 
  10. Nishikawa, H.; Kitamura, K. (2008), "Very simple, carbuncle-free, boundary-layer-resolving, rotated-hybrid Riemann solvers", J. Comput. Phys. 227 (4): 2560–2581, doi:10.1016/j.jcp.2007.11.003, Bibcode2008JCoPh.227.2560N 
  11. Miyoshi, Takahiro; Kusano, Kanya (September 2005). "A multi-state HLL approximate Riemann solver for ideal magnetohydrodynamics" (in en). Journal of Computational Physics 208 (1): 315–344. doi:10.1016/j.jcp.2005.02.017. Bibcode2005JCoPh.208..315M. 
  12. Donat, R.; Font, J.A.; Ibáñez, J.Ma; Marquina, A. (October 1998). "A Flux-Split Algorithm Applied to Relativistic Flows" (in en). Journal of Computational Physics 146 (1): 58–81. doi:10.1006/jcph.1998.5955. Bibcode1998JCoPh.146...58D. 

See also

References

  • Toro, Eleuterio F. (1999), Riemann Solvers and Numerical Methods for Fluid Dynamics, Berlin: Springer Verlag, ISBN 978-3-540-65966-2 

External links