Skip to main content
`Ctrl`+`K`

# DMPlexBuildFromCellList

Build `DMPLEX` topology from a list of vertices for each cell (common mesh generator output)

## Synopsis

    #include "petscdmplex.h"
    #include "petscdmplextransform.h"
    PetscErrorCode DMPlexBuildFromCellList(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const PetscInt cells[])

Collective; No Fortran Support

## Input Parameters

- dm - The `DM`

- numCells - The number of cells owned by this process

- numVertices - The number of vertices owned by this process, or `PETSC_DETERMINE`

- numCorners - The number of vertices for each cell

- cells - An array of `numCells` x `numCorners` numbers, the global vertex numbers for each cell

## Notes

Two triangles sharing a face

            2
          / | \
         /  |  \
        /   |   \
       0  0 | 1  3
        \   |   /
         \  |  /
          \ | /
            1

would have input

      numCells = 2, numVertices = 4
      cells = [0 1 2  1 3 2]

which would result in the `DMPLEX`

            4
          / | \
         /  |  \
        /   |   \
       2  0 | 1  5
        \   |   /
         \  |  /
          \ | /
            3

If numVertices is `PETSC_DETERMINE`, it is computed by PETSc as the maximum vertex index in cells + 1.

## See Also

DMPlex: Unstructured Grids, `DM`, `DMPLEX`, `DMPlexBuildFromCellListParallel()`, `DMPlexBuildCoordinatesFromCellList()`, `DMPlexCreateFromCellListPetsc()`

## Level

advanced

## Location

src/dm/impls/plex/plexcreate.c

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