steger_warming_split Subroutine

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

Steger-Warming flux vector splitting.

F^{±} = rho/(2*gamma) * A^{±}, where A^{±}₁ = 2(γ-1) λ₂± + λ₁± + λ₃± A^{±}₂ = 2(γ-1) u λ₂± + (u-c) λ₁± + (u+c) λ₃± A^{±}₃ = (γ-1) u² λ₂± + (H-uc) λ₁± + (H+uc) λ₃± and λᵢ± = (λᵢ ± |λᵢ|) / 2 are the split eigenvalues. See Steger & Warming (1981), J. Comput. Phys. 40, 263–293.

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