estimate_speeds_minmax Subroutine

private subroutine estimate_speeds_minmax(uL, uR, xC, flux_dim, wL, wR)

Wave speed estimates: min/max acoustic bounds (Davis 1988) Reference: Toro 2010, Chapter 10.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: uL(nw_phys)
real(kind=dp), intent(in) :: uR(nw_phys)
real(kind=dp), intent(in) :: xC(ndim)
integer, intent(in) :: flux_dim
real(kind=dp), intent(out) :: wL
real(kind=dp), intent(out) :: wR

Called by

proc~~estimate_speeds_minmax~2~~CalledByGraph proc~estimate_speeds_minmax~2 estimate_speeds_minmax proc~riemann_hll_prim~2 riemann_hll_prim proc~riemann_hll_prim~2->proc~estimate_speeds_minmax~2 proc~reconflux_muscl_hll_prim~2 reconflux_muscl_hll_prim proc~reconflux_muscl_hll_prim~2->proc~riemann_hll_prim~2 proc~finite_volume_local_muscl_hll~2 finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll~2->proc~reconflux_muscl_hll_prim~2 proc~finite_volume_local~2 finite_volume_local proc~finite_volume_local~2->proc~finite_volume_local_muscl_hll~2

Source Code

subroutine estimate_speeds_minmax(uL, uR, xC, flux_dim, wL, wR)
  
  real(dp), intent(in)  :: uL(nw_phys), uR(nw_phys)
  real(dp), intent(in)  :: xC(ndim)
  integer, intent(in)   :: flux_dim
  real(dp), intent(out) :: wL, wR

  real(dp)              :: cL, cR

  cL = sqrt(hd_gamma * uL(iw_e) / uL(iw_rho))
  cR = sqrt(hd_gamma * uR(iw_e) / uR(iw_rho))

  wL = min(uL(iw_mom(flux_dim)) - cL, uR(iw_mom(flux_dim)) - cR)
  wR = max(uL(iw_mom(flux_dim)) + cL, uR(iw_mom(flux_dim)) + cR)

end subroutine estimate_speeds_minmax