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: }