eos_terms Subroutine

private elemental subroutine eos_terms(ro, T, ThAr)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: ro
real(kind=dp), intent(in) :: T
type(ThArrays_t), intent(out) :: ThAr

Calls

proc~~eos_terms~~CallsGraph proc~eos_terms 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~~eos_terms~~CalledByGraph proc~eos_terms eos_terms proc~dc2_rot dc2_roT proc~dc2_rot->proc~eos_terms proc~droeint_drop droeint_droP proc~droeint_drop->proc~eos_terms proc~jacobian_rot jacobian_roT proc~jacobian_rot->proc~eos_terms proc~circulator_dynamic_parameters_df circulator_dynamic_parameters_t%circulator_dynamic_parameters_df proc~circulator_dynamic_parameters_df->proc~jacobian_rot proc~derivative_function_of_pstar_pt derivative_function_of_pstar_PT proc~derivative_function_of_pstar_pt->proc~jacobian_rot proc~friction_source_term friction_source_term proc~friction_source_term->proc~jacobian_rot proc~he_prop he_prop proc~friction_source_term->proc~he_prop proc~state_roe state_roE proc~friction_source_term->proc~state_roe proc~state_roe_withr state_roE_withR proc~friction_source_term->proc~state_roe_withr proc~full_physics_definition_channel full_physics_definition_channel proc~full_physics_definition_channel->proc~dc2_rot proc~source_term_definition_channel source_term_definition_channel proc~full_physics_definition_channel->proc~source_term_definition_channel proc~he_prop->proc~jacobian_rot proc~hhh_derivatives HHH_derivatives proc~hhh_derivatives->proc~jacobian_rot proc~hug_brent_f hug_brent_t%hug_brent_f proc~hug_brent_f->proc~droeint_drop proc~hugoniot_star_state hugoniot_star_state proc~hugoniot_star_state->proc~droeint_drop proc~incoming_branch_cold_circulator incoming_branch_cold_circulator proc~incoming_branch_cold_circulator->proc~jacobian_rot proc~incoming_branch_cold_circulator->proc~hhh_derivatives proc~jacobian_star_req_rem jacobian_star_Req_rem proc~incoming_branch_cold_circulator->proc~jacobian_star_req_rem proc~state_rop state_roP proc~incoming_branch_cold_circulator->proc~state_rop proc~jacobian_channel_req_rem jacobian_channel_Req_rem proc~jacobian_channel_req_rem->proc~jacobian_rot proc~jacobian_star_req_rem->proc~jacobian_rot proc~jacobian_star_req_rem_loc jacobian_star_Req_rem_loc proc~jacobian_star_req_rem_loc->proc~jacobian_rot proc~jacobian_star_req_rem~2 jacobian_star_Req_rem proc~jacobian_star_req_rem~2->proc~jacobian_rot proc~junction_dynamic_parameters_fcn junction_dynamic_parameters_t%junction_dynamic_parameters_fcn proc~junction_dynamic_parameters_fcn->proc~droeint_drop proc~mdot_derivatives mdot_derivatives proc~mdot_derivatives->proc~jacobian_rot proc~outgoing_branch_cold_circulator outgoing_branch_cold_circulator proc~outgoing_branch_cold_circulator->proc~dc2_rot proc~outgoing_branch_cold_circulator->proc~jacobian_rot proc~outgoing_branch_cold_circulator->proc~circulator_dynamic_parameters_df proc~outgoing_branch_cold_circulator->proc~jacobian_star_req_rem proc~outgoing_branch_cold_circulator->proc~state_rop proc~circulator_dynamic_parameters_f circulator_dynamic_parameters_t%circulator_dynamic_parameters_f proc~outgoing_branch_cold_circulator->proc~circulator_dynamic_parameters_f proc~solve_boundary_mt solve_boundary_MT proc~solve_boundary_mt->proc~dc2_rot proc~solve_boundary_mt->proc~jacobian_rot proc~solve_boundary_mt->proc~jacobian_star_req_rem~2 proc~solve_boundary_mt->proc~state_rop proc~solve_boundary_pt solve_boundary_PT proc~solve_boundary_pt->proc~dc2_rot proc~solve_boundary_pt->proc~jacobian_rot proc~solve_boundary_pt->proc~derivative_function_of_pstar_pt proc~solve_boundary_pt->proc~hugoniot_star_state proc~solve_boundary_pt->proc~jacobian_star_req_rem~2 proc~solve_boundary_pt->proc~state_rop proc~state_rop_withr state_roP_withR proc~solve_boundary_pt->proc~state_rop_withr proc~state_rot state_roT proc~solve_boundary_pt->proc~state_rot proc~function_of_pstar_pt function_of_pstar_PT proc~solve_boundary_pt->proc~function_of_pstar_pt proc~solve_junction solve_junction proc~solve_junction->proc~droeint_drop proc~solve_junction->proc~jacobian_rot proc~solve_junction->proc~jacobian_star_req_rem_loc proc~solve_junction->proc~state_rop proc~sourceterms_notfriction_channel SourceTerms_NOTfriction_channel proc~sourceterms_notfriction_channel->proc~jacobian_rot proc~sourceterms_notfriction_channel->proc~he_prop proc~sourceterms_notfriction_channel->proc~state_roe proc~sourceterms_notfriction_channel->proc~state_roe_withr proc~state_roe->proc~jacobian_rot proc~state_roe_withr->proc~jacobian_rot proc~state_rop->proc~jacobian_rot proc~state_rop_withr->proc~jacobian_rot proc~state_rot->proc~jacobian_rot proc~boundary_resolution_from_and_to_ports boundary_resolution_from_and_to_ports proc~boundary_resolution_from_and_to_ports->proc~solve_boundary_mt proc~boundary_resolution_from_and_to_ports->proc~solve_boundary_pt proc~channel_init_part1 channel_init_part1 proc~channel_init_part1->proc~state_rot proc~circulator_dynamic_parameters_f->proc~state_rop proc~circulator_resolution_from_and_to_ports circulator_resolution_from_and_to_ports proc~circulator_resolution_from_and_to_ports->proc~incoming_branch_cold_circulator proc~circulator_resolution_from_and_to_ports->proc~mdot_derivatives proc~circulator_resolution_from_and_to_ports->proc~outgoing_branch_cold_circulator proc~ffsrclink_prelax_resolution_from_and_to_ports FFsrcLink_Prelax_resolution_from_and_to_ports proc~ffsrclink_prelax_resolution_from_and_to_ports->proc~he_prop proc~ffsrclink_prelax_resolution_from_and_to_ports->proc~state_rot proc~from_sol_to_prim_channel from_sol_to_prim_channel proc~from_sol_to_prim_channel->proc~state_roe proc~from_sol_to_prim_channel->proc~state_roe_withr proc~function_of_pstar_pt->proc~state_rop proc~he_riemann_solver_channel He_Riemann_solver_channel proc~he_riemann_solver_channel->proc~jacobian_channel_req_rem proc~junction_resolution_from_and_to_ports Junction_resolution_from_and_to_ports proc~junction_resolution_from_and_to_ports->proc~solve_junction proc~last_tasks_for_channels last_tasks_for_channels proc~last_tasks_for_channels->proc~state_rot proc~main_loop main_loop proc~main_loop->proc~friction_source_term proc~main_loop->proc~full_physics_definition_channel proc~main_loop->proc~boundary_resolution_from_and_to_ports proc~main_loop->proc~circulator_resolution_from_and_to_ports proc~main_loop->proc~ffsrclink_prelax_resolution_from_and_to_ports proc~main_loop->proc~from_sol_to_prim_channel proc~main_loop->proc~he_riemann_solver_channel proc~main_loop->proc~junction_resolution_from_and_to_ports proc~main_loop->proc~last_tasks_for_channels proc~main_loop->proc~source_term_definition_channel proc~source_term_definition_channel->proc~sourceterms_notfriction_channel program~reims_p reims_p program~reims_p->proc~channel_init_part1 program~reims_p->proc~main_loop

