abaqus2用户单元子程序(1)

abaqus2用户单元子程序(1)
abaqus2用户单元子程序(1)

20 ABAQUS用户单元子程序(UEL)

在这一章中将列举两个在这些年里发展过的ABAQUS/Standard用户单元子程序(UEL)。第一个例子是一个非线性的索单元,我们的目的是通过这个比较简单的例子让读者了解用户单元子程序的基本开发过程;第二个例子是一个用于计算应变梯度理论的单元,应变梯度是当今比较热点的一个科研前沿问题,有各种理论,我们为了验证新的理论,需要数值结果与实验对照来进行评价,整个例子的目的是通过它说明用户子单元可以求解的问题范围很广,但是由于内容比较艰深,程序也很长,所以这个例子我们并没有给出最后的全部程序。

另外,到目前为止,ABAQUS还只有隐式求解器ABAQUS/Standard支持用户自定义单元,而显式求解器ABAQUS/Explicit中还不支持这一功能。

非线性索单元

20.1.1 背景

钢索斜拉桥和斜拉索结构广泛应用于土木工程建筑上。索力的计算分析是设计和施工的关键环节。清华大学工程力学系在采用ABAQUS进行荆沙长江斜拉桥的计算机仿真分析(这个项目我们已在第15章“ABAQUS在土木工程中的应用(一)——荆州长江大桥南汊斜拉桥结构三维仿真分析”中讨论过)时,也曾进行了自行建立索单元的尝试。本节介绍的就是这方面的工作。

香港理工大学土木与结构工程系采用ABAQUS有限元软件进行计算,完成了香港Ting Kau斜拉桥和Tsing Ma悬索桥的结构计算和分析。对于钢索计算,他们采用梁单元进行模拟。由于梁单元含有弯曲刚度,计算的高阶频率值偏高,周期较低。

一般假设索是单向受拉力的构件。随着应变的非线性增加,索力呈非线性增加。尽管ABAQUS单元库中有500个以上的单元类型,但是,还没有索单元。本文发展了三维非线性索单元模型,形成ABAQUS的用户单元子程序,可以利用ABAQUS输入文件调入到具体的分析中。通过静态和动态例题的计算比较,索单元工作良好。

20.1.2 基本公式

在三维索单元计算中,如图20-1所示,坐标x 和位移u 的变量表达式为:

i

j ji i j ji u u u x x x -=-= (x,y,z) (u,v,w) (20-1)

应变的公式为:

()??

????+++++=

222211ji ji ji ji ji ji ji ji ji w v u w z v y u x L ε (20-2)

公式(20-2)中,L 为索的长度,索的张力为:

0N AE N +=ε

(20-3)

在公式(20-3)中,A 为截面面积,E 为弹性模量,N 0为初始张力。

在总体坐标系下,单元刚度矩阵为:

[]??

?

?

??--=?K K

K K

K e

66 (20-4)

单元刚度矩阵中的子阵K 分别由线性和非线性矩阵项组成:

33,33,33???+=NL L K K K

(20-5)

图20-1 索单元

在公式(20-5)中的K L 和K NL 均是3×3的对称矩阵,分别为:

???

?

???

??

?=2

223ji ji ji ji

ji ji ji ji ji L z z y y z x y x x L EA K ?????

?????=101001L N K NL

索单元的节点质量为:

AL m ρ2

1

=

(20-6)

在公式(20-6)中,ρ为密度。索单元的质量矩阵为:

[]??

?

?

??=m m

M e 0

0 (20-7)

结构的运动方程为:

[]{}[]{}u K F u

M ext -= (20-8)

公式(21-8)中F ext

为作用在结构上的外力。在不断变化的索的变形中,求解运动方程,得到节点的位移值。

20.1.3 应用举例

由5个单元组成的两端铰接的索杆结构,高5m 长10m ,6个节点号码依次为101~106,如图19-2所示。计算自由振动的频率和周期。

图19-2 由五个单元组成的两端铰接的索杆结构

输入文件中的用户单元界面

ABAQUS输入文件(.inp)中的用户单元界面如下:

*HEADING

Two dimensional overhead hoist frame

using 2 nodes self-developed truss element,

Initial force N is defined in property(5) and

referenced by user element

SI Units

1-axis horizontal, 2-axis vertical

……

*USER ELEMENT, NODES=2, TYPE=U1, PROPERTIES=5, COORDINATES=3, VARIABLES=12

1,2,3

*UEL PROPERTY, ELSET=UTRUSS

, , , 7800,

*ELEMENT, TYPE=U1, ELSET=UTRUSS

……

计算结果和比较

表20-1列出了由用户索单元计算的图20-2所示结构的固有周期,并与应用ABAQUS 梁单元B31的计算结果进行了比较。

