OpenMDAO 1.x组连接中的目标索引?

时间:2018-02-05 21:43:15

标签: openmdao

根据我对文档中src_indices的理解,self.connect('a', 'b', src_indices=[1])大致相当于b=a[1]。有没有一种方便的方法来做"目标指数"这样可以写出类似b[1]=a的内容?

1 个答案:

答案 0 :(得分:2)

如果a是一个组件的输出,b是某个其他组件的输入,那么通常连接只能是a->b。因此,在该上下文中b[1] -> a永远不会起作用,因为您不能将输入用作连接的源端。

但是,如果您稍微扩大问题,并假设有两个输出a1a2,并且您希望发出两个连接a1 -> b[0],{{1} },这些将是“目标指数”。但是,OpenMDAO V1或OpenMDAO V2中不允许这样做。原因是任何给定的输入都可以连接到一个且只有一个输出作为其源。此限制使底层代码更加简单。

在这种情况下,您需要制作一个具有两个输入和一个矢量输出的多路复用组件。 V1中的a2 ->b[1]或V2中的solve_nonlinear方法会将值推送到数组中。