OpenMDAOv1 +:可以在没有IndepVarComp组件的情况下设置组件或组的参数值吗?

问题描述:

有没有办法将设计变量值传递给OpenMDAO Problem,GroupComponent而不使用IndepVarComp组件?我发现做prob.root.myComp.x = x不会抛出错误,但对驱动程序来说似乎不可见。OpenMDAOv1 +:可以在没有IndepVarComp组件的情况下设置组件或组的参数值吗?

其动机是简化使用OpenMDAO创建的模型,以便在调用脚本中使用更少的组件和连接语句。

+0

你只是想为组件中的param设置一个静态值吗?如果是这样,在调用setup之后'prob ['myComp.x'] = x'应该可以工作。 –

你可以做prob['myComp.x'] = x并省略IndepVarComp,前提是你不打算驱动程序在prob驱动该变量。任何没有IndepVarComp的参数都被OpenMDAO问题视为一个常量。

如果您希望驱动程序设置变量,则需要IndepVarComp。

+0

谢谢,这是诀窍。来自@RobFalck的评论也是关键(setup()必须先被调用)。 – jthomas