问题描述
我正在编写使用 WhatsOpt(一个允许在学科和数据交换方面定义和共享多学科分析的网络应用程序 https://whatsopt.readthedocs.io/en/latest/ )开发的代码。我有一个问题。
上下文:此代码必须针对给定的爬升加速度计算飞机的不同质量。当我尝试制作 DoE 时,有一些爬升加速度会导致质量发散。但这不是问题,因为当求解器达到最大迭代次数时,它告诉它没有收敛,我只是不保留结果。
问题:在 DoE 中,当您对输入数字 n 运行分析时,内部变量和响应将使用分析 n-1(前一个)结束时的值进行初始化。因此,如果输入编号为 n-1 的分析发散并将变量设置为高得离谱的值,则分析编号 n 无法在给定的迭代次数内收敛,而应该收敛。
我尝试设置一个函数,当质量达到临界值时将质量重置为 1,但这导致收敛情况应该发散。然后我不能放弃无关的结果。 我试图增加求解器的最大迭代次数,但它导致发散情况的值更大,因此,好的情况仍然没有收敛
问题:您知道如何在 DoE 期间重置每个新输入之间所有变量的值吗?
解决方法
我相信您希望在组级别或组件级别(取决于模型)使用 guess_nonlinear
方法的功能。
这里是 guess_nonlinear
的 openMDAO 文档,它允许您在任何求解器迭代开始时为您喜欢的任何设置设置初始值。