如何提前阻止OpenMDAO在给定位置进行评估

时间:2017-03-21 15:43:15

标签: python openmdao

我正在使用OpenMDAO 1.7.3来解决地图上的优化问题。

我的参数是此地图上的坐标。我做的第一件事是从一个组件中的地图插入此位置的高度。然后在其他组件中进行一些更复杂的计算。

如果OpenMDAO选择了地图边界之外的位置,我将获得NaN的高度。我已经知道其余部分没有从此优化步骤中获得的其他信息。如何在进行更复杂的计算之前尽快让OpenMDAO进入下一个评估点?

在我的情况下,如果遇到NaN,其他计算(在外部程序中)甚至会失败,因此我必须在每个组件中调用它之前检查该值,并为每个组件分配NaN输出。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

根据您的设置,您可以在组件内引发将导致运行中止的错误。他们只需更改输入并启动下一次运行。或者,修改后续代码的包装器,这样如果它看到NAN,它就会跳过运行,只报告容易识别的垃圾编号。