- 积分
- 0
- 注册时间
- 2017-8-27
- 仿真币
-
- 最后登录
- 1970-1-1
|
悬赏60仿真币已解决
本人初学umat子程序,试着弄个了一个简单的例子,但是一直不通,希望大佬们帮忙给看看。目的是这样的:材料先是弹性阶段,弹性阶段的雅克比矩阵如图1,然后当stress(1)到达props(3)设定的值的时候换到另一个雅克比矩阵继续计算(另一个雅克比矩阵就是弹性阶段的雅克比矩阵第三行所有系数都乘0.1),就完了。(本人知道有别的方法能够解决这个问题,但是为了学习umat所以从简单的开始弄)本人猜测是应变矩阵没有更新的问题,但是不知道咋弄,求各位大佬指点:
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)
C
DIMENSION EELAS(6),EPLAS(6),FLOW(6)
PARAMETER (ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0)
DATA NEWTON,TOLER/10,1.D-6/
C -----------------------------------------------------------
C PROPS(1) - E
C PROPS(2) - NU
C PROPS(3) - SYIELD
C -----------------------------------------------------------
C
IF (NDI.NE.3) THEN
WRITE(6,1)
1 FORMAT(//,30X,'***ERROR - THIS UMAT MAY ONLY BE USED FOR ',
1 'ELEMENTS WITH THREE DIRECT STRESS COMPONENTS')
ENDIF
C
C ELASTIC PROPERTIES
C
EMOD=PROPS(1)
ENU=PROPS(2)
IF(ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499
EBULK3=EMOD/(ONE-TWO*ENU)
EG2=EMOD/(ONE+ENU)
EG=EG2/TWO
EG3=THREE*EG
ELAM=(EBULK3-EG2)/THREE
C
C ELASTIC STIFFNESS
C
DO 20 K1=1,NTENS
DO 10 K2=1,NTENS
DDSDDE(K2,K1)=0.0
10 CONTINUE
20 CONTINUE
C
DO 40 K1=1,NDI
DO 30 K2=1,NDI
DDSDDE(K2,K1)=ELAM
30 CONTINUE
DDSDDE(K1,K1)=EG2+ELAM
40 CONTINUE
DO 50 K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG
50 CONTINUE
C
C CALCULATE STRESS FROM ELASTIC STRAINS
C
DO 70 K1=1,NTENS
DO 60 K2=1,NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)
60 CONTINUE
70 CONTINUE
C
C 判断塑性
IF (STRESS(1).GT.(ONE+TOLER)*PROPS(3)) THEN
C
DO 90 K1=1,NTENS
DO 80 K2=1,NTENS
DDSDDE(K2,K1)=0.0
80 CONTINUE
90 CONTINUE
C
C 开始计算塑性刚度矩阵
C
DO 110 K1=1,NDI
DO 100 K2=1,NDI
DDSDDE(K2,K1)=ELAM
100 CONTINUE
DDSDDE(K1,K1)=EG2+ELAM
110 CONTINUE
DO 120 K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG
120 CONTINUE
DO 130 k1=1,NTENS
DDSDDE(3,K1)=0.1*DDSDDE(3,K1)
130 CONTINUE
DO 150 K1=1,NTENS
DO 140 K2=1,NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)
140 CONTINUE
150 CONTINUE
return
end
|
附件: 您需要 登录 才可以下载或查看,没有账号?注册
最佳答案
查看完整内容
DO 130 k1=1,NTENS
DDSDDE(3,K1)=0.1*DDSDDE(3,K1)
130 CONTINUE
就可以了,有什么问题?
|