最近我在ABAQUS中进行多尺度计算,所以我想在UMAT中调用微尺度ABAQUS Python代码。在
我搜索了许多代码、库(f2py、forpy)和文档,但是没有找到一个合适的解决方案来将上述ABAQUS Python代码嵌入UMAT。在
通常UMAT是用Fortran编写的,所以问题可能是“如何在Fortran中调用Python”,但是ABAQUS提供了一个修改过的Python,所以应该将表达式修改为“How to call ABAQUS Python in UMAT”。在
我尝试了系统调用作为测试示例。在
SUBROUTINE UMAT(...)
sym_i = system('abaqus cae nogui=F:/abaqus_python/simple_test/with_py/test.py')
END SUBROUTINE
下面是测试.py在
^{pr2}$下面是ABAQUS日志文件输出
End Analysis Input File Processor
Begin Abaqus/Standard Analysis
2019/11/27 20:24:51
Run standard.exe
***WARNING: Interactive messaging has been requested for this analysis run,
but initialization of the messaging system has failed. Therefore
no messages will be sent to Abaqus/CAE for this phase of the
analysis.
Intel(R) Parallel Studio XE 2013 SP1
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
Intel(R) Composer XE 2013 SP1 Update 1 (package 139)
[11 12 13 14 15 16 17 18 19]
Intel(R) Parallel Studio XE 2013 SP1
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
Intel(R) Composer XE 2013 SP1 Update 1 (package 139)
Python确实起了作用,但是ABAQUS没有等待Python脚本的完成就继续计算,结果显然是错误的,主要问题是我想在Python和Fortran之间实时传输数据。但是,当我在UMAT中调用Python时,Fortran代码仍然无法控制Python脚本。
换句话说,在执行系统调用时,Python控制台被触发并运行,然而,Fortran并不等待Python并继续。它们是并发的而不是后续的。在
谢谢你的帮助。在
暂停python脚本并确认Abaqus正在等待系统调用的返回
相关问题 更多 >
编程相关推荐