petsc-3.14.6 2021-03-30
DMCreateInterpolation
Gets interpolation matrix between two DM objects
Synopsis
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateInterpolation(DM dmc,DM dmf,Mat *mat,Vec *vec)
Collective on dmc
Input Parameter
| dmc | - the DM object
|
| dmf | - the second, finer DM object
|
Output Parameter
| mat | - the interpolation
|
| vec | - the scaling (optional)
|
Notes
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 interpolation.
For DMDA objects you can use this interpolation (more precisely the interpolation from the DMGetCoordinateDM()) to interpolate the mesh coordinate vectors
EXCEPT in the periodic case where it does not make sense since the coordinate vectors are not periodic.
See Also
DMDestroy(), DMView(), DMCreateGlobalVector(), DMCreateColoring(), DMCreateMatrix(), DMRefine(), DMCoarsen(), DMCreateRestriction(), DMCreateInterpolationScale()
Level
developer
Location
src/dm/interface/dm.c
Examples
src/dm/tutorials/ex3.c.html
src/ksp/ksp/tutorials/ex42.c.html
src/ksp/ksp/tutorials/ex65.c.html
src/ksp/ksp/tutorials/ex73.c.html
src/snes/tutorials/ex48.c.html
Implementations
DMCreateInterpolation_Composite in src/dm/impls/composite/pack.c
DMCreateInterpolation_DA_1D_Q1 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA_1D_Q0 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA_2D_Q1 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA_2D_Q0 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA_3D_Q0 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA_3D_Q1 in src/dm/impls/da/dainterp.c
DMCreateInterpolation_DA in src/dm/impls/da/dainterp.c
DMCreateInterpolation_pforest in src/dm/impls/forest/p4est/pforest.c
DMCreateInterpolation_Moab in src/dm/impls/moab/dmmbmg.cxx
DMCreateInterpolation_Plex in src/dm/impls/plex/plex.c
DMCreateInterpolation_Redundant in src/dm/impls/redundant/dmredundant.c
DMCreateInterpolation_SNESVI in src/snes/impls/vi/rs/virs.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages