#include "petscmat.h" PetscErrorCode MatGetOrdering(Mat mat,MatOrderingType type,IS *rperm,IS *cperm)Collective on Mat
|mat||- the matrix|
|type||- type of reordering, one of the following:|
MATORDERINGNATURAL_OR_ND - Nested dissection unless matrix is SBAIJ then it is natural
MATORDERINGNATURAL - Natural
MATORDERINGND - Nested Dissection
MATORDERING1WD - One-way Dissection
MATORDERINGRCM - Reverse Cuthill-McKee
MATORDERINGQMD - Quotient Minimum Degree
MATORDERINGEXTERNAL - Use an ordering internal to the factorzation package and do not compute or use PETSc's
|rperm||- row permutation indices|
|cperm||- column permutation indices|
|-mat_view_ordering draw||- plots matrix nonzero structure in new ordering|
|-pc_factor_mat_ordering_type <nd,natural,..>||- ordering to use with PCs based on factorization, LU, ILU, Cholesky, ICC|
The user can define additional orderings; see MatOrderingRegister().
These are generally only implemented for sequential sparse matrices.
Some external packages that PETSc can use for direct factorization such as SuperLU do not accept orderings provided by this call.
If MATORDERINGEXTERNAL is used then PETSc does not compute an ordering and utilizes one built into the factorization package
fill, reordering, natural, Nested Dissection, One-way Dissection, Cholesky, Reverse Cuthill-McKee, Quotient Minimum Degree