问题标签 [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 投票
1 回答
113 浏览

gradient - Openmdao中克里格函数的梯度

我目前正在编写一个多重梯度下降算法,我使用克里格函数。我的问题是我找不到如何获得克里格函数的梯度(我尝试使用线性化但我不知道如何使其工作)。

0 投票
1 回答
81 浏览

openmdao - OpenMDAO add_desvar 默认下限

如果我在通过add_desvar方法定义设计变量时没有指定下限,看起来变量的默认下限设置为等于sys.float_info.min(在我的机器上是 2.2250738585072014e-308)(它看起来这是在发行版(1.5.0 Alpha) 的文件openmdao/core/driver.py的第 330 行左右完成的。

这可以通过在执行问题的setup()方法后打印get_desvar_metadata()的结果来看到。

以下是基于发行版提供的paraboloid_optimized_constrained.py示例的示例:



打印设计变量的元数据得到的结果是



在 python 文档中,sys.float_info.min被描述为“最小正归一化浮点数”,这是一个非常小的正数。默认的最小界限不应该是最大的负浮点数吗?设计变量只能是正数吗?你能帮我理解这里发生了什么吗?

谢谢


0 投票
1 回答
151 浏览

installation - OpenMDAO: First Steps

I am new in the world of OpenMDAO (and also on Python) and I am having some problems to understand the use of the software. I have already installed Anaconda (pyth v2.7) and the OpenMDAO, but I don't know how to run it. I am following this tutorial but I am not sure if I am doing it properly. I write the .py files in notepad++, and I try to run on the IPython but when I use the command : from paraboloid import Paraboloid it appears an error : No module named.api. I think that maybe I am not using the correct path (I'm in the folder where I have the .py files). Probably it's an stupid error, so sorry for the question.

Thank you all, Jose M O

0 投票
1 回答
394 浏览

openmdao - 多目标概率的帕累托前沿生成。使用 openMDAO 1.x?

我是 OpenMDAO 框架的新手,目前使用的是 1.5.0 版本。我有兴趣使用相同的方法为 Zitzler-Deb-Thiele 的函数生成帕累托前沿。

我在这里找到了旧版本的解决方案,它使用“pareto_filter”,但无法在新版本中找到相同的解决方案。那么,如何在 1.x 版本中设置多目标问题来生成帕累托前沿?

谢谢大家。

0 投票
1 回答
41 浏览

openmdao - 由 setup() 主导的挂墙时间

我创建了一个 OpenMDAO 问题,其中总的挂墙时间由 prob.setup() 控制。调用 prob.run() 的时间是 10 秒,而调用 prob.setup() 的时间是 1916 秒。有 8 个单独的组件。根组有 20 个组,其中 4 个子组 17 个子子组。整个系统的参数总数为 115,021,但几乎所有参数都是 20 个用户输入,并且在整个系统中都得到了提升。我将使用它进行优化。有没有办法加快速度,特别是因为所有最低的组都使用完全相同的参数,除了一个或两个?是否针对此类更大的问题进行了任何可扩展性测试?可以并行运行 setup() 吗?

0 投票
1 回答
516 浏览

python - 使用 NSGA2 解决多目标问题时出现“TypeError”。来自 OpenMDAO 1.x 中的 pyopt-sparse

我正在尝试使用带有 NSGA2 算法的 openMDAO 的 pyopt-sparse 驱动程序来解决多目标优化问题。以下是代码:

我收到以下错误 -

请告诉您是否可以解决上述错误以及如何解决它。

此外,多目标问题的解决方案的输出将以什么形式返回。我打算为此生成一个帕累托最优前沿。谢谢你们。

0 投票
1 回答
71 浏览

openmdao - Splitting up connections between groups

I would like to know the best way to split up the connection command. I have two groups that I want to be modular, an inner group and an outer group. I want the inner group to be a kind of black box where I can switch out or change the inner group without changing all the connections for the outer group. I just want the outer group to have to know the inputs and outputs of the inner group. For an example:

When I run the code I get the error that:

To try to solve this I made 'array' an IndepVarComp in the GroupInner group. However, when I do this I get the error:

I know that if I just make the full connection: self.connect('array', 'inner.c'+str(i) + '.array_element', src_indices=[i]) then it will work. But like I said I want GroupInner to be kind of a black box where I don't know what groups or components are in it. I also can't just promote all because the array_elements are different. Is it possible to do this or do you have to do the entire connection in one command?

0 投票
1 回答
151 浏览

openmdao - 如何使用 OpenMDAO 实现 SAND 架构

我正在尝试在具有 Sellar 问题的 OpenMDAO 上实现同时分析和设计 (SAND) 架构。我想到了以下方法-

但是在运行系统时,我得到了不正确的结果-

我在这里做错了什么?此外,组件类中定义的残差是否被 Solver 或 Driver 减少了?

0 投票
1 回答
327 浏览

multi-level - 如何在 OpenMDAO 1.x 中使用嵌套问题?

我正在尝试在 OpenMDAO 上实现协作优化和其他多级架构。我在这里读到,这可以通过在问题子类中定义一个单独的 solve_nonlinear 方法来完成。

问题是,在运行问题实例时,未调用定义的solve_linear。这是代码 -

上面代码的输出是 -

这意味着在任何时候都不会调用 Problem 子类中定义的solve_nonlinear。那么,我应该调用 Group 的 Subclass 中的学科优化器吗?

另外,我如何在两个优化问题(系统和学科)之间传递目标变量,特别是将各个学科的优化全局变量返回给系统优化器。

谢谢大家。

0 投票
1 回答
117 浏览

arrays - OpenMDAO 1.5:使用数组作为 desvar 运行 DOEdriver

我使用了此处描述的示例(http://openmdao.readthedocs.org/en/1.5.0/usr-guide/tutorials/doe-drivers.html?highlight=driver)来说明我的问题。我想对一个组件使用相同的方法,“参数”是数组,不再是 float 。请参阅下面的示例

我收到以下错误:

我是否误解了我的编码方式?