根据我对文档中src_indices
的理解,self.connect('a', 'b', src_indices=[1])
大致相当于b=a[1]
。有没有一种方便的方法来做"目标指数"这样可以写出类似b[1]=a
的内容?
答案 0 :(得分:2)
如果a
是一个组件的输出,b
是某个其他组件的输入,那么通常连接只能是a->b
。因此,在该上下文中b[1] -> a
永远不会起作用,因为您不能将输入用作连接的源端。
但是,如果您稍微扩大问题,并假设有两个输出a1
和a2
,并且您希望发出两个连接a1 -> b[0]
,{{1} },这些将是“目标指数”。但是,OpenMDAO V1或OpenMDAO V2中不允许这样做。原因是任何给定的输入都可以连接到一个且只有一个输出作为其源。此限制使底层代码更加简单。
在这种情况下,您需要制作一个具有两个输入和一个矢量输出的多路复用组件。 V1中的a2 ->b[1]
或V2中的solve_nonlinear
方法会将值推送到数组中。