关于python:在Abaqus中的Scipy

Scipy in Abaqus

我想为abaqus创建一个python脚本,在其中使用scipy库。不幸的是,Abaqus没有这个库。它可以安装,但我想做的不同。

我的想法是编写一个接受参数的函数,将其传递给在abaqus外部打开的新的python解释器,然后将输出返回到我的文件。

我很确定这是可以做到的,但我仍然在学习Python。请给我任何可以用来解决我的问题的提示。


为了实现您想要的,您需要启动一个后台进程,它将执行一个Python脚本。这可以通过内置的subprocess模块在python中完成。

在最简单的情况下,您可以这样写:

1
2
3
import subprocess
process = subprocess.Popen(['python', 'your_script_name.py'])
process.wait() # If you want to stop caller until callee terminates

也可以检索子进程返回的结果,但您可以在其他线程中了解更多有关它的信息:

  • shell-python getoutput()在子进程中等效
  • 如何从Python程序中的命令行获取数据?

请注意,在某些情况下,需要通过删除abaqus特定的环境变量来修改包含环境变量(os.environ的字典的内容。否则,在启动子流程时会出现一些问题。

如果要将修改后的环境传递给新进程,Popen有一个参数env