使用Python对Abaqus进行二次开发

  • Posted on
  • by

Abaqus提供了基于python的程序接口,方便进行二次开发。利用这些接口可以实现自动化建模、批量处理、结果分析等功能。

最近,我做了一个小案例,就是使用python对abaqus进行二次开发,实现生成随机变量,创建有限元模型,提交计算,最后提取指定位置的结果,并输出到文件。

在此过程中,有一些有用的信息值得记录一下。

首先,在使用python进行二次开发之前,当然是要熟悉这个语言。熟悉的程度除了变量、语法、关键字等基础知识,还应该了解类相关的知识,毕竟对于一个面向对象的语言,很多功能都要用到类。Abaqus所提供的模块,也是面向对象的。但是,并不需要对每个模块的具体功能都那么熟悉,如果了解python类定义的逻辑,又熟悉abaqus的操作,要能使用这些模块就比较容易上手,使用时看看文档,以及用docmethods等对象进行查看就可以比较快的熟悉各模块的属性、方法。

其次,abaqus执行脚本有不同的方式,包括在软件界面直接运行(三种方式)。调试的时候,最好是在窗口的Kernel Command窗口进行调试。以文件名为script.py脚本为例,该窗口下,执行脚本的命令为:execfile('script.py')。单个命令也可以在这边进行调试。编写好的命令,最好是采用无图形界面的方式执行,方法为在脚本所在位置打开命令行窗口,输入命令为:

abaqus cae noGUI=script.py

然后,除了使用abaqus提供的模块,还可以使用其他一些流行的模块,比如os,numpy,matplot,等等,从而实现很多abaqus不直接提供的功能。在进行脚本编写的时候,灵活的使用宏录制功能、rpy文件、jnl文件等记录的命令作为基础,可以大幅提高开发的效率,而不是从头开始编写。

最后,遇到问题,还是要多看看文档,对于函数的接口,官方的帮助文档是最权威的,搜索引擎也可以找到很多有用的信息,也可以阅读一些别人总结的技术文档,比如后面链接的这篇文章就很有帮助。

参考文章:Efficient FE Modelling Course