非等温线弹性UMAT子程序实现与Abaqus内部机制解析

将拉梅常数看做是温度的函数,则非等温弹性张量方程为:

1.png非等温线弹性UMAT子程序及Abaqus内部实现方法的图2非等温线弹性UMAT子程序及Abaqus内部实现方法的图3

其中,lm是拉梅常数,a是线膨胀系数,T是温度。对方程两边取材料时间导数,得到Jaumann率形式:3.png


非等温线弹性UMAT子程序及Abaqus内部实现方法的图5

写成增量形式为:

4.png

Abaqus Standard采用增量法逐步施加载荷/位移,每步增加的应力即可按上式进行计算。材料的切线刚度矩阵(雅克比矩阵)为应力对应变的偏导数,采用voigt记法写成6*6的二维矩阵为(引用知乎@Learning STRB):

5.png

简单介绍了一下理论,下面是UMAT程序:

     SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,

    1 RPL,DDSDDT,DRPLDE,DRPLDT,

    2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,

    3 NDI,NSHR,NTENS,NSTATEV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

    4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

     INCLUDE 'ABA_PARAM.INC'

C

     CHARACTER*8 CMNAME

     DIMENSION STRESS(NTENS),STATEV(NSTATEV),

    1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),

    2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),

    3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)

C     LOCAL ARRAYS

C     ----------------------------------------------------------------

C     EELAS - ELASTIC STRAINS 弹性应变(不含热应变)

C     ETHERM - THERMAL STRAINS 热应变

C     DTHERM - INCREMENTAL THERMAL STRAINS 增量热应变

C     DELDSE - CHANGE IN STIFFNESS DUE TO TEMPERATURE CHANGE 雅克比矩阵增量

C     ----------------------------------------------------------------

     DIMENSION EELAS(6), ETHERM(6), DTHERM(6), DELDSE(6,6)

C

     PARAMETER(ZERO=0.D0, ONE=1.D0, TWO=2.D0, THREE=3.D0, SIX=6.D0)

C     ----------------------------------------------------------------

C     UMAT FOR ISOTROPIC THERMO-ELASTICITY WITH LINEARLY VARYING

C     MODULI - CANNOT BE USED FOR PLANE STRESS

C     ----------------------------------------------------------------

C     PROPS(1) - E(T0)

C     PROPS(2) - NU(T0)

C     PROPS(3) - T0

C     T0温度下的弹性模量和泊松比

C     PROPS(4) - E(T1)

C     PROPS(5) - NU(T1)

C     PROPS(6) - T1

C     T1温度下的弹性模量和泊松比

C     PROPS(7) - ALPHA

C     PROPS(8) - T_INITIAL

C     线膨胀系数和参考温度

C     ELASTIC PROPERTIES AT START OF INCREMENT

C     技术邻@snowwave02 大神的方法,配合他自研的isolver求解器可以实现断点调试,这一步可以定位到第*次进入UMAT程序。

     integer,save::number=0

     number=number+1

     if(number.eq.3) then

        number1=0

     endif

C     初始温度下的拉梅常数

     FAC1=(TEMP-PROPS(3))/(PROPS(6)-PROPS(3))

     IF (FAC1 .LT. ZERO) FAC1=ZERO

     IF (FAC1 .GT. ONE) FAC1=ONE

     FAC0=ONE-FAC1

     EMOD=FAC0*PROPS(1)+FAC1*PROPS(4)

     ENU=FAC0*PROPS(2)+FAC1*PROPS(5)

     EBULK3=EMOD/(ONE-TWO*ENU)

     EG20=EMOD/(ONE+ENU)

     EG0=EG20/TWO

     ELAM0=(EBULK3-EG20)/THREE

C

C     ELASTIC PROPERTIES AT END OF INCREMENT

C     增量温度下的拉梅常数

     FAC1=(TEMP+DTEMP-PROPS(3))/(PROPS(6)-PROPS(3))

     IF (FAC1 .LT. ZERO) FAC1=ZERO

     IF (FAC1 .GT. ONE) FAC1=ONE

     FAC0=ONE-FAC1

     EMOD=FAC0*PROPS(1)+FAC1*PROPS(4)

     ENU=FAC0*PROPS(2)+FAC1*PROPS(5)

     EBULK3=EMOD/(ONE-TWO*ENU)

     EG2=EMOD/(ONE+ENU)

     EG=EG2/TWO

     ELAM=(EBULK3-EG2)/THREE

   

C     ELASTIC STIFFNESS AT END OF INCREMENT AND STIFFNESS CHANGE

