get_flux Subroutine

private subroutine get_flux(u, xC, flux_dim, flux)

Arguments

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

Called by

proc~~get_flux~4~~CalledByGraph proc~get_flux~4 get_flux proc~riemann_hll_prim~4 riemann_hll_prim proc~riemann_hll_prim~4->proc~get_flux~4 proc~riemann_hllc_prim~4 riemann_hllc_prim proc~riemann_hllc_prim~4->proc~get_flux~4 proc~riemann_llf_prim~4 riemann_llf_prim proc~riemann_llf_prim~4->proc~get_flux~4 proc~reconflux_muscl_hll_prim~4 reconflux_muscl_hll_prim proc~reconflux_muscl_hll_prim~4->proc~riemann_hll_prim~4 proc~reconflux_muscl_hllc_prim~4 reconflux_muscl_hllc_prim proc~reconflux_muscl_hllc_prim~4->proc~riemann_hllc_prim~4 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_hllc~4 finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc~4->proc~reconflux_muscl_hllc_prim~4 proc~finite_volume_local_muscl_hll~4 finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll~4->proc~reconflux_muscl_hll_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_hllc~4 proc~finite_volume_local~4->proc~finite_volume_local_muscl_hll~4 proc~finite_volume_local~4->proc~finite_volume_local_muscl_llf~4

Source Code

subroutine get_flux(u, xC, flux_dim, flux)
  

  real(dp), intent(in)  :: u(nw_phys)
  real(dp), intent(in)  :: xC(1:ndim)
  integer, intent(in)   :: flux_dim
  real(dp), intent(out) :: flux(nw_flux)
  real(dp)              :: mag

  mag = u(iw_b1-1+flux_dim)

  ! Density flux
  flux(iw_rho) = u(iw_rho) * u(iw_mom(1)) * mag

  ! Momentum flux with pressure term
  flux(iw_mom(1)) = (u(iw_rho)*u(iw_mom(1))**2 + u(iw_e)) * mag
  
  ! Energy flux with hyperbolic conduction included
  flux(iw_e) = u(iw_mom(1))*(u(iw_e)*inv_gamma_1 + &
               0.5_dp*u(iw_rho)*u(iw_mom(1))**2 + u(iw_e)) * mag + &
  u(iw_q)*mag

  flux(iw_q) = 0.0_dp

end subroutine get_flux