子程序介绍五:材料本构子程序hypela
之前已经介绍了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),第三部分则是将应力应变关系表达出来,即应力=刚度阵*应变。
下面附上一个单轴拉伸的例子。
**** Hidden Message ***** 这个要看看~~学习 看看~~学习yixia 请问这是什么程序语言啊? fortran。由于我用的marc2010版本, 所以使用的是fortran10.0。
子程序的具体格式在marc根目录下user子目录中,可以将所需要使用的.f文件从中拷出来,只需要添加相应的代码就可以了 include 不需要写完全路径吧。
很好,很强大,呵呵。 这个要学习,谢谢楼主 好东西,谢谢啊! 谢谢诶,:victory: 呵呵 赶紧学习下 看看 学习一下 谢谢分享,学习学习~! 材料本构方程是做计算的基础,也是难点,学习 谢谢 ,正要学习这个 谢谢分享,学习MARC中 先学习学习 谢谢楼主 请问:在hypela中如何提取时间增量啊,我用timinc总为零啊 牛帖必推
參考參考 太好了,学习一下 谢谢lz一直以来写的子程序介绍帖子,对我帮助很大。
想问LZ一个问题,关于子程序Uspcht,这个子程序的功能是设定材料的比热。我的问题是在Mentat2007中,如何激活这个子程序?
有其他高手回答也好,这里先谢过:)