2

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

2 回答 2

1

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

try: 
    cjob.submit() 
    cjob.waitForCompletion()
    conv = True
exept AbaqusException, message: 
    conv = False
于 2017-08-22T09:21:14.550 回答
1

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

 from abaqus import *

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

于 2016-01-27T21:48:33.100 回答