#include "petscmat.h" PetscErrorCode MatRegisterRootName(const char rname[],const char sname[],const char mname[])
rname | - the rootname, for example, MATAIJ | |
sname | - the name of the sequential matrix type, for example, MATSEQAIJ | |
mname | - the name of the parallel matrix type, for example, MATMPIAIJ |
Notes: The matrix rootname should not be confused with the base type of the function PetscObjectBaseTypeCompare()
Developer Notes: PETSc vectors have a similar rootname that indicates PETSc should automatically select the appropriate VecType based on the size of the communicator but it is implemented by simply having additional VecCreate_RootName() registerer routines that dispatch to the appropriate creation routine. Why have two different ways of implementing the same functionality for different types of objects? It is confusing.