我们使用一阶隐式有限体积代码来模拟不可压缩流动。该代码的核心是利用(非预处理的)GMRES 方法来求解网页中给出的线性系统
一般来说,对于给定的问题,很难找到 GMRES 算法的“理想”设置,尤其是找到最大 Krylov 空间维度(内部迭代)的合适大小。我想知道是否有任何预先确定这些参数的估计,以规避一些试错过程(这对于大问题来说真的很麻烦和痛苦)。也许有人可以向我指出可能讨论此类问题的文献......?
有没有比 GMRES 更好的稀疏矩阵求解器?
我们使用一阶隐式有限体积代码来模拟不可压缩流动。该代码的核心是利用(非预处理的)GMRES 方法来求解网页中给出的线性系统
一般来说,对于给定的问题,很难找到 GMRES 算法的“理想”设置,尤其是找到最大 Krylov 空间维度(内部迭代)的合适大小。我想知道是否有任何预先确定这些参数的估计,以规避一些试错过程(这对于大问题来说真的很麻烦和痛苦)。也许有人可以向我指出可能讨论此类问题的文献......?
有没有比 GMRES 更好的稀疏矩阵求解器?
如果您不使用预处理器,这一切都是浪费的努力,因为没有选择参数会导致算法健壮或可扩展,而最不坏的选择将受到预处理的影响。 找到好的预条件器后,您可以查看重启的效果并决定如何在 GMRES 中管理重启,以及与其他方法(如 BiCGStab 和相关方法)进行比较。
另请参阅此处引用的 Embree 参考资料。
除了@jed-brown 的回答,我强烈推荐这本书Finite elements and fast iterative solvers: with applications in incompressible fluid dynamics by Elman, Silvester and Wathen。这本书涵盖了有限元,但 Krylov 子空间方法的一般策略当然也适用于有限体积。
除了 Jed Brown 提到的预处理器之外,还有用于选择重启参数的自适应策略,这些策略也有可能加速收敛。参见例如AH Baker、ER Jessup、Tz.V. Kolev - 一种用于改变 GMRES(m) 中的重启参数的简单策略。