从0.X转换的最佳实践:变量树

时间:2016-11-10 15:51:25

标签: openmdao

将变量树从0.X转换为1.X是否有推荐的最佳做法?我的直觉是将变量树组成组件,但我很好奇OpenMDAO团队的想法。

2 个答案:

答案 0 :(得分:1)

我们离开了变量树。相反,我们只是将变量命名为" top:sub:subsub:x,top:sub:subsub:y"

答案 1 :(得分:1)

千焦耳,

我对变量树的消除感到非常不满;但是,我对他们未能与openmdao组件集成并且无声地失败感到非常不满。很好的解决。

我一直在尝试使用numpy.ndarray作为变量树的替代品。有关详细信息,请参阅Sellar示例。使用字段名创建多维ndarray似乎适用于名称引用的数据结构。创建多维度似乎需要嵌套声明,类似于变量树分支。

请注意,numpy.array(sic)与openmdao不兼容,但numpy.ndarray(sic)运行良好,因为ndarray是一个“结构化”数组对象,其内部字典中指定了大小,形状,数据类型等。优于变量树,多维ndarray提供与一个(大规模)全局声明相同关系的多个“视图”,其可以被实例化为组件内的参数。填充ndarray实例是通过字段名称引用的赋值而不是某些迭代来完成的。声明更复杂,因为必须提供有关结构化数组的所有信息才能在openmdao中工作。此外,numpy.ndarray用于严格固定的数组大小和关系,就像变量树一样。

我并不是为每个应用程序提倡这个概念,但请注意你的情况 西尔维娅