У меня есть сценарий, написанный на Python, который калибрует параметры материала на основе результатов последнего задания, то есть последовательно запускает множество заданий в Abaqus до тех пор, пока ошибка не станет достаточно малой.
Я использую подпрограмму Fortran, которая компилируется перед каждым заданием.
Проблема в том, что для каждого задания, которое я отправляю, компилируется пользовательская подпрограмма. Несмотря на то, что входные параметры отличаются от параметров последнего задания, пользовательскую подпрограмму не нужно компилировать заново. Компиляция подпрограммы занимает около 80% времени выполнения задания.
Как я могу указать, чтобы пользовательская подпрограмма компилировалась только ОДИН РАЗ и использовалась для всех последовательных запусков?
Ниже приведены фрагменты соответствующего кода, написанного на Python. Я выполняю свой скрипт, набрав
abaqus cae nogui=script.py
в терминале. В коде используется скриптовый интерфейс Abaqus.
Создание задания:
mdb.Job(name=self.jobName, model='Model-1', description='', type=ANALYSIS,
atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90,
memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF,
modelPrint=OFF, contactPrint=OFF, historyPrint=OFF,
userSubroutine=self.userSubroutinePath,
scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1,
numGPUs=0)
Отправьте и дождитесь завершения работы:
mdb.jobs[self.jobName].submit(consistencyChecking=OFF)
mdb.jobs[self.jobName].waitForCompletion()
Этот код запускается каждый раз, когда я запускаю последовательное задание с данными из предыдущего запуска.
Компилятор Intel 64 Fortran Compiler XE, версия 15.0.0.090, сборка 20140723.
abaqus make
- person agentp   schedule 28.06.2016