撰写abaqus用户子程序umat
简单说明
ABAQUS/Standard允许用户自己定义材料的属性,也就是用户子程序umat。
ABAQUS inp文件中的umat接口
** MATERIALS
**
*Material, name=ISOPLAS
*Density
8.96e-09,
*Depvar
151,
*User Material, constants=3
1., 4, 0.5
这里设置一个名称为“ISOPLAS”的材料属性。
密度选择为“8.96e-09”。
Depvar设置的是151个状态变量(SDVs),在umat计算完成后会输出这些变量的数量。
“*User Material, constants=3”指的是umat可以直接调用的常量,用“props(序号)”。案例中:props(1)=1.,props(2)=4.,props(3)=0.5
umat 书写
起始
subroutine umat(stress,statev,ddsdde,
& sse,spd,scd,rpl,
& ddsddt,drplde,drpldt,
& stran,dstran,
& time,dtime,
& temp,dtemp,
& predef,dpred,
& cmname,
& ndi,nshr,ntens,nstatv,
& props,nprops,coords,drot,
& pnewdt,
& celent,
& dfgrd0,dfgrd1,
& noel,npt,layer,kspt,kstep,kinc)
这里给出每个物理量代表的含义:
character*80 :: cmname !自定义材料的名称
integer :: ndi !number of stress components
integer :: nshr !number of engineering shear stress components
integer :: ntens !size of the stress array (ndi + nshr)
integer :: nstatv !number state variables
integer :: nprops !number of material constants
integer :: layer !layer number
integer :: kspt !section point number within the current layer
integer :: kstep !step number
integer :: noel !element number
integer :: npt !integration point number
integer :: kinc !increment number
real(8) :: drpldt !jacobian drpl_dt
real(8) :: dtime !time increment dt
real(8) :: temp !temperature at t0
real(8) :: dtemp !increment of temperature.
real(8) :: celent !characteristic element length
real(8) :: sse !specific elastic strain energy
real(8) :: spd !specific plastic dissipation
real(8) :: scd !specific creep dissipation
real(8) :: rpl !volumetric heat generation per unit time
real(8) :: pnewdt !dt_next/dt_now
real(8) :: ddsdde(ntens,ntens) !jacobian ds_de
real(8) :: statev(nstatv) !state variables
real(8) :: props (nprops) !material constants
real(8) :: ddsddt(ntens) !jacobian ds_dt
real(8) :: drplde(ntens) !jacobian drpl_de
real(8) :: stress(ntens) !stress tensor
real(8) :: stran (ntens) !strains at t0
real(8) :: dstran(ntens) !strain increments
real(8) :: dfgrd0(3,3) !deformation gradient at t0
real(8) :: dfgrd1(3,3) !deformation gradient at t0+dt
real(8) :: drot(3,3) !rotation increment matrix
real(8) :: coords(3) !coordinates of this point
real(8) :: time (2) !1:step time; 2:total time, At t0
real(8) :: predef(1) !predefined field variables at t0
real(8) :: dpred (1) !incr of predefined field vrbs
这些物理量的初始值,会在umat计算开始通过abaqus传入。
umat计算完成后,这些物理量的数值重新返回到abaqus。
总结
具体的umat书写,包括各个定理的计算等,相对比较复杂,待后续更新。