我正在寻找一种使用 Galerkin 方法求解 20000 个变量、20000 个残差非线性 PDE 的方法。
我有 Fortran 子程序用于:
残差:;
他们的雅可比乘以直接算法导数种子: ; 和
它们的转置雅可比乘以反向算法导数种子:
所有这些子程序的运行时间都不超过 0.05 秒。然而,由于变量数量众多,我无法完全计算 Newton-Raphson 迭代的雅可比行列式,因为运行时间将变得不切实际。
在这种情况下,是否有任何现成的方法可以在不完全计算雅可比行列式的情况下求解方程?
我正在寻找一种使用 Galerkin 方法求解 20000 个变量、20000 个残差非线性 PDE 的方法。
我有 Fortran 子程序用于:
残差:;
他们的雅可比乘以直接算法导数种子: ; 和
它们的转置雅可比乘以反向算法导数种子:
所有这些子程序的运行时间都不超过 0.05 秒。然而,由于变量数量众多,我无法完全计算 Newton-Raphson 迭代的雅可比行列式,因为运行时间将变得不切实际。
在这种情况下,是否有任何现成的方法可以在不完全计算雅可比行列式的情况下求解方程?
在这种情况下,是否有任何现成的方法可以在不完全计算雅可比行列式的情况下求解方程?
对通过 Newton-Krylov 方法求解隐式方程的刚性 ODE 使用任何积分器只需要雅可比向量积。所以像 DASKR、IDA 等可以做到这一点。
因此,如果您将其以压缩/稀疏存储格式存储,问题的大小并不一定会阻止您使用完整的雅可比行列式,您还应该能够知道哪些残差取决于哪些未知数,这也应该使其更便宜. 也就是说,只需使用 Jacobian free Newton-Krylov (JFNK) 求解器即可。FGMRES 是一个非常强大的线性求解器,它只使用矩阵向量积。一些更简单的实现可能是 BiCGStab(虽然 imo 不那么强大)。广义共轭残差 (GCR) 也非常强大,来自 NASA 和 NIA 的 HANIM 在低存储 GCR 方法以及强大的预处理器和线搜索技术方面展示了一些很好的结果。您将无法使用 HANIM 本身,但您可以找到上面的文件并很容易地复制一些部分。