- 积分
- 10
- 注册时间
- 2007-1-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
之前已经介绍了flux、film、uactive和forcem子程序,而最难的子程序或许就是今天要介绍的hypela了。本人是焊接专业出身,而hypela子程序涉及了诸多力学方面的知识,因此也只是一知半解,发此贴纯为抛砖引玉,希望各位这方面的牛人如陆老师、wangxiaoteng师兄能够给出更多的这方面的介绍。另外,Abaqus版这方面的资料较多,而Abaqus和Marc子程序接口几乎相同,有需要这方面资料的朋友可以去Abaqus版逛逛。
言归正传,这次要介绍的是最简单的弹性本构。具体如下:
subroutine hypela(d,g,e,de,s,temp,dtemp,ngens,n,nn,kc,matus,
* ndi,nshear)
include 'C:\MSC.Software\MSC.Marc\2005\marc2005\common\implicit'
include 'C:\MSC.Software\MSC.Marc\2005\marc2005\common\concom'
dimension e(*),de(*),temp(*),dtemp(*),g(*),d(ngens,ngens),s(*)
dimension n(2),et(6),matus(2)
integer k1, k2
real e0, enu, ebulk, eg, elam
e0=200000
enu=0.3
ebulk=e0/(1.-2.*enu)/3.
eg=e0/(1.+enu)/2.
elam=(ebulk*3.-eg*2.)/3.
do k1=1, ndi
do k2=1, ndi
d(k2,k1)=elam
end do
d(k1,k1)=eg*2.+elam
end do
do k1=ndi+1, ngens
d(k1,k1)=eg
end do
do k1=1, ngens
do k2=1, ngens
s(k2)=s(k2)+d(k2,k1)*de(k1)
end do
end do
return
end
下面解释一下,从子程序的主体部分可以看出,分为了三个部分。第一部分是赋初值,第二个部分是写单位刚度阵d(k1,k2),第三部分则是将应力应变关系表达出来,即应力=刚度阵*应变。
下面附上一个单轴拉伸的例子。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|