索单元与梁单元前4阶模态的周期基本一致;索单元的第6~9阶模态与梁单元第7~10阶模态的周期基本一致。从第11阶模态开始,随着梁单元弯曲变形的增加,梁的弯曲刚度逐渐发挥作用并和轴向刚度耦合,与同阶模态的索单元相比,梁单元的振动周期显著降低,而频率高于索单元。

表20-1 ABAQUS用户索单元和梁单元B31计算的频率比较

用户开发单元的缺点是不能采用ABAQUS的后处理进行显示,只能从数据文件(.dat)中读取结果。另外,ABAQUS的接触算法等某些功能也无法应用。

20.1.4 非线性索单元用户子程序

subroutine uel(rhs, amatrx, svars, energy, ndofel, nrhs, nsvars,

* props, nprops, coords, mcrd, nnode, u,du,v,a,jtype,time,dtime,

* kstep,kinc,jelem,params,ndload,jdltyp,adlmag,predef,npredf,

* lflags,mlvarx,ddlmag,mdload,pnewdt,jprops,njprop,period)

C

Include ''

C All coordinates in global

C

dimension rhs(mlvarx,*), amatrx(ndofel, ndofel),

* svars(12), energy(8), props(5), coords(mcrd,nnode),

* u(ndofel), du(mlvarx,*), v(ndofel), a(ndofel), time(2),

* params(3),jdltyp(mdload,*), adlmag(mdload,*),

* ddlmag(mdload,*), predef(2,npredf,nnode),lflags(*),

* jprops(*)

C

dimension sresid(6), uji(3), xji(3), smatrx(3,3) C

C Material properties

area=props(1)

e =props(2)

anu =props(3)

rho =props(4)

C Initial tension force in user element

fn0 =props(5)

C

C Geometry, stiffness and mass parameters

dx =coords(1,2)-coords(1,1)

dy =coords(2,2)-coords(2,1)

dz =coords(3,2)-coords(3,1)

alen=sqrt(dx*dx+dy*dy+dz*dz)

ang =atan(dy/dx)

ak =area*e/alen

am =*area*rho*alen

C

do i=1,3

uji(i)=u(i+3)-u(i)

xji(i)=coords(i,2)-coords(i,1)

end do

strain=(xji(1)*uji(1)+xji(2)*uji(2)+xji(3)*uji(3) * +*(uji(1)**2+uji(2)**2+uji(3)**2))/alen tforce=e*area*strain+fn0

eal=e*area/alen**3

C

C Stiffness matrix parameters

smatrx(1,1)=eal*xji(1)**2+tforce/alen

smatrx(1,2)=eal*xji(1)*xji(2) smatrx(1,3)=eal*xji(1)*xji(3)

smatrx(2,1)=smatrx(1,2)

smatrx(2,2)=eal*xji(2)**2+tforce/alen

smatrx(2,3)=eal*xji(2)*xji(3)

smatrx(3,1)=smatrx(1,3)

smatrx(3,2)=smatrx(2,3)

smatrx(3,3)=eal*xji(3)**2+tforce/alen

C

do 6 k1=1,ndofel

sresid(k1)=

do 2 krhs=1,nrhs

rhs(k1,krhs)=

2 continue

do 4 k2=1,ndofel

amatrx(k2,k1)=

4 continue

6 continue

C

if (lflags(3). then

C Normal incrementation

if (lflags(1). then

C *Static

C Element stiffness matrix

do i=1,3

do j=1,3

amatrx(i,j)=smatrx(i,j)

amatrx(i,j+3)=-smatrx(i,j)

amatrx(i+3,j)=-smatrx(i,j)

amatrx(i+3,j+3)=smatrx(i,j)

end do

end do

C

C Reaction force

if (lflags(4). then

do i=1,3

force =ak*(u(i+3)-u(i))

dforce=ak*(du(i+3,1)-du(i,1))

sresid(i)=-dforce

sresid(i+3)=dforce

rhs(i,1)=rhs(i,1)-sresid(i)

rhs(i+3,1)=rhs(i+3,1)-sresid(i+3) end do

else

do k=1,3

force =ak*(u(k+3)-u(k))

sresid(k)=-force

sresid(k+3)=force

rhs(k,1)=rhs(k,1)-sresid(k)

rhs(k+3,1)=rhs(k+3,1)-sresid(k+3) end do

end if

C

else if(lflags(1). then

C *Dynamic

alpha =params(1)

beta =params(2)

gamma =params(3)

C

dadu =(beta*dtime**2)

dvdu =gamma/(beta*dtime)

C

do 14 k1=1,ndofel

amatrx(k1,k1)=am*dadu

rhs(k1,1)=rhs(k1,1)-am*a(k1)

14 continue

do i=1,3

do j=1,3

amatrx(i,j)=amatrx(i,i)+ + alpha)*smatrx(i,j)

amatrx(i+3,j+3)=amatrx(i+3,j+3)+ + alpha)*smatrx(i,j) amatrx(i,j+3)=amatrx(i,j+3)- + alpha)*smatrx(i,j)

amatrx(i+3,j)=amatrx(i+3,j)- + alpha)*smatrx(i,j)

