首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python中使用abaqus运行abaqus inp文件

从python中使用abaqus运行abaqus inp文件
EN

Stack Overflow用户
提问于 2020-03-25 11:08:50
回答 3查看 597关注 0票数 0

我正在尝试运行abaqus inp文件,并使用来自python的abaqus处理它,并获得输出。它不起作用。怎么做呢?

代码语言:javascript
复制
import os
import subprocess

inp = 'C:/Users/sel/Desktop/My work/Python Abaqus/New folder (2)/Job-1.inp'
abaqus = r'C:/SIMULIA/Abaqus/Commands/abq6145.bat'
subprocess.Popen("%s %s" % (abaqus, inp))
EN

回答 3

Stack Overflow用户

发布于 2020-03-25 11:38:21

通过将capture_output关键字参数设置为True,可以通过子流程模块的run函数捕获子流程的stdout和strerr。这应该是可行的。

代码语言:javascript
复制
inp = 'C:/Users/sel/Desktop/My work/Python Abaqus/New folder (2)/Job-1.inp'
abaqus = r'C:/SIMULIA/Abaqus/Commands/abq6145.bat'
cp = subprocess.run([abaqus, inp], capture_output=True)
cp.stdout
票数 0
EN

Stack Overflow用户

发布于 2020-09-13 01:21:02

您在错误的目录中,并且没有正确指定作业。开始解算c:\temp\whatever.inp文件的正确命令行语法为:

代码语言:javascript
复制
cd \temp
abaqus job=whatever
票数 0
EN

Stack Overflow用户

发布于 2021-04-21 04:35:58

我认为这种方式可能会对你有所帮助:

首先,准备您的.inp文件(初始模拟: mySim.inp)

其次,在python脚本(让我们称之为RunSim.py)中编写:

代码语言:javascript
复制
from subprocess import check_output
check_output("abaqus job=mySim.inp double cpus=4 interactive", shell=True)

您可以根据您的计算机更改cpus

第三,还要添加下面这一行:

代码语言:javascript
复制
check_output("abaqus cae noGUI=odb_reader.py", shell=True)

第四,在odb_reader.py中,您应该编写一个函数来读取odb文件并将结果保存为csv文件。如果要进行优化,则可以在RunSim,py文件中打开此csv文件,并提取所需的值作为目标函数。

因此,如果您希望迭代运行RunSim.py文件,则可能还需要在每次迭代后删除临时文件。您可以使用以下命令:

代码语言:javascript
复制
os.remove("mySim.sim")  

..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60842466

复制
相关文章

相似问题

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