首页/文章/ 详情

大量INP文件的自动提交

1年前浏览4945
分析需要对大量 INP 文件进行提交分析,在 Abaqus / CAE 中手动操作无法完成,如何开发脚本实现该功能?
『解 答』
有读者给笔者发邮件咨询如何编写脚本以实现大量 INP 文件的自动提交。也有读者经常咨询诸如“Abaqus / CAE 中没有提供某项功能,我应该如何编写脚本来实现”等问题,笔者希望通过这个自动批量提交INP 文件的实例,教给读者遇到新功能新问题,自己如何想办法来解决。
笔者在看到读者问的这个大量INP文件的自动提交问题时,首先想到下列几点:
1)它的主要功能是创建有限元分析作业时,直接提交 INP 文件,所以需要用到自动提交分析作业的命令,笔者任意选择了一个 INP 文件,并录制 Abaqus/ CAE 中提交 INP 分析作业的的对应操作,得到代码如下:

mdb.JobFromInputFile(name='Job-beam121',

inputFileName='C:\\temp\\Job-beam121.inp', type=ANALYSIS, atTime=None,

waitMinutes=0, waitHours=0, queue=None, memory=90,memoryUnits=PERCENTAGE,

getMemoryFromAnalysis=True, explicitPrecision=SINGLE,

nodalOutputPrecision=SINGLE, userSubroutine='', scratch='',

resultsFormat=ODB,multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)

2)仔细观察上述代码,发现只有 name 参数和 inputFileName两个参数是用户必须输入参数,其他参数都是 Abaqus 软件默认设置,可以将代码简化为:

mdb.JobFromInputFile(name='Job-beam121',inputFileName='C:\\temp\\Job-beam121.inp', )

提示:读者一定要注意,因为inputFileName 后的参数都选择默认值,最后面的英文逗号“,”一定不能删掉;如果提交 INP 文件的过程中,还涉及调用用户子程序,则在后面添加 userSubroutine 参数。

3)因为涉及大量 INP 文件的自动提交,则一定用到循环功能,最经常用到的循环为for... in range()循环;

4)如果通过调用程序实现自动提交 INP 文件,则 INP 文件的名字一定要有规律,否则无法找到对应的 INP 文件。本实例中,INP 文件的名字分别为inp_0.inpinp_1.inpinp_2.inpinp_3.inp(本实例的目的是说明编写脚本的方法,仅取4 INP 文件作为演示)

5)为了让分析结果 ODB 文件能够直观反映 INP 文件的名字,构造了与 INP 文件同名的 ODB 文件。

综合考虑上述5个方面,编写完成的源代码如下(\INP_Autosubmit.py):

from abaqus import *
from abaqusConstants import *
for i in range(0,4):
    jobName='inp_'+str(i)
    myJob=mdb.JobFromInputFile(name=jobName,         
    inputFileName='C:\\temp\\'+jobName+'.inp', )
    myJob.submit()
    myJob.waitForCompletion()

为了测试代码的正确性,特地构造了 inp_0.inpinp_1.inpinp_2.inpinp_3.inp4 INP 文件。在 Abaqus / CAE File 菜单下,单击 Run Script,运行 INP_Autosubmit.py文件,则依次自动提交4INP 文件,执行完毕如图2所示,在 Abaqus 的工作路径下,同时生成了inp_0.odbinp_1.odbinp_2.odbinp_3.odb文件。

图1 执行 INP_Autosubmit.py 后效果

来源:力学与Abaqus仿真
Abaqus
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-10-07
最近编辑:1年前
力学与Abaqus仿真
博士 | 副教授 达成所愿 索见未来 助力科技 实现...
获赞 414粉丝 3745文章 107课程 5
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