end do

end do

C

do i=1,3

force =ak*(u(i+3)-u(i))

sresid(i)= -force

sresid(i+3)= force

rhs(i,1)=rhs(i,1)-(+alpha)*sresid(i)

* -alpha*svars(i))

rhs(i+3,1)=rhs(i+3,1)-(+alpha)*sresid(i+3)

* -alpha*svars(i+3))

end do

C

do 16 k1=1,ndofel

svars(k1+6)=svars(k1)

svars(k1)=sresid(k1)

16 continue

end if

C

else if(lflags(3). then

C Stiffness matrix

do i=1,3

do j=1,3

amatrx(i,j)=smatrx(i,j)

amatrx(i,j+3)=-smatrx(i,j)

amatrx(i+3,j)=-smatrx(i,j)

amatrx(i+3,j+3)=smatrx(i,j)

end do

end do

C

else if(lflags(3). then

C Mass matrix

do 40 k1=1,ndofel

amatrx(k1,k1)=am

40 continue

else if(lflags(3). then

C

C Half-step residual calculation

alpha = params(1)

do i=1,3

force =ak*(u(i+3)-u(i))

sresid(i)= -force

sresid(i+3)= force

rhs(i,1)=rhs(i,1)-am*a(i)-+alpha)*sresid(i)

* +*alpha*(svars(i)+svars(i+6))

rhs(i+3,1)=rhs(i+3,1)-am*a(i+3)-+alpha)*sresid(i+3)

* +*alpha*(svars(i+3)+svars(i+9)) end do

C

else if(lflags(3). then

C Initial acceleration calculation

do 60 k1=1,ndofel

amatrx(k1,k1)=am

60 continue

do i=1,3

force =ak*(u(i+3)-u(i))

sresid(i)= -force

sresid(i+3)= force

rhs(i,1)=rhs(i,1)-sresid(i)

rhs(i+3,1)=rhs(i+3,1)-sresid(i+3)

end do

C

do 62 k1=1,ndofel

svars(k1)=sresid(k1)

62 continue

C

else if(lflags(3). then

C Output for perturbations

if (lflags(1). then

C *static

do i=1,3

force =ak*(u(i+3)-u(i))

dforce =ak*(du(i+3,1)-du(i,1))

sresid(i)=-dforce

sresid(i+3)=dforce

rhs(i,1)=rhs(i,1)-sresid(i)

rhs(i+3,1)=rhs(i+3,1)-sresid(i+3)

end do

C

do kvar=1,nsvars

svars(kvar)=

end do

do j=1,6

svars(j)=rhs(j,1)

end do

else if(lflags(1). then

C *Frequency

do 90 krhs=1,nrhs

do i=1,3

dforce =ak*(du(i+3,krhs)-du(i,krhs))

sresid(i)=-dforce

sresid(i+3)=dforce

rhs(i,krhs)=rhs(i,krhs)-sresid(i)

rhs(i+3,krhs)=rhs(i+3,krhs)-sresid(i+3) end do

90 continue

do kvar=1,nsvars

svars(kvar)=

end do

do j=1,6

svars(j)=rhs(j,1)

end do

C

end if

end if

C

return

end

利用ABAQUS用户单元计算应变梯度塑性问题

我们在本节内容中主要介绍两种应变梯度理论,并在最后给出用这两种应变梯度理论编写的用户单元子程序的数值计算结果与实验的对比。本节的目的在于让读者了解ABAQUS即使在面对如此复杂的理论问题时,也可以胜任。

20.2.1 引言

研究应变梯度理论的意义

很多试验表明,当非均匀塑性变形特征长度在微米量级时,材料具有很强的尺度效应。例如Fleck等在细铜丝的扭转试验中观察到,当铜丝的直径为12m时,无量纲的扭转硬化将增加至170m直径时的3倍;Stolken和Evans在薄梁弯曲试验中也观察到,当梁的厚度从100m减至12.5m时,无量纲的弯曲硬化也显著增加;而在单轴拉伸情况这种尺度效应并不存在。在微米量级的尺度下,微观硬度试验与颗粒增强金属基复合材料中也观察到尺度效应,当压痕深度从10m减至1m时,金属的硬度增加了一倍;对于碳化硅颗粒加强的铝-硅基复合材料,Lloyd观察到当保持颗粒体积比为15%的条件下,将颗粒直径从16m减为7.5m后复合材料的强度显著增加。

由于在传统的塑性理论中,本构模型不包含任何尺度,所以它不能预测尺度效应。然而,在工程实践中迫切需要处理微米量级的设计和制造问题,例如,厚度在1m或者更小尺寸下的薄膜;整个系统尺寸不超过10m的传感器、执行器和微电力系统(MEMS);零部件尺寸小于10m的微电子封装;颗粒或者纤维的尺寸在微米量级的先进复合材料及微加工等等。现在的设计方法,如有限元方法(FEM)和计算机辅助设计(CAD),都是基于经典的塑性理论,而它们在这一微小尺度不再适用。另一方面,现在按照量子力学和原子模拟的方法在现实的时间和长度的尺度下处理微米尺度的结构依然很困难。所以,建立连续介质框架下、考虑尺寸效应的本构模型就成为联系经典塑性力学和原子模拟之间必要的桥梁。

促使建立细观尺寸下连续介质理论的另一个目的是在韧性材料的宏观断裂行为和原子断裂过程之间建立联系。在一系列值得注意的试验中,Elssner等测量了单晶铌/

蓝宝石界面的宏观断裂韧度和原子分离功,使原子点阵或强界面分离所需要的力约为或者10Y(E为弹性模量,Y为拉伸屈服应力)。而按照经典的塑性理论,Hutchinson 指出裂纹前方最大应力水平只能达到4至5倍Y。很明显这远远小于Elssner等在试验中观察到的结果,不足使原子分离。考虑应变梯度的影响有望解释这一现象。

应变梯度理论简介

目前发展的应变梯度理论有很多种,包括CS理论(偶应力理论)、SG理论(拉伸和旋转梯度理论)、MSG理论(基于细观机制的应变梯度塑性理论)以及TNT理论(基于Taylor关系的非局部应变梯度理论)等。我们利用ABAQUS用户单元主要进行了MSG 和TNT两种理论应变梯度塑性的有限元分析,对于MSG塑性和TNT塑性都包括形变理论和流动理论,TNT塑性还包括了有限变形问题的形变和流动理论的分析。现在对MSG理论和TNT 理论加以简单的介绍。

20.2.2 两种应变梯度理论

基于细观机制的MSG应变梯度塑性理论

基于位错机制的MSG应变梯度塑性理论是由位错理论出发的,它通过一个多尺度、分层次的框架由微观位错机制推导出了宏细观的应变梯度塑性理论。这个理论相比于其它理论,物理机制更明确,构造方法系统,而且第一次提出了材料长度的表达式。图20-3是MSG应变梯度塑性理论的原理图,在微观层次上塑性是由位错运动产生的,在细观层次上引入应变的梯度与微观的几何必须位错密度相关联,通过细观和微观的功等效由微观塑性推导出细观的本构理论。

为了在细观尺度下的应变梯度塑性和微尺度下的Taylor硬化关系之间建立联系,在MSG理论框架中采用如下的基本假设:

1)假设微尺度的流动应力由位错运动控制,并且遵守应变梯度律给出的Taylor 硬化关系

()η+εσ=σl f

~~2

Y

(20-9)

2)微观尺度和细观尺度的联系是塑性功相等

()

cell ~

~cell

V dV ijk ijk ij

ij

V ij

ij

δητ'+δε

σ'=εδσ

'? (20-10)

3)在微尺度胞元中假设经典塑性的基本结构成立,其J 2形变理论可以表示为

()e

~ ~~2~σεε=σ'ij ij (20-11)

其中ij ij σ'σ'=σ~~~2

3

e

,ij ij εε=

ε~~~3

2

。微尺度的屈服条件为

σ=σ~~e

(20-12)

基于以上的理论假设,应变梯度塑性MSG 形变理论本构关系可以建立如下:

图20-3 MSG 理论中采用的多尺度框

εσε=σ'32ij ij

(20-13)

()()()[]

σε'εσ+ε-σ=τ'εijk ijk ijk ijk f f l ∏∏Λ2

Y 2

(20-14)

其中

()η+εσ=σl f

2

Y

(20-15)

式中:

b l ref 2

218???

? ??σμα

= (20-16)

为材料特征长度。 ()[]24

1ppi jk ppj ik kij kji ijk ijk ηδ+ηδ-η+η+η=Λ (20-17)

()[]

2

4

154εηεδ+εδ-ηε+ηεε=pmn ip jk jp ik imn jk jmn ik mn ijk ∏ (20-18) 其中应变梯度表示为

k ij i jk j ik ij k ijk u ,,,,ε-ε+ε==η

(20-19)

ijk ijk η'η'=

η4

1

(20-20)

基于Taylor 关系的非局部应变梯度塑性理论(TNT 理论)

MSG 应变梯度理论物理机制明确、构造方法系统,那么为什么还要发展TNT 理论呢因为前面提到的应变梯度塑性理论,无论CS 、SG 还是MSG ,都是高阶理论,引入了高阶应力和附加的边界条件,而这些高阶应力和附加的边界条件都难以测量,难以想象,因此无法得到工业界的认可,难以走向实用。

经典的塑性问题控制方程是2阶,而在MSG 理论中由于高阶应力的影响,其控制方程是4阶,这就增加了解决问题的复杂性。非局部连续介质力学理论给我们以启发,采

用应变的非局部加权积分来确定应变的梯度,这样就有了TNT —— 基于TAYLOR 关系的非局部塑性理论。这种理论既保持MSG 理论的所有优点,同时与经典的塑性理论相比又不增加方程的阶数。但也正是由于TNT 理论的非局部性质,使其在求取解析解方面比较困难,也正因为如此,有限元解对TNT 理论尤其重要。

TNT 作为非局部塑性理论,有三个基本特点:

(1)流动应力遵从TAYLOR 硬化关系,这是TNT 塑性理论的出发点。 (2)应变梯度和几何必须位错密度是非局部量,表示为应变的加权平均。这是TNT 塑性理论的核心概念。

(3)TNT 塑性理论保持经典塑性理论的基本结构。这个特点使得TNT 塑性理论具有很强的实用潜力。和经典的塑性理论相比,TNT 塑性理论的特别之处在于屈服条件的不同:流动应力不仅依赖于应变,还同时依赖于应变的梯度。这里应变的梯度是非局部量。

确定应变梯度的非局部积分如下: 将应变ij ε在一点附近Taylor 展开:

()()()2,0ξ

ξ+ξε+ε=+εm m ij ij ij x x

(20-21)

式中ξ为以x 为坐标原点的局部坐标。在包含x 的表示体元内积分上式:

()()???ξ

ξε+ξε=ξ

+εcell

cell

cell

V m

k

m

ij V k ij V k

ij

dV dV x dV x ,ξ (20-22)

假定特征尺寸εl 足够小,可忽略εl 的高阶小量,于是梯度k ij ,ε可以表示为应变的积分形式:

()()[]

??-???

?

??ξξξε-+ε=εcell cell V V m k m ij ij k ij dV dV x x 1

,ξ (20-23)

从而由关系式(20-19)、(21-20)可以得出应变梯度η的值。

TNT 形变理论的本构关系:

kk kk K ε=σ3

(20-24)

()ij ref

ij l f ε'ε

η+εσ=

σ'322

(20-25)

式中的l 为由(20-16)式给出的材料长度,η为非局部变量,由(20-20)式给出。 TNT 流动理论的本构关系:

kk kk K ε=σ

3 (20-26)

'σ+μσησ-ε'σ'μσσ'μα-ε'μ=σ'p

p ref e ref kl kl e ij ij ij f

f l 22

36232 (20-27)

加载时1=α,卸载时0=α。

20.2.3 ABAQUS 用户单元的使用

如上文所述,由于MSG 理论和TNT 理论本身的复杂性,用它们做解析解比较困难。只是对于很少几个简单问题才有解析解。为比较理论与实验以及解析解的符合程度,必须用有限元计算加以验证。因为考虑应变梯度的本构关系与经典理论完全不同,所以在有限元实现中不能利用现有的程序。但是由于ABAQUS 具有的用户子程序功能,为我们实现应变梯度的有限元计算提供了很方便的条件。

为了保证用户子程序能够完成计算应变梯度问题的功能,编写时必须遵守ABAQUS 规定的法则。具体包括INCLUDE 声明、命名约定、重新定义变量、编译和链接、测试和调试、用户可用及不可用的通道号、中断分析等。我们编写的关于应变梯度的用户子程序中,用的是9节点矩形单元,由于节点变量包括应变梯度和高阶应力的分量,故在编程过程中不能利用原有的几何关系,也不能利用ABAQUS 提供的前后处理程序,但可以方便地利用它的求解器。我们在用户子程序中计算出有限元的刚度矩阵和右端项,再利用ABAQUS 的求解器解线形代数方程,在用户子程序UEL 中需要保存的变量,如计算出的广义应变、广义应力等,都必须存在ABAQUS 指定的变量SVARS 中,下一次调用UEL 时再从变量SVARS 中读取出需要的变量值。关于用户子程序的调试可通过读写输出文件来获得信息,子程序中可以将调试信息写在ABAQUS 的消息文件(.msg )(通道号为7)或数据文件(.dat )(通道号为6)中,读这些文件可得到调试信息,从而验证程序是否已满足了计算的要求。

20.2.4 有限元计算的结果

MSG 理论的有限元计算结果

我们编写了应变梯度本构的平面问题和轴对称问题的用户子程序。利用轴对称程序计算了微小尺度下的浅压头压痕问题,并对微尺度压痕的试验结果进行了参数拟合;对于平面问题的程序,进行了静态裂纹的分析,分析过程主要针对I 型裂纹。

(H /H 0)

2

1/h (μm -1

)

图20-4 MSG 理论拟合微压痕试验结果

图20-4是利用MSG 理论计算微压痕的曲线:坐标横轴是压痕深度的倒数,坐标纵轴是无量纲化的硬度的平方,其中H 是微压痕的硬度,H 0是h 取值很大时的压痕硬度,它与压痕的深度h 无关。图中的试验点是McElhaney 等人在1998年对多晶铜所作的结果。可见,利用MSG 理论计算的结果曲线在从1/10个微米到几个微米很大的范围内与试验结果符合的非常好,计算拟合的材料特征长度l =也符合多晶铜由(20-16)式的计算结果以及试验对铜的估算值,这表明MSG 理论能够比较准确地反映微米到亚微米量级材料的塑性行为。

下面讨论利用MSG 本构的平面问题程序计算I 型静止裂纹的结果。整个计算区域为1000l ,远场施加的是弹性位移边界条件,外加K 场强度为20。图20-5给出了双对数坐标下裂尖的奇异性曲线,即裂纹延长线上(实际上取的是最靠近裂纹面的一列高斯点,1.0143θ=)

的等效应力对应距裂尖距离的曲线。横坐标是无量纲化的点到裂尖的距离,

纵坐标是无量纲化的等效应力。图中给出了利用MSG 形变理论和MSG 流动理论两种结果,同时也给出了同一问题经典塑性理论的计算结果。容易看出MSG 形变理论和流动理论的计算结果相差的非常小,这表明,虽然裂纹尖端场不是严格的比例加载,但是利用MSG 形变理论的计算结果还是足够准确的。图中也可以看出,三种理论计算的裂尖塑性区大小完全相同,说明塑性区大小与应变梯度效应无关;MSG 理论给出的曲线在约0.3l 处与经典塑性理论分开,MSG 理论的结果比经典理论高很多,在0.1l 处(对应于铜约是微米)等效应力是经典理论的两倍还多。这在某种程度上可以解释裂尖的断裂问题。

图20-5 MSG 理论计算I 型裂纹尖端场的奇异性曲线

理论的有限元计算结果

对于TNT 理论同样我们编写了平面问题和轴对称问题的用户子程序。利用轴对称程序计算了微尺度下的浅压头压痕问题,利用平面问题程序计算了静态裂纹I 型问题。

σe /σY

r /l

ABAQUS子程序

Home 浅谈ABAQUS用户子程序 李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: ABAQUS JOB=[JOB] USER?[.FOR]?C 用户在编写用户子程序时,要注意以下几点: 1.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

ABAQUS用户子程序

当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS 调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序: (1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩

abaqus UAMP用户子程序

Overview User subroutine UAMP: ?allows you to define the current value of an amplitude definition as a function of time; ?can be used to model control engineering aspects of your system when sensors are used (sensor values are from the beginning of the increment); ?can use a predefined number of state variables in their definition; and ?can optionally compute the derivatives and integrals of the amplitude function. Explicit solution dependence The solution dependence introduced in this user subroutine is explicit: all data passed in the subroutine for information or to be updated are values at the beginning of that increment. User subroutine interface SUBROUTINE UAMP( * ampName, time, ampValueOld, dt, nProps, props, nSvars, * svars, lFlagsInfo, * nSensor, sensorValues, sensorNames, jSensorLookUpTable, * AmpValueNew, * lFlagsDefine, * AmpDerivative, AmpSecDerivative, AmpIncIntegral, * AmpDoubleIntegral) C INCLUDE 'ABA_PARAM.INC' C time indices parameter (iStepTime = 1, * iTotalTime = 2, * nTime = 2) C flags passed in for information parameter (iInitialization = 1, * iRegularInc = 2, * iCuts = 3

abaqus安装方法详解

***防火墙英文存放位置及安装路径,系统组件…… 第一部分Abaqus的安装问题(不含子程序) 1)用虚拟光驱加载DVD2,安装Document,直接运行根目录下的setup.exe 即可,安装过程比较简单。 (完成1后不要急着安装啊!因为你需要做一些事情来使得你的电脑可以破解abaqus。做什么呢!需要做两项,分别是: 1.1.设置一个环境变量,变量名为:LM_LICENSE_FILE;变量值为:27011@127.0.0.1。 这个时候有人会问,这是咋回事啊!因该是27011@自己的电脑名称。 我要告诉你这个127.0.0.1就是指你的电脑。所以不用再写你的电脑名字了,要是万一你的电脑名字是汉语的,那么还不好使呢! 这个步骤的目的在于在你的电脑里面建立了一个解码系统,可以明目张胆地使用abaqus。 1.2.修改abaqus安装盘中SHooTERS文件夹中的abaqus69.dat,打开它,将“this_host”修改为127.0.0.1。保存。) 根据个人安装经验,上述方法有时可能会失效,自己调整如下。 因为我下载的版本的license文件第一行为:SERVER THIS_host ID=20111111 27011 而不是SERVER THIS_host ID=20111111 27003 第4步:变量名LM_LICENSE_FILE,值为27011@hostname (hostname为你的计算机名字) 第8步:27003@hostname 更改为27011@hostname (hostname为你的计算机名字) 2)设置环境变量:鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”,然后在系统变量栏新建一个环境变量,变量名LM_LICENSE_FILE,值为27011@hostname。(以前版本的为27003等现为27011,hostname为你的计算机名) 3)用虚拟光驱加载DVD1,先安装License,运行 X:\win86_32\license\Windows\Disk1\InstData\VM\install.exe。安装过程中可能需要输入你的计算机名,一般上一步环境变量设置好了就不用输入了,安装时选择“just install the licenseing utilities”。注意:如果你的计算机上还装有abaqus 的其他版本,6.10版本的license可能会与低版本的发生冲突,导致无法安装第7步的product,所以需要把其他版本的license停掉,这样就可以了;我是讲6.8完全卸载之后再安装的6.10。 (中间选择Abaqus web server,很快安装好后,最后得画面会出现一个URL,例如http:// hostname:2080/v6.9/。需要拷贝一下,或者抄写下来。)

ABAQUS子程序UMAT里弹塑本构的实现

前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。比方说,一个复合材料就不能用传统的线性分析软件包进行分析。任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。新一代波音 787客机将全部采用复合材料。只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。所以,ABAQUS可以在一个软件完成线性和非线性分析。 ABAQUS给用户提供了强大二次开发接口,尤其是在材料本构方面,给用户开发符合实际工程的材料本构模型提供了强大帮助,本文将针对其用户材料子程序展开研究,总结常用材料模型的开发方法。

abaqus子程序安装方法

ABAQUS6.9 用户子程序全部通过的安装方法 ABAQUS6.9子程序全部通过的安装方法 “Abaqus6.9”+ “Microsoft Visual C++ 2005 Express” + “Intel Fortran10.1”! 参考许多前人经验和帖子,整理出本文,共分三部分介绍: 第一部分:不使用子程序的用户按此即可完成ABAQUS安装; 第二部分:需使用子程序的用户,先按第一部分安装,再按第二部分安装; 最后一部分结合自己的实践谈几点注意的事项。 第一部分Abaqus6.9的安装步骤 1、建议安装顺序为:先DVD2, 再DVD1中的lisence. (因为安装DVD1 product 时,需要一个安装好html document的地址)。 2、先安装DVD2, (要输入计算机名hostname),最后得画面会出现一个URL,需要记下来。(我的是http://xumeng861:2080/v6.9) 3、鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”(环境变量分为用户变量和系统变量两种),然后在系统变量栏新建一个系统变量,变量名 LM_LICENSE_FILE,值为27003@hostname (例如:27003@xumeng861)。 4、再打开DVD1,安装license,在安装DVD1的时候,会选择安装license还是product. 第一步先选择license,(对于常用的win 7系统,打开安装文件的文件夹,假设虚拟光盘为F盘,则F:\ABAQUS6.9\win86_32\license\Windows\Disk1\InstData\VM\install..exe, 应用兼容模式运行--- 即右击install.exe—属性--兼容性—勾选“以兼容模式运行这个程序”—选择windows XP (service Pack 3)。)在安装好之后,进行license设置。 5、打开DVD1,然后打开SHOOTERS文件夹,将abaqus69.dat文件用记事本打开,"this_host" 替换为计算机名,改好的文件另存为硬盘C:\SIMULIA\License\license.dat(把abaqus69.dat改为license.dat似乎也影响到子程序通过) 6、在开始-程序菜单中运行Abaqus licensing/Licensing utilities, 并设置: 进入config service选项卡- Service name 中输入Flexlm Service 1(名字可以随意输入) - Path to the lmgrd.exe file:C:\SIMULIA\License\lmgrd.exe; - Path to the license file:C:\SIMULIA\License\license.dat (注:步骤5中建立好的文件)

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

配置abaqus子程序的方法

安装VS+IVF+ABAQUS 第一步:::找到IVF初始化文件及其绝对路径(X:\是所在盘符,x是IVF版本相关的数字) IVF 10.x都是X:\...\Intel\Compiler\10.x\xxx\bin\ifortvars.bat IVF 11.x32位系 统是X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat intel64位系统 是X:\...\Intel\Compiler\11.x\xxx\bin\intel64\ifortvars_intel64.bat (注意64位是分intel64位和AMD64位,根据机器情况选择软件版本,Abaqus 也是如此,我只用过所以也只讨论intel64) 再找到已安装的Abaqus所在文件夹下的Commands文件夹中的 abq6XXX.bat文件,右键编辑打开它,在@echo off下插入下面这行命令(以32位系统IVF11.x为例) @call "X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat" 保存关闭abq6XXX.bat文件。 第二步::在开始菜单的Abaqus文件夹中找到Abaqus Verification快捷方式,点击它进行验证。 我的配置:VS2013+IVF2013 SP1 update3+ABAQUS 6.14.1 将aba6141.bat 文件中改为:

@echo off call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat" intel64 vs2013 "G:\SIMULIA\Abaqus\6.14-1\code\bin\abq6141.exe" %*

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.360docs.net/doc/b218309731.html, 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1. F为用户定义的是每个积分点所作用的荷载的大小; 2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4. NOEL,NPT为积分点所在单元的编号和积分点的编号; 5. COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)2PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)3PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)4PLOAD

