Skip to main content
`Ctrl`+`K`

# DMPlexGetLocalOffsets

Allocate and populate array of local offsets for each cell closure.

## Synopsis

    #include "petscdmplex.h"
    PetscErrorCode DMPlexGetLocalOffsets(DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, PetscInt dm_field, PetscInt *num_cells, PetscInt *cell_size, PetscInt *num_comp, PetscInt *l_size, PetscInt **offsets)

Not collective

## Input Parameters

- dm - The `DMPLEX` object

- domain_label - label for `DMPLEX` domain, or NULL for whole domain

- label_value - Stratum value

- height - Height of target cells in `DMPLEX` topology

- dm_field - Index of `DMPLEX` field

## Output Parameters

- num_cells - Number of local cells

- cell_size - Size of each cell, given by cell_size * num_comp = num_dof

- num_comp - Number of components per dof

- l_size - Size of local vector

- offsets - Allocated offsets array for cells

## Notes

Allocate and populate array of shape [num_cells, cell_size] defining offsets for each value (cell, node) for local vector of the `DMPLEX` field. All offsets are in the range [0, l_size - 1].

Caller is responsible for freeing the offsets array using `PetscFree()`.

## See Also

DMPlex: Unstructured Grids, `DMPlexGetLocalOffsetsSupport()`, `DM`, `DMPLEX`, `DMLabel`, `DMPlexGetClosureIndices()`, `DMPlexSetClosurePermutationTensor()`, `DMPlexGetCeedRestriction()`

## Level

developer

## Location

src/dm/impls/plex/plexceed.c

## Examples

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

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