C     求解雅克比矩阵和雅克比矩阵的增量(简单说是T1温度和T0温度的雅克比矩阵差值)

     DO K1=1,NDI

     DO K2=1,NDI

     DDSDDE(K2,K1)=ELAM

     DELDSE(K2,K1)=ELAM-ELAM0

     END DO

     DDSDDE(K1,K1)=EG2+ELAM

     DELDSE(K1,K1)=EG2+ELAM-EG20-ELAM0

     END DO

     DO K1=NDI+1,NTENS

     DDSDDE(K1,K1)=EG

     DELDSE(K1,K1)=EG-EG0

     END DO

C

C     CALCULATE THERMAL EXPANSION

C     计算热膨胀应变和热膨胀应变的增量(热应变仅有主应变,没有切应变)

     DO K1=1,NDI

     ETHERM(K1)=PROPS(7)*(TEMP-PROPS(8))

     DTHERM(K1)=PROPS(7)*DTEMP

     END DO

      DO K1=NDI+1,NTENS

     ETHERM(K1)=ZERO

     DTHERM(K1)=ZERO

     END DO

C

C     CALCULATE STRESS, ELASTIC STRAIN AND THERMAL STRAIN

C     按应力的增量公式计算应力增量,进而计算应力。

     DO K1=1, NTENS

     DO K2=1, NTENS

     STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*(DSTRAN(K1)-DTHERM(K1))

    1 +DELDSE(K2,K1)*( STRAN(K1)-ETHERM(K1))

     END DO

     ETHERM(K1)=ETHERM(K1)+DTHERM(K1)

     EELAS(K1)=STRAN(K1)+DSTRAN(K1)-ETHERM(K1)

     END DO

C

C     STORE ELASTIC AND THERMAL STRAINS IN STATE VARIABLE ARRAY

C     存储弹性应变至状态变量SDV1-SDV12

     DO K1=1, NTENS

     STATEV(K1)=EELAS(K1)

     STATEV(K1+NTENS)=ETHERM(K1)

     END DO

     RETURN

     END

建立单个单元的热力耦合有限元模型。

有限元材料参数为(Model-1):E(T0)=200GPa,NU(T0)=0.3,T0=293K;E(T1)=300GPa,NU(T1)=0.3,T1=393K;ALPHA=1e-5,T_INITIAL=293K。另外设置密度、比热容、热导率。为了排除传热因素的影响,我在后续载荷步里采用直接指定温度的方法,因此上述参数可任意设置。

Q8FF]Q9{HIH%8M~%Y}KQ{Z1.png

作为对照,采用Abaqus自带的材料设置Model-2:

Q35Y%NAGKM97ZNXWSY{7F_Q.pngM7675UQABCAT@EAP(9OLU1B.png非等温线弹性UMAT子程序及Abaqus内部实现方法的图11

几何模型为1m*1m*1m的立方体,采用C3D8T绘制1个单元。

GSZLGHGS5({XV$PHN$JX7F1.png

设置两个分析步:初始状态设置域温度为293K;分析步1约束X负方向上四个节点X方向位移,X正方向上四个节点加载X方向位移0.1m;分析步2设置整个域温度为393K。

4B$@VY{6R_6Q537{$8`I2]T.png非等温线弹性UMAT子程序及Abaqus内部实现方法的图14

经过对比,Model-1和Model-2的计算结果完全一致。下面仅展示Model-1的计算结果:前两个图是分析步1的X方向应力和总应变,后图为分析步2的X方向应力和弹性应变(采用位移加载,分析步2的总应变不变)。

非等温线弹性UMAT子程序及Abaqus内部实现方法的图15G3YSO]GUWN@A8$%9`8{X(L8.pngY%ZT8NNGX~~A6~J0APXK%G3.pngX8IO]U5V}7`)N)}VEMA54FA.pngM0NA6H)K(21V{W(LT@1GAU4.png非等温线弹性UMAT子程序及Abaqus内部实现方法的图20

下面对计算结果进行讨论。笔者经过有限元计算,如果不考虑热膨胀,分析步2计算完成后应力为3e10Pa。由于自由热膨胀不产生应力,因此线膨胀系数的引入造成了应力的减小。

特别注意的是,在有限元建模过程中,自定义的材料并未使用Abaqus自带的热膨胀项,完全是通过编写的UMAT来计算材料的热膨胀贡献。那么,如果我们额外增加Abaqus自带的热膨胀项(材料属性里的expansion项),那么弹性应变会变为0.098,应力为变为2.94e10MPa。也就是说我们计算了两次热膨胀系数。笔者做出了如下猜想:一旦设置了热膨胀属性,进入Abaqus的应变就从总应变张量变为了弹性应变张量非等温线弹性UMAT子程序及Abaqus内部实现方法的图21。因此,如果需要编写含温度参数的UMAT子程序,我们要么使用Abaqus自带的expansion项,要么在UMAT中将热膨胀贡献考虑,切勿重复。

NN8G@OQ624(R9I9I%~]@AVQ.png

上述讨论仅针对了应变和应变增量,许多本构模型采用的是变形梯度描述的,后续有时间笔者会对此再做一次验证。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空