我使用了两个示例(单个ActDisk和多学科Sellar问题)来了解view_model功能。
根据linear solvers的理论手册,我应该能够看到为统一导数构建的矩阵系统。不清楚为什么即使设置了prob.setup(mode ='fwd')我也看不到较低的三角形矩阵。对于非耦合模型(ActDisk),我不更改求解器,因此应为LinearRunOnce。我将prob.setup模式设置为正向,并且收到此警告,很好,但是我仍然看到一个较高的三角矩阵,就像正在将其视为反向模式一样。
\anaconda3\lib\site-packages\openmdao\core\problem.py:850: RuntimeWarning: Inefficient choice of derivative mode. You chose 'fwd' for a problem with 2 design variables and 1 response variables (objectives and nonlinear constraints). (mode, desvar_size, response_size), RuntimeWarning)
在第二个示例(Sellar)中,耦合模型的循环组具有自己的非线性求解器,但没有额外的线性求解器(请注意:我正在使用示例,如网页所示)。这可能是一个问题,但我的重点是仍与默认线性求解器连接的“模型组”(层次结构中的最高)。 (如果即使子系统包含循环,我也能正确理解,只要该循环没有子系统,LinearRunOnce就应该在最高层次上工作)。与前一种情况类似,无论我设置问题模型如何,我都可以看到相同的N2图。这是正确的吗?
答案 0 :(得分:0)
n2查看器未显示实际的雅可比矩阵。它始终以DSM格式显示,实际上是转置的jacobian。
更改线性求解器后,在view_model中不会看到更改。