petsc-master 2016-02-11
Report Typos and Errors


Solves L x = b, given a factored matrix, A = LU, or U^T*D^(1/2) x = b, given a factored symmetric matrix, A = U^T*D*U,


#include "petscmat.h" 
PetscErrorCode MatForwardSolve(Mat mat,Vec b,Vec x)
Neighbor-wise Collective on Mat and Vec

Input Parameters

mat - the factored matrix
b - the right-hand-side vector

Output Parameter

x -the result vector


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 MatForwardSolve(A,x,x).

For matrix in seqsbaij 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.

Most users should employ the simplified KSP interface for linear solvers instead of working directly with matrix algebra routines such as this. See, e.g., KSPCreate().

See Also

MatSolve(), MatBackwardSolve()

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages