这是我第一次实践各向异性超弹性本构子程序UANISOHYPER_INV,中间走了几步弯路,好在最后问题都解决了。把这个过程记录下来,为后人鉴。
1 超弹性本构
刚接触超弹性本构的时候,很不适应。因为我之前研究的本构,都会给出非常明确的应力应变关系。比如最简单的:应力=刚度矩阵×弹性应变。
超弹性本构一般不这么给,给的都是应变能和不变量之间的关系。比如这样:
对于新的东西,我本能地用原有的知识体系去套。于是开始拼命的去检索相关文献,试图找到超弹性本构应力和应变的关系到底是怎么表达的。
结果呢就是,扑街。大家都在各种秀张量,秀应变能,秀不变量。我一度认为这些人闲着没事,净搞形式。
但是也不是一无所获,文献中的蛛丝马迹都指向了UANISOHYPER_INV子程序。
UANISOHYPER_INV子程序是干啥的?它就是专门用来定义各向异性超弹性本构的。那么自然的你就会想,是不是还有专门定义各向同性超弹性本构的呢?当然,这个子程序叫UHYPER。
看懂了UANISOHYPER_INV子程序的设定,你就会恍然大悟,原来真的不需要定义应力应变关系,只要知道应变能和不变量的关系就行了啊。
UANISOHYPER_INV子程序的基本结构如下:
其中主要变量的介绍如下:
也就是说,在UANISOHYPER_INV子程序中定义出应变能、应变能对不变量的导数即可。
于是我按照帮助文档的提示,一步步完成了子程序编写。但是在测试的时候,问题接踵而来。
做了一个简单拉伸算例。但是提交计算时候,总是报错:
报错信息告诉我,可压缩性材料不能用杂交单元。这个确实不能用,但是我好像没有用啊。
赶紧去检查网格属性和材料属性设置吧:
确认过眼神,我没设置错,但是它就是报错。
干脆将错就错,把网格属性改成减缩积分。然后它竟然可以算了。。。。
但是没有能够完全收敛,算了两步就死了。更夸张的是,神奇的现象出现了。
我拉伸了一个柱子,结果出来一个纺锤体:
职业生涯第一次算出拉伸膨胀的效果,上网一搜,确实有些特殊材料拉伸膨胀,但是橡胶这样常规材料是不会的。感觉世界观被刷新了一下。这个时候我开始怀疑,一定是我的本构搞错了,什么本构出来结果,妥妥的本构问题。本构主要就是应变能的定义,以及应变能对不变量的求导。为了找出本构问题,我反复复验推导过程。然而无论怎么复验,依旧拉伸膨胀。
我开始怀疑当年学了假的微积分,以致于现在的本构算出一个王八结果。后悔当年数学分析课总是睡觉,老师的山东口音至今回荡耳边。
没办法了,用ABAQUS自带的UANISOHYPER_INV子程序和试试吧,这个总是不会错的吧。
从安装文件夹下面找到子程序和验证模型。一番操作提交了计算。
结果:
差一点当场砸电脑,还是告诉我可压缩性材料不能用杂交单元。那我继续改成减缩积分单元,将错就错下去。
结果还是膨胀。。。。
当场崩溃,回想昨夜调到12点程序,转眼又搞了一天,我心灰意冷。ABAQUS自带本构和模型,都报错都算不对,这肯定是在针对我。
冷静下来之后,我开始想。明明我设置了不可压和杂交单元,但是报错告诉我我是可压,那么到底可压还是不可压?
我决定打开Inp文件看个究竟,这一看不要紧,一看吓一跳。
Inp文件明明白白显示,材料属性可压缩!!也就是说,在软件界面勾选了不可压,但是这是个假象,勾了等于白勾。
激动的心,颤抖的手,我颤颤巍巍把inp文件可压改成不可压,单元改成杂交单元。然后再job里面导入这个inp提交计算。
终于成功了!!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删