在 DoE 期间重置每个输入之间的所有变量以进行多学科分析

问题描述

我正在编写使用 WhatsOpt(一个允许在学科和数据交换方面定义和共享多学科分析的网络应用程序 https://whatsopt.readthedocs.io/en/latest/ )开发的代码我有一个问题。

上下文:此代码必须针对给定的爬升加速度计算飞机的不同质量。当我尝试制作 DoE 时,有一些爬升加速度会导致质量发散。但这不是问题,因为当求解器达到最大迭代次数时,它告诉它没有收敛,我只是不保留结果。

问题:在 DoE 中,当您对输入数字 n 运行分析时,内部变量和响应将使用分析 n-1(前一个)结束时的值进行初始化。因此,如果输入编号为 n-1 的分析发散并将变量设置为高得离谱的值,则分析编号 n 无法在给定的迭代次数内收敛,而应该收敛。

我尝试设置一个函数,当质量达到临界值时将质量重置为 1,但这导致收敛情况应该发散。然后我不能放弃无关的结果。 我试图增加求解器的最大迭代次数,但它导致发散情况的值更大,因此,好的情况仍然没有收敛

问题:您知道如何在 DoE 期间重置每个新输入之间所有变量的值吗?

解决方法

我相信您希望在组级别或组件级别(取决于模型)使用 guess_nonlinear 方法的功能。

这里是 guess_nonlinear 的 openMDAO 文档,它允许您在任何求解器迭代开始时为您喜欢的任何设置设置初始值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...