FuncPressure_eos Subroutine

public pure subroutine FuncPressure_eos(xicurrent, lfac, d, dlfacdxi, p, dpdxi)

pointwise evaluations used in con2prim compute pointwise value for pressure p and dpdxi

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: xicurrent
double precision, intent(in) :: lfac
double precision, intent(in) :: d
double precision, intent(in) :: dlfacdxi
double precision, intent(out) :: p
double precision, intent(out) :: dpdxi

Called by

proc~~funcpressure_eos~~CalledByGraph proc~funcpressure_eos FuncPressure_eos proc~con2prim_eos con2prim_eos proc~con2prim_eos->proc~funcpressure_eos proc~to_primitive to_primitive proc~to_primitive->proc~con2prim_eos proc~to_primitive~10 to_primitive proc~to_primitive~10->proc~con2prim_eos proc~to_primitive~4 to_primitive proc~to_primitive~4->proc~con2prim_eos proc~to_primitive~9 to_primitive proc~to_primitive~9->proc~con2prim_eos proc~add_split_source~4 add_split_source proc~add_split_source~4->proc~to_primitive~10 proc~finite_volume_local_muscl_hll finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll->proc~to_primitive~9 proc~finite_volume_local_muscl_hllc finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc->proc~to_primitive~9 proc~finite_volume_local_muscl_llf finite_volume_local_muscl_llf proc~finite_volume_local_muscl_llf->proc~to_primitive~9 proc~phys_to_primitive phys_to_primitive proc~phys_to_primitive->proc~to_primitive~4 proc~setdt setdt proc~setdt->proc~to_primitive 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

  pure subroutine FuncPressure_eos(xicurrent,lfac,d,dlfacdxi,p,dpdxi)
    
    double precision, intent(in)         :: xicurrent,lfac,d,dlfacdxi
    double precision, intent(out)        :: p,dpdxi
    ! .. local ..
    double precision                     :: rho,h,E,dhdxi,rhotoE
    double precision                     :: dpdchi,dEdxi

    ! rhoh here called h
    h=xicurrent/(lfac**2)
    rho=d/lfac
    E = (h+dsqrt(h**2+(phys_gamma**2-one)*rho**2)) &
              /(phys_gamma+one)
    ! output pressure
    rhotoE = rho/E
    p = half*(phys_gamma-1.0d0)*(E-rho*rhotoE)

    dhdxi = one/(lfac**2)-2.0d0*xicurrent/(lfac**2)*dlfacdxi/lfac

    dEdxi=(dhdxi+(h*dhdxi-(phys_gamma**2-one)*rho**2*dlfacdxi/lfac)&
        /dsqrt(h**2+(phys_gamma**2-one)*rho**2))&
        /(phys_gamma+one)

    ! output pressure derivative to xi
    dpdxi=half*(phys_gamma-1.0d0)*(2.0d0*rho*rhotoE*dlfacdxi/lfac+&
          (one+rhotoE**2)*dEdxi)

  end subroutine FuncPressure_eos