# DMPlexCreateFromCellListParallelPetsc
Create distributed `DMPLEX` from a list of vertices for each cell (common mesh generator output) 
## Synopsis
```
#include "petscdmplex.h"   
#include "petscdmplex.h"   
PetscErrorCode DMPlexCreateFromCellListParallelPetsc(MPI_Comm comm, PetscInt dim, PetscInt numCells, PetscInt numVertices, PetscInt NVertices, PetscInt numCorners, PetscBool interpolate, const PetscInt cells[], PetscInt spaceDim, const PetscReal vertexCoords[], PetscSF *vertexSF, PetscInt **verticesAdj, DM *dm)
```
Collective


## Input Parameters

- ***comm -*** The communicator
- ***dim -*** The topological dimension of the mesh
- ***numCells -*** The number of cells owned by this process
- ***numVertices -*** The number of vertices owned by this process, or `PETSC_DECIDE`
- ***NVertices -*** The global number of vertices, or `PETSC_DECIDE`
- ***numCorners -*** The number of vertices for each cell
- ***interpolate -*** Flag indicating that intermediate mesh entities (faces, edges) should be created automatically
- ***cells -*** An array of numCells*numCorners numbers, the global vertex numbers for each cell
- ***spaceDim -*** The spatial dimension used for coordinates
- ***vertexCoords -*** An array of numVertices*spaceDim numbers, the coordinates of each vertex



## Output Parameters

- ***dm -*** The `DM`
- ***vertexSF -*** (Optional) `PetscSF` describing complete vertex ownership
- ***verticesAdjSaved -*** (Optional) vertex adjacency array





## Notes
This function is just a convenient sequence of `DMCreate()`, `DMSetType()`, `DMSetDimension()`,
`DMPlexBuildFromCellListParallel()`, `DMPlexInterpolate()`, `DMPlexBuildCoordinatesFromCellListParallel()`

See `DMPlexBuildFromCellListParallel()` for an example and details about the topology-related parameters.

See `DMPlexBuildCoordinatesFromCellListParallel()` for details about the geometry-related parameters.


## See Also
 [](chapter_unstructured), `DM`, `DMPLEX`, `DMPlexCreateFromCellListPetsc()`, `DMPlexBuildFromCellListParallel()`, `DMPlexBuildCoordinatesFromCellListParallel()`, `DMPlexCreateFromDAG()`, `DMPlexCreate()`

## Level
intermediate

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


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexcreate.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)  
