get_flux Subroutine

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

Uses

  • proc~~get_flux~~UsesGraph proc~get_flux get_flux module~mod_global_parameters mod_global_parameters proc~get_flux->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

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)

Calls

proc~~get_flux~~CallsGraph proc~get_flux get_flux tracer tracer proc~get_flux->tracer

Called by

proc~~get_flux~~CalledByGraph proc~get_flux get_flux proc~riemann_hll_prim riemann_hll_prim proc~riemann_hll_prim->proc~get_flux proc~riemann_hllc_prim riemann_hllc_prim proc~riemann_hllc_prim->proc~get_flux proc~riemann_llf_prim riemann_llf_prim proc~riemann_llf_prim->proc~get_flux proc~reconflux_muscl_hll_prim reconflux_muscl_hll_prim proc~reconflux_muscl_hll_prim->proc~riemann_hll_prim proc~reconflux_muscl_hllc_prim reconflux_muscl_hllc_prim proc~reconflux_muscl_hllc_prim->proc~riemann_hllc_prim proc~reconflux_muscl_llf_prim reconflux_muscl_llf_prim proc~reconflux_muscl_llf_prim->proc~riemann_llf_prim proc~finite_volume_local_muscl_hll finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll->proc~reconflux_muscl_hll_prim proc~finite_volume_local_muscl_hllc finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc->proc~reconflux_muscl_hllc_prim proc~finite_volume_local_muscl_llf finite_volume_local_muscl_llf proc~finite_volume_local_muscl_llf->proc~reconflux_muscl_llf_prim proc~finite_volume_local finite_volume_local proc~finite_volume_local->proc~finite_volume_local_muscl_hll proc~finite_volume_local->proc~finite_volume_local_muscl_hllc proc~finite_volume_local->proc~finite_volume_local_muscl_llf

Source Code

  subroutine get_flux(u, xC, flux_dim, flux)
    use mod_global_parameters, only:cmax_global
    
    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) :: pth,vel(1:ndim)

    pth    = u(iw_e)
    vel(1) = u(iw_mom(1)) / u(lfac_)
    vel(2) = u(iw_mom(2)) / u(lfac_)
    vel(3) = u(iw_mom(3)) / u(lfac_)

    ! Density flux
    flux(iw_rho) = u(iw_rho) * u(lfac_) * vel(flux_dim)

    ! Momentum flux with pressure term
    flux(iw_mom(1))        = u(xi_) * vel(1) * vel(flux_dim)
    flux(iw_mom(2))        = u(xi_) * vel(2) * vel(flux_dim)
    flux(iw_mom(3))        = u(xi_) * vel(3) * vel(flux_dim)
    flux(iw_mom(flux_dim)) = flux(iw_mom(flux_dim)) + pth

    ! Energy flux
    flux(iw_e) = vel(flux_dim) * ( u(xi_) - u(iw_rho) * u(lfac_) )

    ! Tracer flux. Note that tracers stay conservative.
      flux(tracer(1)) = u(tracer(1)) * vel(flux_dim)

  end subroutine get_flux