与域分解预处理器相比,多网格有什么优势,反之亦然?


Answers:


16

多网格和多级域分解方法有很多共同点,因此通常可以将每种方法写为另一种的特殊情况。由于每个领域的哲学不同,分析框架有所不同。一般而言,多网格方法使用适度的粗化率简单的平滑器,而域分解方法使用极快速的粗化强平滑器

多重网格(MG)

Multigrid使用适度的粗化率,并通过修改插值和平滑器来实现鲁棒性。对于椭圆问题,插值算子应为“低能量”,以便保留算子的近零空间(例如刚体模式)。这些低能插值的几何方法示例是Wan,Chan,Smith(2000),与平滑聚合的代数构造Vaněk,Mandel,Brezina(1996)相比(通过PCGAMG 在MLPETSc中并行实现,是Prometheus的替代品) 。Trottenberg,Oosterlee和Schüller的书是有关Multigrid方法的很好的一般参考。

大多数多网格平滑器都涉及逐点松弛,可以是相加(Jacobi)或相乘(Gauss Seidel)。这些对应于微小的(单节点或单个元素)狄利克雷问题。使用Chebyshev平滑器可以实现某些光谱适应性,鲁棒性和可矢量化性,请参见Adams,Brezina,Hu,Tuminaro(2003)。对于非对称(例如运输)问题,通常需要像Gauss-Seidel这样的乘法平滑器,并且可以使用迎风向上的插值法。可替代地,可以通过经由Schur补语启发的“块预处理器”或通过相关的“分布式松弛”,将用于鞍点和刚性波问题的平滑器构造成简单的平滑器有效的系统。

教科书的多重网格效率是指以精细网格上少量残差评估(少至四个)的成本的一小部分解决离散化误差。这意味着随着级别数的增加,固定代数公差的迭代次数会减少。同时,由于多网格层次结构隐含的同步性,时间估计涉及对数项。

域分解(DD)

第一域分解方法只有一个级别。在没有粗略水平的情况下,预条件算子的条件数不能小于,其中L是域的直径,H是标称子域大小。实际上,一级DD的条件编号介于此范围和OL2Ø大号2H2大号H其中h是元素大小。注意,Krylov方法所需的迭代次数按条件数的平方根缩放。与Dirichlet和Neumann方法相比,优化的Schwarz方法(Gander 2006)提高了常数和对H/h的依赖性,但通常不包括粗糙级别,因此在许多子域中会降低。有关域分解方法的一般参考,请参见Smith,Bjørstad和Gropp(1996)Toselli和Widlund(2005)的书。Ø大号2HHHH/H

为了获得最佳或准最佳收敛速度,需要多个级别。大部分DD方法被认为是两级方法,有些很难扩展到更多级。DD方法可以分类为重叠或不重叠。

重叠

