reconflux_muscl_hllc_prim Subroutine

private subroutine reconflux_muscl_hllc_prim(u, xlocC, flux_dim, flux, typelim)

MUSCL (primitive-variable) reconstruction with slope limiter; HLLC approximate Riemann flux at faces. Restores the contact wave (and shear in Euler/HD), typically sharper than HLL for similar cost.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: u(nw_phys,5)
real(kind=dp), intent(in) :: xlocC(1:ndim,2)
integer, intent(in) :: flux_dim
real(kind=dp), intent(out) :: flux(nw_flux,2)
integer, intent(in) :: typelim

Calls

proc~~reconflux_muscl_hllc_prim~2~~CallsGraph proc~reconflux_muscl_hllc_prim~2 reconflux_muscl_hllc_prim proc~muscl_reconstruct_prim~2 muscl_reconstruct_prim proc~reconflux_muscl_hllc_prim~2->proc~muscl_reconstruct_prim~2 proc~riemann_hllc_prim~2 riemann_hllc_prim proc~reconflux_muscl_hllc_prim~2->proc~riemann_hllc_prim~2 proc~fix_prim_state~2 fix_prim_state proc~muscl_reconstruct_prim~2->proc~fix_prim_state~2 proc~koren~2 koren proc~muscl_reconstruct_prim~2->proc~koren~2 proc~mcbeta~2 mcbeta proc~muscl_reconstruct_prim~2->proc~mcbeta~2 proc~minmod~2 minmod proc~muscl_reconstruct_prim~2->proc~minmod~2 proc~vanleer~2 vanleer proc~muscl_reconstruct_prim~2->proc~vanleer~2 proc~estimate_speeds_toro_pvrs~2 estimate_speeds_toro_pvrs proc~riemann_hllc_prim~2->proc~estimate_speeds_toro_pvrs~2 proc~get_flux~2 get_flux proc~riemann_hllc_prim~2->proc~get_flux~2 proc~to_conservative~6 to_conservative proc~riemann_hllc_prim~2->proc~to_conservative~6 tracer tracer proc~get_flux~2->tracer

Called by

proc~~reconflux_muscl_hllc_prim~2~~CalledByGraph proc~reconflux_muscl_hllc_prim~2 reconflux_muscl_hllc_prim proc~finite_volume_local_muscl_hllc~2 finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc~2->proc~reconflux_muscl_hllc_prim~2 proc~finite_volume_local~2 finite_volume_local proc~finite_volume_local~2->proc~finite_volume_local_muscl_hllc~2

Source Code

  subroutine reconflux_muscl_hllc_prim(u, xlocC, flux_dim, flux, typelim)
    
    real(dp), intent(in)  :: u(nw_phys, 5)
    real(dp), intent(in)  :: xlocC(1:ndim, 2)
    integer, intent(in)   :: flux_dim, typelim
    real(dp), intent(out) :: flux(nw_flux, 2)

    real(dp) :: uL(nw_phys,2), uR(nw_phys,2)
    integer  :: iface

    call muscl_reconstruct_prim(u, typelim, uL, uR)
    do iface=1,2
      call riemann_hllc_prim(uL(:,iface), uR(:,iface), xlocC(:,iface), flux_dim, flux(:,iface))
    end do
  end subroutine reconflux_muscl_hllc_prim