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);
9: EXTERN PetscErrorCode MatCreate_MPIRowbs(Mat);
11: EXTERN PetscErrorCode MatCreate_AIJ(Mat);
12: EXTERN PetscErrorCode MatCreate_SeqAIJ(Mat);
13: EXTERN PetscErrorCode MatCreate_MPIAIJ(Mat);
15: EXTERN PetscErrorCode MatCreate_BAIJ(Mat);
16: EXTERN PetscErrorCode MatCreate_SeqBAIJ(Mat);
17: EXTERN PetscErrorCode MatCreate_MPIBAIJ(Mat);
19: EXTERN PetscErrorCode MatCreate_SBAIJ(Mat);
20: EXTERN PetscErrorCode MatCreate_SeqSBAIJ(Mat);
21: EXTERN PetscErrorCode MatCreate_MPISBAIJ(Mat);
23: EXTERN PetscErrorCode MatCreate_BDiag(Mat);
24: EXTERN PetscErrorCode MatCreate_SeqBDiag(Mat);
25: EXTERN PetscErrorCode MatCreate_MPIBDiag(Mat);
27: EXTERN PetscErrorCode MatCreate_Dense(Mat);
28: EXTERN PetscErrorCode MatCreate_SeqDense(Mat);
29: EXTERN PetscErrorCode MatCreate_MPIDense(Mat);
31: EXTERN PetscErrorCode MatCreate_MPIAdj(Mat);
32: EXTERN PetscErrorCode MatCreate_Shell(Mat);
33: EXTERN PetscErrorCode MatCreate_Composite(Mat);
35: EXTERN PetscErrorCode MatCreate_CSRPERM(Mat);
36: EXTERN PetscErrorCode MatCreate_SeqCSRPERM(Mat);
37: EXTERN PetscErrorCode MatCreate_MPICSRPERM(Mat);
39: EXTERN PetscErrorCode MatCreate_CRL(Mat);
40: EXTERN PetscErrorCode MatCreate_SeqCRL(Mat);
41: EXTERN PetscErrorCode MatCreate_MPICRL(Mat);
43: EXTERN PetscErrorCode MatCreate_Scatter(Mat);
44: EXTERN PetscErrorCode MatCreate_BlockMat(Mat);
45: #if defined(PETSC_HAVE_SPOOLES)
46: EXTERN PetscErrorCode MatCreate_AIJSpooles(Mat);
47: EXTERN PetscErrorCode MatCreate_SeqAIJSpooles(Mat);
48: EXTERN PetscErrorCode MatCreate_MPIAIJSpooles(Mat);
50: EXTERN PetscErrorCode MatCreate_SBAIJSpooles(Mat);
51: EXTERN PetscErrorCode MatCreate_SeqSBAIJSpooles(Mat);
52: EXTERN PetscErrorCode MatCreate_MPISBAIJSpooles(Mat);
53: #endif
54: #if defined(PETSC_HAVE_SUPERLU)
55: EXTERN PetscErrorCode MatCreate_SuperLU(Mat);
56: #endif
57: #if defined(PETSC_HAVE_SUPERLU_DIST)
58: EXTERN PetscErrorCode MatCreate_SuperLU_DIST(Mat);
59: #endif
60: #if defined(PETSC_HAVE_UMFPACK)
61: EXTERN PetscErrorCode MatCreate_UMFPACK(Mat);
62: #endif
63: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE)
64: EXTERN PetscErrorCode MatCreate_Essl(Mat);
65: #endif
66: #if defined(PETSC_HAVE_LUSOL)
67: EXTERN PetscErrorCode MatCreate_LUSOL(Mat);
68: #endif
69: #if defined(PETSC_HAVE_MUMPS)
70: EXTERN PetscErrorCode MatCreate_AIJMUMPS(Mat);
71: EXTERN PetscErrorCode MatCreate_SBAIJMUMPS(Mat);
72: #endif
73: #if defined(PETSC_HAVE_DSCPACK)
74: EXTERN PetscErrorCode MatCreate_DSCPACK(Mat);
75: #endif
76: #if defined(PETSC_HAVE_MATLAB_ENGINE)
77: EXTERN PetscErrorCode MatCreate_Matlab(Mat);
78: #endif
79: #if defined(PETSC_HAVE_PLAPACK)
80: EXTERN PetscErrorCode MatCreate_Plapack(Mat);
81: #endif
83:
84: /*
85: This is used by MatSetType() to make sure that at least one
86: MatRegisterAll() is called. In general, if there is more than one
87: DLL, then MatRegisterAll() may be called several times.
88: */
89: EXTERN PetscTruth MatRegisterAllCalled;
93: /*@C
94: MatRegisterAll - Registers all of the matrix types in PETSc
96: Not Collective
98: Level: advanced
100: .keywords: KSP, register, all
102: .seealso: MatRegisterDestroy()
103: @*/
104: PetscErrorCode MatRegisterAll(const char path[])
105: {
109: MatRegisterAllCalled = PETSC_TRUE;
111: MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);
113: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
114: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
115: MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
117: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
118: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
119: MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);
120: #if defined(PETSC_HAVE_BLOCKSOLVE95)
121: MatRegisterDynamic(MATMPIROWBS, path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
122: #endif
123: MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);
124: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
125: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
127: MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);
128: MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);
129: MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);
131: MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);
132: MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);
133: MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);
135: MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);
136: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
137: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
139: MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);
140: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
141: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
143: MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);
144: MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);
145: MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);
147: MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);
148: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
149: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
151: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
152: MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);
153: MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);
154: #if defined(PETSC_HAVE_SPOOLES)
155: MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles", MatCreate_AIJSpooles);
156: MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);
157: MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);
159: MatRegisterDynamic(MATSBAIJSPOOLES, path,"MatCreate_SBAIJSpooles", MatCreate_SBAIJSpooles);
160: MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);
161: MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);
162: #endif
163: #if defined(PETSC_HAVE_SUPERLU)
164: MatRegisterDynamic(MATSUPERLU, path,"MatCreate_SuperLU",MatCreate_SuperLU);
165: #endif
166: #if defined(PETSC_HAVE_SUPERLU_DIST)
167: MatRegisterDynamic(MATSUPERLU_DIST, path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);
168: #endif
169: #if defined(PETSC_HAVE_UMFPACK)
170: MatRegisterDynamic(MATUMFPACK, path,"MatCreate_UMFPACK",MatCreate_UMFPACK);
171: #endif
172: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE)
173: MatRegisterDynamic(MATESSL, path,"MatCreate_Essl",MatCreate_Essl);
174: #endif
175: #if defined(PETSC_HAVE_LUSOL)
176: MatRegisterDynamic(MATLUSOL, path,"MatCreate_LUSOL",MatCreate_LUSOL);
177: #endif
178: #if defined(PETSC_HAVE_MUMPS)
179: MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);
180: MatRegisterDynamic(MATSBAIJMUMPS, path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);
181: #endif
182: #if defined(PETSC_HAVE_DSCPACK)
183: MatRegisterDynamic(MATDSCPACK, path,"MatCreate_DSCPACK",MatCreate_DSCPACK);
184: #endif
185: #if defined(PETSC_HAVE_MATLAB_ENGINE)
186: MatRegisterDynamic(MATMATLAB, path,"MatCreate_Matlab",MatCreate_Matlab);
187: #endif
188: #if defined(PETSC_HAVE_PLAPACK)
189: MatRegisterDynamic(MATPLAPACK, path,"MatCreate_Plapack",MatCreate_Plapack);
190: #endif
191: return(0);
192: }