这些Schwarz方法使用重叠,通常基于解决Dirichlet问题。可以通过增加重叠来增加方法的强度。这类方法通常很健壮,不需要对局部约束的问题进行局部零空间识别或技术修改(在工程实体力学中很常见),但由于重叠而需要额外的工作(尤其是在3D中)。此外,对于诸如不可压缩之类的约束问题,通常会出现重叠条带的inf-sup常数,从而导致次优收敛速度。Dorhmann ,Klawonn和Widlund(2008)以及Dohrmann和Widlund(2010)开发了使用与BDDC / FETI-DP类似的粗糙空间的现代重叠方法(如下所述

不重叠

这些方法通常可以解决某种Neumann问题,这意味着与Dirichlet方法不同,它们无法使用全局组装的矩阵,而需要未组装或部分组装的矩阵。最受欢迎的Neumann方法要么通过在每次迭代中进行平衡来强制子域之间的连续性,要么通过拉格朗日乘子来实现,而拉格朗日乘子仅在达到收敛后才强制进行连续性。这种早期方法(平衡Neumann-Neumann和FETI)要求每个子域的零位空间都具有精确的特征,既要构造粗糙的水平,又要使子域问题非奇异。后来的方法(BDDC和FETI-DP)选择子域角和/或边/面矩作为粗略的自由度。参见Klawonn和Rheinbach(2007)深入讨论3D弹性的粗略空间选择。Mandel,Dohrmann和Tazaur(2005)表明BDDC和FETI-DP具有相同的特征值,除了可能的0和1。

超过两个级别

大多数DD方法仅作为两级方法提出,并且有些选择不方便用于两个以上级的粗糙空间。不幸的是,特别是在3D中,粗糙级别的问题很快成为瓶颈,限制了可以解决的问题大小。此外,预条件算子的条件数,尤其是基于诺伊曼问题的DD方法,往往会随着

κPDD-1个一种=C1个+ØGHH2大号-1个

其中是级别数。只要积极的粗化使用,这也许是不那么重要,因为大号4应该是能够解决问题,超过10 12个自由度的,但肯定是一个问题。请参阅此问题以进一步讨论此限制。大号大号41012


9

这是一篇很棒的文章,但我认为说(多级)DD和MG有很多共同点是不准确的,或者至少没有用。这些方法有很大不同,我认为其中一个方面的专业知识在另一个方面不是非常有用。

首先,这两个社区使用不同的复杂度定义:DD优化了预处理系统的条件数,MG优化了工作/内存的复杂度。这是一个很大的根本区别-在这两种情况下,“最优性”的含义完全不同。当您增加并行复杂度时,事情不会改变(尽管您在MG中添加了对数术语)。这两个社区几乎使用不同的语言。

其次,MG内置了多层次的功能,并且多层次的DD方法都是通过两层次的理论和实现来开发的。这限制了可以在MG中使用的粗网格空间的空间-它们必须是递归的。例如,您不能在MG框架中实现FETI。人们做了一些如Jed提到的多级DD方法,但是至少某些当前流行的DD方法似乎不是可递归实现的。

第三,我认为算法本身与实践非常不同。定性地说,我想说DD方法会投影到域边界上并解决此接口问题。MG直接使用本机方程式。避免这种预测可以使MG轻松地应用于非线性和非对称问题。尽管该理论几乎解决了非线性和非对称问题,但它们已经为许多人服务。MG还明确地将问题分解为两部分:用于缩放的粗糙网格空间和用于求解物理问题的迭代求解器(平滑器)。这对于理解和与MG合作至关重要,并且对我来说是有吸引力的。

尽管从理论上讲,平滑器和粗糙网格空间是紧密耦合的,但实际上,您经常可以将不同的平滑器输入和输出作为优化参数。正如Jed所述,点平滑器或顶点平滑器很受欢迎,通常速度更快,但是对于具有挑战性的问题,较重的平滑器可能会有用。该图来自我的论文,显示了Jacobi,Jacobi块和“加性Schwarz”(重叠)的求解时间与泊松比的关系。它有点难以阅读,但在最高的泊松比(0.499)下,重叠的Schwarz比(顶点)Jocobi快约2倍,而在行人的泊松比下约慢3倍。

解决点,块和重叠平滑器的时间与泊松比


4

根据Jed的回答,MG使用中等粗化效果,而DD使用快速粗化效果。我认为将它们并行化会有所不同。MG将经历多种通信和同步,以经历许多级别的粗化,这等效于DD的单个粗化。杰德回答的另一点是,MG使用便宜的平滑器,而DD使用强平滑器。考虑到这两点,据报道,粗略的MG将具有差的通信/计算比。因此,根据 阿姆达尔定律,并行加速不好。这方面的一个补救措施是平行粗网格校正如BPX预条件。此外,MG可以像Adams所指出的那样使用DD更加平滑,并且MG也可以在DD的子域中使用。根据Barker指出的考虑,我猜想在DD中使用MG会更好,因为它同时利用了DD的并行模拟和MG的最佳复杂性。


1

我想对Jed的出色回答做些补充,即两种方法背后的动机是不同的(或至少是不同的)。

领域分解是作为并行计算的一种技术。DD对于单层方法尤其是在并行计算机上实现是很自然的-将域划分为多个部分,并将每个部分分配给不同的处理器。从某种意义上讲,DD的动机是在处理器之间划分算术运算。

存在良好的并行多网格实现,但是并行执行通常较不自然。相反,多重网格背后的动机是首先减少运算量。


2
这是一个很好的观点,但是我要补充一点,也是基于我从早期的DD演讲中获得的经验来重用现有的直接求解器(在大多数工程案例中)的动机。我从未实现过多级DD方法,但对我来说似乎并不“自然”。如果不是自然而然的话,那么对矩阵向量乘积进行并行化(除了需要为多网格实现的简单向量运算之外,唯一要做的就是)。
亚当斯

1

HHØ1个HH

HH


2
仅供参考,这可能应该是对杰德答案的评论,而不是单独的答案。
Jack Poulson

是的,我尝试过但找不到在Jed的回答下方添加评论的方法。
张晖

HH

HH
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.