hll_flux Subroutine

private pure subroutine hll_flux(q_L, q_R, flux, gam)

HLL approximate Riemann solver.

Uses Einfeldt (HLLE) wave-speed estimates based on the minimum/maximum of Davis and Roe-averaged wave speeds, providing robust positivity preservation.

Wave speeds: S_L = min(u_L - c_L, ũ - c̃), S_R = max(u_R + c_R, ũ + c̃)

Numerical flux: F_HLL = F_L if S_L ≥ 0 F_HLL = F_R if S_R ≤ 0 F_HLL = (S_R F_L - S_L F_R + S_L S_R (Q_R - Q_L)) / (S_R - S_L) otherwise

See Harten, Lax & van Leer (1983), SIAM Rev. 25, 35–61. See Einfeldt (1988), SIAM J. Numer. Anal. 25, 294–318.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: q_L(:)
real(kind=wp), intent(in) :: q_R(:)
real(kind=wp), intent(out) :: flux(:)
real(kind=wp), intent(in) :: gam

Ratio of specific heats