1
$\begingroup$

The numerical method that I'm implementing stores various fields in various elements of an unstructured triangular mesh. Data may be stored in cells, nodes and even edges of the mesh. For a parallel implementation I need to distribute all the mesh elements among processors.

There are well known approaches to the problem of distribution cells or nodes, but I failed to find how to distribute all the elements at once.

Of course one can distribute all mesh elements independently by partitioning the corresponding adjacency graphs. But this approach gives no guarantee that the cells of i-th processor and the nodes of the same processor are close (that is cells of i-th processor are mostly composed of the nodes from the same processor).

So I came up with an approach to partition only mesh nodes and then try to partition edges and cells optimally, i.e. minimize cross-processor edges and cells while maintaining a fair distribution. Anyway, a proper implementation is quite tough and has some corner cases.

Do you know any existing solutions to the problem above?

$\endgroup$
4
  • 1
    $\begingroup$ You might want to look at what PETSc does with DMPlex objects. They must have developed some approach for this problem, I'm just not exactly sure what the details are. $\endgroup$ Commented Mar 7, 2022 at 16:49
  • $\begingroup$ You can also check the octrees based solution from library called p4est. There is an implementation of the same in deal-ii also. $\endgroup$ Commented Mar 7, 2022 at 20:38
  • $\begingroup$ The usual approach is to partition cells. Edges and vertices are then assigned to one of the processors who own adjacent cells, often by way of a tiebreaker. For example, if a vertex or edge is adjacent to cells owned by different processors, then the processor with the lowest rank owns the vertex or edge. $\endgroup$ Commented Mar 8, 2022 at 3:02
  • $\begingroup$ Thank you for your suggestions! $\endgroup$
    – uranix
    Commented Mar 8, 2022 at 17:40

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.