Actual source code: sregis.c

      1: #define PETSCMAT_DLL

     3:  #include src/mat/matimpl.h

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

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

     21:   Not Collective

     23:   Level: developer

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

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

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

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

     44:   MatOrderingRegisterAllCalled = PETSC_TRUE;

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

     53:   return(0);
     54: }