DMCreateDomainDecompositionScatters#
Returns scatters to the subdomain vectors from the global vector for subdomains created with DMCreateDomainDecomposition()
Synopsis#
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateDomainDecompositionScatters(DM dm, PetscInt n, DM *subdms, VecScatter **iscat, VecScatter **oscat, VecScatter **gscat)
Not Collective
Input Parameters#
dm - the
DM
objectn - the number of subdomains
subdms - the local subdomains
Output Parameters#
iscat - scatter from global vector to nonoverlapping global vector entries on subdomain
oscat - scatter from global vector to overlapping global vector entries on subdomain
gscat - scatter from global vector to local vector on subdomain (fills in ghosts)
Note#
This is an alternative to the iis and ois arguments in DMCreateDomainDecomposition()
that allow for the solution
of general nonlinear problems with overlapping subdomain methods. While merely having index sets that enable subsets
of the residual equations to be created is fine for linear problems, nonlinear problems require local assembly of
solution and residual data.
Developer Note#
Can the subdms input be anything or are they exactly the DM
obtained from
DMCreateDomainDecomposition()
?
See Also#
DM Basics, DM
, DMCreateDomainDecomposition()
, DMDestroy()
, DMView()
, DMCreateInterpolation()
, DMCreateColoring()
, DMCreateMatrix()
, DMCreateMassMatrix()
, DMCreateFieldIS()
Level#
developer
Location#
Examples#
Implementations#
DMCreateDomainDecompositionScatters_DA() in src/dm/impls/da/dadd.c
DMCreateDomainDecompositionScatters_pforest() in src/dm/impls/forest/p4est/pforest.h
DMCreateDomainDecompositionScatters_Plex() in src/dm/impls/plex/plexdd.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages