Abaqus在作业不收敛时提前终止Python脚本

2 投票
2 回答
1102 浏览
提问于 2025-04-19 17:23

我有一个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对象了。

撰写回答