Abaqus在作业不收敛时提前终止Python脚本
我有一个Abaqus的脚本需要反复运行,即使提交的任务没有收敛也要继续运行。如果从命令行提交脚本,这一点没有问题,命令是这样的:
abaqus cae script=script.py
但是,当我从命令行以这种方式执行Abaqus中的Python脚本时:
abaqus cae nogui=script.py
脚本在任务被中止后会立即停止运行。有没有办法在使用nogui调用时,任务中止后继续运行脚本呢?
谢谢,
安德鲁
我脚本中相关的部分如下:
import os
from odbAccess import *
from job import *
from abaqusConstants import *
cjob = mdb.JobFromInputFile(name='abaqus_opt_rd',inputFileName='../FEM_in_out/abaqus_opt_rd.inp',numCpus=4,numDomains=4)
cjob.submit()
cjob.waitForCompletion()
ef = cjob.status
conv = ef != ABORTED
if conv == True:
# perform desired operations ...
else:
# perform operations for aborted job ...
2 个回答
1
我用一个尝试语句解决了这个问题。
try:
cjob.submit()
cjob.waitForCompletion()
conv = True
exept AbaqusException, message:
conv = False
1
当你使用没有图形界面的选项运行脚本时,这个脚本是无法访问到mdb对象的。你可以试着在运行脚本之前加上以下这一行:
from abaqus import *
加上这行代码后,abaqus会导入所有模块,这样就能访问到mdb对象了。