我正在为我用OpenMDAO v1.x+编写的程序创建一个最统一的程序。我一直在使用check_total_derivatives函数来得到导数,并与有限差分法进行比较。然而,我只关心检查六个左右的未知数,但我总共大约有90个。是否可以向check_total_derivatives函数添加一个选项,以指定您希望该函数检查哪些未知数?现在,每件事都要花很长的时间。我在我自己版本的OpenMDAO中创建了这个功能,但是这个程序是为其他用户设计的,除非它是内置的,否则不会有这个功能。
发布于 2016-02-23 21:45:38
我们现在有办法做到这一点。如果通过在驱动程序上调用add_constraint或add_objective来指定未知数上的任何约束或目标,然后调用check_total_derivatives,则只计算这些未知数的导数。类似地,如果您使用add_desvar指定设计变量,它将只计算那些输入的导数。
添加此功能主要是因为您可能希望检查优化器所看到的梯度。如果您没有进行优化,API仍然允许您向基本Driver添加约束等;这不应该更改执行,但仍然允许您限制check_total_derivatives.的范围
注意,我认为您的请求仍然是一个很好的特性请求--只是想给出一个解决方案。
https://stackoverflow.com/questions/33836490
复制相似问题