DMCreateFieldDecomposition#
Returns a list of IS
objects defining a decomposition of a problem into subproblems corresponding to different fields.
Synopsis#
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateFieldDecomposition(DM dm, PetscInt *len, char ***namelist, IS **islist, DM **dmlist)
Not Collective; No Fortran Support
Input Parameter#
dm - the
DM
object
Output Parameters#
Notes#
Each IS
contains the global indices of the dofs of the corresponding field, defined by
DMAddField()
. The optional list of DM
s define the DM
for each subproblem.
The same as DMCreateFieldIS()
but also returns a DM
for each field.
The user is responsible for freeing all requested arrays. In particular, every entry of namelist
should be freed with
PetscFree()
, every entry of islist
should be destroyed with ISDestroy()
, every entry of dmlist
should be destroyed with DMDestroy()
,
and all of the arrays should be freed with PetscFree()
.
Developer Notes#
It is not clear why this function and DMCreateFieldIS()
exist. Having two seems redundant and confusing.
Unlike DMRefine()
, DMCoarsen()
, and DMCreateDomainDecomposition()
this provides no mechanism to provide hooks that are called after the
decomposition is computed.
See Also#
DM Basics, DM
, DMAddField()
, DMCreateFieldIS()
, DMCreateSubDM()
, DMCreateDomainDecomposition()
, DMDestroy()
, DMView()
, DMCreateInterpolation()
, DMCreateColoring()
, DMCreateMatrix()
, DMCreateMassMatrix()
, DMRefine()
, DMCoarsen()
Level#
intermediate
Location#
Examples#
Implementations#
DMCreateFieldDecomposition_Composite() in src/dm/impls/composite/pack.c
DMCreateFieldDecomposition_DA() in src/dm/impls/da/dacreate.c
DMCreateFieldDecomposition_Stag() in src/dm/impls/stag/stag.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages