MatReorderForNonzeroDiagonal
Changes matrix ordering to remove zeros from diagonal. This may help in the LU factorization to prevent a zero pivot.
Synopsis
int MatReorderForNonzeroDiagonal(Mat mat,double atol,IS ris,IS cis )
Collective on
Mat
Input Parameters
mat | - matrix to reorder
|
rmap,cmap | - row and column permutations. Usually obtained from
MatGetReordering().
|
Notes
This is not intended as a replacement for pivoting for matrices
thathave ``bad'' structure. It is only a stop-gap measure. Should be
calledafter a call to MatGetReordering(), this routine changes the
columnordering defined in cis.
Options Database Keys (When using SLES)
-pc_ilu_nonzeros_along_diagonal | - - -pc_lu_nonzeros_along_diagonal
|
Algorithm
Column pivoting is used. Choice of column is made by looking at
thenon-zero elements in the row. This algorithm is simple and fast
butdoes NOT guarantee that a non-singular or well
conditionedprinciple submatrix will be produced.
Location: src/mat/utils/zerodiag.c
Matrix Index
Table of Contents