DMCreateInjection#
Gets injection matrix between two DM
objects.
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
Notes#
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.
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