van_leer_split Subroutine

private pure subroutine van_leer_split(q, flux, sign, gam)

van Leer flux vector splitting.

For subsonic flow |M| < 1 (M = u/c): ṁ± = ±ρc (M±1)² / 4 p± = p (1±M)² (2∓M) / 4 F± = ( ṁ±, ṁ± u + p±, ṁ± H ) For |M| ≥ 1 the supersonic limit applies: F+ = F (M>1), F- = 0 (M>1). See van Leer (1982), ICASE Report 82-30.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: q(:)
real(kind=wp), intent(out) :: flux(:)
integer, intent(in) :: sign

+1 for F^+, -1 for F^-

real(kind=wp), intent(in) :: gam

Ratio of specific heats