Actual source code: matregis.c
1: #define PETSCMAT_DLL
3: #include petscmat.h
6: EXTERN PetscErrorCode MatCreate_MFFD(Mat);
7: EXTERN PetscErrorCode MatCreate_MAIJ(Mat);
8: EXTERN PetscErrorCode MatCreate_IS(Mat);
10: EXTERN PetscErrorCode MatCreate_AIJ(Mat);
11: EXTERN PetscErrorCode MatCreate_SeqAIJ(Mat);
12: EXTERN PetscErrorCode MatCreate_MPIAIJ(Mat);
14: EXTERN PetscErrorCode MatCreate_BAIJ(Mat);
15: EXTERN PetscErrorCode MatCreate_SeqBAIJ(Mat);
16: EXTERN PetscErrorCode MatCreate_MPIBAIJ(Mat);
18: EXTERN PetscErrorCode MatCreate_SBAIJ(Mat);
19: EXTERN PetscErrorCode MatCreate_SeqSBAIJ(Mat);
20: EXTERN PetscErrorCode MatCreate_MPISBAIJ(Mat);
22: EXTERN PetscErrorCode MatCreate_Dense(Mat);
23: EXTERN PetscErrorCode MatCreate_SeqDense(Mat);
24: EXTERN PetscErrorCode MatCreate_MPIDense(Mat);
26: EXTERN PetscErrorCode MatCreate_MPIAdj(Mat);
27: EXTERN PetscErrorCode MatCreate_Shell(Mat);
28: EXTERN PetscErrorCode MatCreate_Composite(Mat);
30: EXTERN PetscErrorCode MatCreate_CSRPERM(Mat);
31: EXTERN PetscErrorCode MatCreate_SeqCSRPERM(Mat);
32: EXTERN PetscErrorCode MatCreate_MPICSRPERM(Mat);
34: EXTERN PetscErrorCode MatCreate_CRL(Mat);
35: EXTERN PetscErrorCode MatCreate_SeqCRL(Mat);
36: EXTERN PetscErrorCode MatCreate_MPICRL(Mat);
38: EXTERN PetscErrorCode MatCreate_Scatter(Mat);
39: EXTERN PetscErrorCode MatCreate_BlockMat(Mat);
43:
44: /*
45: This is used by MatSetType() to make sure that at least one
46: MatRegisterAll() is called. In general, if there is more than one
47: DLL, then MatRegisterAll() may be called several times.
48: */
49: EXTERN PetscTruth MatRegisterAllCalled;
53: /*@C
54: MatRegisterAll - Registers all of the matrix types in PETSc
56: Not Collective
58: Level: advanced
60: .keywords: KSP, register, all
62: .seealso: MatRegisterDestroy()
63: @*/
64: PetscErrorCode MatRegisterAll(const char path[])
65: {
69: MatRegisterAllCalled = PETSC_TRUE;
71: MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);
73: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
74: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
75: MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
77: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
78: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
79: MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);
80: MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);
81: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
82: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
84: MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);
85: MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);
86: MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);
88: MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);
89: MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);
90: MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);
92: MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);
93: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
94: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
96: MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);
97: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
98: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
100: MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);
101: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
102: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
104: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
105: MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);
106: MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);
108: return(0);
109: }