Skip to main content
`Ctrl`+`K`

# PetscSectionExtractDofsFromArray

Extracts elements of an array corresponding to DOFs of specified points.

## Synopsis

    #include "petscsection.h"
    PetscErrorCode PetscSectionExtractDofsFromArray(PetscSection origSection, MPI_Datatype dataType, const void *origArray, IS points, PetscSection *newSection, void *newArray[])

Not Collective

## Input Parameters

- origSection - the `PetscSection` describing the layout of the array

- dataType - `MPI_Datatype` describing the data type of the array (currently only `MPIU_INT`, `MPIU_SCALAR`, `MPIU_REAL`)

- origArray - the array; its size must be equal to the storage size of `origSection`

- points - `IS` with points to extract; its indices must lie in the chart of `origSection`

## Output Parameters

- newSection - the new `PetscSection` describing the layout of the new array (with points renumbered 0,1,… but preserving numbers of DOFs)

- newArray - the array of the extracted DOFs; its size is the storage size of `newSection`

## See Also

PetscSection, `PetscSectionSym`, `PetscSectionGetChart()`, `PetscSectionGetDof()`, `PetscSectionGetStorageSize()`, `PetscSectionCreate()`

## Level

developer

## Location

src/vec/is/section/interface/section.c

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