How to run ML within Abaqus material subroutine?

浪尽此生 提交于 2019-12-24 23:19:06

问题


I'm using Abaqus to run FEA simulations which include a material user subroutine (umat), written in Fortran 77 to define the material model. Currently I'm need to use data from the simulation (at run time) to train a machine learning algorithm (SVR or Random Forest Regression are yet to be chosen). Naturally most of the ML modules are in python, not in Fortran, so I have tried the following approach so far:

Within the UMAT I'm calling the python script via command line, the data is written in a csv file and used to train, the output is read back into the UMAT and the simulation continues.

It's working in toy models, although it turns out to be highly inefficient to keep calling the command line in the middle of the simulation and it's not feasible for real models.

The only alternative I could think was to code the ML algorithm in Fortran, in the subroutine itself, the problem is that it's not trivial to do it, SVR for instance requires the solution of an optimization problem using Lagrange multipliers, which the implementation if Fortran is quite sophisticated and extremely time consuming.


回答1:


I would rather check if CALL SYSTEM() can be used along with the standard procedure of Abaqus. Using the system subroutine, one can run shell scripts known to the OS in use.



来源:https://stackoverflow.com/questions/58972538/how-to-run-ml-within-abaqus-material-subroutine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!