spx_solid_EoS.f90 Source File


Contents

Source Code


Source Code

!> 固体力学状态方程
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