:orphan: # 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 ## 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 Databasen Keys - ***-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()`, `PetscPartitionerSetType()`, `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
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/partitioner/interface/partitioner.c) [Index of all DM routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)