- 积分
- 0
- 注册时间
- 2009-12-2
- 仿真币
-
- 最后登录
- 1970-1-1
|
大家好,
最近在做应变率效应的仿真,当前不考虑物理意义,而且只考虑弹性阶段。 我想做一个应变率的模型, 比如剪切模量 G12=A+B*LOG(shear_strain_rate). 假设这个应变率模型只在当应变率高于10 s-1 时有效,小于10s-1, G12按准静态值考虑。但是在计算应变率的时候遇到一个问题, 按照应变率的定义,可以用应变增量/时间增量得到, 这样剪切应变为straininc(np,4)/dt。 但是现在把这个应变率放到条件语句中却出错了。 奇怪的是我发现有一个名为strainrate的内部变量, 我用它做应变的条件时可以顺利计算。有哪位大神知道VUMAT这个内部变量的意义吗? 我想将straininc/dt和strainrate两个变量输出来检查一下,但是不知道怎么输出这些变量。但是不太会用write()语句,不知道哪位能给点建议吗? 谢谢。 附上我编辑的代码:
C**********************************************************
C VUMAT FOR STRAIN RATE DEPENDENT STIFFNESS MODEL, ORTHOTROPIC MATERIELS
C WRITTEN BY HAIBIN ZHU
C**********************************************************
SUBROUTINE VUMAT(
C READ ONLY (UNMODIFIABLE)VARIABLES -
1 NBLOCK, NDIR, NSHR, NSTATEV, NFIELDV, NPROPS, LANNEAL,
2 STEPTIME, TOTALTIME, DT, CMNAME, COORDMP, CHARLENGTH,
3 PROPS, DENSITY, STRAININC, RELSPININC,
4 TEMPOLD, STRETCHOLD, DEFGRADOLD, FIELDOLD,
5 STRESSOLD, STATEOLD, ENERINTERNOLD, ENERINELASOLD,
6 TEMPNEW, STRETCHNEW, DEFGRADNEW, FIELDNEW,
C WRITE ONLY (MODIFIABLE) VARIABLES -
7 STRESSNEW, STATENEW, ENERINTERNNEW, ENERINELASNEW )
C
INCLUDE 'VABA_PARAM.INC'
C
DIMENSION PROPS(NPROPS), DENSITY(NBLOCK), COORDMP(NBLOCK,*),
1 CHARLENGTH(NBLOCK), STRAININC(NBLOCK,NDIR+NSHR),
2 RELSPININC(NBLOCK,NSHR), TEMPOLD(NBLOCK),
3 STRETCHOLD(NBLOCK,NDIR+NSHR),
4 DEFGRADOLD(NBLOCK,NDIR+NSHR+NSHR),
5 FIELDOLD(NBLOCK,NFIELDV), STRESSOLD(NBLOCK,NDIR+NSHR),
6 STATEOLD(NBLOCK,NSTATEV), ENERINTERNOLD(NBLOCK),
7 ENERINELASOLD(NBLOCK), TEMPNEW(NBLOCK),
8 STRETCHNEW(NBLOCK,NDIR+NSHR),
8 DEFGRADNEW(NBLOCK,NDIR+NSHR+NSHR),
9 FIELDNEW(NBLOCK,NFIELDV),
1 STRESSNEW(NBLOCK,NDIR+NSHR), STATENEW(NBLOCK,NSTATEV),
2 ENERINTERNNEW(NBLOCK), ENERINELASNEW(NBLOCK)
C
CHARACTER*80 CMNAME
C
PARAMETER( ZERO = 0.D0, ONE = 1.D0, TWO = 2.D0, THREE = 3.D0,
1 THIRD = ONE/THREE, HALF = .5, TWOTHIRDS = TWO/THREE,
2 THREEHALFS = 1.5D0 )
Q11 = PROPS(1)
Q12 = PROPS(2)
Q22 = PROPS(3)
Q13 = PROPS(4)
Q23 = PROPS(5)
Q33 = PROPS(6)
A = 7E9
B = 7E4
C
C
DO NP = 1, NBLOCK
C Copy the values of strains into temp variables
ES1 = strainInc(NP,1)
ES2 = strainInc(NP,2)
ES3 = strainInc(NP,3)
ES4 = strainInc(NP,4)
C COMPUTE THE STRAIN RATE DEPEDENT STIFFNESS AND LAM CONSTANTS
C SR = strainrate
SR2= strainInc(NP,4)/DT
C IF THE STRAINRATE IS NOT 0, Q22 IS STRAINRATE, OTHERWISE, Q22 IS 10E9
IF (SR2.GT.10) THEN
Q66 = A+B*(LOG(SR2))
C stressNew(NP,1) = stressOld(NP,1)+Q11*ES1+Q12*ES2+Q13*ES3
C stressNew(NP,2) = stressOld(NP,2)+Q12*ES1+Q22*ES2+Q23*ES3
C stressNew(NP,3) = stressOld(NP,3)+Q13*ES1+Q23*ES2+Q33*ES3
C stressNew(NP,4) = stressOld(NP,4)+Q66*ES4*2
ELSE
Q66 = 5E10
END IF
C
stressNew(NP,1) = stressOld(NP,1)+Q11*ES1+Q12*ES2+Q13*ES3
stressNew(NP,2) = stressOld(NP,2)+Q12*ES1+Q22*ES2+Q23*ES3
stressNew(NP,3) = stressOld(NP,3)+Q13*ES1+Q23*ES2+Q33*ES3
stressNew(NP,4) = stressOld(NP,4)+Q66*ES4*2
C
C
C-----UPDATE THE SPECIFIC INTERNAL ENERGY--------
C
STRESSPOWER = HALF *
1 ( ( STRESSOLD(NP,1)+STRESSNEW(NP,1) )*STRAININC(NP,1)
2 + ( STRESSOLD(NP,2)+STRESSNEW(NP,2) )*STRAININC(NP,2)
3 + ( STRESSOLD(NP,3)+STRESSNEW(NP,3) )*STRAININC(NP,3)
4 + ( STRESSOLD(NP,4)+STRESSNEW(NP,4) )*STRAININC(NP,4)*TWO )
C
ENERINTERNNEW(NP) = ENERINTERNOLD(NP)
1 + STRESSPOWER / DENSITY(NP)
C
C-----UPDATE THE DISSIPATED INELASTIC SPECIFIC ENERGY--------
C
PLASTICWORKINC = 0
C
ENERINELASNEW(NP) = ENERINELASOLD(NP)
1 + PLASTICWORKINC / DENSITY(NP)
C
END DO
C
RETURN
END
C
C
|
|