ABAQUS用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

abaqus子程序通过验证方法小结

abaqus子程序通过验证方法小结 本文只对abaqus子程序验证进行小结,不提供abaqus的详细安装方法。 想要在ABAQUS里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过AbaqusVerification测试子程序以及其他ABAQUS功能是否能正常使用。 每种方法都必须先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项),这里要注意MVS(2008)的默认的custom安装内容是没有64位系统支持的,需要勾选64位系统支持项,或者直接勾选full,进行完全安装。每种软件的安装程序都最好右击以管理员身份运行。Abaqus的安装顺序可在MVS和IVF的前面或者后面,没有限制。下面介绍子程序验证方法。 方法1: 1.找到IVF的初始化文件ifortvars.bat(不同版本名称可能稍有差异), 按住shift键,右击初始化文件,选择复制为路径。 2.再找到已安装的Abaqus所在文件夹下的commands文件夹中的 abq6xxx.bat文件,右击编辑打开它,在@echo off下插入命令 @call并将第一步复制的路径粘贴在其后,关闭并保存文件。 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方式,

左击它进行验证(必须先启动abaqus license),最后如果验证文件全部pass则成功! 方法2: 1.同方法1 2.右键点击Abaqus Verification快捷方式,选择属性,在目标中的内容前面加所复制的路径并在其后边加上&&,如"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.b at"&& (注意&&后有个空格,64位系统为"...\$version$\em64t\bin\ifortvars.bat" && ),同时在Abaqus主程序的目标内容前面加同样的内容 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方

