PetscPartitionerPartition

Partition a graph

Synopsis

#include "petscpartitioner.h" 
PetscErrorCode PetscPartitionerPartition(PetscPartitioner part, PetscInt nparts, PetscInt numVertices, PetscInt start[], PetscInt adjacency[], PetscSection vertexSection, PetscSection targetSection, PetscSection partSection, IS *partition)
Collective on PetscPartitioner

Input Parameters

part - The PetscPartitioner
nparts - Number of partitions
numVertices - Number of vertices in the local part of the graph
start - row pointers for the local part of the graph (CSR style)
adjacency - adjacency list (CSR style)
vertexSection - PetscSection describing the absolute weight of each local vertex (can be NULL)
targetSection - PetscSection describing the absolute weight of each partition (can be NULL)

Output Parameters

partSection - The PetscSection giving the division of points by partition
partition - The list of points by partition

Options Database

-petscpartitioner_view - View the partitioner information
-petscpartitioner_view_graph - View the graph we are partitioning

Notes

The chart of the vertexSection (if present) must contain [0,numVertices), with the number of dofs in the section specifying the absolute weight for each vertex. The chart of the targetSection (if present) must contain [0,nparts), with the number of dofs in the section specifying the absolute weight for each partition. This information must be the same across processes, PETSc does not check it.

See Also

PetscPartitionerCreate(), PetscSectionCreate(), PetscSectionSetChart(), PetscSectionSetDof()

Level

developer

Location

src/dm/partitioner/interface/partitioner.c

Implementations

PetscPartitionerPartition_Chaco in src/dm/partitioner/impls/chaco/partchaco.c
PetscPartitionerPartition_Gather in src/dm/partitioner/impls/gather/partgather.c
PetscPartitionerPartition_MatPartitioning in src/dm/partitioner/impls/matpart/partmatpart.c
PetscPartitionerPartition_ParMetis in src/dm/partitioner/impls/parmetis/partparmetis.c
PetscPartitionerPartition_PTScotch in src/dm/partitioner/impls/ptscotch/partptscotch.c
PetscPartitionerPartition_Shell in src/dm/partitioner/impls/shell/partshell.c
PetscPartitionerPartition_Simple in src/dm/partitioner/impls/simple/partsimple.c

Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages