ExecComp - 向量化错误? 2.4.0

ExecComp - Vectorize Bug? 2.4.0

手册中的示例代码如下。

如果 vectorize=True 在那里,我会得到一个错误:

comp:调用 ExecComp() 中的 arg 'vectorize' 未引用表达式 ['y=3.0*x + 2.5']

中的任何变量

我假设最新版本没有这个标志? 我可以在 execcomp

中使用 np.diff
import numpy as np

from openmdao.api import IndepVarComp, Group, Problem, ExecComp
p = Problem()
model = p.model
model.add_subsystem('indep', IndepVarComp('x', val=np.ones(5)))

model.add_subsystem('comp', ExecComp('y=3.0*x + 2.5', vectorize=True, x=np.ones(5), y=np.ones(5)))
model.connect('indep.x', 'comp.x')

p.setup()
p.run_model()

J = p.compute_totals(of=['comp.y'], wrt=['indep.x'], return_format='array')

print(J)

vectorize 选项是在最新的 OpenMDAO 版本发布后添加的,因此要使用它,您必须等到下一个版本,或者使用对 OpenMDAO 的最新提交进行安装 github存储库。

为了回答您的第二个问题,np.diff 命令目前在 ExecComp 中不可用。如果您希望它可用,您可以在 (https://github.com/OpenMDAO/OpenMDAO/issues) 向 OpenMDAO github 存储库提交问题。