abaqus批量提交inp文件进行计算

当分析参数较多时,可能同时有多个模型需要计算。但只有一台电脑的话需要人守着一个一个提交模型文件,耗费大量人的精力。

实际上只需要几行代码,就可实现电脑一个接一个自动计算模型。

话不多说实现方式如下:(不需要下载任何软件)

(1)新建一个txt文件,将以下内容作为表头固定输入。

from abaqusConstants import*
import job

(2)下面为计算代码

mdb.JobFromInputFile(name='result-1',inputFileName='cal-1.inp',numCpus=62,numDomains=62)
mdb.jobs['result-1'].submit()
mdb.jobs['result-1'].waitForCompletion()

resut-1为计算后odb文件名称,inp文件为模型计算文件,numCpus,numDomains对于计算机的线程数

当同时计算多个模型文件时,将计算代码copy多次即可,注意odb文件名不要重复,例如

mdb.JobFromInputFile(name='result-10',inputFileName='cal-10.inp',numCpus=62,numDomains=62)
mdb.jobs['result-10'].submit()
mdb.jobs['result-10'].waitForCompletion()

mdb.JobFromInputFile(name='result-11',inputFileName='cal-11.inp',numCpus=62,numDomains=62)
mdb.jobs['result-11'].submit()
mdb.jobs['result-11'].waitForCompletion()

mdb.JobFromInputFile(name='result-12',inputFileName='cal-12.inp',numCpus=62,numDomains=62)
mdb.jobs['result-12'].submit()
mdb.jobs['result-12'].waitForCompletion()

以上代码计算了3个模型,先计算Cal-10.inp,再计算Cal-11.inp,最后计算Cal-12.inp,如果有更多文件继续copy吧

计算3个模型时的完整代码如下

from abaqusConstants import*
import job

mdb.JobFromInputFile(name='result-10',inputFileName='cal-10.inp',numCpus=62,numDomains=62)
mdb.jobs['result-10'].submit()
mdb.jobs['result-10'].waitForCompletion()

mdb.JobFromInputFile(name='result-11',inputFileName='cal-11.inp',numCpus=62,numDomains=62)
mdb.jobs['result-11'].submit()
mdb.jobs['result-11'].waitForCompletion()

mdb.JobFromInputFile(name='result-12',inputFileName='cal-12.inp',numCpus=62,numDomains=62)
mdb.jobs['result-12'].submit()
mdb.jobs['result-12'].waitForCompletion()

(3)将txt文件后缀.txt,修改为.py。此时在abaqus插入脚本即可使用了

当然还有别的方法,但这中脚本方法亲测我觉得最靠谱。

(19条)
默认 最新
你好,请问怎样才能一次性提交5个任务,然后在等待五个任务计算完成之后,再提交下5个任务依此类推呢
评论 2 点赞
回复
删除waitforcompletion,写循环?
评论 1 点赞
回复
对,我是这么做的,勉强可以实现,但是如果提交任务过多就容易出错了,我再想想其他方法吧
评论 点赞
学习了
评论 点赞

查看更多评论 >

点赞 38 评论 21 收藏 12
关注