作者:燕飞 ,仿真秀专栏作者
一、为什么需要二次开发
当一个公司或科研机构想要获得定制化的结构分析工具时,通常可以选择自行开发响应的程序或使用通用有限元软件进行二次开发。从头进行开发的好处在于可以获得高度定制化的程序,完全契合用户的需求,且不需要付出额外的版权支出,但自行开发的软件也存在诸如不稳定,求解效率低下,缺乏验证和检验等诸多弊端。尤其是有限元求解器的开发难度巨大,需要持续的投入。
二次开发则意味着可以使用现有的商业软件经过多年发展的,成熟稳健的求解器,且可以较好地契合用户需求,快速迭代更新,但需要持续为商业软件支付费用。
二、ABAQUS/CAE二次开发的基本现状
以前的时候经常听到一种错误的观念,认为复杂的,需要通过脚本来生成模型的有限元分析工作,如周期性重复的结构,或需要大量分析步的复杂分析流程,以及行业定制分析工具,都只能通过ANSYS的APDL语言来完成。在ABAQUS的使用中,也会遇到一些修改INP文件的操作,所以很多初学者经常将INP文件和APDL语言相比。如果将这两个相比,则会得出ABAQUS的INP文件结构不够灵活,没有逻辑操作命令(如判断,循环等相关结构),无法有效的进行参数化和二次开发的结论。
其实之所以形成上述偏见,完全是因为没有认识到ABAQUS可以使用Python进行开发。形成这样的局面的主要原因是ANSYS在7.0版本之前,都是依赖于其传统界面。ANSYS的传统界面进行GUI操作的效率较低,因此通常采用命令行的方式交互。至今市面上仍然存在极大量的讲述APDL语言的书籍,因此读者较容易接触到。相比之下ABAQUS本身的所有操作都可以不依赖脚本实现,GUI 操作效率较高,且二次开发的资料比较少。
三、ABAQUS/CAE二次开发的学习资源
我最早接触ABAQUS/CAE的二次开发的时候,市面上只有一本关于ABAQUS二次开发的书籍——曹金凤老师的《Python语言在ABAQUS中的应用》 ,且这本书在北方工业大学图书馆中被归类到TP391类,即计算机类书籍中,而不是我通常活动的O24类(计算数学,有限元书籍通常归为此类),十分偏僻,因此初期的学习十分困难。
后来江丙云博士出版了《ABAQUS Python二次开发攻略》 ,贾利勇老师出版了《Abaqus GUI程序开发指南》 , 在此期间又通过江丙云博士的文章了解到了《PYTHON SCRIPTS FOR ABAQUS :LEARN BY EXAMPLE》这本非常优秀的教材,160美元的价格让一向买书如山倒的我也十分心疼。
此外还有一本台湾出版的《一劍雙刃:讓CAE如虎添翼的ABAQUS+Python》 ,也是江丙云博士所写,尚没有拜读过,不过看目录似乎与《攻略》区别不大。王鹰宇博士翻译了《ABAQUS GUI工具箱用户手册》 ,对没有任何GUI开发经验的我来说十分艰涩难懂。
去年(2019年)6月出版了《深海管道试验的数值模拟理论及应用:ABAQUS参数化设计中的Python脚本》 。这些书也就是目前能找到的所有ABAQUS/CAE二次开发的书籍。
四、ABAQUS脚本与子程序
说起ABAQUS的二次开发,首先需要了解到的一点就是ABAQUS软件的结构。和很多著名的有限元软件一样,ABAQUS软件的最初版本只包含了求解器,并没有相关的前后处理程序。
ABAQUS/CAE的出现终结了ABAQUS“裸奔”的现状,但是ABAQUS的求解器使用Fortran开发,而CAE采用Python开发,两个软件只能通过CAE写出文本文件,求解器再读入文本文件这种低效率的方式进行交互,也造成了二次开发的割裂——有的用户需要同时使用Python和Fortran两种语言分别针对前后处理和求解器进行开发,才能得到想要的效果。
因此,在进行二次开发时,用户首先需要解决的问题就是确认自己需要的开发的模块,是对CAE开发还是对求解器开发,才能确认使用何种语言进行开发,以防南辕北辙。
总的来说,脚本适合解决ABAQUS/CAE中可以完成,但因存在大量重复十分耗时的工作,如图3中网架的定义。而子程序则用于生成ABAQUS中无法实现的功能,如全新的单元或材料本构关系等。
图3中网架的定义是ABAQUS/CAE二次开发的典型应用场景。使用脚本可以快速生成任意尺寸的平面四角锥网架并自动进行分析和优化。
当一个公司或科研机构想要获得定制化的结构分析工具时,通常可以选择自行开发响应的程序或使用通用有限元软件进行二次开发。从头进行开发的好处在于可以获得高度定制化的程序,完全契合用户的需求,且不需要付出额外的版权支出。二次开发则意味着可以使用现有的商业软件经过多年发展的,成熟稳健的求解器,且可以较好地契合用户需求,快速迭代更新,但需要持续为商业软件支付费用。
五、ABAQUS/CAE二次开发的成功案例
CSEPA为中南建筑设计院基于ABAQUS开发的,面向高层、大跨等复杂建筑结构的分析系统。该系统采用AutoCAD作为前处理器,ABAQUS作为求解器,ABAQUS/CAE作为后处理器,实现了复杂建筑模型的建模,计算和后处理,总体功能类似于CivilFEM。
图4 CSEPA界面
贾利勇等在工作中只做了大量的用于飞机结构设计和复合材料分析的相关插件,这些插件中的一部分在其著作《ABAQUS GUI程序开发指南》中有所反映,但也许是出于保密等原因,此书重点讲解了GUI的开发流程,对其核心程序并没有过多涉及,因此有大量的工作目前仍无法看到,十分遗憾。
达索官方也制作了大量的插件,诸如用于焊接过程精细化分析的AWI,用于RVE(代表性体积单元)分析的ABAQUS FE-RVE 等诸多插件。
六、ABAQUS/CAE开发与ANSYS APDL的对比
七、学习ABAQUS/CAE二次开发的方法
戳此完整阅读全文:我的ABAQUS/CAE二次开发自学攻略
相关阅读推荐:
ABAQUS/CAE 二次开发基础与实战15讲-获得ABAQUS二次开发的实例
一套Abaqus常用子程序的二次开发和复杂应用攻略_