petsc-3.14.5 2021-03-03
Report Typos and Errors

# DMPlexCreateSection

Create a PetscSection based upon the dof layout specification provided.

### Synopsis

    #include "petscdmplex.h"
    PetscErrorCode DMPlexCreateSection(DM dm, DMLabel label[], const PetscInt numComp[],const PetscInt numDof[], PetscInt numBC, const PetscInt bcField[], const IS bcComps[], const IS bcPoints[], IS perm, PetscSection *section)

Not Collective

### Input Parameters

| dm | - The DMPlex object
| label | - The label indicating the mesh support of each field, or NULL for the whole mesh
| numComp | - An array of size numFields that holds the number of components for each field
| numDof | - An array of size numFields*(dim+1) which holds the number of dof for each field on a mesh piece of dimension d
| numBC | - The number of boundary conditions
| bcField | - An array of size numBC giving the field number for each boundry condition
| bcComps | - [Optional] An array of size numBC giving an IS holding the field components to which each boundary condition applies
| bcPoints | - An array of size numBC giving an IS holding the Plex points to which each boundary condition applies
| perm | - Optional permutation of the chart, or NULL

### Output Parameter

| section | - The PetscSection object

### Notes

numDof[f*(dim+1)+d] gives the number of dof for field f on points of dimension d. For instance, numDof[1] is the number of dof for field 0 on each edge.

The chart permutation is the same one set using PetscSectionSetPermutation()

TODO: How is this related to DMCreateLocalSection()

### See Also

DMPlexCreate(), PetscSectionCreate(), PetscSectionSetPermutation()

### Level

developer

### Location

src/dm/impls/plex/plexsection.c

### Examples

src/dm/impls/plex/tutorials/ex1.c.html
src/dm/impls/plex/tutorials/ex6.c.html
src/dm/impls/plex/tutorials/ex1f90.F90.html
src/dm/tutorials/ex20.c.html
src/ts/tutorials/ex52.c.html
Index of all DMPLEX routines
Table of Contents for all manual pages
Index of all manual pages