DMPlexGetCompressedClosure — PETSc 3.25.4 documentation

Skip to main content
`Ctrl`+`K`

# DMPlexGetCompressedClosure

Return the transitive closure of a point, restricted to points with dof in the given section

## Synopsis

    #include "petscdmplex.h"
    /* Compressed closure does not apply closure permutation */
    PetscErrorCode DMPlexGetCompressedClosure(DM dm, PetscSection section, PetscInt point, PetscInt ornt, PetscInt *numPoints, PetscInt **points, PetscSection *clSec, IS *clPoints, const PetscInt **clp)

Not Collective

## Input Parameters

- dm - The `DMPLEX`

- section - The `PetscSection` used to filter closure points

- point - The mesh point

- ornt - The orientation of `point`; when zero the cached closure index (if any) is used directly

## Output Parameters

- numPoints - Number of closure points that participate in `section`

- points - Array of `(point, orientation)` pairs; either the cached closure or a work array from `DMPlexGetTransitiveClosure_Internal()`

- clSec - The section describing the closure index, or `NULL` if none is cached

- clPoints - The `IS` holding the closure indices, or `NULL` if none is cached

- clp - Raw pointer into the closure-index `IS` when it is used, or `NULL` otherwise

## Note

This routine does not apply the closure permutation. Release the outputs with `DMPlexRestoreCompressedClosure()`.

## See Also

DMPlex: Unstructured Grids, `DM`, `DMPLEX`, `PetscSection`, `DMPlexRestoreCompressedClosure()`, `DMPlexGetTransitiveClosure()`, `PetscSectionGetClosureIndex()`

## Level

developer

## Location

src/dm/impls/plex/plex.c

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