:orphan: # DMPlexGetTransitiveClosure Return the points on the transitive closure of the in-edges or out-edges for this point in the DAG ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexGetTransitiveClosure(DM dm, PetscInt p, PetscBool useCone, PetscInt *numPoints, PetscInt *points[]) ``` Not Collective ## Input Parameters - ***dm -*** The `DMPLEX` - ***p -*** The mesh point - ***useCone -*** `PETSC_TRUE` for the closure, otherwise return the star ## Input/Output Parameter - ***points -*** The points and point orientations, interleaved as pairs [p0, o0, p1, o1, ...]; if `NULL` on input, internal storage will be returned, otherwise the provided array is used ## Output Parameter - ***numPoints -*** The number of points in the closure, so points[] is of size 2*`numPoints` ## Note If using internal storage (points is `NULL` on input), each call overwrites the last output. ## Fortran Note The `numPoints` argument is not present in the Fortran binding since it is internal to the array. ## See Also [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexRestoreTransitiveClosure()`, `DMPlexCreate()`, `DMPlexSetCone()`, `DMPlexSetChart()`, `DMPlexGetCone()` ## Level beginner ## Location src/dm/impls/plex/plex.c ## Examples src/dm/impls/plex/tutorials/ex11.c
## Implementations DMPlexGetTransitiveClosure_Internal in src/dm/impls/plex/plex.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plex.c) [Index of all DMPlex routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)