我正在使用Abaqus来运行FEA模拟,其中包括一个用fortran77编写的材料用户子程序(umat)来定义材料模型。目前我需要使用来自模拟的数据(在运行时)来训练机器学习算法(SVR或随机森林回归还没有被选择)。当然,大多数ML模块都是用python编写的,而不是用Fortran编写的,因此到目前为止,我尝试了以下方法:
在UMAT中,我通过命令行调用python脚本,数据被写入csv文件并用于训练,输出被读回UMAT并继续模拟。你知道吗
它在玩具模型中工作,尽管在模拟过程中不断调用命令行的效率非常低,而且对真实模型也不可行。你知道吗
我能想到的唯一选择是用Fortran编写ML算法,在子程序本身,问题是这样做并不简单,例如SVR需要使用拉格朗日乘子来解决一个优化问题,而Fortran的实现非常复杂,非常耗时。你知道吗
我宁愿检查
CALL SYSTEM()
是否可以与Abaqus的标准过程一起使用。使用系统子例程,可以run shell scripts了解正在使用的操作系统。你知道吗相关问题 更多 >
编程相关推荐