UMAT 分析Neo-Hookean材料
!由于本人学ABA不久, 到现在为止, 对umat还是处于半懂状态, 从ABA论坛下载了大大们提供的资料和读了一些大大的经验之谈, 受益非浅! 以下这段是我关于neo-hookean材料子程序的部分阐释,不当之处还望各为大大指正.(由于本人水平有限,但本着大家互相帮助的出发点,所以抛点砖头出来,^_^)
Neo-Hookean材料模型是各向同性线性定律(Hookean定律)至大变形的扩展.
在关键词*ELASTIC中定义弹性模量不能有效的解决有限变形问题,必须定义一个合适的势能函数
SUBROUTINE UMAT(STRESS, STATEV, DDSDDE, SSE, SPD, SCD, RPL,
1 DDSDDT, DRPLDE, DRPLDT, STRAN, DSTRAN, TIME, DTIME, TEMP, DTEMP,
2 PREDEF, DPRED, CMNAME, NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
3 COORDS, DROT, PNEWDT, CELENT, DFGRD0, DFGRD1, NOEL, NPT, LAYER,
4 KSPT, KSTEP, KINC)
C
INCLUDE ’ABA_PARAM.INC’
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)
C LOCAL ARRAYS
C ----------------------------------------------------------------
C EELAS - LOGARITHMIC ELASTIC STRAINS
C EELASP - PRINCIPAL ELASTIC STRAINS
C BBAR - DEVIATORIC RIGHT CAUCHY-GREEN TENSOR RIGHT 应为LEFT??
C BBARP - PRINCIPAL VALUES OF BBAR
C BBARN - PRINCIPAL DIRECTION OF BBAR (AN
D EELAS)
C DISTGR - DEVIATORIC DEFORMATION GRADIENT (DISTORTION TENSOR)
C ----------------------------------------------------------------
C
DIMENSION EELAS(6), EELASP(3), BBAR(6), BBARP(3), BBARN(3, 3),
1 DISTGR(3,3) C
PARAMETER(ZERO=0.D0, ONE=1.D0, TWO=2.D0, THREE=3.D0, FOUR=4.D0, 1 SIX=6.D0) C
C ----------------------------------------------------------------
C UMAT FOR COMPRESSIBLE NEO-HOOKEAN HYPERELASTICITY C CANNOT BE USE
D FOR PLAN
E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) – NU
C ---------------------------------------------------------------- C
C ELASTIC PROPERTIES C
EMOD=PROPS(1) ENU=PROPS(2)
C10=EMOD/(FOUR*(ONE+ENU)) D1=SIX*(ONE-TWO*ENU)/EMOD C
C JACOBIAN AN
D DISTORTION TENSOR C
1.程序里面的DET=Z
z Y z X z Z
y Y y X y
Z x Y x X x F J ??????????????????=
=)det(,当平面应变问题时,Z y
Z x ????,=0 2. DISTGR=F dev =J -1/3.F 为偏量变形梯度, 体积变形梯度 F V0L =J 1/3.I, 且F VOL .F dev =F
DET =DFGRD1(1, 1)*DFGRD1(2, 2)*DFGRD1(3, 3) 1 -DFGRD1(1, 2)*DFGRD1(2, 1)*DFGRD1(3, 3) IF(NSHR.EQ.3) THEN
DET =DET+DFGRD1(1, 2)*DFGRD1(2, 3)*DFGRD1(3, 1) 1 +DFGRD1(1, 3)*DFGRD1(3, 2)*DFGRD1(2, 1) 2 -DFGRD1(1, 3)*DFGRD1(3,1)*DFGRD1(2, 2) 3 -DFGRD1(2, 3)*DFGRD1(3, 2)*DFGRD1(1, 1) END IF
SCALE=DET**(-ONE/THREE) DO K1=1, 3 DO K2=1, 3
DISTGR (K2, K1)=SCALE*DFGRD1(K2, K1) END DO
C CALCULATE DEVIATORIC LEFT CAUCHY-GREEN DEFORMATION TENSOR C
3.计算左Cauchy-Green 变形张量B=F .F T , 那么左Cauchy-Green 变形偏量
()
T T
dev
dev DISTGR DISTGR F F BBAR B ?=?==,且B J B 3/2-=)4(),1(B B 表示平
面应变问题, 加上)6(),5(B B 表示空间问题,排列按照运用Voigt 规则. BBAR (1)=DISTGR(1, 1)**2+DISTGR(1, 2)**2+DISTGR(1, 3)**2 BBAR (2)=DISTGR(2, 1)**2+DISTGR(2, 2)**2+DISTGR(2, 3)**2 BBAR (3)=DISTGR(3, 3)**2+DISTGR(3, 1)**2+DISTGR(3, 2)**2
BBAR (4)=DISTGR(1, 1)*DISTGR(2, 1)+DISTGR(1, 2)*DISTGR(2, 2) 1 +DISTGR(1, 3)*DISTGR(2, 3) IF(NSHR.EQ.3) THEN
BBAR (5)=DISTGR(1, 1)*DISTGR(3, 1)+DISTGR(1, 2)*DISTGR(3, 2) 1 +DISTGR(1, 3)*DISTGR(3, 3)
BBAR (6)=DISTGR(2, 1)*DISTGR(3, 1)+DISTGR(2, 2)*DISTGR(3, 2) 1 +DISTGR(2, 3)*DISTGR(3, 3) END IF C
C CALCULATE THE STRESS 4. 计算应力
上式为应变能函数, 21,I I 分别为第一第二应变不变量.对应左Cauchy-Green 变形张量B ,且
)
(),(21B B trace I B trace I ?==)1(2
,0,1
2101-=??=??=??J D J U I U C I U , 应力偏量()
L
V B B J C B B I U B I U
I I U D E V J S 01022
11
22-=??
???????-???? ????+??=
,21,I I ,对应左Cauchy-Green
变形偏量B ,且13/23
/21)()(I J B J trace B trace I --===,因此,
1
3/21I U
J I U ??=??,又因为pI S +=σ,)1(2)(311321--=??-=++-=J D J U p σσσ(静水
压力)
TRBBAR=(BBAR(1)+BBAR(2)+BBAR(3))/THREE !!!VOL
B TRBBAR = EG =TWO*C10/DET
EK=TWO/D1*(TWO*DET-ONE)
PR =TWO/D1*(DET-ONE) !!! PR=-P DO K1=1,NDI
STRESS(K1)=EG*(BBAR(K1)-TRBBAR)+PR
!!!(我下载两个pdf 的文档,其中一个名为umat_all 中的程序与这不一样,我个人认为这个是
END DO
DO K1=NDI+1,NDI+NSHR STRESS(K1)=EG*BBAR(K1) END DO
C CALCULATE THE STIFFNESS C
5. 计算DDSDDE(ijkl C )
()kl
ij mm kl ij kl ij kl ij jk il jk il jl ik jl ik J ijkl J D B B B B B B B C C δδδδδδδδδδ)12(2923232211
102
-+??? ??+--+++=[]????
??????=??????????=12121222
1211
22122222
2211
111211221111
3332
31
2322
21
131211
C C C C C C C C C C C C C C C C C C C (平面问题)
按照V oigt 规则
EG23=EG*TWO/THREE
DDSDDE(1, 1)= EG23*(BBAR(1)+TRBBAR)+EK DDSDDE(2, 2)= EG23*(BBAR(2)+TRBBAR)+EK DDSDDE(3, 3)= EG23*(BBAR(3)+TRBBAR)+EK
DDSDDE(1, 2)=-EG23*(BBAR(1)+BBAR(2)-TRBBAR)+EK DDSDDE(1, 3)=-EG23*(BBAR(1)+BBAR(3)-TRBBAR)+EK DDSDDE(2, 3)=-EG23*(BBAR(2)+BBAR(3)-TRBBAR)+EK DDSDDE(1, 4)= EG23*BBAR(4)/TWO DDSDDE(2, 4)= EG23*BBAR(4)/TWO DDSDDE(3, 4)=-EG23*BBAR(4)
DDSDDE(4, 4)= EG*(BBAR(1)+BBAR(2))/TWO IF(NSHR.EQ.3) THEN
DDSDDE(1, 5)= EG23*BBAR(5)/TWO DDSDDE(2, 5)=-EG23*BBAR(5)
DDSDDE(3, 5)= EG23*BBAR(5)/TWO DDSDDE(1, 6)=-EG23*BBAR(6)
DDSDDE(2, 6)= EG23*BBAR(6)/TWO DDSDDE(3, 6)= EG23*BBAR(6)/TWO
DDSDDE(5, 5)= EG*(BBAR(1)+BBAR(3))/TWO DDSDDE(6, 6)= EG*(BBAR(2)+BBAR(3))/TWO DDSDDE(4,5)= EG*BBAR(6)/TWO DDSDDE(4,6)= EG*BBAR(5)/TWO DDSDDE(5,6)= EG*BBAR(4)/TWO END IF
DO K1=1, NTENS DO K2=1, K1-1
DDSDDE(K1, K2)=DDSDDE(K2, K1)
END DO
END DO
C
C CALCULATE LOGARITHMIC ELASTIC STRAINS (OPTIONAL)
6.计算对数应变
CALL SPRIND(BBAR, BBARP, BBARN, 1, NDI, NSHR)
C EELAS - LOGARITHMIC ELASTIC STRAINS
C EELASP - PRINCIPAL ELASTIC STRAINS
C BBAR - DEVIATORIC RIGHT CAUCHY-GREEN TENSOR !!RIGHT 应为LEFT??
C BBARP - PRINCIPAL VALUES OF BBAR
C BBARN - PRINCIPAL DIRECTION OF BBAR (AN
D EELAS)
=, SCALE=DET**(-ONE/THREE)
B3/2-
J
B
!!EELASP(1~3)为左变形张量B主值的对数值
然后计算弹性应变的各个分量,公式的推导很多弹性力学书上有!
EELASP(1)=LOG(SQRT(BBARP(1))/SCALE)
EELASP(2)=LOG(SQRT(BBARP(2))/SCALE)
EELASP(3)=LOG(SQRT(BBARP(3))/SCALE)
EELAS(1)=EELASP(1)*BBARN(1,1)**2+EELASP(2)*BBARN(2, 1)**2
1 +EELASP(3)*BBARN(3, 1)**2
EELAS(2)=EELASP(1)*BBARN(1, 2)**2+EELASP(2)*BBARN(2, 2)**2
1 +EELASP(3)*BBARN(3, 2)**2
EELAS(3)=EELASP(1)*BBARN(1, 3)**2+EELASP(2)*BBARN(2, 3)**2
1 +EELASP(3)*BBARN(3, 3)**2
EELAS(4)=TWO*(EELASP(1)*BBARN(1, 1)*BBARN(1, 2)
1 +EELASP(2)*BBARN(2, 1)*BBARN(2, 2)
2 +EELASP(3)*BBARN(3, 1)*BBARN(3, 2))
IF(NSHR.EQ.3) THEN
EELAS(5)=TWO*(EELASP(1)*BBARN(1, 1)*BBARN(1, 3)
1 +EELASP(2)*BBARN(2, 1)*BBARN(2, 3)
2 +EELASP(3)*BBARN(3, 1)*BBARN(3, 3))
EELAS(6)=TWO*(EELASP(1)*BBARN(1, 2)*BBARN(1, 3)
1 +EELASP(2)*BBARN(2, 2)*BBARN(2, 3)
2 +EELASP(3)*BBARN(3, 2)*BBARN(3, 3))
END IF
C
C STORE ELASTIC STRAINS IN STATE VARIABLE ARRAY
7. 把弹性应变存为状态变量
DO K1=1, NTENS
STATEV(K1)=EELAS(K1)
END DO
C
RETURN
END