Abaqus преждевременно завершает скрипт Python, когда задание не сходится

У меня есть сценарий Abaqus, который нужно запускать итеративно и продолжать работу, даже если отправленное задание не сходится. Это не проблема, если сценарий отправляется из командной строки следующим образом:

abaqus cae script=script.py

Однако при выполнении скрипта Python в Abaqus из командной строки, например:

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 ...

person Andrew    schedule 04.09.2014    source источник


Ответы (2)


При запуске из опции noGUI скрипт не имеет доступа к объекту mdb. Вы можете попробовать запустить скрипт после включения следующей строки:

 from abaqus import *

Включив указанную выше строку, abaqus импортирует все модули и получит доступ к объекту mdb.

person PShank007    schedule 27.01.2016

Я решил это, используя оператор try.

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