ParMetis 是否生成有关处理器邻居的任何信息?

Is the ParMetis generating any information about neighbors of a processor?

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

所以我每次重新划分网格时都需要从ParMetis调用ParMETIS_V3_AdaptiveRepart来执行重新划分。

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

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

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

ParMetis 是函数 ParMETIS_V3_AdaptiveRepart 或多或少做了一些与 [=32 相同的事情=]

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

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

但是 METIS 没有提供创建 "ghost layers" 的方法,正如您所说的那样。

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