Abaqus批处理自动化:Python总体思路与实施策略

平时工作中,有时会接手好多项目,或者一个项目需要使用不同的参数进行分析,并且如果涉及非线性的分析会耗时很久,为了有效的利用时间,我决定下班的时间让工作站自动计算,计算完成后工作站关机,并在此基础上,构思了使用Python自动识别工作文件夹内的待计算inp文件然后顺序提交求解。

       

而要开发一个小插件, 我们首先需要明白我们的需求以及将要用到的知识都是什么. 一般来说, 一个ABAQUS二次开发的小插件主要有两部分构成:

  1. 核心程序(Kernel): 实现根据.inp文件建立job并提交计算, 发送提示邮件, 并拥有自动关机功能.
  2. 操作界面(GUI): GUI界面是面向使用者的, 同时也是向核心程序传输数据的关键.




01—核心设计需求分析


首先我们来梳理一下对于核心程序我们有什么样的设计需求, 然后再根据这些需求来确定要使用的函数与方法, 再对不了解的函数与方法进行查询, 最终完成所有逻辑设计.


设计需求:

  1. 因为求解过程会产生很多的临时文件或者我们不关心的文件, 所以希望在求解结束后可以自动进行删除, 这样我们就要建立一个结果文件夹, 用于存放对我们有用的结果和过程文件.
  2. 可以识别选定目录下的所有待求解文件(.inp).
  3. 可以根据.inp文件自动提交求解器求解.
  4. 在求解全部完成后, 发送提示文件至指定邮箱.
  5. 可以选择是否在计算完成后关闭计算机


针对以上设计需求, 我们可以整理一下流程如下:

使用python进行ABAQUS批处理-总体思路的图1

但是以上的流程似乎有不足之处, 在于以下几个方面:

  1. 由于非线性问题的求解非常消耗内存和CPU, 如果多个inp同时求解给对计算机的性能带来极大的挑战.
  2. 全部提交求解后不等待求解完成就会执行后面的三步, 直接关闭计算机.
  3. 我希望可以得到每个inp计算情况的报告


所以我们需要一个每次提交inp之后都等待其求解完成之后再提交下一个inp的方法, 并且在循环内进行发送邮件.所以流程更改如下:

使用python进行ABAQUS批处理-总体思路的图2

如此流程, 目前看来不存在逻辑问题, 其详细实现在后续文章中.

 


02—操作界面需求分析

根据上述的核心程序需求的分析结果, 我们可以设计一下GUI的设计需求:

  1. 需要提醒一下使用者, 我们将删除选定目录下所有我们不关心的文件
  2. 要选择一个文件夹, 并将其全路径传入核心程序
  3. 可以自定义求解时所有用的处理器数目
  4. 可以输入接收邮件的邮箱地址
  5. 可以选择是否在计算全部完成后关闭计算机


使用ABAQUS自带的RSG Gui设计工具设计操作界面, 该工具的位置为:

使用python进行ABAQUS批处理-总体思路的图3



打开该工具后设计开发页面如下:

使用python进行ABAQUS批处理-总体思路的图4

此时可以发现仅仅通过RSG生成的文件选择工具只能选择文件, 而不能选择文件夹, 不能完成我们的使用需求, 不过可以查阅该选择器的帮助文档, 通过修改器参数而变成一个选择文件夹的选择器(ABAQUS的二次开发功能强大, 不可能不提供一个文件夹选择的方法)


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空