OpenMDAO v1.x功能请求:派生检查方法中的有限差分方法选项

时间:2015-11-20 21:37:48

标签: openmdao

我们发现在使用前向或后向差分时,我们代码的几个组件未通过梯度检查,但在使用更准确的中心差分时通过。为了解决这个问题,我们在我们的代码版本中修改了这些函数的默认值,以使用中心差分。

我们想要求衍生检查方法使用的有限差分方法作为选项,以便测试可以在其他用户运行时通过。

2 个答案:

答案 0 :(得分:2)

您应该已经能够在单个变量的基础上执行此操作,方法是在form中为您想要集中差异的变量指定add_param

self.add_param('x2', 3.0, form = 'central')

或者,您可以通过以下方式为单个组件中的所有参数设置它们:

self.fd_options['form'] = 'central'

check_partial_derivatives肯定会接受这个。最终check_total_derivatives也应该选择它,但是当你在连接到单个IndepVarComp源的多个目标中指定不同的值时会发生什么,这是一个突出的错误 - 它使用了哪个 - 它使用了它现在找到的第一个。

您也可以这样设置step_typestep_size

答案 1 :(得分:2)

虽然您可以通过元数据控制单个变量级别的行为,或者通过FD选项控制整个组件级别,但通过kwargs将特定选项设置为check_partial_derivs也是合理的。这是我们可以努力的事情,虽然它目前不会成为我们的超级优先事项。