Now out of date. See the RTD DomainDecomposition description.

Notes about the various partitioning schemes. (*) is the default if METIS is available, (-) if not.

# Initial partitions:

## grid (-)

cells are divided into rectangular, axis aligned, boxes, with the given number of sides per axis. Needs one rectangular box per rank.

## simple_metis (*)

the cell grid (where each cell is a graph vertex with edges to all neighbours) is split into similar sized connected regions by METIS.

## weighted_metis

in this version the vertices of the cell graph are weighted by the particle counts. This aims to give similar numbers of particles per rank.

## vectorized

the cells are considered as a 1D array and positions are picked along it for each rank. These positions are then used as centres in 3D and neighbouring cells are assigned to a rank using distance. This method is guaranteed to work when we have more cells than ranks, the other methods can fail when this criterion is close.

# Repartitioning

## none (-)

erm, do nothing, keeping fingers crossed (useful for testing)

## task_weights (*)

Assign weights to the vertices and edges of the cell graph based on the task weights associated with each cell and allow METIS to decide on an optimal partition to share the cells between the ranks.

## particle_weights

Similar to task_weights, except we only weight the vertices by the cell particles counts.

## edge_task_weights

Similar to task_weights, except we only use the task weights as edge weights.

## hybrid_weights

Joins particle_weights and edge_task_weights, we have particle weights for the graph vertices and task weights for the edges.