Actual source code: matregis.c
1: #define PETSCMAT_DLL
3: #include petscmat.h
6: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MAIJ(Mat);
7: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_IS(Mat);
8: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIRowbs(Mat);
9: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJ(Mat);
10: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJ(Mat);
11: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJ(Mat);
12: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBAIJ(Mat);
13: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBAIJ(Mat);
14: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BAIJ(Mat);
15: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJ(Mat);
16: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJ(Mat);
17: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJ(Mat);
18: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBDiag(Mat);
19: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBDiag(Mat);
20: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BDiag(Mat);
21: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqDense(Mat);
22: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIDense(Mat);
23: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Dense(Mat);
24: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAdj(Mat);
25: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Shell(Mat);
26: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCSRPERM(Mat);
27: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCRL(Mat);
28: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICRL(Mat);
29: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CRL(Mat);
30: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICSRPERM(Mat);
31: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CSRPERM(Mat);
32: #if defined(PETSC_HAVE_SPOOLES)
33: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat);
34: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat);
35: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat);
36: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat);
37: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat);
38: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat);
39: #endif
40: #if defined(PETSC_HAVE_SUPERLU)
41: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat);
42: #endif
43: #if defined(PETSC_HAVE_SUPERLU_DIST)
44: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat);
45: #endif
46: #if defined(PETSC_HAVE_UMFPACK)
47: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat);
48: #endif
49: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE)
50: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat);
51: #endif
52: #if defined(PETSC_HAVE_LUSOL)
53: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat);
54: #endif
55: #if defined(PETSC_HAVE_MUMPS)
56: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat);
57: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat);
58: #endif
59: #if defined(PETSC_HAVE_DSCPACK)
60: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat);
61: #endif
62: #if defined(PETSC_HAVE_MATLAB)
63: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat);
64: #endif
65: #if defined(PETSC_HAVE_PLAPACK)
66: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Plapack(Mat);
67: #endif
69:
70: /*
71: This is used by MatSetType() to make sure that at least one
72: MatRegisterAll() is called. In general, if there is more than one
73: DLL, then MatRegisterAll() may be called several times.
74: */
75: EXTERN PetscTruth MatRegisterAllCalled;
79: /*@C
80: MatRegisterAll - Registers all of the matrix types in PETSc
82: Not Collective
84: Level: advanced
86: .keywords: KSP, register, all
88: .seealso: MatRegisterDestroy()
89: @*/
90: PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[])
91: {
95: MatRegisterAllCalled = PETSC_TRUE;
97: MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
98: MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
99: MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);
101: MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);
102: MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);
103: #if defined(PETSC_HAVE_BLOCKSOLVE95)
104: MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
105: #endif
106: MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);
107: MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);
108: MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);
109: MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);
110: MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);
111: MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);
112: MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);
113: MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);
114: MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);
116: MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);
117: MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);
118: MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);
120: MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);
121: MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);
122: MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);
123: MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);
124: MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);
125: MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);
126: MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);
127: MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);
128: MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);
129: MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);
130: #if defined(PETSC_HAVE_SPOOLES)
131: MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);
132: MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);
133: MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);
134: MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);
135: MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles", MatCreate_AIJSpooles);
136: MatRegisterDynamic(MATSBAIJSPOOLES, path,"MatCreate_SBAIJSpooles", MatCreate_SBAIJSpooles);
137: #endif
138: #if defined(PETSC_HAVE_SUPERLU)
139: MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SuperLU",MatCreate_SuperLU);
140: #endif
141: #if defined(PETSC_HAVE_SUPERLU_DIST)
142: MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);
143: #endif
144: #if defined(PETSC_HAVE_UMFPACK)
145: MatRegisterDynamic(MATUMFPACK,path,"MatCreate_UMFPACK",MatCreate_UMFPACK);
146: #endif
147: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE)
148: MatRegisterDynamic(MATESSL,path,"MatCreate_Essl",MatCreate_Essl);
149: #endif
150: #if defined(PETSC_HAVE_LUSOL)
151: MatRegisterDynamic(MATLUSOL,path,"MatCreate_LUSOL",MatCreate_LUSOL);
152: #endif
153: #if defined(PETSC_HAVE_MUMPS)
154: MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);
155: MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);
156: #endif
157: #if defined(PETSC_HAVE_DSCPACK)
158: MatRegisterDynamic(MATDSCPACK,path,"MatCreate_DSCPACK",MatCreate_DSCPACK);
159: #endif
160: #if defined(PETSC_HAVE_MATLAB)
161: MatRegisterDynamic(MATMATLAB,path,"MatCreate_Matlab",MatCreate_Matlab);
162: #endif
163: #if defined(PETSC_HAVE_PLAPACK)
164: MatRegisterDynamic(MATPLAPACK,path,"MatCreate_Plapack",MatCreate_Plapack);
165: #endif
166: return(0);
167: }