Compute waves speed u23 algorithm.
Use Primitive Variables Linearization algorithm by means of only up23 approximation.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(riemann_pattern_compressible_pvl), | intent(inout) | :: | self | Riemann (states) pattern solution. |
pure subroutine compute_waves_up23(self)
!< Compute waves speed `u23` algorithm.
!<
!< Use Primitive Variables Linearization algorithm by means of only `up23` approximation.
class(riemann_pattern_compressible_pvl), intent(inout) :: self !< Riemann (states) pattern solution.
call self%compute_up23
! compute left state
if (self%u23 < self%u_1) then ! shock
self%s_1 = self%u_1 - self%a_1 * sqrt(1._R8P + 0.5_R8P * (self%eos_1%g() + 1._R8P) / &
self%eos_1%g() * (self%p23 / self%p_1 - 1._R8P))
else ! rarefaction
self%s_1 = self%u_1 - self%a_1
endif
! compute right state
if (self%u23 > self%u_4) then ! shock
self%s_4 = self%u_4 + self%a_4 * sqrt(1._R8P + 0.5_R8P * (self%eos_4%g() + 1._R8P) / &
self%eos_4%g() * (self%p23 / self%p_4 - 1._R8P))
else ! rarefaction
self%s_4 = self%u_4 + self%a_4
endif
endsubroutine compute_waves_up23