- 积分
- 0
- 注册时间
- 2013-12-12
- 仿真币
-
- 最后登录
- 1970-1-1
|
本人最近在模拟热处理过程,用场变量FIELD(i)来模拟微观组织的体积分数,然后用如下程序进行计算,不知道FIELD(2)会不会自动迭代更新。如果不会的话要如何修改才能进行迭代更新呢? SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
% TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
% KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C Z1是奥氏体体积分数,Z2是珠光体,
Z1 = STATEV(1)
Z2 = STATEV(2)
CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,LACCFLA)
temp=ARRAY(1)
STATEV(5) = temp
C
C 计算珠光体的转变量
C
IF (temp .LT. 720 .AND. temp .GT. 570) THEN
N = log(log(1-0.1)/log(1-0.9))/log(TIME(1)/(TIME(1)+DTIME))
B = -log(1-0.1)/(TIME(1)**N)
tp = (-log(1-STATEV(2))/B)**(1/N)
Z2 = 1-exp(-B*((tp+DTIME)**N))
FIELD(1) = 1-Z2
STATEV(1) = FIELD(1)
FIELD(2) = Z2
DETZ2=Z2-STATEV(2)
STATEV(5)=DETZ2/DTIME
STATEV(2) = FIELD(2)
return
end
|
|