Actual source code: sregis.c
1: /*$Id: sregis.c,v 1.39 2001/08/06 21:16:14 bsmith Exp $*/
3: #include src/mat/matimpl.h
5: EXTERN_C_BEGIN
6: EXTERN int MatOrdering_Natural(Mat,MatOrderingType,IS*,IS*);
7: EXTERN int MatOrdering_ND(Mat,MatOrderingType,IS*,IS*);
8: EXTERN int MatOrdering_1WD(Mat,MatOrderingType,IS*,IS*);
9: EXTERN int MatOrdering_QMD(Mat,MatOrderingType,IS*,IS*);
10: EXTERN int MatOrdering_RCM(Mat,MatOrderingType,IS*,IS*);
11: EXTERN int MatOrdering_RowLength(Mat,MatOrderingType,IS*,IS*);
12: EXTERN int MatOrdering_DSC(Mat,MatOrderingType,IS*,IS*);
13: EXTERN_C_END
15: /*@C
16: MatOrderingRegisterAll - Registers all of the matrix
17: reordering routines in PETSc.
19: Not Collective
21: Level: developer
23: Adding new methods:
24: To add a new method to the registry. Copy this routine and
25: modify it to incorporate a call to MatReorderRegister() for
26: the new method, after the current list.
28: Restricting the choices: To prevent all of the methods from being
29: registered and thus save memory, copy this routine and comment out
30: those orderigs you do not wish to include. Make sure that the
31: replacement routine is linked before libpetscmat.a.
33: .keywords: matrix, reordering, register, all
35: .seealso: MatOrderingRegisterDynamic(), MatOrderingRegisterDestroy()
36: @*/
37: int MatOrderingRegisterAll(char *path)
38: {
39: int ierr;
42: MatOrderingRegisterAllCalled = PETSC_TRUE;
44: MatOrderingRegisterDynamic(MATORDERING_NATURAL, path,"MatOrdering_Natural" ,MatOrdering_Natural);
45: MatOrderingRegisterDynamic(MATORDERING_ND, path,"MatOrdering_ND" ,MatOrdering_ND);
46: MatOrderingRegisterDynamic(MATORDERING_1WD, path,"MatOrdering_1WD" ,MatOrdering_1WD);
47: MatOrderingRegisterDynamic(MATORDERING_RCM, path,"MatOrdering_RCM" ,MatOrdering_RCM);
48: MatOrderingRegisterDynamic(MATORDERING_QMD, path,"MatOrdering_QMD" ,MatOrdering_QMD);
49: MatOrderingRegisterDynamic(MATORDERING_ROWLENGTH,path,"MatOrdering_RowLength",MatOrdering_RowLength);
50: #if defined(PETSC_HAVE_DSCPACKS) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE)
51: MatOrderingRegisterDynamic(MATORDERING_DSC_ND ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
52: MatOrderingRegisterDynamic(MATORDERING_DSC_MMD ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
53: MatOrderingRegisterDynamic(MATORDERING_DSC_MDF ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
54: #endif
55: return(0);
56: }