Source Code

elemental subroutine eos_terms(ro, T, ThAr)
    real(dp), intent(in)  :: ro,T
    type(ThArrays_t), intent(out) :: ThAr
    real(dp) :: Der3g(14)

    ThAr%Derf(1) =2.0_dp*ro
    ThAr%Derf(2) =3.0_dp*(ro**2)
    ThAr%Derf(3) =4.0_dp*(ro**3)
    ThAr%Derf(4) =5.0_dp*(ro**4)
    ThAr%Derf(5) =6.0_dp*(ro**5)
    ThAr%Derf(6) =7.0_dp*(ro**6)
    ThAr%Derf(7) =8.0_dp*(ro**7)
    ThAr%Derf(8) =9.0_dp*(ro**8)
    ThAr%Derf(9) =exp(-tau*(ro**2))*( 3.0_dp*(ro**2 )-2.0_dp*tau*(ro**4 ))
    ThAr%Derf(10)=exp(-tau*(ro**2))*( 5.0_dp*(ro**4 )-2.0_dp*tau*(ro**6 ))
    ThAr%Derf(11)=exp(-tau*(ro**2))*( 7.0_dp*(ro**6 )-2.0_dp*tau*(ro**8 ))
    ThAr%Derf(12)=exp(-tau*(ro**2))*( 9.0_dp*(ro**8 )-2.0_dp*tau*(ro**10))
    ThAr%Derf(13)=exp(-tau*(ro**2))*(11.0_dp*(ro**10)-2.0_dp*tau*(ro**12))
    ThAr%Derf(14)=exp(-tau*(ro**2))*(13.0_dp*(ro**12)-2.0_dp*tau*(ro**14))

    ThAr%Der2f(1) =2.0_dp
    ThAr%Der2f(2) =3.0_dp*(2.0_dp*ro)
    ThAr%Der2f(3) =4.0_dp*(3.0_dp*ro**2)
    ThAr%Der2f(4) =5.0_dp*(4.0_dp*ro**3)
    ThAr%Der2f(5) =6.0_dp*(5.0_dp*ro**4)
    ThAr%Der2f(6) =7.0_dp*(6.0_dp*ro**5)
    ThAr%Der2f(7) =8.0_dp*(7.0_dp*ro**6)
    ThAr%Der2f(8) =9.0_dp*(8.0_dp*ro**7)
    ThAr%Der2f(9) =2.0_dp*ro      *exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)- 7.0_dp*tau*(ro**2)+ 3.0_dp)
    ThAr%Der2f(10)=2.0_dp*(ro**3 )*exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)-11.0_dp*tau*(ro**2)+10.0_dp)
    ThAr%Der2f(11)=2.0_dp*(ro**5 )*exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)-15.0_dp*tau*(ro**2)+21.0_dp)
    ThAr%Der2f(12)=2.0_dp*(ro**7 )*exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)-19.0_dp*tau*(ro**2)+36.0_dp)
    ThAr%Der2f(13)=2.0_dp*(ro**9 )*exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)-23.0_dp*tau*(ro**2)+55.0_dp)
    ThAr%Der2f(14)=2.0_dp*(ro**11)*exp(-tau*(ro**2))*(2.0_dp*(tau**2)*(ro**4)-27.0_dp*tau*(ro**2)+78.0_dp)

    Der3g(1) = (3.0_dp*(nn(2)*(T**(5.0_dp/2.0_dp))-16.0_dp*nn(4)*T-64.0_dp*nn(5)))/(8.0_dp*(T**5))
    Der3g(2) = -6.0_dp*nn( 8)/(T**4) -24.0_dp*nn(9)/(T**5)
    Der3g(3) = -6.0_dp*nn(12)/(T**4)
    Der3g(4) =  0.0_dp
    Der3g(5) = -6.0_dp*nn(14)/(T**4) -24.0_dp*nn(15)/(T**5)
    Der3g(6) = -6.0_dp*nn(16)/(T**4)
    Der3g(7) = -6.0_dp*nn(17)/(T**4) -24.0_dp*nn(18)/(T**5)
    Der3g(8) =-24.0_dp*nn(19)/(T**5)
    Der3g(9) =-24.0_dp*nn(20)/(T**5) -60.0_dp*nn(21)/(T**6)
    Der3g(10)=-24.0_dp*nn(22)/(T**5)-120.0_dp*nn(23)/(T**7)
    Der3g(11)=-24.0_dp*nn(24)/(T**5) -60.0_dp*nn(25)/(T**6)
    Der3g(12)=-24.0_dp*nn(26)/(T**5)-120.0_dp*nn(27)/(T**7)
    Der3g(13)=-24.0_dp*nn(28)/(T**5) -60.0_dp*nn(29)/(T**6)
    Der3g(14)=-24.0_dp*nn(30)/(T**5) -60.0_dp*nn(31)/(T**6)-120.0_dp*nn(32)/(T**7)

    call fill_f_terms(ro, ThAr)
    call eos_e_terms(ro, T, ThAr)
    ThAr%Derhh = ThAr%ff + ThAr%f/ro
    ThAr%Der2gg = -ThAr%Der2g - T*Der3g
end subroutine eos_terms