上一次发过《ABAQUS 初学者用户子程序小例子》,给学习 UMAT 的初学者带来了一定的帮助。现在用到VUMAT,发现网上 这种小例子很少,关于VUMAT 的资料也不多。摸索了一天,做个 VUMAT 的小例子供大家分享。
实例:简单的平面平板拉伸,材料本构模型采用随动强化模型,
E=210000MPa,尸0.3,乐=200MPn, E'=10000MPa 。左端约束,
右端施加位移载荷V = 0.2mm 。
Author: xueweek@ 163
Y
1材料本构模型:
在 Property 中定义材料时,在 General 卜•选中 User Material.输入 210000、0.3、200、
10000,以上两个数值代表E 、v,、人、E'。在用户子程序中代表看PROPS ⑴、PROPS(2)、 PROPS(3)、PROPS(4)。然后在Gniwl 下选中Depvar,由于该例子中使用了五个状态变量 (背
应力张彊和累积塑性应变变量),因此在第一项中输入大于5的数值即可。另外还需要 输入密度。
fienel MecMesl [bermai Qtto DcM
Us lAawnal Uw«
type MxMriol
B Uu vnc»«^nMitric etW
Dmu
Oeser ipon: Gehavis
Use*
c ,
建模人家都会,故省略
2 ABAQUS 中STEP 的设置
由于VUMAT 需要用到Explicit 求解,因此需要在step 步骤中设置explicit 选项,如下图, 其设置可以用默认设置。
■ Create Step  Name: Step-1
Direct cyclic Dynamic, Implicit Dynamic, Explicit  Dynamic, Temp-disp, Explicit
Geostatic  Heat transfer  Mass diffusion  Soils
<
・:Edit Sil
Wp  Mncria^l
Mst^-al “hzo”
Variable rtimber comrollin^ clement dete<<fi Sbg"/t*pi c4o 刃.
Njm»cr c< wiv6x dc«xdcrt
Oxriptio 代
Mate^UI Behftticrs
*xrd Mzh.rM :dl Rcrmd Qther
Um  to^otfitu c deptoitnt do3
CM
Number H <<Hd “HoBc : Data
aoi
Procedure type: General
Insert new step after
Cancel
3 ABAQUS调用VUMAT 用户子程序
同UMAT用户子程序的调用方法。
在Job Manager中点击Edit选项,在General选项的最后一项中选择自己建立好的用户子程序文件。(注:用户子程序文件可以使用文本编辑器进行编辑,当然也可以用Fortran 编译器,如果对自己的用户子程序文件的语法不放心,町以先用Fortan编译器进行编译,不过编译前要先建立Project,关于Fonran编译,这里不再介绍)。
完成后,点击submit即可进行分析。
(Avg: 75%)
4 结果
以下两张图分布是用户子程序和ABAQUS自带的材料模型(Standard求解器)得
到的应力云图,可以看出两种图形基本相同。
+2.4970*02 *2.4519*02
+2.3619*02 4-2.31bO*U2 *2 2700*02 +2.2250*02 +2.1&00*02 4-2.1350*02 +2.0590*02 +2.0449*02 +1.9990*02 *1 9540*02
ODB: l^d» .\ka<w9Txplkii6.1O 1 Mon 0ct31 21u)9:J0 GMTM)8:(M) 2011
V 3tep 9tep-l
八Ineraneni 3859 SSp T“ ■ I KO
Prsnary Vrn S, Lli^rs
Deformed V ar U E efznnaLion Scale Faclcu +2 l2!e〈0l
3/ Mises (Avg: 75%)
*
2
.
4
4
59-4-02 +2.4030+02 42.3600402 —k
十2.31%十02 ■・^2.275e-t02
■■乜233M02
■- 4-2.1909*02
—k 7・ 1489^02
*2.10594-02 4-2.0639+02 42.02004 02 tl.978B-tO2
X SltTi Stefui
Incr^fTiMit I:Step丁m… I 000
Pnmarz V u: S, Mi?"
Defotriei V v: U D GfotnaU^n S c £e F actor: *2.1259-HJ1
ODB: .Job.2>A Ab2<iiK^nndir4(fjn.l Men Orf 3】21:4 5 VUMAT子程序
对于初学者来说,需要注意的是,FORTRAN对干程序语言格式上的要求。例如,对于
FORTRAN语言,前六个字符必须空出来,等等。检査语法最好的方法就是在FORTRAN编
译器上进行编译。
SUBROUTINE VUMAT(
C Read only -
1nblock, ndir. nslu; listatev, iifieldv, npiops, lanneal,
2stepTiine, totalTnue, dt, ciniiame, coordMp. chaiLength.
3props, density, straiiilnc, relSpmliic,
4tempOld, stretchOld, defgradOld. fieldOld,
3stiessOld, stateOld. eneilnteinOld, eneilnelasOld,
6 tempNew. suetcliNew, defgiadNew, fieldNew, C Write only ・
5stressNew, stateNew. eneiliiternNew, enerliielasNew)
c
mclude ,vaba_paiam.inc,
C
C J2 Mises Plasticity with kuieinatic liaidenmg for plane
C stmin case.
C Elastic predictoi; radial coirector algorithm・
C
C The state variables are stored as:
C STATE(*J) ■ back stiess component 11
C STATE(*,2) = back suess component 22
C STATE(*3) = back suess component 33
C STATE(*,4) = back suess component 12
C STATE(*,5) = equivalent plastic strain
c
c
C All arrays dimensioned by (*) are not used in this algoritlun duneiision props(nprops). density(nblock),
1cooidMp(nblock^)、
2charLengtli(*), stiauilnc(nblock卫diLiislii).
3relSpinInc(*), tempOld(*),
4stietchOld(*), defgradOld(*),
5fieldOld(*), suessOld(nblock,ndu+nslu),
6state01d(nblock,nstatev). enerlntemOld(nblock),
7enerliielasOld(nblock), tempNew(*),
8stietcliNew(*), defgradNew(*), fieldNew(*),
9stiessNew(nblockjidir^nslu), stateNew(nblocknstatcv),
1 enerliiteinNew(nblock), enerlnelasNew(nblock)
c
cliaiactei*80 cmiiaine
c
paiameter( zero = 0., one = 1., two = 2・,tliree = 3・,
1tlurd = one/tliree, half = .5, twoThirds = two/three,
2tlueeHalfs = 1.5 )
c
e =props(l)
xnu = props(2)
yield = piops(3)
haid ■ props(4) C
twomu =e/( one + xnu )
tluemu = tlueeHalfs * twomu
sixniu ■ thiee * twomu
alamda = twomu * ( e - twonw ) /( sixnm - two * e )
term = one / (twomu * ( one + liard/thiemu )) coni = sqrt( twoTlmds )
c
do 100 1 = 1 ,nblock
C
C Tnal stiess调用子程序的例子
trace = strauilnc(ij) + strauihic(i.2) + suamlnc(i,3)
sigl = stressOld(iJ) + alamda* trace + t^r omu *strauilnc(i, 1) sig2 = stiessOld(i,2) +
alainda*trace + tw r omu*strainlnc(i,2) sig3 ■ stiessOld(i3) + alainda*trace +
t^r omu*stiamlnc(i,3) sig4 = stiessOld(i,4) + tu r omu ♦ su auihic(i,4)
C
C Trial stiess measured fiom die back stress si = sigl - stateOld(i,l)
s2 = sig2 - stateOld(i,2)
s3 = sig3 ・ stateOld(i,3)
s4 = sig4 ・ stateOld(i,4)
C
C Deviatonc pait of tiial stress measured fiom the back stress smean = third * (si + s2 + s3 ) dsl = si -
smean
ds2 = s2 - smean
ds3 ■ s3 ・ smean

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。