Skip to main content
`Ctrl`+`K`

# PetscSectionCreateGlobalSection

Create a parallel section describing the global layout using a local (sequential) `PetscSection` on each MPI process and a `PetscSF` describing the section point overlap.

## Synopsis

    #include "petscsection.h"
    PetscErrorCode PetscSectionCreateGlobalSection(PetscSection s, PetscSF sf, PetscBool usePermutation, PetscBool includeConstraints, PetscBool localOffsets, PetscSection *gsection)

## Input Parameters

- s - The `PetscSection` for the local field layout

- sf - The `PetscSF` describing parallel layout of the section points (leaves are unowned local points)

- usePermutation - By default this is `PETSC_TRUE`, meaning any permutation of the local section is transferred to the global section

- includeConstraints - By default this is `PETSC_FALSE`, meaning that the global field vector will not possess constrained dofs

- localOffsets - If `PETSC_TRUE`, use local rather than global offsets for the points

## Output Parameter

- gsection - The `PetscSection` for the global field layout

## Notes

On each MPI process `gsection` inherits the chart of the `s` on that process.

This sets negative sizes and offsets to points not owned by this process as defined by `sf` but that are within the local value of the chart of `gsection`. In those locations the value of size is -(size+1) and the value of the offset on the remote process is -(off+1).

## See Also

PetscSection, `PetscSection`, `PetscSectionCreate()`, `PetscSectionCreateGlobalSectionCensored()`

## Level

intermediate

## 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