MatBackwardSolve#
Solves \(U x = b\), given a factored matrix, \(A = LU\). \(D^(1/2) U x = b\), given a factored symmetric matrix, \(A = U^T*D*U\),
Synopsis#
#include "petscmat.h"
PetscErrorCode MatBackwardSolve(Mat mat, Vec b, Vec x)
Neighbor-wise Collective
Input Parameters#
mat - the factored matrix
b - the right-hand-side vector
Output Parameter#
x - the result vector
Notes#
MatSolve() should be used for most applications, as it performs
a forward solve followed by a backward solve.
The vectors b and x cannot be the same. I.e., one cannot
call MatBackwardSolve(A,x,x).
For matrix in MATSEQBAIJ format with block size larger than 1,
the diagonal blocks are not implemented as \(D = D^(1/2) * D^(1/2)\) yet.
MatForwardSolve() solves \(U^T*D y = b\), and
MatBackwardSolve() solves \(U x = y\).
Thus they do not provide a symmetric preconditioner.
See Also#
Matrices, Mat, MatForwardSolve(), MatGetFactor(), MatSolve()
Level#
developer
Location#
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages