Actual source code: matregis.c
1: /*$Id: matregis.c,v 1.10 2001/06/21 21:16:17 bsmith Exp $*/
3: #include petscmat.h
5: EXTERN_C_BEGIN
6: EXTERN int MatCreate_MAIJ(Mat);
7: EXTERN int MatCreate_IS(Mat);
8: EXTERN int MatCreate_MPIRowbs(Mat);
9: EXTERN int MatCreate_SeqAIJ(Mat);
10: EXTERN int MatCreate_MPIAIJ(Mat);
11: EXTERN int MatCreate_SeqBAIJ(Mat);
12: EXTERN int MatCreate_MPIBAIJ(Mat);
13: EXTERN int MatCreate_SeqSBAIJ(Mat);
14: EXTERN int MatCreate_MPISBAIJ(Mat);
15: EXTERN int MatCreate_SeqBDiag(Mat);
16: EXTERN int MatCreate_MPIBDiag(Mat);
17: EXTERN int MatCreate_SeqDense(Mat);
18: EXTERN int MatCreate_MPIDense(Mat);
19: EXTERN int MatCreate_MPIAdj(Mat);
20: EXTERN int MatCreate_Shell(Mat);
21: #if defined(__cplusplus)
22: EXTERN int MatCreate_ESI(Mat);
23: EXTERN int MatCreate_PetscESI(Mat);
24: #endif
25: EXTERN_C_END
26:
27: /*
28: This is used by MatSetType() to make sure that at least one
29: MatRegisterAll() is called. In general, if there is more than one
30: DLL, then MatRegisterAll() may be called several times.
31: */
32: EXTERN PetscTruth MatRegisterAllCalled;
34: #undef __FUNCT__
36: /*@C
37: MatRegisterAll - Registers all of the matrix types in PETSc
39: Not Collective
41: Level: advanced
43: .keywords: KSP, register, all
45: .seealso: MatRegisterDestroy()
46: @*/
47: int MatRegisterAll(char *path)
48: {
52: MatRegisterAllCalled = PETSC_TRUE;
54: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
55: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
57: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
58: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
59: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX)
60: MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
61: #endif
63: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
64: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
66: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
67: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
69: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
70: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
72: MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);
73: MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);
75: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
76: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
78: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
79: #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE)
80: MatRegisterDynamic(MATESI, path,"MatCreate_ESI", MatCreate_ESI);
81: MatRegisterDynamic(MATPETSCESI, path,"MatCreate_PetscESI", MatCreate_PetscESI);
82: #endif
83: return(0);
84: }