DMGlobalToLocalSolve#
Solve for the global vector that is mapped to a given local vector by DMGlobalToLocalBegin()
/DMGlobalToLocalEnd()
with mode = INSERT_VALUES
. It is assumed that the sum of all the local vector sizes is greater than or equal to the global vector size, so the solution is a least-squares solution. It is also assumed that DMLocalToGlobalBegin()
/DMLocalToGlobalEnd()
with mode = ADD_VALUES
is the adjoint of the global-to-local map, so that the least-squares solution may be found by the normal equations.
Synopsis#
#include "petscdm.h"
#include "petscdmplex.h"
#include "petscksp.h"
PetscErrorCode DMGlobalToLocalSolve(DM dm, Vec x, Vec y)
Collective
Input Parameters#
dm - The
DM
objectx - The local vector
y - The global vector: the input value of globalVec is used as an initial guess
Output Parameter#
y - The least-squares solution
Note#
If the DM
is of type DMPLEX
, then y is the solution of L’ * D * L * y = L’ * D * x, where D is a diagonal mask that is 1 for every point in
the union of the closures of the local cells and 0 otherwise. This difference is only relevant if there are anchor points that are not in the
closure of any local cell (see DMPlexGetAnchors()
/DMPlexSetAnchors()
).
See Also#
KSP: Linear System Solvers, DM
, DMGlobalToLocalBegin()
, DMGlobalToLocalEnd()
, DMLocalToGlobalBegin()
, DMLocalToGlobalEnd()
, DMPlexGetAnchors()
, DMPlexSetAnchors()
Level#
advanced
Location#
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages