# DMPlexCreatePartitionerGraph
Create a CSR graph of point connections for the partitioner 
## Synopsis
```
#include "petscdmplex.h"   
PetscErrorCode DMPlexCreatePartitionerGraph(DM dm, PetscInt height, PetscInt *numVertices, PetscInt **offsets, PetscInt **adjacency, IS *globalNumbering)
```
Collective on dm


## Input Parameters

- ***dm      -*** The mesh `DM`
- ***height  -*** Height of the strata from which to construct the graph



## Output Parameters

- ***numVertices     -*** Number of vertices in the graph
- ***offsets         -*** Point offsets in the graph
- ***adjacency       -*** Point connectivity in the graph
- ***globalNumbering -*** A map from the local cell numbering to the global numbering used in "adjacency".  Negative indicates that the cell is a duplicate from another process.



## Options Database Keys

- ***-dm_plex_csr_alg <mat,graph,overlap> -*** Choose the algorithm for computing the CSR graph





## Note
The user can control the definition of adjacency for the mesh using `DMSetAdjacency()`. They should choose the combination appropriate for the function
representation on the mesh. If requested, globalNumbering needs to be destroyed by the caller; offsets and adjacency need to be freed with PetscFree().


## See Also
 [](chapter_unstructured), `DM`, `DMPLEX`, `PetscPartitionerGetType()`, `PetscPartitionerCreate()`, `DMSetAdjacency()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexpartition.c.html#DMPlexCreatePartitionerGraph">src/dm/impls/plex/plexpartition.c</A>

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexpartition.c.html#DMPlexCreatePartitionerGraph_Overlap">DMPlexCreatePartitionerGraph_Overlap in src/dm/impls/plex/plexpartition.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexpartition.c.html#DMPlexCreatePartitionerGraph_Native">DMPlexCreatePartitionerGraph_Native in src/dm/impls/plex/plexpartition.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexpartition.c.html#DMPlexCreatePartitionerGraph_ViaMat">DMPlexCreatePartitionerGraph_ViaMat in src/dm/impls/plex/plexpartition.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexpartition.c)


[Index of all DMPlex routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
