问题标签 [openmdao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
65 浏览

openmdao - OpenMDAO 1.x 相关性降低

我在 OpenMDAO 中有一个没有输出的组件,用于为组的其他成员提供输入。尽管该组件的输出未连接,但仍调用该组件中的 apply_linear 。OpenMDAO 1.x 中的相关性降低算法不应该确定永远不需要调用此方法的 apply_linear 吗?

0 投票
1 回答
27 浏览

openmdao - 在 check_total_derivatives 中指定未知数

我正在为我在 OpenMDAO v1.x+ 中编写的程序创建一个 Unitest。我一直在使用 check_total_derivatives 函数来获取导数并将它们与有限差分进行比较。但是,我只关心检查六个左右的最终未知数,但我总共有大约 90 个。是否可以向 check_total_derivatives 函数添加一个选项以指定您希望该函数检查哪些未知数?现在需要很长时间才能完成所有事情。我在我自己的 OpenMDAO 版本中创建了这个功能,但是这个程序是为其他用户设计的,除非它是内置的,否则不会有这个功能。

0 投票
2 回答
79 浏览

openmdao - OpenMDAO v1.x 功能请求:导数检查方法中的有限差分方法选项

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

我们想请求将导数检查方法使用的有限差分方法作为一个选项,以便在其他用户运行测试时可以通过。

0 投票
2 回答
63 浏览

openmdao - 将数组的元素连接到另一个组件的输入

我正在尝试将一个组件的输出的最后一个元素连接到另一个组件的输入。一个例子如下所示:

我收到错误:

有没有办法做到这一点?我知道它适用于旧版本的 OpenMDAO。

0 投票
1 回答
42 浏览

parallel-processing - OpenMDAO v1.x:ParallelGroup 中子组的输出不存在

并行运行时,ParallelGroup()即使我可以连接到子组的参数,我也无法连接未知子组。导致问题的代码(为清楚起见更改了名称)如下。这段代码在一组更大的结构中,但它是唯一使用 MPI 的地方:

前两个连接似乎工作正常,但最后一个抛出错误:

此外,如果我注释掉有问题的行,那么循环中的第一行对于第二个进程将失败,并显示相同的错误消息:

所有连接都适用于我们的串行版本的代码。串行版本是相同的,只是 sub_groups 直接添加到此代码所在的组中,而不是包装在parallel_group.

我试图查看教程和示例,但无法弄清楚可能出了什么问题。我真的很感激任何关于检查什么或可能有什么问题的建议。很抱歉没有发布完整的代码示例。

0 投票
1 回答
54 浏览

openmdao - 使用 pass_by_obj 检查偏导数

我有一个输入是 int 的组件,所以我设置 pass_by_obj = True。但是,当我使用 check_partial_derivatives() 检查导数时,会引发此错误:

即使它不能,它似乎也试图采用导数。这是一个简单的例子:

是否可以将 check_partial_derivatives() 方法与具有指定为 pass_by_obj 的输入的组件一起使用?我不关心指定为 pass_by_obj 的输入的导数,但我关心其他输入。

0 投票
1 回答
54 浏览

openmdao - 在组件之间传递梯度;pass_by_obj 输出

我有一种情况,其中一个组件的梯度必须在另一个组件中计算。我试图做的只是让梯度成为第一个组件的输出和第二个组件的输入。我已将其设置为 pass_by_obj,以免影响其他计算。任何关于这是否是最好的方法的建议将不胜感激。不过,使用 check_partial_derivatives() 时出现错误。对于指定为 pass_by_obj 的任何输出,这似乎都是一个错误。这是一个简单的案例:

我收到以下错误消息:

我之前询问过在 check_partial_derivatives() 中检查 pass_by_obj 的参数,这可能只是检查 pass_by_obj 的未知数的问题。

0 投票
1 回答
135 浏览

openmdao - openmdao v1.4 优化元模型

我在元模型上使用 openmdao 1.4 执行优化。使用教程我已经建立了我无法解决的问题:我认为问题来自对 setup() 和 run() 的滥用:我没有设法训练我的元模型并同时对其进行优化时间(也许我应该使用两个不同的“组”来做到这一点..)这是我的代码:

0 投票
2 回答
115 浏览

openmdao - 如何在 OpenMDAO 中处理 2D 大小的参数?

我有一个二维数组的参数。它可以很好地获得正确的输出,但是当我尝试对梯度做任何事情(例如优化或 check_total_derivatives)时,我会遇到尺寸错误。我想知道处理 2D 大小的参数的最佳方法是什么。这是一个示例代码:

我得到错误:

我觉得这种情况下的导数应该是大小 (3, 3) 因为那是输入参数的大小。你如何处理二维参数?

0 投票
1 回答
126 浏览

openmdao - OpenMDAO:使用 pass_by_obj 进行单位转换

pass_by_objOpenMDAO 1.4 支持单位转换吗?我有一个小的复制案例:

pass_by_obj=Trueassert失败。top.setup()报告:

所以我希望完成单位转换。