petsc-main 2021-04-20
Report Typos and Errors


Interpolates a solution from a coarse mesh to a fine mesh.


#include "petscdm.h"          
#include "petscdmlabel.h"     
#include "petscds.h"     
PetscErrorCode DMInterpolateSolution(DM coarse, DM fine, Mat interp, Vec coarseSol, Vec fineSol)
Collective on DM

Input Arguments

coarse - coarse DM
fine - fine DM
interp - (optional) the matrix computed by DMCreateInterpolation(). Implementations may not need this, but if it is available it can avoid some recomputation. If it is provided, MatInterpolate() will be used if the coarse DM does not have a specialized implementation.
coarseSol - solution on the coarse mesh

Output Arguments

fineSol - the interpolation of coarseSol to the fine mesh

Note: This function exists because the interpolation of a solution vector between meshes is not always a linear map. For example, if a boundary value problem has an inhomogeneous Dirichlet boundary condition that is compressed out of the solution vector. Or if interpolation is inherently a nonlinear operation, such as a method using slope-limiting reconstruction.

See Also

DMInterpolate(), DMCreateInterpolation()






DMInterpolateSolution_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