当作业不收敛时,Abaqus会过早地终止python脚本

时间:2014-09-04 00:41:34

标签: python abaqus

我有一个需要迭代运行的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 ...

2 个答案:

答案 0 :(得分:1)

从noGUI选项运行时,脚本无权访问mdb对象。您可能希望在包含以下行后尝试运行脚本:

 from abaqus import *

通过包含上述行,abaqus将导入所有模块,并将获得对mdb对象的访问权限。

答案 1 :(得分:1)

我使用try语句解决了这个问题。

try: 
    cjob.submit() 
    cjob.waitForCompletion()
    conv = True
exept AbaqusException, message: 
    conv = False