# 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[], PetscInt outOffsets[], 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 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
Must 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
 [](chapter_unstructured), `DM`, `DMPLEX`, `DMPlexRestoreClosureIndices()`, `DMPlexVecGetClosure()`, `DMPlexMatSetClosure()`, `DMGetLocalSection()`,
`PetscSection`, `DMGetGlobalSection()`

## Level
advanced

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

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/tutorials/ex8.c.html">src/dm/impls/plex/tutorials/ex8.c.html</A><BR>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
