我的ABAQUS/CAE二次开发自学攻略

您所在的位置:网站首页 abaqus入门教程 我的ABAQUS/CAE二次开发自学攻略

我的ABAQUS/CAE二次开发自学攻略

2022-11-13 17:42| 来源: 网络整理| 查看: 265

附赠仿真学习包,包含结构、流体、电磁、热仿真等多学科视频教程,领取后永久免费收看,有需要的点击链接查看:知乎粉丝仿真学习包

作者:燕飞 仿真秀专栏作者

一、为什么需要二次开发

当一个公司或科研机构想要获得定制化的结构分析工具时,通常可以选择自行开发响应的程序或使用通用有限元软件进行二次开发。从头进行开发的好处在于可以获得高度定制化的程序,完全契合用户的需求,且不需要付出额外的版权支出,但自行开发的软件也存在诸如不稳定,求解效率低下,缺乏验证和检验等诸多弊端。尤其是有限元求解器的开发难度巨大,需要持续的投入。

二次开发则意味着可以使用现有的商业软件经过多年发展的,成熟稳健的求解器,且可以较好地契合用户需求,快速迭代更新,但需要持续为商业软件支付费用。

二、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二次开发的书籍。

图1 市面上现有的ABAQUS书籍中较适合初学者的部分

四、ABAQUS脚本与子程序

说起ABAQUS的二次开发,首先需要了解到的一点就是ABAQUS软件的结构。和很多著名的有限元软件一样,ABAQUS软件的最初版本只包含了求解器,并没有相关的前后处理程序。

ABAQUS/CAE的出现终结了ABAQUS“裸奔”的现状,但是ABAQUS的求解器使用Fortran开发,而CAE采用Python开发,两个软件只能通过CAE写出文本文件,求解器再读入文本文件这种低效率的方式进行交互,也造成了二次开发的割裂——有的用户需要同时使用Python和Fortran两种语言分别针对前后处理和求解器进行开发,才能得到想要的效果。

因此,在进行二次开发时,用户首先需要解决的问题就是确认自己需要的开发的模块,是对CAE开发还是对求解器开发,才能确认使用何种语言进行开发,以防南辕北辙。

图2 ABAQUS软件的结构

总的来说,脚本适合解决ABAQUS/CAE中可以完成,但因存在大量重复十分耗时的工作,如图3中网架的定义。而子程序则用于生成ABAQUS中无法实现的功能,如全新的单元或材料本构关系等。

图3中网架的定义是ABAQUS/CAE二次开发的典型应用场景。使用脚本可以快速生成任意尺寸的平面四角锥网架并自动进行分析和优化。

图3 使用ABAQUS脚本生成的四角锥平面网架

当一个公司或科研机构想要获得定制化的结构分析工具时,通常可以选择自行开发响应的程序或使用通用有限元软件进行二次开发。从头进行开发的好处在于可以获得高度定制化的程序,完全契合用户的需求,且不需要付出额外的版权支出。二次开发则意味着可以使用现有的商业软件经过多年发展的,成熟稳健的求解器,且可以较好地契合用户需求,快速迭代更新,但需要持续为商业软件支付费用。

五、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二次开发与ANSYS APDL语言对比。APDL是专门为有限元分析定制的脚本语言,其最大的优势在于功能上更贴近有限元分析,因此语法较短,最大的弊端在于语法老旧,更新缓慢,很大程度上还是类似于Fortran77。尤其是近年来ANSYS公司对APDL的支持力度有所减小,最终似乎有完全消亡的趋势。但ANSYS存在用户庞大,资料众多,不仅通用资料较多,大部分行业也有十分细致的专业资料和专著。

ABAQUS/CAE的开发则基于Python语言开发,Python语言近年来十分流行,更新迭代很快,ABAQUS虽然使用了较为老旧的Python 2.7(已经于2020年1月1日停止支持),但相比APDL和 Fortran仍然具有诸多先进的特性。Python作为通用语言,除了用于有限元分析外,还可以方便的为ABAQUS引入诸多不可思议的新功能,如采用scipy实现多种算法下的结构优化,使用tkinter或者Qt制作GUI界面,甚至是在分析完成时通过邮箱和短信通知,都是十分方便的。这一点是APDL完全无法想象的。

七、学习ABAQUS/CAE二次开发的方法

作者:燕飞,仿真秀专栏作者

相关阅读推荐:

Abaqus基础知识系列讲堂(1):Abaqus 中的文件类型及功能

ABAQUS 2020 VS 2019 IVF 2020子程序环境设置

ABAQUS/CAE 二次开发基础与实战15讲-获得ABAQUS二次开发的实例

粉丝福利

仿真秀为知乎粉丝整理的仿真学习包,包括结构、流体、电磁、热仿真、设计等多学科原创视频教程,领取后永久免费收看,点击链接即可领取。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3