在Multigrid中通常不进行收敛检查吗?


12

我刚刚阅读了Briggs / Henson / McCormick的“ A Multigrid教程”中的第3章, 链接

文本是关于Multigrid循环的,例如V循环,mu循环,FMG。引起我注意的是:在大多数迭代过程中,需要检查是否已收敛到所需的公差/精度,如果是,则过程停止。但是Briggs / Henson / McCormick在提出的方案中不使用任何收敛性检查。迭代和递归的数量只是硬编码的,因此必须相信该方案会收敛。

那么通常如何在Multigrid中完成此操作?通常迭代次数/递归次数只是硬编码的吗?我真的担心我会因为过于精确而浪费大量计算时间,或者另一方面,当我选择较少数量的迭代/递归时,准确性在很多情况下会很差。


对这个问题的答案缺乏答案令我感到惊讶。当然,这里有一些非常活跃的用户,他们在研究和/或生产环境中具有相当多的多网格经验?
Doug Lipinski 2015年

2
我认为问题在于,如今,多网格本身很少用作求解器(由于缺乏通用的收敛理论,我认为),而是用作诸如CG或GMRES的更成熟的迭代方法的前提。在这种情况下,无需进行多重网格的收敛检查,因为外部迭代会处理它。
Christian Clason

Answers:


4

是的,出于某些原因,MG中没有收敛检查是正常的。首先,如果您在每次遍历中使用不同数量的迭代,则MG运算符将不再是线性的,您将不得不使用FGMRES之类的加速器来容纳非线性预处理器。其次,FMG在工作时是一个精确的求解器(将误差减小到离散化误差以下),因此检查收敛将昂贵的同步引入算法中。通常,您通常在最后检查以验证收敛。


您是否有任何资源来支持这一点?当前,您的答案与其他获得最高投票的答案直接相互矛盾。
Doug Lipinski 2015年

1)Saad的书是使用FGMRES适应不断变化的前置条件的最佳参考:www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf 2)我相信FMG可以通过足够强大的功能将误差降低到离散化误差以下V-cycle在Trottenberg和Osterlee,但我在我的书中复制了证明:cse.buffalo.edu/~knepley/classes/caam519/CSBook.pdf
Matt Knepley

4

当然不。举个例子,《Multigrid》一书在第53页(图2.10)有一个图,该图显示了残差的减少与V或W循环次数的关系。当您对残差的大小感到满意时,您将停止循环。

造成混淆的原因可能是因为某些描述仅描述了单个V周期。在某些有限的情况下,由于多重网格技术是一种如此强大的技术,因此这可能会产生合适的解决方案。同样,multigrid可以用作前提条件。在那种情况下,多重网格只是加速器,而收敛性的检查则在更高的层次上进行。但是检查应该总是在某处进行。


1
您是否有任何资源来支持这一点?当前,您的答案与其他获得最高投票的答案直接相互矛盾。
Doug Lipinski 2015年

1

在用作求解器的Multigrid中,通常将残差的相对范数用作停止准则。随着您降低此比率-解决方案的准确性应提高。此外,在最粗糙的层次上,研究人员会做不同的事情:

  1. 使用直接求解器求解(无收敛)
  2. 使用固定的迭代(无收敛)
  3. 使用迭代之间的连续差异作为收敛标准(这不是一个好方法,因为您可能离解决方案很远)
  4. 再次使用残差的相对范数作为停止标准。

当将Multigrid用作前置条件时,上面列出的方法2最粗略的方法是好的(Multigrid专家可以在这里发表评论-我是初学者)。

因此,通常使用收敛

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.