我对METIS的 mpmetis 有一些经验。它是提供非结构化网格网格划分的非常好的软件。但获得的结果总是最小化边缘切割或总通信量。因此,将简单的网格划分为 2 个部分可以在每个部分中提供大约 50% 到 50% 的网格节点。
我正在寻找软件(或更好的 C++ 库),它可以让我将网格分割成不相等的部分——例如每个部分中有 10% 到 90% 的节点。如果我能决定分频比,那就太好了。
我对METIS的 mpmetis 有一些经验。它是提供非结构化网格网格划分的非常好的软件。但获得的结果总是最小化边缘切割或总通信量。因此,将简单的网格划分为 2 个部分可以在每个部分中提供大约 50% 到 50% 的网格节点。
我正在寻找软件(或更好的 C++ 库),它可以让我将网格分割成不相等的部分——例如每个部分中有 10% 到 90% 的节点。如果我能决定分频比,那就太好了。
可以在 METIS(以及 parMETIS)手册中找到,可在http://glaros.dtc.umn.edu/gkhome/metis/metis/download的第 3.5 节“异构并行计算架构的分区”中找到, METIS 确实支持在不同进程上对元素进行非等分划分。
函数中的本构参数调用“METIS_PartMeshDual”和“METIS_PartMeshNodal”是“tpwgts”。该数组的条目应该是单位 [*] 的一个分区,表示每个进程最终应分配的权重。默认情况下,假设所有元素的权重统一为 1。
[*] 即,条目是总和为 1.0 的浮点数。在这种情况下,手册似乎忽略了浮点错误。
你试过苏格兰威士忌吗?
“SCOTCH 是 Bordelais de Recherche en Informatique (LaBRI) 的 Satanas 团队开展的一个项目。它是 INRIA Bordeaux - Sud-Ouest 的 ScAlApplix 项目的一部分。
其目的是以分而治之的方法将图论应用于科学计算问题,例如图形和网格划分、静态映射和稀疏矩阵排序,应用领域从结构力学到操作系统或生物化学。”
在这里得到它:苏格兰网站,
也看看这个:scotch-metis 教程 + 比较