Skip to main content
`Ctrl`+`K`

# PetscSection

Mapping from integers in a designated range to contiguous sets of integers.

## Synopsis

    typedef struct _p_PetscSection *PetscSection;

The range of a `PetscSection` is in the space of contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects, especially other `PetscSection`, `Vec`s, and `IS`s. The domain is set with `PetscSectionSetChart()` and does not need to start at 0. For each point in the domain of a `PetscSection`, the output set is represented through an offset and a count, which are set using `PetscSectionSetOffset()` and `PetscSectionSetDof()` respectively. Lookup is typically using accessors or routines like `VecGetValuesSection()`.

The `PetscSection` object and methods are intended to be used in the PETSc `Vec` and `Mat` implementations. The indices returned by the `PetscSection` are appropriate for the kind of `Vec` it is associated with. For example, if the vector being indexed is a local vector, we call the section a local section. If the section indexes a global vector, we call it a global section. For parallel vectors, like global vectors, we use negative indices to indicate dofs owned by other processes.

## See Also

PetscSection, `PetscSectionCreate()`, `PetscSectionDestroy()`, `PetscSectionSym`

## Level

beginner

## Location

include/petscsectiontypes.h

## Examples

src/dm/impls/plex/tutorials/ex14.c
src/snes/tutorials/ex7.c
src/dm/impls/plex/tutorials/ex7.c
src/dm/tutorials/ex20.c
src/dm/impls/plex/tutorials/ex6.c
src/dm/impls/stag/tutorials/ex1.c
src/dm/impls/plex/tutorials/ex8.c
src/dm/impls/plex/tutorials/ex1.c
src/dm/impls/plex/tutorials/ex1f90.F90
src/dm/tutorials/ex21.c

## Implementations

_p_PetscSection in include/petsc/private/sectionimpl.h

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