ExecComp-矢量化错误? 2.4.0

时间:2018-10-04 16:36:50

标签: openmdao

手册中的示例代码如下。

如果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)

1 个答案:

答案 0 :(得分:0)

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

要回答第二个问题,ExecComp中当前不提供np.diff命令。如果您希望使问题可用,可以将问题提交到(https://github.com/OpenMDAO/OpenMDAO/issues)的OpenMDAO github存储库。