在python中使用IPOPT和Openmdao(或pyoptsparse)

时间:2016-08-02 09:25:31

标签: python-2.7 openmdao ipopt

大家好。我有一点问题:我正在使用openmdao和pyOptSparseDriver。它适用于某些求解器(例如SLSQP,PSQP),因此该安装没有问题。

现在我想尝试使用IPOPT,但代码不是用pyoptsparse给出的。我按照COIN-OR文档安装了IPOPT(http://www.coin-or.org/Ipopt/documentation/node10.html),一切都好看(我不知道怎么检查)。现在我的办公桌上有一个COIN-OR文件夹,我不知道怎么让pyoptsparse从它那里拿IPOPT(这是#34;来自.impin pyoptcore"崩溃),来自pyIPOPT / pyIPOPT.py。 谁能帮我 ? 提前谢谢

2 个答案:

答案 0 :(得分:1)

我们通过pytoptsparse包将IPOPT与OpenMDAO一起使用,并将其作为独立库安装,就像您已经完成的那样。要使其工作,您需要在运行pyoptsparse安装之前将IPOPT_DIR环境变量设置为指向您安装IPOPT的位置。

所以假设您在例如IPOPT中安装了IPOPT。的/ usr /本地/ IPOPT:

$ export IPOPT_DIR=/usr/local/IPOPT
$ cd /path/to/pyoptsparse/
$ python setup.py install

这个 应该导致pyoptsparse编译IPOPT的python包装器并生成pyoptcore.so文件,该文件将放在Python的site-packages/pyoptsparse/pyIPOPT中。

在我们的集群上,我们必须稍微修改pyoptsparse/pyIPOPT/setup.py文件,因为我们使用英特尔编译了所有内容,但如果您使用gfortran编译,pyoptsparse的官方版本应该适合您。

或者,你可以像Justin建议的那样做,这基本上就是你在pyoptsparse文档中找到的指令。

答案 1 :(得分:0)

你必须将ipopt源代码放入src folder of pyopt-sparse,然后重新编译包。