jacobian_channel_Req_rem Subroutine

public subroutine jacobian_channel_Req_rem(i, Prim, Jacob)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
real(kind=dp), intent(in), dimension(:,:) :: Prim
real(kind=dp), intent(inout), dimension(:,:,:) :: Jacob

Calls

proc~~jacobian_channel_req_rem~~CallsGraph proc~jacobian_channel_req_rem jacobian_channel_Req_rem proc~jacobian_rot jacobian_roT proc~jacobian_channel_req_rem->proc~jacobian_rot proc~eos_terms eos_terms proc~jacobian_rot->proc~eos_terms proc~eos_e_terms eos_e_terms proc~eos_terms->proc~eos_e_terms proc~fill_f_terms fill_f_terms proc~eos_terms->proc~fill_f_terms proc~fill_e_tpart fill_e_Tpart proc~eos_e_terms->proc~fill_e_tpart proc~fill_ff_terms fill_ff_terms proc~eos_e_terms->proc~fill_ff_terms proc~fill_g_dreg_terms fill_g_Dreg_terms proc~fill_e_tpart->proc~fill_g_dreg_terms

Called by

proc~~jacobian_channel_req_rem~~CalledByGraph proc~jacobian_channel_req_rem jacobian_channel_Req_rem proc~he_riemann_solver_channel He_Riemann_solver_channel proc~he_riemann_solver_channel->proc~jacobian_channel_req_rem proc~main_loop main_loop proc~main_loop->proc~he_riemann_solver_channel program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine jacobian_channel_Req_rem(i,Prim,Jacob)
    integer, intent(in) :: i
    real(dp), dimension(:,:), intent(in) :: Prim
    real(dp), dimension(:,:,:), intent(inout) :: Jacob

    real(dp), dimension(Nb_VarP) :: PPP
    real(dp) :: HH,kk,KKK,dPde,dPdT,dedT

    PPP(:)=Prim(:,i)
    HH=PPP(Pri_e)+0.5_dp*PPP(Pri_u)**2+PPP(Pri_p)/PPP(Pri_ro)
    call jacobian_roT(PPP(Pri_ro), PPP(Pri_T), dedT, dPdT)
    dPde=dPdT/dedT
    kk=dPde/PPP(Pri_ro) ! checked at room temperatures --> k+1=1.667==gamma
    KKK=PPP(Pri_c)**2+kk*(PPP(Pri_u)**2-HH)

    Jacob(1,1,i)=0.0_dp
    Jacob(2,1,i)=1.0_dp
    Jacob(3,1,i)=0.0_dp
    Jacob(4,1,i)=0.0_dp

    Jacob(1,2,i)=KKK-PPP(Pri_u)**2
    Jacob(2,2,i)=PPP(Pri_u)*(2.0_dp-kk)
    Jacob(3,2,i)=kk
    Jacob(4,2,i)=0.0_dp

    Jacob(1,3,i)=(KKK-HH)*PPP(Pri_u)
    Jacob(2,3,i)=HH-kk*PPP(Pri_u)**2
    Jacob(3,3,i)=PPP(Pri_u)*(1.0_dp+kk)
    Jacob(4,3,i)=0.0_dp
    
    Jacob(1,4,i)=0.0_dp
    Jacob(2,4,i)=0.0_dp
    Jacob(3,4,i)=0.0_dp
    Jacob(4,4,i)=0.0_dp
end subroutine jacobian_channel_Req_rem