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: #if defined(PETSC_HAVE_SPOOLES)
 27: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat);
 28: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat);
 29: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat);
 30: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat);
 31: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat);
 32: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat);
 33: #endif
 34: #if defined(PETSC_HAVE_SUPERLU)
 35: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat);
 36: #endif
 37: #if defined(PETSC_HAVE_SUPERLU_DIST)
 38: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat);
 39: #endif
 40: #if defined(PETSC_HAVE_UMFPACK)
 41: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat);
 42: #endif
 43: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX)
 44: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat);
 45: #endif
 46: #if defined(PETSC_HAVE_LUSOL)
 47: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat);
 48: #endif
 49: #if defined(PETSC_HAVE_MUMPS)
 50: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat);
 51: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat);
 52: #endif
 53: #if defined(PETSC_HAVE_DSCPACK)
 54: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat);
 55: #endif
 56: #if defined(PETSC_HAVE_MATLAB)
 57: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat);
 58: #endif
 60: 
 61: /*
 62:     This is used by MatSetType() to make sure that at least one 
 63:     MatRegisterAll() is called. In general, if there is more than one
 64:     DLL, then MatRegisterAll() may be called several times.
 65: */
 66: EXTERN PetscTruth MatRegisterAllCalled;

 70: /*@C
 71:   MatRegisterAll - Registers all of the matrix types in PETSc

 73:   Not Collective

 75:   Level: advanced

 77: .keywords: KSP, register, all

 79: .seealso:  MatRegisterDestroy()
 80: @*/
 81: PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[])
 82: {

 86:   MatRegisterAllCalled = PETSC_TRUE;

 88:   MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 89:   MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 90:   MatRegisterDynamic(MATMAIJ,    path,"MatCreate_MAIJ",    MatCreate_MAIJ);

 92:   MatRegisterDynamic(MATIS,      path,"MatCreate_IS",      MatCreate_IS);
 93:   MatRegisterDynamic(MATSHELL,   path,"MatCreate_Shell",   MatCreate_Shell);
 94: #if defined(PETSC_HAVE_BLOCKSOLVE)
 95:   MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
 96: #endif
 97:   MatRegisterDynamic(MATMPIAIJ,  path,"MatCreate_MPIAIJ",  MatCreate_MPIAIJ);
 98:   MatRegisterDynamic(MATSEQAIJ,  path,"MatCreate_SeqAIJ",  MatCreate_SeqAIJ);
 99:   MatRegisterDynamic(MATAIJ,     path,"MatCreate_AIJ",     MatCreate_AIJ);

101:   MatRegisterDynamic(MATMPIBAIJ,  path,"MatCreate_MPIBAIJ",  MatCreate_MPIBAIJ);
102:   MatRegisterDynamic(MATSEQBAIJ,  path,"MatCreate_SeqBAIJ",  MatCreate_SeqBAIJ);
103:   MatRegisterDynamic(MATBAIJ,     path,"MatCreate_BAIJ",     MatCreate_BAIJ);

105:   MatRegisterDynamic(MATMPISBAIJ,  path,"MatCreate_MPISBAIJ",  MatCreate_MPISBAIJ);
106:   MatRegisterDynamic(MATSEQSBAIJ,  path,"MatCreate_SeqSBAIJ",  MatCreate_SeqSBAIJ);
107:   MatRegisterDynamic(MATSBAIJ,     path,"MatCreate_SBAIJ",     MatCreate_SBAIJ);
108:   MatRegisterDynamic(MATMPIBDIAG,  path,"MatCreate_MPIBDiag",  MatCreate_MPIBDiag);
109:   MatRegisterDynamic(MATSEQBDIAG,  path,"MatCreate_SeqBDiag",  MatCreate_SeqBDiag);
110:   MatRegisterDynamic(MATBDIAG,     path,"MatCreate_BDiag",     MatCreate_BDiag);
111:   MatRegisterDynamic(MATMPIDENSE,  path,"MatCreate_MPIDense",  MatCreate_MPIDense);
112:   MatRegisterDynamic(MATSEQDENSE,  path,"MatCreate_SeqDense",  MatCreate_SeqDense);
113:   MatRegisterDynamic(MATDENSE,     path,"MatCreate_Dense",     MatCreate_Dense);
114:   MatRegisterDynamic(MATMPIADJ,    path,"MatCreate_MPIAdj",    MatCreate_MPIAdj);
115: #if defined(PETSC_HAVE_SPOOLES)
116:   MatRegisterDynamic(MATSEQAIJSPOOLES,  path,"MatCreate_SeqAIJSpooles",  MatCreate_SeqAIJSpooles);
117:   MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);
118:   MatRegisterDynamic(MATMPIAIJSPOOLES,  path,"MatCreate_MPIAIJSpooles",  MatCreate_MPIAIJSpooles);
119:   MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);
120:   MatRegisterDynamic(MATAIJSPOOLES,  path,"MatCreate_AIJSpooles",MatCreate_AIJSpooles);
121:   MatRegisterDynamic(MATSBAIJSPOOLES,path,"MatCreate_SBAIJSpooles",MatCreate_SBAIJSpooles);
122: #endif
123: #if defined(PETSC_HAVE_SUPERLU)
124:   MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SuperLU",MatCreate_SuperLU);
125: #endif
126: #if defined(PETSC_HAVE_SUPERLU_DIST)
127:   MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);
128: #endif
129: #if defined(PETSC_HAVE_UMFPACK)
130:   MatRegisterDynamic(MATUMFPACK,path,"MatCreate_UMFPACK",MatCreate_UMFPACK);
131: #endif
132: #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX)
133:   MatRegisterDynamic(MATESSL,path,"MatCreate_Essl",MatCreate_Essl);
134: #endif
135: #if defined(PETSC_HAVE_LUSOL)
136:   MatRegisterDynamic(MATLUSOL,path,"MatCreate_LUSOL",MatCreate_LUSOL);
137: #endif
138: #if defined(PETSC_HAVE_MUMPS)
139:   MatRegisterDynamic(MATAIJMUMPS,  path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);
140:   MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);
141: #endif
142: #if defined(PETSC_HAVE_DSCPACK)
143:   MatRegisterDynamic(MATDSCPACK,path,"MatCreate_DSCPACK",MatCreate_DSCPACK);
144: #endif
145: #if defined(PETSC_HAVE_MATLAB)
146:   MatRegisterDynamic(MATMATLAB,path,"MatCreate_Matlab",MatCreate_Matlab);
147: #endif
148:   return(0);
149: }