为什么使用双图进行网格划分

计算科学 分区
2021-12-09 05:08:22

ParMetis 或 PTScotch 等软件对图进行分区。当人们想将它用于网格划分(例如 FEM)时,通常首先构建其顶点表示原始网格的单元的对偶图。然后对该对偶图进行分区。我想知道为什么不能简单地将输入网格的连通性直接解释为图形 - 网格节点是图形顶点,网格边也是图形边。这将假定网格边缘列表是由客户端应用程序在调用分区例程之前构建的。

如果我理解正确,通过对偶图的切割将包含属于不同分区的相邻网格单元的整个面,而通过网格(被视为图形)的切割将不太漂亮,因为只有元素的一些节点面可能成为幽灵节点。此外,网格边缘的数量(尤其是在 3D 中)可能会远高于单元的数量。除此之外,我看不出使用第一种或第二种方法有什么好处。任何人都可以对此发表评论吗?

我知道 (Par)Metis 具有构造对偶图的功能。我的问题是“为什么”,而不是“如何”。我主要对 FEM 的网格划分感兴趣。

1个回答

编写有限元软件的最常见方法是使用某些规则(或通过更昂贵的超图分区)解决接口顶点所有权的元素的非重叠分区。为了创建一个全局组装的刚度矩阵,这涉及到拥有顶点的进程的条目通信。残差评估和矩阵组装确实基于元素工作,但求解(使用稀疏迭代方法)确实基于顶点工作。

另一种方法是创建一个不重叠的顶点分区并创建一个元素的幽灵层。这些接口元素将被冗余集成(从每一侧),但没有通信来组装矩阵。

对于低阶元素,这往往会更好地扩展。高阶元素具有厚实的接口,并且通常使用非重叠元素分区更有效地集成。根据您管理网格的方式以及您选择的离散化的成本权衡来选择您的方法。