DMCreateInjection#
Gets injection matrix between two DM
objects. This is an operator that applied to a vector obtained with DMCreateGlobalVector()
on the fine grid maps the values to a vector on the vector on the coarse DM
by simply selecting the values on the coarse grid points. This compares to the operator obtained by DMCreateRestriction()
or the transpose of the operator obtained by DMCreateInterpolation()
that uses a “local weighted average” of the values around the coarse grid point as the coarse grid value.
Synopsis#
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateInjection(DM dac, DM daf, Mat *mat)
Collective
Input Parameters#
Output Parameter#
mat - the injection
Note#
For DMDA
objects this only works for “uniform refinement”, that is the refined mesh was obtained DMRefine()
or the coarse mesh was obtained by
DMCoarsen()
. The coordinates set into the DMDA
are completely ignored in computing the injection.
See Also#
DM Basics, DM
, DMDestroy()
, DMView()
, DMCreateGlobalVector()
, DMCreateColoring()
, DMCreateMatrix()
, DMCreateMassMatrix()
, DMCreateInterpolation()
,
DMCreateRestriction()
, MatRestrict()
, MatInterpolate()
Level#
developer
Location#
Implementations#
DMCreateInjection_DA in src/dm/impls/da/dainterp.c
DMCreateInjection_pforest in src/dm/impls/forest/p4est/pforest.h
DMCreateInjection_Moab in src/dm/impls/moab/dmmbmg.cxx
DMCreateInjection_Plex in src/dm/impls/plex/plex.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages