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: #undef __FUNCT__
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: int MatOrderingRegisterAll(char *path)
40: {
41: int ierr;
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);
52: #if defined(PETSC_HAVE_DSCPACKS) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE)
53: MatOrderingRegisterDynamic(MATORDERING_DSC_ND ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
54: MatOrderingRegisterDynamic(MATORDERING_DSC_MMD ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
55: MatOrderingRegisterDynamic(MATORDERING_DSC_MDF ,path,"MatOrdering_DSC" ,MatOrdering_DSC);
56: #endif
57: return(0);
58: }