首页 > 解决方案 > 使用 ExternalCodeComp 作为单个 comp 和 OpenMDAO 概念

问题描述

我对使用 OpenMDAO 的想法非常感兴趣。但是,我不确定是否值得在优化场景中使用 OpenMDAO,在该场景中我将外部代码用作单个组件,仅此而已。

使用 SciPy 中可用的优化器的实现与上述 openmdao 实现之间有什么区别。

或者这与使用其他语言(如 matlab 优化工具箱等)实现类似方法有什么区别?

(当然优化器的实现方式可能会有所不同,但我的意思是从概念上讲,我是否通过这种方法利用了 OpenMDAO?)

就我阅读文章而言;在多个组件相互“交互”并获得“全局派生”的情况下,openMDAO 功能强大吗?我是否通过使用单个 ExternalCodeComp 来利用 openMDAO

标签: openmdao

解决方案


仅使用单个 ExternalCodeComp 不会充分发挥 OpenMDAO 的潜力。仍然有一些优势,因为 ExternalCodeComp 为您处理了很多文件包装细节。此外,优化中通常存在一些细节,例如添加约束,通常需要额外的组件。在这种情况下,您可以使用ExecComp添加一些额外的计算。最后,使用 OpenMDAO 可以让您在未来扩展您的模型以包含其他学科。

如果您确定除了优化一个外部代码之外永远不会做任何事情,那么 OpenMDAO 确实会简化为与使用裸 pyoptsparse、scipy 或 matlab 优化器类似的功能。在这种极端情况下,除了 ExternalCodeComp 的易用性之外,OpenMDAO 并没有带来太多好处。


推荐阅读