我正在为我在 OpenMDAO v1.x+ 中编写的程序创建一个 Unitest。我一直在使用 check_total_derivatives 函数来获取导数并将它们与有限差分进行比较。但是,我只关心检查六个左右的最终未知数,但我总共有大约 90 个。是否可以向 check_total_derivatives 函数添加一个选项以指定您希望该函数检查哪些未知数?现在需要很长时间才能完成所有事情。我在我自己的 OpenMDAO 版本中创建了这个功能,但是这个程序是为其他用户设计的,除非它是内置的,否则不会有这个功能。
问问题
27 次
1 回答
1
我们现在有办法做到这一点。如果您通过调用add_constraint
或add_objective
在驱动程序上指定未知数的任何约束或目标,然后调用 check_total_derivatives,它将仅计算这些未知数的导数。同样,如果您使用 指定设计变量add_desvar
,它将仅针对这些输入计算导数。
添加此功能主要是因为您可能想要检查优化器看到的梯度。如果您不进行优化,API 仍然允许您将约束等添加到 basic Driver
; 这不应该改变执行,但仍然允许您限制check_total_derivatives.
请注意,我认为您的请求仍然是一个很好的功能请求——现在只是想提供一个解决方法。
于 2016-02-23T21:45:38.037 回答