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: }