!> 固体力学状态方程 module spx_solid_EoS use spx_kinds, only: rk implicit none private public :: p_solid_le, p_solid_vonMises, p_solid_tait contains !> 固体力学线性弹性模型 pure subroutine p_solid_le(drho, k, p) real(rk), intent(in) :: drho, k real(rk), intent(out) :: p p = k*drho end subroutine p_solid_le !> 固体力学 von Mises 模型 pure subroutine p_solid_vonMises(divrho, k, n, p) real(rk), intent(in) :: divrho, k, n real(rk), intent(out) :: p p = k*(divrho**n - 1.0_rk) end subroutine p_solid_vonMises !> 固体力学 Tait 方程 pure subroutine p_solid_tait(divrho, b, n, p) real(rk), intent(in) :: divrho, b, n real(rk), intent(out) :: p p = b*(divrho**n - 1.0_rk) end subroutine p_solid_tait end module spx_solid_EoS