petsc-3.7.3 2016-07-24
Report Typos and Errors

# 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 on Mat and Vec

### 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 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(), MatForwardSolve()

Level:developer
Location: src/mat/interface/matrix.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages