有限元软件 ABAQUS 支持用户自定义材料模型,相应的自定义模型程序称为用户材料子程序(User-Material Subroutine,简称 UMAT)。通过此方法可以开发各类非线性本构关系并应用于工程结构的有限元分析中。
ABAQUS 中 UMAT 应具备以下的特点:
基于 ABAQUS 的规则,UMAT 子程序需要有以下声明要求:
SUBROUTINEUMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1RPL,DDSDDT,DRPLDE,DRPLDT, 2STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, 3NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, 4CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV), 1DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1), 3PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3), 4JSTEP(4) 必须定义的变量 DDSDDE, STRESS, STATEV 可以定义的变量(但是针对基于能量相关的本构模型,必须定义)SSE, SPD, SCD RETURN END
必须定义的变量:
该数组也就是雅可比矩阵。例如 DDSDDE(I,J) 表示第 I 个应力分量在时间增量步结束时由第 J 个应变分量的小扰动引起的变化。NTENS 表示应力分量的个数。需要说明的是 ABAQUS 的默认求解设置只采用 DDSDDE 矩阵的对称部分进行求解。对于非对称的雅可比矩阵需要进行非对称求解设置。除此之外,雅可比矩阵,即一致性切线刚度矩阵,能够保证整体牛顿迭代的快速收敛性,但是具有较小误差的一致性切线刚度矩阵只影响收敛的速度,并不影响结果的正确性。
该数组表示应力张量分量,在增量步开始时由 ABAQUS 传递给 UMAT,并在增量步结束时必须进行更新。需要注意的是,在有限应变变形的问题中,在调用 UMAT 之前,考虑到刚体转动需要进行应力张量旋转,因而在 UMAT 中只需要实现应力积分的共旋部分,使用的应力是柯西(Cauchy) 应力。
STATEV(NTENS)
该数组表示与解相关的状态变量,可以理解为需要传递的中间变量。在增量步开始时具有 ABAQUS 传递的初值,在增量步结束时必须进行更新。该数组的变量个数由用户根据本构方程中涉及的具体变量数目进行自定义。
此三个变量分别表示比弹性应变能、塑性耗散和蠕变耗散,同样也需要在增量步结束时完成更新。对于非能量形式的解则不受影响。
信息传递变量:
变量名称 | 含义 |
STRAN(NTENS) | 增量步开始的总应变 |
DSTRAN(NTENS) | 应变增量 |
TIME(1) | 当前增量步开始时的步进时间 |
TIME(2) | 总时间 |
DTIME | 时间增量 |
TEMP | 增量步开始时的温度 |
DTEMP | 温度增量 |
PREDEF | 预定义场变量的内插值数组 |
DPRED | 预定义场变量增量数组 |
CMNAME | 用户材料模型名称 |
NDI | 积分点正应力分量数组 |
NSHR | 积分点工程剪切应变分量数组 |
NTENS | 应力或应变数组的数目 =NDI+NSHR |
NSTATV | 状态变量数目 |
PROPS | 用户定义的材料常数数组 |
NPROPS | 用户定义材料参数的数目 |
COORDS | 积分点坐标系数值 |
DROT(3,3) | 旋转增量矩阵 |
CELENT | 特征单元长度 |
DFGRD0(3,3) | 增量步开始时的变形梯度 |
DFGRD1(3,3) | 增量步结束时的变形梯度 |
NOEL | 单元号 |
NPT | 积分点号 |
KSTEP | 载荷步号 |
KINC | 增量步号 |
将编写好的 UMAT 进行单元验证是非常重要的一步,很多教程中的单元验证都是简单的单调拉伸或者压缩,这对于各向同性材料而言无可厚非,但是对于静水敏感的本构模型或者是各向异性的本构模型是不够充分的。对于静水压力敏感的材料建议进行:单调拉伸、压缩以及剪切三种工况的验证;对于各向异性材料最好进行六种工况的验证(三个主应变方向和三个剪切应变方向)。此外,还有一个很重要的原因是,单个工况的验证具有欺骗性,掩盖 UMAT 子程序鲁棒性不强的缺点,因此多工况下的单元验证可以在进行大规模有限元计算之前发现 bug,及时 Degug。
[版权声明] :本文系网友分享,仅以非商业性的交流和科研为目的,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网( friends@stuch.cn )联系!我们将协调给予处理。转载授权码:确权中,请原作者尽快与我们取得联系,阅读原文(请登录)..