ABAQUS 后处理的二次开发


ABAQUS 后处理二次开发






ABAQUS软件为满足用户对结果后处理的更多需求,向用户提供了基于Python语言的后处理二次开发功能。Python语言是一种面向对象的脚本语言,它功能强大,既可以独立运行,也可以用做脚本语言,特别适合快速的应用程序开发。ABAQUS就是向用户提供了很多库函数,通过Python语言调用这些库函数来增强ABAQUS的后处理功能。

ABAQUS脚本接口是Python语言的一个扩展,可以使用Python语言编制脚本接口的可执行程序,从而自动实现重复性的工作、创建和修改模型数据库、访问数据库的功能。ABAQUS在扩展的同时,额外提供了约500个模型对象,

大致可分为3类。其中session对象用来定义对象、远程队列、用户定义的视图等;mdb对象包含计算模型对象和作业对象;odb对象包含模型数据和计算结果数据,如图1所示。这三类模型对象又分别包含各类子对象,因此对象模型的关系是比较复杂的。而在后处理的二次开发过程中,就是读取odb对象中的数据,进行计算和其他相应的处理,输出满足用户需求的数据形式。

ABAQUS 后处理的二次开发的图1

图1  odb模型对象

从图5-32中可以看到,模型数据是用来对模型进行定义和分析的;结果数据也就是子对象Steps,是主要考虑的对象类型,它包括分析步、分析步中一系列的增量步、场变量输出和历史变量输出。不同类型的数据在ABAQUS中表示为不同的对象模型,利用面向对象的Python脚本语言可以对这些对象进行有效操作。

ABAQUS 后处理的二次开发的图2
1

后处理二次开发的一般步骤


在进行ABAQUS后处理二次开发之前,用户必须明确二次开发所要实现的功能,并且实现设计功能的流程。后处理的二次开发一般按照以下四个步骤进行。

(1)文件的读写和复制:通过Python语言提取Odb文件中提供的OdbAccess模块,实现对计算结果数据库文件的读写。除此之外,有时还需要对dat文件和fl文件进行数据的读取。文件的复制使用了Python语言中的shutil模块。

(2)数据的读取:用openOdb函数打开odb文件,通过模型数据的子对象获取所要操作的模型范围,通过结果数据的子对象获取上述范围的结果数据。

(3)数据的操作:对所读取的数据按用户自定义的公式或理论进行操作。

(4)数据的输出:对数据操作所得到的结果进行写入操作,对于在odb文件中写入的结果需要通过fieldOutput函数建立新的场,然后通过addData函数将上述结果文件写入新建立的场中。对于通过.dat文件输出的文本结果则需要通过write等函数写入文本。

ABAQUS 后处理的二次开发的图3
2

后处理二次开发的实例


本例以悬壁梁模型为例,计算不同分析步之间位移的差值。其中分析步LC1为在悬壁梁远端受一向下100N的载荷作用,分析步LC2为在悬壁梁中点受一向上50N的载荷作用。如图2所示。

ABAQUS 后处理的二次开发的图4

图2  悬臂梁的载荷

新建悬臂梁模型,对其进行材料赋予、网格划分、载荷边界施加等前处理操作,这里不再赘述。完成前处理操作后,新建名为ficldOperation的Job并提交运算,获得fieldOperation.odb文件。

下面进行文件后处理的二次开发。

Step 1:在ABAQUS工作目录下新建记事本文件,修改后缀名为.py。本例中Python文件命名为fieldOperation.py,代码及说明如下。

ABAQUS 后处理的二次开发的图5

Step 2运行Python。打开ABAQUS/CAE模块,执行【File】/【Run Script.】命令,选择上一步新建的fieldOperation.py。

Step 3:执行【File】/[Open..】打开fieldOperation.odb,此时就能看到新生成的分析步“user”。本例的结果如图5-34和图5-35所示。

ABAQUS 后处理的二次开发的图6

图3  水平方向位移U1

ABAQUS 后处理的二次开发的图7

图4  竖直方向位移U2

文章来源:精准CAE部落

默认 最新
当前暂无评论,小编等你评论哦!
点赞 3 评论 收藏 5
关注