Abaqus二次开发实践:非线性弹簧模拟粘结滑移

本期为大家带来在Abaqus中批量建立两点弹簧的python脚本编辑,在这段时间利用python对Abaqus进行二次开发的过程中,也是有一些感慨想要分享给大家。

python是一门很优秀,理解起来也并不复杂的编程语言,对于像笔者这种专业为岩土工程的工科生来说,python的主要用处,一个在于如何通过编程,实现在有限元软件或者离散元软件中进行快速建模,另一个则是如何快速提取软件模拟分析出来的数据,并且绘制各种各样的数据图来供分析或者写论文使用。

所以对于python语言的精通程度,对于软件进行二次开发来讲,并不需要像计算机专业可以将各种代码信手拈来,可以用精美的代码来构建起屏幕上绚烂的色彩。

在对软件进行二次开发时,一个很重要的参考信息源,就是软件自带的用户手册。熟悉手册里面提供的python脚本参考案例,与软件中各功能所对应的python脚本,是做好二次开发的第一步。对于进行二次开发的python初学者而言,没有太多时间学习完基础知识之后,还可以进行更深层次的代码练习,往往都是在边学的过程中,边扒着用户参考手册做开发。

小编也是如此。

二次开发的另一要点则是,构建起正确的,简易的,开发思路。

以批量建立弹簧为例,编者的思路为首先确定下来在软件中,对两个点,所建立弹簧时的python代码。将此问题解决之后,便可以在此基础之上,通过循环建立起来多个节点下的两点弹簧。

那么要如何确定,用python代码将相对应的两个点作为一个弹簧区域时的两个node的编号呢?

于是,编写弹簧的代码思路就出来了。

第一:首先用python脚本编写程序,来判断两个不同的node集合中,相近的两个node,并将成对提取出来,放进region区域内,构成由N个node对组成的弹簧 regionPairs。

判断时可以用同一个坐标下,不同node编号的两个节点构成一对。(适合两个面相重合,且划分网格时形成的节点数目一样,只是node编号不一样,但空间位置相同,笔者试过该方法,但是有点问题,应该是网格划分的时候没有对齐好点)

也可以用两个点距离判断,当两个点的距离小于一个极小值的时候,可以认为这两个点为建立弹簧时的region点。(这个是比较通用的)

第二:将代码按照正确的顺序,添加进去Abaqus自带的,所必须的代码段。比如代表Assembly的

a = mdb.models['Model-1'].rootAssembly

在第一步的摸索中,可以根据遇见的问题,进行网上搜索获取相应的代码来解决问题,笔者便是这样,并且认为这是对于自己来说,一个很好的提高python编程能力的方法,多看多学,多改多背。

最后附上建立起两点弹簧的截图

这是一个空心圆环,外套一个圆壳,圆壳刚好和圆环外表面重合。


文章中给出的为建立"两点弹簧"的案例图片,属于线性弹簧,对于非线性弹簧的编码思路,与之是完全一致,所以不再更新赘述。

不管是两点弹簧,还是非线性弹簧,都可以在研究内容"钢筋在混凝土中的拉拔性能"用作模拟剪切滑移关系的工具,这对于想直接定义其剪切滑移本构关系的用户来说,是很方便的,可以降低采用Cohesive单元或者接触来模拟粘结滑移的收敛困难。

而对于研究隧道工程的用户来说,荷载-结构法所采用的弹簧为接地弹簧,编码思路类似,但是略有不同,毕竟Abaqus不如Ansys这么面向工程,不过它更科研,功能也更强大,结果也更可靠。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空