Actual source code: matregis.c
1: /*$Id: matregis.c,v 1.8 2001/03/23 23:21:44 balay Exp $*/
3: #include "petscmat.h" /*I "petscmat.h" I*/
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: EXTERN_C_END
22:
23: /*
24: This is used by MatSetType() to make sure that at least one
25: MatRegisterAll() is called. In general, if there is more than one
26: DLL, then MatRegisterAll() may be called several times.
27: */
28: EXTERN PetscTruth MatRegisterAllCalled;
30: /*@C
31: MatRegisterAll - Registers all of the matrix types in PETSc
33: Not Collective
35: Level: advanced
37: .keywords: KSP, register, all
39: .seealso: MatRegisterDestroy()
40: @*/
41: int MatRegisterAll(char *path)
42: {
46: MatRegisterAllCalled = PETSC_TRUE;
48: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
49: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
51: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
52: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
53: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(__cplusplus)
54: MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
55: #endif
57: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
58: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
60: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
61: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
63: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
64: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
66: MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);
67: MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);
69: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
70: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
72: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
73: return(0);
74: }