riemann_llf_prim Subroutine

private subroutine riemann_llf_prim(uL, uR, xC, flux_dim, F, phi)

One-face LLF/Rusanov numerical flux from primitive L/R states. phi(nw_flux) is the adaptive-diffusion reduction factor; only present when FLUX_AD is defined.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: uL(nw_phys)
real(kind=dp), intent(inout) :: uR(nw_phys)
real(kind=dp), intent(in) :: xC(ndim)
integer, intent(in) :: flux_dim
real(kind=dp), intent(out) :: F(nw_flux)
real(kind=dp), intent(in) :: phi(nw_flux)

Calls

proc~~riemann_llf_prim~4~~CallsGraph proc~riemann_llf_prim~4 riemann_llf_prim proc~get_cmax~7 get_cmax proc~riemann_llf_prim~4->proc~get_cmax~7 proc~get_flux~4 get_flux proc~riemann_llf_prim~4->proc~get_flux~4 proc~to_conservative~8 to_conservative proc~riemann_llf_prim~4->proc~to_conservative~8

Called by

proc~~riemann_llf_prim~4~~CalledByGraph proc~riemann_llf_prim~4 riemann_llf_prim proc~reconflux_muscl_llf_prim~4 reconflux_muscl_llf_prim proc~reconflux_muscl_llf_prim~4->proc~riemann_llf_prim~4 proc~finite_volume_local_muscl_llf~4 finite_volume_local_muscl_llf proc~finite_volume_local_muscl_llf~4->proc~reconflux_muscl_llf_prim~4 proc~finite_volume_local~4 finite_volume_local proc~finite_volume_local~4->proc~finite_volume_local_muscl_llf~4

Source Code

  subroutine riemann_llf_prim(uL, uR, xC, flux_dim, F, phi)
    
    real(dp), intent(inout) :: uL(nw_phys), uR(nw_phys)
    real(dp), intent(in)    :: xC(ndim)
    integer,  intent(in)    :: flux_dim
    real(dp), intent(out)   :: F(nw_flux)
    real(dp), intent(in)    :: phi(nw_flux)

    real(dp) :: flux_l(nw_flux), flux_r(nw_flux)
    real(dp) :: wL, wR, wmax

    call get_flux(uL, xC, flux_dim, flux_l)
    call get_flux(uR, xC, flux_dim, flux_r)

    wL   = get_cmax(uL, xC, flux_dim)
    wR   = get_cmax(uR, xC, flux_dim)
    wmax = max(abs(wL), abs(wR))

    call to_conservative(uL)
    call to_conservative(uR)

    F = 0.5_dp * ((flux_l + flux_r) - wmax * (uR(1:nw_flux) - uL(1:nw_flux)) * phi)
  end subroutine riemann_llf_prim