使用OpenMDAO标准库中的组件有什么优势 (即matrixvectorproduct,dotproduct,linearsystem,etc)?
据我所知,它们全部基于两个基本类:ExplicitComponent和ImplicitComponent
除了便利之外,还有其他理由使用它们吗?
答案 0 :(得分:2)
OpenMDAO组件标准库提供了一组通用的通用组件,这些组件均已向量化,并且全部具有经过验证的正确解析子集。您当然根本不需要甚至没有义务使用它们。但是,这些组件是在已构建的许多不同模型中一次又一次出现的组件。
它们的常见外观促使我们对它们的实现进行了概括,并将它们包含在标准库中,从而避免了每次都重新实现组件或将现有实现复制/粘贴到新项目中的需要。 一般而言,复制代码是一个坏主意,因此,只要您可以抽象出更通用和更广泛使用的内容,都是一个好主意。
如果您对如何利用这些组件很聪明,则可以实现一些非常复杂的计算,而无需自己编写非线性或线性代码。建立在OpenMDAO之上的Dymos版本0.10.0和OpenConcept库广泛使用这些组件来减轻其自身的编码负担。