PETSc version 3.17.4
Fix/Edit manual page

# 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 Notes

Since it returns an array, this routine is only available in Fortran 90, and you must include petsc.h90 in your code.

The numPoints argument is not present in the Fortran 90 binding since it is internal to the array.

### See Also

DMPlexRestoreTransitiveClosure(), DMPlexCreate(), DMPlexSetCone(), DMPlexSetChart(), DMPlexGetCone()

### Level

beginner

### Location

src/dm/impls/plex/plex.c

### Examples

src/dm/impls/plex/tutorials/ex11.c.html

### Implementations

DMPlexGetTransitiveClosure_Internal in src/dm/impls/plex/plex.c
Index of all DMPLEX routines
Table of Contents for all manual pages
Index of all manual pages