1

我正在研究移动网格的并行有限元方法。

因此,每次重新划分网格时,我都需要ParMETIS_V3_AdaptiveRepartParMetis调用以执行重新分区。

成功时,该函数仅生成分区信息,即处理器上的元素。

然而,为了构建子网格的幻影层,进程的邻居也很重要。

所以我想知道是否有任何有效的方法来获取有关共享(重叠)实体和邻居的信息,或者 ParMetis 是否真的提供了这些信息?

4

1 回答 1

0

ParMetis是函数ParMETIS_V3_AdaptiveRepart或多或少像ParMETIS_V3_PartKway一样做一些小事

ParMETIS_V3_PartKway的输出是part“一个大小等于本地存储的顶点数量的数组。成功完成后,本地存储的顶点的分区向量将写入该数组。”

它还返回被切割的边数。(这只是你想要的一部分)。

但是 METIS 并没有像您优雅地说的那样提供创建“幽灵层”的方法。

但是,由于您已经创建了图表,因此您知道如何找到每个元素的每个邻居。你可以检查你的邻居元素是否在你当前进程的图表中,如果part[element]==part[neighbour_element]. 如果邻居元素不在您当前的进程中,您将不得不做一些 MPI。

于 2018-09-20T14:11:12.437 回答