浅谈ABAQUS用户子程序

李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: Home 序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。当用户编写FORTRAN子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。 2.当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是设备号的选择是有限制的,只能取15-18和大于100的设备号,其余的都已被ABAQUS占用。二是用户需提供外部文件的绝对路径而不是相对路径。3.ABAQUS 应用程序必须由用户子程序调用。 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 下面就选出几个常用的用户子程序和应用程序进行详细解释:一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,

ABAQUS子程序USDFLD

Abaqus/CAE User's Manual 12.8.5 Defining field variables at a material point (在一个材料点定义场变量) In Abaqus/Standard you can introduce dependence on solution variables with user subroutine USDFLD. This subroutine allows you to define field variables at a material point as functions of time, of any of the available material point quantities listed in “Abaqus/Standard output variable identifiers,” Section 4.2.1 of the Abaqus Analysis User's Manual, and of material directions. Material properties defined as functions of these field variables may, thus, be dependent on the solution. User subroutine USDFLD is called at each point for which the material definition includes a reference to the user subroutine. (在ABAQUS里面,你能够用子程序USDFLD来求解变量。USDFLD允许你将一个材料点上的场变量定义为时间函数,能够使用到的材料点在用户使用手册4.2.1节中“abaqus输出变量的标识码”中被提及到。材料的特性被定义作为场变量的函数,因此依赖于求解方法。) (在每个被定义材料性能的点USDFLD能够被调用) To include a reference to user subroutine USDFLD in a material definition:

