Actual source code: sregis.c

 2:  #include src/mat/matimpl.h

  5: EXTERN PetscErrorCode MatOrdering_Natural(Mat,const MatOrderingType,IS*,IS*);
  6: EXTERN PetscErrorCode MatOrdering_ND(Mat,const MatOrderingType,IS*,IS*);
  7: EXTERN PetscErrorCode MatOrdering_1WD(Mat,const MatOrderingType,IS*,IS*);
  8: EXTERN PetscErrorCode MatOrdering_QMD(Mat,const MatOrderingType,IS*,IS*);
  9: EXTERN PetscErrorCode MatOrdering_RCM(Mat,const MatOrderingType,IS*,IS*);
 10: EXTERN PetscErrorCode MatOrdering_RowLength(Mat,const MatOrderingType,IS*,IS*);
 11: EXTERN PetscErrorCode MatOrdering_DSC(Mat,const MatOrderingType,IS*,IS*);

 16: /*@C
 17:   MatOrderingRegisterAll - Registers all of the matrix 
 18:   reordering routines in PETSc.

 20:   Not Collective

 22:   Level: developer

 24:   Adding new methods:
 25:   To add a new method to the registry. Copy this routine and 
 26:   modify it to incorporate a call to MatReorderRegister() for 
 27:   the new method, after the current list.

 29:   Restricting the choices: To prevent all of the methods from being
 30:   registered and thus save memory, copy this routine and comment out
 31:   those orderigs you do not wish to include.  Make sure that the
 32:   replacement routine is linked before libpetscmat.a.

 34: .keywords: matrix, reordering, register, all

 36: .seealso: MatOrderingRegisterDynamic(), MatOrderingRegisterDestroy()
 37: @*/
 38: PetscErrorCode MatOrderingRegisterAll(const char path[])
 39: {

 43:   MatOrderingRegisterAllCalled = PETSC_TRUE;

 45:   MatOrderingRegisterDynamic(MATORDERING_NATURAL,  path,"MatOrdering_Natural"  ,MatOrdering_Natural);
 46:   MatOrderingRegisterDynamic(MATORDERING_ND,       path,"MatOrdering_ND"       ,MatOrdering_ND);
 47:   MatOrderingRegisterDynamic(MATORDERING_1WD,      path,"MatOrdering_1WD"      ,MatOrdering_1WD);
 48:   MatOrderingRegisterDynamic(MATORDERING_RCM,      path,"MatOrdering_RCM"      ,MatOrdering_RCM);
 49:   MatOrderingRegisterDynamic(MATORDERING_QMD,      path,"MatOrdering_QMD"      ,MatOrdering_QMD);
 50:   MatOrderingRegisterDynamic(MATORDERING_ROWLENGTH,path,"MatOrdering_RowLength",MatOrdering_RowLength);

 52:   return(0);
 53: }