MatGetOrdering

Gets a reordering for a matrix to reduce fill or to improve numerical stability of LU factorization.

Synopsis

int MatGetOrdering(Mat mat,MatOrderingType type,IS *rperm,IS *cperm)
Collective on Mat

Input Parameters

mat - the matrix
type - type of reordering, one of the following:
     MATORDERING_NATURAL - Natural
     MATORDERING_ND - Nested Dissection
     MATORDERING_1WD - One-way Dissection
     MATORDERING_RCM - Reverse Cuthill-McKee
     MATORDERING_QMD - Quotient Minimum Degree

Output Parameters

rperm - row permutation indices
cperm - column permutation indices

Options Database Key

-mat_view_ordering_draw -plots matrix nonzero structure in new ordering

Notes

This DOES NOT actually reorder the matrix; it merely returns two index sets that define a reordering. This is usually not used directly, rather use the options PCLUSetMatOrdering() or PCILUSetMatOrdering().

The user can define additional orderings; see MatOrderingRegisterDynamic().

Keywords

matrix, set, ordering, factorization, direct, ILU, LU,
fill, reordering, natural, Nested Dissection, One-way Dissection, Cholesky, Reverse Cuthill-McKee, Quotient Minimum Degree

See Also

MatOrderingRegisterDynamic(), PCLUSetMatOrdering(), PCILUSetMatOrdering()

Level:intermediate
Location:
src/mat/order/sorder.c
Index of all MatOrderings routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/mat/examples/tutorials/ex1.c.html