ABAQUS用户子程序复习进程

A B A Q U S用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

Abaqus6.11及marc2010子程序安装指南

Abaqus 6.11 / Marc 2010 子程序配置指南及一些安装问题 测试通过环境:visual studio 2008/intel fortran 11 安装步骤: 1.下载安装visual studio 2008(EN)必须安装英文版,不然无法定位编译器。 另外,visual studio 2010似乎也无法定位,反正08肯定可以。 2.下载安装intel fortran 11 前后的版本应该都可以。 3.安装abaqus 6.11/Marc 2010 4.安装完成后,对abaqus做如下配置: 修改ABAQUS CAE及ABAQUS verification的快捷方式属性中目标栏为类似下列语句:"D:\Program Files\Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat" &&E:\SIMULIA\Abaqus\Commands\abq611pr3.bat cae || pause 所添加的路径为intel fortran的安装路径,32位系统使用ifortvars_ia32.bat文件,64为系统使用ifortvars_ia64.bat文件,该文件同样在intel fortran的安装路径里。 修改完成以后运行verification,不出意外的话应该全部显示为pass。 5.安装完成后,对marc做如下配置: 修改D:\MSC.Software\Marc\2010\marc2010\tools下include_win32.bat文件(64位 系统为include_win64.bat)在文件开头处添加语句: @call "D:\Program Files\Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat" 上述过程即可设置好abaqus及marc所需要的子程序编译器环境。 另外,安装abaqus的过程中可能会出现内存错误(ABAQUSCAE的错误),安装完成以后也无法打开abaqus,这通常是因为ATI显卡与abaqus硬件加速不兼容的原因,解决办法为:右击桌面,点属性->设置->高级->疑难解答,把硬件加速调低到第3格或更低。 希望对大家有所帮助~^_^

Abaqus材料用户子程序UMAT基础知识及手册例子全面解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

相关文档
最新文档