Abaqus二次开发------利用非线性弹簧模拟粘结滑移

笔者为科研界最后的摆烂王,目前利用python代码对Abaqus进行二次开发尚在学习中。欢迎各位摆烂的仁人志士们和我一起摆烂!ps:搞什么科研,如果不是被逼无奈,谁要搞科研!


本期为大家带来在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编程能力的方法,多看多学,多改多背。

也欢迎各位大佬在python和二次开发方面给小弟提一些建议与指导,感谢!

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

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

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

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

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

以上三类脚本都可以私聊获取购买

家人们,我们下次再见,拜拜!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值