1

OpenMDAO 中的问题对象被编程为表现得像一个字典,其中包含对象中声明的所有问题变量和其他变量。现在我可以使用 for 循环遍历普通字典,例如:

for key,value in my_dict.iteritems():
    do_something(key,value)

OpenMDAO 问题可以解决这样的问题吗?

我有一堆有用的实用程序来处理字典。我也想用它们来处理 OpenMDAO 问题。

谢谢!

4

2 回答 2

1

我不确定你想做什么,但听起来你想遍历模型中的所有变量?一种方法是迭代prob.root.unknowns,它是包含System模型顶部所有连接变量的向量。它是递归的,因为它包括在子系统中指定的连接。但是,它不包含与数据传递无关的任何内容,因此任何Component至少未连接到 an 的输入IndepVarComp都不会显示在其中。

于 2016-05-19T11:52:32.287 回答
1

这个问题并不像字典,我们只是在其上定义__getitem____setitem__方法以方便用户(参见代码)。如果你想访问底层的类似 dict 的对象,你可以访问prob.root.unknowns 。这实际上仍然不是字典,而是VecWrapper实例,但它类似于 dict 并且具有像鸭子类型一样使用的必要方法。

于 2016-05-19T11:53:24.873 回答