On Nov 30, 2011, at 2:07 PM, Jed Brown wrote: > On Wed, Nov 30, 2011 at 14:04, Barry Smith <bsmith at mcs.anl.gov> wrote: > Ok, so how can we resolve this? The problem is that the default ordering is > set when the PCCreate_Cholesky() and is set to be natural in order "to be > safe" if sbaij matrix is used. We could change it to default to ND and then > when PCSetUp_Cholesky() is called simply set the ordering to natural if it is > a sbaij matrix. Kind of a hack but what do you suggest that doesn't involve > tracking some other variable indicating if the user has set the ordering type > to something else ... > > Why the hell set it so soon? This is like choosing which side/norm to use in > a Krylov method. Make the decision lazily (when it is requested or needed to > do something), otherwise leave it undefined.
There is currently no MatOrdering object nor MatColoring object one simply calls MatGetOrdering with an MatOrderingType and MatGetColoring with a MatColoringType. These should both be totally refactored to match the paradigm of other PETSc objects; for example KSP or MatPartitioning. Make a ticket in your cumbersome ticketing web interface :-) Barry