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: /*@C
35: MatRegisterAll - Registers all of the matrix types in PETSc
37: Not Collective
39: Level: advanced
41: .keywords: KSP, register, all
43: .seealso: MatRegisterDestroy()
44: @*/
45: int MatRegisterAll(char *path)
46: {
50: MatRegisterAllCalled = PETSC_TRUE;
52: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
53: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
55: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
56: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
57: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX)
58: MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
59: #endif
61: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
62: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
64: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
65: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
67: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
68: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
70: MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);
71: MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);
73: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
74: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
76: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
77: #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_MATSINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE)
78: MatRegisterDynamic(MATESI, path,"MatCreate_ESI", MatCreate_ESI);
79: MatRegisterDynamic(MATPETSCESI, path,"MatCreate_PetscESI", MatCreate_PetscESI);
80: #endif
81: return(0);
82: }