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 DMPLEX 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()

Developer Note#

This is used by DMCreateLocalSection()?

DMPlex: Unstructured Grids in PETSc, DM, DMPLEX, DMPlexCreate(), PetscSectionCreate(), PetscSectionSetPermutation()

developer

Location#

src/dm/impls/plex/plexsection.c

Edit on GitLab