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)

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

-pc_ilu_nonzeros_along_diagonal- - -pc_lu_nonzeros_along_diagonal