Abaqus-Umat子程序理论基础与代码编写

本期内容将详细讲解Abaqus二次开发之非线性强化Umat代码,通过这次的学习,只要是应用Mises屈服法则,率无关的任何非线性强化均可适用。

模型介绍:

弹性模量20GPa,泊松比0.3,延续上一节Umat的模型,硬化曲线方程

 \sigma_{s}=200+400*(\varepsilon_{p})^{0.5}

材料设置:

编写流程:

计算弹性雅克比矩阵、更新弹性试应力、读取状态变量(弹性应变和塑性应变以及等效塑性应变)、编写计算强化系数和等效Mises应力的子程序(方便随时调用)、屈服后计算等效塑性增量、计算当前应力、弹性应变、塑性应变、调用Mises子程序、计算弹塑性雅克比矩阵、更新状态变量。

本次代码中用到了13个状态变量,1~6个为弹性应变,7~12个为塑性应变,13为等效塑性应变。

代码讲解: 部分代码如下(篇幅有限):

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1  RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     2  TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
     3  NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
     4  DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
        INCLUDE 'ABA_PARAM.INC'
C
        CHARACTER*80 MATERL
        DIMENSION STRESS(NTENS),STATEV(NSTATV),
     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),
     4  DFGRD0(3,3),DFGRD1(3,3)
        double precision, DIMENSION(NTENS)::deviatoricStress
        double precision misesEqualStress,hydroStaticPressure,W
     1   ,ONESY,DEQPL,SYIELD
C
        DIMENSION EELAS(6),EPLAS(6),FLOW(6)
        PARAMETER (ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0)
        DATA NEWTON,TOLER/1000,1.D-6/
        INTEGER K1,K2,cn

C     PROPS(1) - E
C     PROPS(2) - NU
C     PROPS(3) - SYIELD
C     CALLS AHARD FOR CURVE OF SYIELD VS. PEEQ

C     ELASTIC PROPERTIES
C
        EMOD=PROPS(1)
        EMU=PROPS(2)
        EG2=EMOD/(ONE+EMU)
        EG=EG2/TWO
        EG3=THREE*EG
        ELAM=EMOD*EMU/((ONE+EMU)*(ONE-TWO*EMU))
C
C     ELASTIC STIFFNESS
C
        DO  K1=1,NTENS
        DO  K2=1,NTENS
        DDSDDE(K2,K1)=0.0
        enddo
        enddo
C
        DO K1=1,NDI
        DO K2=1,NDI
        DDSDDE(K2,K1)=ELAM
        enddo
        DDSDDE(K1,K1)=EG2+ELAM
        enddo
        DO K1=NDI+1,NTENS
        DDSDDE(K1,K1)=EG
        enddo
C
C    CALCULATE STRESS FROM ELASTIC STRAINS
C
        DO K1=1,NTENS
        DO K2=1,NTENS
        STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)
        enddo
        enddo
C
C    RECOVER ELASTIC AND PLASTIC STRAINS
C
        DO K1=1,NTENS
        EELAS(K1)=STATEV(K1)+DSTRAN(K1)
        EPLAS(K1)=STATEV(K1+NTENS)
        enddo
        EQPLAS=STATEV(1+2*NTENS)
C
C       HARDENING CURVE, GET YIELD STRESS
C
        CALL AHARD(SYIEL0,HARD,EQPLAS,PROPS,NPROPS)
C
C       MISES STRESS
C
        call GetMisesEqualStress(STRESS,NTENS,NDI,misesEqualStress
     1  ,deviatoricStress,hydroStaticPressure)
C
C       DETERMINE IF ACTIVELY YIELDING
C
        IF (misesEqualStress.GT.(1.0+TOLER)*SYIEL0) THEN
C
        ONESY=ONE/misesEqualStress
        DO K1=1,NDI
            FLOW(K1)=ONESY*(STRESS(K1)-hydroStaticPressure)
......

Props(1)代表杨氏模量,

Props(2)代表泊松比,

Props(3)代表初始屈服应力,

Props(4)~Props(6)非线性强化相关系数。

38~69行:计算弹性雅克比矩阵,更新弹性试应力;

73~77行:读取状态变量;

83行:调用计算非线性强化系数子程序;

88~89行:调用等效Mises应力子程序;

97~103行:

107~119行:(其中112~119行的循环结构要看懂)

123~133行:

138~145行:调用等效Mises应力,更新弹塑性雅克比矩阵;

150~154行:将弹性应变、塑性应变、等效塑性应变储存在状态变量中。

160~185行:编写计算非线性强化系数子程序;

187~217行:编写等效Mises应力子程序。

本次的代码原本要为大家验证一下的,打开Abaqus的时候才发现子程序关联失常,就把代码先写出来吧,有兴趣大家可以自行验证,然后一起交流。

注:篇幅有限,故在本文中仅展示部分代码,源代码请在我的公众号:“易木木响叮当”内回复:“非线性强化”,自动获取。

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空