Как запустить ML в подпрограмме материала Abaqus? - PullRequest
0 голосов
/ 21 ноября 2019

Я использую Abaqus для запуска имитаций FEA, которые включают подпрограмму пользователя материала (umat), написанную на Fortran 77 для определения модели материала. В настоящее время мне нужно использовать данные моделирования (во время выполнения) для обучения алгоритму машинного обучения (SVR или Random Forest Regression еще не выбраны). Естественно, большинство модулей ML находятся в python, а не в Fortran, поэтому я попробовал следующий подход:

В UMAT я вызываю скрипт python через командную строку, данные записываются в видеCSV-файл и используется для обучения, вывод считывается обратно в UMAT, и моделирование продолжается.

Это работает в игрушечных моделях, хотя оказывается крайне неэффективным продолжать вызывать командную строку в серединесимуляция, и она неосуществима для реальных моделей.

Единственная альтернатива, которую я мог придумать, - это код алгоритма ML в Fortran, в самой подпрограмме, проблема в том, что это не тривиально, например SVRтребует решения задачи оптимизации с использованием множителей Лагранжа, реализация которых, если Fortran достаточно сложна и требует много времени.

1 Ответ

0 голосов
/ 25 ноября 2019

Я бы предпочел проверить, можно ли использовать CALL SYSTEM() вместе со стандартной процедурой Abaqus. Используя системную подпрограмму, можно запускать сценарии оболочки , известные используемой ОС.

...