与用户定义材料相关的子程序 (umat.f)¶
提供用于一般材料变形分析的接口,不限于弹性、超弹性或弹塑性材料。
使用用户定义材料时,首先需要在输入文件中设置!USER_MATERIAL并输入所需材料常数,然后创建子程序uMatlMatrix和uUpdate。
(1) 计算刚度矩阵的子程序¶
subroutine uMatlMatrix( mname, matl, strain, stress, fstat, D, dtime, ttime, temperature )
character(len=*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(in) :: stress(6)
real(kind=kreal), intent(in) :: fstat(:)
real(kind=kreal), intent(out) :: D(:,:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: 材料名matl: 保存材料常数的数组(最多100个)strain: Green-Lagrange应变stress: 2nd Piola-Kirchhoff应力fstat: 状态变量D: 本构关系dtime: 时间增量ttime: 当前时间增量开始时刻的总时间temperature: 温度
(2) 更新应变和应力的计算子程序¶
subroutine uUpdate( mname, matl, strain, stress, fstat, dtime, ttime, temperature )
character(len=\*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(inout) :: stress(6)
real(kind=kreal), intent(inout) :: fstat(:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: 材料名matl: 保存材料常数的数组(最多100个)strain: 应变stress: 2nd Piola-Kirchhoff应力fstat: 状态变量dtime: 时间增量ttime: 当前时间增量开始时刻的总时间temperature: 温度