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