我有一个需要迭代运行的Abaqus脚本,即使提交的作业没有收敛也会继续运行。如果从命令行提交脚本,则没有问题,如下所示:
abaqus cae script=script.py
但是,从命令行执行Abaqus中的python脚本时,例如:
abaqus cae nogui=script.py
python脚本本身在作业中止后立即终止运行。在使用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 ...
答案 0 :(得分:1)
从noGUI选项运行时,脚本无权访问mdb对象。您可能希望在包含以下行后尝试运行脚本:
from abaqus import *
通过包含上述行,abaqus将导入所有模块,并将获得对mdb对象的访问权限。
答案 1 :(得分:1)
我使用try语句解决了这个问题。
try:
cjob.submit()
cjob.waitForCompletion()
conv = True
exept AbaqusException, message:
conv = False