Skip to main content
`Ctrl`+`K`

# DMPlexGetClosureIndices

Gets the global dof indices associated with the closure of the given point within the provided sections.

## Synopsis

    #include "petscdmplex.h"
    PetscErrorCode DMPlexGetClosureIndices(DM dm, PetscSection section, PetscSection idxSection, PetscInt point, PetscBool useClPerm, PetscInt *numIndices, PetscInt *indices[], PeOp PetscInt outOffsets[], PeOp PetscScalar *values[])

Not collective

## Input Parameters

- dm - The `DM`

- section - The `PetscSection` describing the points (a local section)

- idxSection - The `PetscSection` from which to obtain indices (may be local or global)

- point - The point defining the closure

- useClPerm - Use the closure point permutation if available

## Output Parameters

- numIndices - The number of dof indices in the closure of point with the input sections

- indices - The dof indices

- outOffsets - Array, of length the number of fields plus 1, to write the field offsets into, or `NULL`

- values - The input values, which may be modified if sign flips are induced by the point symmetries, or `NULL`

## Notes

Call `DMPlexRestoreClosureIndices()` to free allocated memory

If `idxSection` is global, any constrained dofs (see `DMAddBoundary()`, for example) will get negative indices. The value of those indices is not significant. If `idxSection` is local, the constrained dofs will yield the involution -(idx+1) of their index in a local vector. A caller who does not wish to distinguish those points may recover the nonnegative indices via involution, -(-(idx+1)+1)==idx. Local indices are provided when `idxSection` == section, otherwise global indices (with the above semantics) are implied.

## See Also

DMPlex: Unstructured Grids, `DM`, `DMPLEX`, `DMPlexRestoreClosureIndices()`, `DMPlexVecGetClosure()`, `DMPlexMatSetClosure()`, `DMGetLocalSection()`, `PetscSection`, `DMGetGlobalSection()`

## Level

advanced

## Location

src/dm/impls/plex/plex.c

## Examples

src/dm/impls/plex/tutorials/ex8.c
src/dm/impls/plex/tutorials/dmplexgetrestoreclosureindices.F90

## Implementations

DMPlexGetClosureIndices_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