Rodin::Scotch module

Graph partitioning through the Scotch integration.

Scotch::Partitioner partitioner(mesh);
partitioner.partition(numRanks);

Partitioner builds a graph-based partition of mesh cells using Scotch. The resulting cell assignments feed mesh sharding and distribution, helping divide finite element workloads across MPI ranks while limiting connections between partitions.

The primary class is Scotch::Partitioner, which partitions cells of a local mesh into a given number of parts. The resulting partition can be used with the Sharder to distribute the mesh for MPI computations.

#include <Rodin/Scotch/MeshPartitioner.h>

Scotch::Partitioner partitioner(mesh);
partitioner.partition(numRanks);  // partition into numRanks parts

size_t part = partitioner.getPartition(cellIndex);

Classes

template<class T, class FuncName>
class Exception
Exception type for errors reported by Scotch wrappers.
class Partitioner
Mesh partitioner implemented with the SCOTCH library.