首页/文章/ 详情

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

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


模型介绍:

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

   

材料设置:

编写流程:  

计算弹性雅克比矩阵、更新弹性试应力、读取状态变量(弹性应变和塑性应变以及等效塑性应变)、编写计算强化系数和等效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,SYIELDC        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,cnC     PROPS(1) - EC     PROPS(2) - NUC     PROPS(3) - SYIELDC     CALLS AHARD FOR CURVE OF SYIELD VS. PEEQC     ELASTIC PROPERTIESC        EMOD=PROPS(1)        EMU=PROPS(2)        EG2=EMOD/(ONE+EMU)        EG=EG2/TWO        EG3=THREE*EG        ELAM=EMOD*EMU/((ONE+EMU)*(ONE-TWO*EMU))CC     ELASTIC STIFFNESSC        DO  K1=1,NTENS        DO  K2=1,NTENS        DDSDDE(K2,K1)=0.0        enddo        enddoC        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......     
 


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的时候才发现子程序关联失常,就把代码先写出来吧,有兴趣大家可以自行验证,然后一起交流。

来源:易木木响叮当

ACTAbaqus非线性二次开发UM理论材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-01
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 212粉丝 244文章 344课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