首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ABAQUS UMAT子程序中调用Python

如何在ABAQUS UMAT子程序中调用Python
EN

Stack Overflow用户
提问于 2019-12-03 09:45:35
回答 1查看 1.7K关注 0票数 0

最近,我在ABAQUS中做多尺度计算,所以我想在UMAT中调用microscale ABAQUS代码。

我已经搜索了许多代码、库(f2py、forpy)和文档,但是找不到适当的解决方案将上述的ABAQUS代码嵌入到UMAT中。

通常UMAT是用Fortran编写的,所以问题可能是‘如何在Fortran中调用Python’,但是ABAQUS提供了一个修改过的python,因此表达式应该修改为‘如何在UMAT中调用ABAQUS’。

我尝试过系统调用作为测试示例。

代码语言:javascript
复制
SUBROUTINE UMAT(...)

sym_i = system('abaqus cae nogui=F:/abaqus_python/simple_test/with_py/test.py')

END SUBROUTINE

下面是test.py

代码语言:javascript
复制
import numpy as np
a = np.arange(11,20)
print(a)

下面是ABAQUS日志文件输出

代码语言:javascript
复制
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并不等待并继续运行。--它们是并发的,而不是后续的。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 08:57:47

暂停python脚本并确认Abaqus正在等待系统调用的返回。

代码语言:javascript
复制
import time
time.sleep(60)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59154191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档