简明 Python 在 ABAQUS 二次开发中的应用

目前 ABAQUS 的二次开发有两种,求解器层次的 Fortran 和前后处理层次的 Python。

1. 简介

在说明 ABAQUS 和 Python 能做什么之前,我们必须现弄清楚 ABAQUS 中两种二次开发的区别。我们需要了解一下 ABAQUS 软件包的架构。

ABAQUS 软件包包括两大部分:用于进行前后处理的 ABAQUS/CAE(包括 ABAQUS/GUI 和 ABAQUS/Kernel)以及用来对有限元模型进行求解计算的求解器,包括 ABAQUS/standard、ABAQUS/Explicit、ABAQUS/CFD 或者 ABAQUS/Aqua。

ABAQUS/CAE 运行之后会产生 3 个进程,分别为:abq6141.exe、ABQcaeG.exe(ABAQUS/CAE GUI)和 ABQcaeK.exe(ABAQUS/CAE Kernel)。

2. GUI 操作

GUI 或者负责收集建模参数交给 Kernel 建模并最终形成 inp 文件,或者打开现有的 ODB 文件,提取数据并显示云图,这一过程基本上都是 Python 语言完成的。达索公司为 ABAQUS/CAE 提供了丰富的接口,如对模型操作的 MDB 相关接口,对结果数据 ODB 操作的接口,以及常用的 CAE 相关的 session 操作的接口。

ABAQUS/Python 二次开发主要就是基于这一部分进行的,目的或者是快速自动建模并形成 inp,或者是处理现有的 ODB 结果并提取所需数据。

attachments-2020-06-pvLd1FPi5ef0ae4153b04.png

3. inp 文件

无论通过 CAE 或者手动编辑最终都要形成 inp 文件,它记录建立的网格模型、载荷以及边界条件和分析类型等,它是 ABAQUS standard/ ABAQUS explicit……等求解模块唯一可识别的输人类型。这些计算模块就可以利用 inp 文件所描述的网格模型和边界条件求解问题的解并记录到结果文件中。像 ABAQUS/ Standard 等求解器都是使用 Fortran 语言(或者 C /C++) 实现的,这些程序可以满足大部分求解分析需求。但对一些比较复杂的问题,ABAQUS 为用户提供了对基本模块功能进行扩展的接口,如我们熟知的用于描述复杂材料本构的材料模型子程序(如 UMAT/VUMAT) 等:用于描述复杂加载方式的 DLUX 或者 DLOAD 等;用于描述变化边界条件的 UMOTIONS/UMESHMOTION 等;以及用于描述用户定义特性单元的 UEL。这个层次的二次开发都必须使用 Fortran 语言来完成。

  • 发表于 · 2020.06.22 21:14 · 阅读 · 262

[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。

0 条评论

请先 登录 后评论
猜猜我是谁
王玥琪

14
提问
17
回答
12
文章