问题描述
正如标题所述,get_val() 函数允许用户检索输入、输出或残差的值。是否有类似 get_partial(of=...,wrt=...) 之类的东西允许用户检索衍生品?或者从问题或模型中检索它的最佳方法是什么?
解决方法
要获得系统中的一般导数,推荐的做法是使用 compute_totals 方法。
即使您只想查看偏导数,您也可以使用 of
和 wrt
参数来仅指向特定的偏导数。你会得到一个总数,但它应该等于部分。
查看部分的一般调试实践是使用 check_partials。这将为您提供所有要查看的部分的完整值。但是,如果您需要将算法方法作为运行脚本的一部分,请使用 compute_totals。
OpenMDAO 存储输出,因此获取这些是获取已经存在的值(因此 get_val
)的问题。
对于导数,根据使用 OpenMDAO 的方式,不能保证总数存在于内存中,因此必须在需要时进行计算。