DMCreateFieldDecomposition#
Returns a list of IS objects defining a decomposition of a problem into subproblems corresponding to different fields: each IS contains the global indices of the dofs of the corresponding field, defined by DMAddField(). The optional list of DMs define the DM for each subproblem. The same as DMCreateFieldIS() but also returns a DM for each field.
Synopsis#
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateFieldDecomposition(DM dm, PetscInt *len, char ***namelist, IS **islist, DM **dmlist)
Not collective
Input Parameter#
dm - the
DMobject
Output Parameters#
Note#
The user is responsible for freeing all requested arrays. In particular, every entry of names should be freed with
PetscFree(), every entry of is should be destroyed with ISDestroy(), every entry of dm should be destroyed with DMDestroy(),
and all of the arrays should be freed with PetscFree().
Fortran Note#
Not available in Fortran.
Developer Note#
It is not clear why this function and DMCreateFieldIS() exist. Having two seems redundant and confusing.
See Also#
DMAddField(), DMCreateFieldIS(), DMCreateSubDM(), DMCreateDomainDecomposition(), DMDestroy(), DMView(), DMCreateInterpolation(), DMCreateColoring(), DMCreateMatrix(), DMCreateMassMatrix(), DMCreateFieldIS()
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