SNESPatchSetDiscretisationInfo#

Provide the per-subspace discretisation information required by a SNESPATCH to build patch problems

Synopsis#

#include "petscsnes.h" 
PetscErrorCode SNESPatchSetDiscretisationInfo(SNES snes, PetscInt nsubspaces, DM dms[], const IS isets[], PetscInt dofsPerCell[], const PetscInt **cellDofMap, PetscInt numGhostBcs, const PetscInt ghostBcDofs[], PetscInt numGlobalBcs, const PetscInt globalBcDofs[])

Logically Collective

Input Parameters#

  • snes - the SNESPATCH solver

  • nsubspaces - the number of discretisation subspaces (e.g. fields)

  • dms - array of length nsubspaces of DMs, one per subspace

  • isets - array of length nsubspaces of ISs, mapping subspace DoFs to DoFs in the full local mixed space

  • dofsPerCell - array of length nsubspaces giving the number of DoFs per cell for each subspace

  • cellDofMap - array of length nsubspaces; entry i is a cell-to-DoF map for subspace i

  • numGhostBcs - number of ghost (off-process) boundary-condition dofs

  • ghostBcDofs - array of length numGhostBcs of the ghost boundary-condition dof indices

  • numGlobalBcs - number of global boundary-condition dofs

  • globalBcDofs - array of length numGlobalBcs of the global boundary-condition dof indices

Note#

A DM must already be attached to snes (via SNESSetDM()) before calling this routine. Internally, the information is forwarded to the underlying PCPATCH via PCPatchSetDiscretisationInfo().

The isets must together index each degree of freedom of the full local space exactly once; the size of that space is taken to be the sum of their local sizes.

See Also#

SNES: Nonlinear Solvers, SNESPATCH, PCPATCH, PCPatchSetDiscretisationInfo(), SNESPatchSetComputeOperator(), SNESPatchSetComputeFunction()

Level#

advanced

Location#

src/snes/impls/patch/snespatch.c

Examples#

src/snes/tutorials/ex62.c


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