请高手看看我用umat做蠕变子程序有什么问题
请参看下面的.for文件,给出的雅克比矩阵是E,u,G独立的非各向同性矩阵。为了方便验证,用的蠕变方程就是普通的时间硬化模型,即参数为A,m,n的那一种。
最后求解的时候出错了,给出的错误为
ABAQUS Error: The executable e:\ABAQUS\6.5-1\exec\standard.exe
aborted with system error code 29539.
Please check the .dat, .msg, and .sta files for error messages if the files
exist.If there are no error messages and you cannot resolve the problem,
please run the command "abaqus job=support information=support" to report and
save your system information.Use the same command to run ABAQUS that you
used when the problem occurred.Please contact your local ABAQUS support
office and send them the input file, the file support.log which you just
created, the executable name, and the error code.
本人刚开始学Umat,请哪位大虾指点迷津!
.for文件如下
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,
1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,
2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,
3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
CHARACTER*8 CMNAME
C
DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS),
2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3),
3 DFGRD0(3,3),DFGRD1(3,3),TIME(2),DCRSTRAN(NTENS)
C 矩阵的尺寸声明
C
PARAMETER(ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,
1 ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6)
C ----------------------------------------------------------------
C PROPS(1) - E
C PROPS(2) - NU
C PROPS(3) - G
C PROPS(4) - TTA
C PROPS(5) - TTN
C PROPS(6) - TTM
C ----------------------------------------------------------------
C
C ELASTIC PROPERTIES
C
C 获取杨氏模量,泊松比,剪切模量,A,m,n作为已知量由PROPS向量传入
EMOD=PROPS(1)
ENU=PROPS(2)
c IF(ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499
EG=PROPS(3)
TTA=PROPS(4)
TTN=PROPS(5)
TTM=PROPS(6)
EBULK3=EMOD/(ONE-TWO*ENU)
EG2=EMOD/(ONE+ENU)
EG3=THREE*EG2/TWO
ELAM=(EBULK3-EG2)/THREE
C
C ELASTIC STIFFNESS
C弹性部分,Jacobian矩阵很容易计算
C注意,在ABAQUS中,剪切应变采用工程剪切应变的定义 ,所以剪切部分模量是G而不是2G!
IF (KSTEP.EQ.1) THEN
DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K1,K2)=ZERO
END DO
END DO
DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=ELAM
END DO
DDSDDE(K1,K1)=EG2+ELAM
END DO
DO K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG
END DO
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)
END DO
END DO
C
END IF
C
C
C
C
C
C CALCULATE CREEP STRAIN
C TIME DEPENDENT
C RSTRAN为蠕变率
C DCRSTRAN为蠕变
C
C
C
C
C
IF (KSTEP.EQ.2) THEN
RSTRAN1=TTA*STRESS(1)**TTN*TIME(1)**TTM
RSTRAN2=TTA*STRESS(2)**TTN*TIME(1)**TTM
RSTRAN3=TTA*STRESS(3)**TTN*TIME(1)**TTM
RSTRAN4=TTA*STRESS(4)**TTN*TIME(1)**TTM
RSTRAN5=TTA*STRESS(5)**TTN*TIME(1)**TTM
RSTRAN6=TTA*STRESS(6)**TTN*TIME(1)**TTM
C
DCRSTRAN(1)=RSTRAN1*DTIME
DCRSTRAN(2)=RSTRAN2*DTIME
DCRSTRAN(3)=RSTRAN3*DTIME
DCRSTRAN(4)=RSTRAN4*DTIME
DCRSTRAN(5)=RSTRAN5*DTIME
DCRSTRAN(6)=RSTRAN6*DTIME
c
C CALCUALTE UPDATED STRESS
C
DO K1=1,NTENS
DO K2=1,NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*(DSTRAN(K1)-DCRSTRAN(K1))
END DO
END DO
C
C CALCULATE UPDATED JACOBIAN
C
DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K1,K2)=ZERO
END DO
END DO
DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=ELAM
END DO
DDSDDE(K1,K1)=EG2+ELAM
END DO
DO K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG
END DO
C
END IF
C
RETURN
END 发现错误啦
IF (KSTEP.EQ.2) THEN
RSTRAN1=TTA*STRESS(1)**TTN*TIME(1)**TTM
RSTRAN2=TTA*STRESS(2)**TTN*TIME(1)**TTM
RSTRAN3=TTA*STRESS(3)**TTN*TIME(1)**TTM
RSTRAN4=TTA*STRESS(4)**TTN*TIME(1)**TTM
RSTRAN5=TTA*STRESS(5)**TTN*TIME(1)**TTM
RSTRAN6=TTA*STRESS(6)**TTN*TIME(1)**TTM
对于初始时间步来说time(1)=0,0的n次方是没有意义的,以后做蠕变时间做底的本构大家要多小心。 学习中ing。。。 studying~~~~~~~~~~~~~~~~~~~~~~~~ 同问,有什么问题 看了好多LZ的相关帖子,启发很大,LZ能够分享自己的经验,令人佩服,好人一生平安!! :victory:厉害。 请教一个关于蠕变的问题:):http://forum.simwe.com/data/attachment/forum/201204/05/1917285hkug867gdhem7e8.gif 诺顿本构方程中由于n(比如8.5)的存在,应力为负值时会出现数值错误,可以应力取正后计算,结果前面加负号,这样得到应变可以吗?因为一直纠结于压缩和拉伸蠕变曲线是否对称的问题,书本上也没有提到方程适用的拉压情况。 新手,还望多多指点。:handshake
本帖最后由 cheaxii 于 2012-12-3 11:23 编辑
刚刚学子程序,需要编写一个蠕变本构。请问敦大侠,一个菜鸟级的问题,望不要嫌弃:
1、上面的umat子程序在计算出蠕应变RSTRAIN后,不需要更新应变 (STRAIN=弹性应变+蠕应变) 么?,看了下RSTRAIIN并不是umat的接口参数啊?,这样的话,返回到主程序,如何使主程序中的总应变包含本增量步中求的的蠕应变。
2、vumat可以实现蠕变本构么?,就是用于显式动态分析步下的材料子程序?
初学子程序,很多地方不懂,如有谬误,希望大侠们不要见笑。:) cheaxii 发表于 2012-11-30 11:30 static/image/common/back.gif
刚刚学子程序,需要编写一个蠕变本构。请问敦大侠,一个菜鸟级的问题,望不要嫌弃:
1、上面的umat子程序在 ...
问的好!望知道的同志回答一下! 学习ing
蠕变子程序不太好开发。 你好,我想请教一下:一般理论上给出的本构方程都是一维的关系,编程时需要做成三维,它们之间是怎么变换的?需要用什么知识,麻烦啦:) 轩落子 发表于 2015-11-7 09:47
你好,我想请教一下:一般理论上给出的本构方程都是一维的关系,编程时需要做成三维,它们之间是怎么变换的 ...
用等效应力和等效应变 厉害,学习学习 楼主有个问题,最后为什么要更新雅可比矩阵,看起来拉梅常数并没有改变,雅可比矩阵也并未改变 victor_ye 发表于 2006-6-23 12:49
发现错误啦
IF (KSTEP.EQ.2) THEN
RSTRAN1=TTA*STRESS(1)**TTN*TIME(1)**TTM
怎么改呢?再增加一个对时间的条件吗
页:
[1]