技术发展到现在,参数化分析的概念已经深入人心。只需要定义几个参数,定义相关的脚本,原本繁复的工作就可以一劳永逸地完成。同样的,在进行有限元分析时,利用相关的脚本进行参数化建模分析,可以极大地提高我们的分析效率。今天就给各位介绍一下基于python的ABAQUS参数化分析。
一 与ABAQUS的交互
如图所示,ABAQUS在输入阶段主要通过GUI界面,命令行(CLI)以及脚本实现。这些命令都通过用python编写的接口与cae的内核交互得到计算结果。
其中,ABAQUS相对于ansys的一大优势是gui界面(cae)界面相对友好,通过cae界面建模相对简便。但是当面临可变庞大的模型数量时,一个一个模型的建立并读取数据就显得有点力不从心。想起小编上学的时候建立的一个钢筋混凝土框架分离式模型,建模精度精细到一个多层框架的每根钢筋,同时需要提取每根钢筋的应力。。。。。。不得不佩服当年的毅力。
这时候,如果利用脚本进行进行参数化建模并提取数据,就显得事半功倍。也就是前文的script方式建模。有点相见恨晚的感觉。
二 如何学习ABAQUS的二次开发
个人觉得学习ABAQUS的二次开发并没有什么简单的方法。首先还是要掌握好python或者C++。其次再来学习相关的二次开发知识。
目前市面上也有一些介绍ABAQUS二次开发的书籍。主要有:
(1)曹金凤老师《Python语言在Abaqus中的应用》
(2)苏景鹤的《ABAQUS Python二次开发攻略》
(3)贾利勇的《Abaqus GUI程序开发指南(Python语言)》
其中,小编接触过前两本资料。都是前半部分介绍python语言的基础,后半部分介绍ABAQUS脚本的相关知识。要是对python学习的欲望不强烈,建议可以忽略专门的python书籍。
除以上资料外,小编个人还是强烈推荐参考ABAQUS官方的手册。
介绍二次开发的官方手册有:
(1)ABAQUS script user’s manual
(2)ABAQUS scripting reference manual
其中 script user’s manual主要是关于二次开发方法的说明以及部分案例。而scripting reference manual则主要是ABAQUS二次开发的所有函数的路径以及每种函数的使用方法。
三 ABAQUS二次开简述
用ABAQUS进行二次开发的逻辑其实和我们手动用cae建模差不多,就是用代码代替鼠标操作。
abaqus基于python扩展出500多种对象模型,它们之间存在着不同的层级和包含关系,通常可以分为三大类:Session、MDB以及Odb,分别针对ABAQUS的不同模块。其中根据颜色分为Container容器和Singular object单个对象,Container中还包含有其它对象,而Singular object仅为自己。
mdb对象主要针对于cae建模前处理部分,odb主要针对于数据提取后处理部分。而session主要针对一些视图等功能。
四 ABAQUS二次开发案例
案例一 钢梁开洞模型
最近项目中遇到了有关钢梁开洞的相关问题。小编利用ABAQUS的二次开发,建立了开洞钢梁的ABAQUS参数化分析脚本,并自动提取计算结果。大大提高了分析的效率。
建立不同大小的洞口
不同洞口位置(划分网格)
不同的洞口个数
通过ABAQUS二次开发脚本,完成了基于对工字钢在不同洞口位置,不同洞口大小以及不同洞口个数等参数的参数化建模,大大提高了分析效率。
案例二 框架模型
本案例为一混凝土框架结构的分离式模型,可任意指定层数,梁柱截面尺寸等。同时可以看到混凝土结构内部的配筋也都完全建立其中。
往期精选: