18a95e4e9SBarry Smith 2f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 38a95e4e9SBarry Smith 48a95e4e9SBarry Smith EXTERN_C_BEGIN 5f7cf7585SBarry Smith EXTERN int MatCreate_MAIJ(Mat); 6186905e3SBarry Smith EXTERN int MatCreate_IS(Mat); 7273d9f13SBarry Smith EXTERN int MatCreate_MPIRowbs(Mat); 8273d9f13SBarry Smith EXTERN int MatCreate_SeqAIJ(Mat); 9273d9f13SBarry Smith EXTERN int MatCreate_MPIAIJ(Mat); 10209238afSKris Buschelman EXTERN int MatCreate_AIJ(Mat); 11273d9f13SBarry Smith EXTERN int MatCreate_SeqBAIJ(Mat); 12273d9f13SBarry Smith EXTERN int MatCreate_MPIBAIJ(Mat); 13209238afSKris Buschelman EXTERN int MatCreate_BAIJ(Mat); 14273d9f13SBarry Smith EXTERN int MatCreate_SeqSBAIJ(Mat); 15273d9f13SBarry Smith EXTERN int MatCreate_MPISBAIJ(Mat); 16209238afSKris Buschelman EXTERN int MatCreate_SBAIJ(Mat); 17273d9f13SBarry Smith EXTERN int MatCreate_SeqBDiag(Mat); 18273d9f13SBarry Smith EXTERN int MatCreate_MPIBDiag(Mat); 19209238afSKris Buschelman EXTERN int MatCreate_BDiag(Mat); 20273d9f13SBarry Smith EXTERN int MatCreate_SeqDense(Mat); 21273d9f13SBarry Smith EXTERN int MatCreate_MPIDense(Mat); 22209238afSKris Buschelman EXTERN int MatCreate_Dense(Mat); 23273d9f13SBarry Smith EXTERN int MatCreate_MPIAdj(Mat); 24273d9f13SBarry Smith EXTERN int MatCreate_Shell(Mat); 25064f8208SBarry Smith #if defined(__cplusplus) 266d88219bSBarry Smith EXTERN int MatCreate_ESI(Mat); 276d88219bSBarry Smith EXTERN int MatCreate_PetscESI(Mat); 286d88219bSBarry Smith #endif 29b3a1e11cSKris Buschelman #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 30f0c56d0fSKris Buschelman EXTERN int MatCreate_SeqAIJSpooles(Mat); 31f0c56d0fSKris Buschelman EXTERN int MatCreate_SeqSBAIJSpooles(Mat); 32f0c56d0fSKris Buschelman EXTERN int MatCreate_MPIAIJSpooles(Mat); 33f0c56d0fSKris Buschelman EXTERN int MatCreate_MPISBAIJSpooles(Mat); 34*bb4d4166SHong Zhang EXTERN int MatCreate_AIJSpooles(Mat); 35*bb4d4166SHong Zhang EXTERN int MatCreate_SBAIJSpooles(Mat); 36b3a1e11cSKris Buschelman #endif 3714b396bbSKris Buschelman #if defined(PETSC_HAVE_SUPERLU) && !defined(PETSC_USE_SINGLE) 38f0c56d0fSKris Buschelman EXTERN int MatCreate_SuperLU(Mat); 3914b396bbSKris Buschelman #endif 40618c6428SHong Zhang #if defined(PETSC_HAVE_SUPERLU_DIST) && !defined(PETSC_USE_SINGLE) 41f0c56d0fSKris Buschelman EXTERN int MatCreate_SuperLU_DIST(Mat); 42448de63eSKris Buschelman #endif 431677d0b8SKris Buschelman #if defined(PETSC_HAVE_UMFPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 44f0c56d0fSKris Buschelman EXTERN int MatCreate_UMFPACK(Mat); 451677d0b8SKris Buschelman #endif 46e8aa55a4SKris Buschelman #if defined(PETSC_HAVE_ESSL) && !defined(__cplusplus) 47f0c56d0fSKris Buschelman EXTERN int MatCreate_Essl(Mat); 48e8aa55a4SKris Buschelman #endif 494eb8e494SKris Buschelman #if defined(PETSC_HAVE_LUSOL) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 50f0c56d0fSKris Buschelman EXTERN int MatCreate_LUSOL(Mat); 514eb8e494SKris Buschelman #endif 52397b6df1SKris Buschelman #if defined(PETSC_HAVE_MUMPS) && !defined(PETSC_USE_SINGLE) 53f0c56d0fSKris Buschelman EXTERN int MatCreate_AIJMUMPS(Mat); 54f0c56d0fSKris Buschelman EXTERN int MatCreate_SBAIJMUMPS(Mat); 55397b6df1SKris Buschelman #endif 568da957c5SKris Buschelman #if defined(PETSC_HAVE_DSCPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 57f0c56d0fSKris Buschelman EXTERN int MatCreate_DSCPACK(Mat); 588da957c5SKris Buschelman #endif 597065e2aaSKris Buschelman #if defined(PETSC_HAVE_MATLAB) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 607065e2aaSKris Buschelman EXTERN int MatCreate_Matlab(Mat); 617065e2aaSKris Buschelman #endif 628a95e4e9SBarry Smith EXTERN_C_END 638a95e4e9SBarry Smith 648a95e4e9SBarry Smith /* 65f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 66f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 67f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 688a95e4e9SBarry Smith */ 69f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 708a95e4e9SBarry Smith 714a2ae208SSatish Balay #undef __FUNCT__ 724a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 738a95e4e9SBarry Smith /*@C 74f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 758a95e4e9SBarry Smith 768a95e4e9SBarry Smith Not Collective 778a95e4e9SBarry Smith 788a95e4e9SBarry Smith Level: advanced 798a95e4e9SBarry Smith 808a95e4e9SBarry Smith .keywords: KSP, register, all 818a95e4e9SBarry Smith 82f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 838a95e4e9SBarry Smith @*/ 840e33f6ddSBarry Smith int MatRegisterAll(const char path[]) 858a95e4e9SBarry Smith { 868a95e4e9SBarry Smith int ierr; 878a95e4e9SBarry Smith 888a95e4e9SBarry Smith PetscFunctionBegin; 89f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 908a95e4e9SBarry Smith 91f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 92b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 93209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 94273d9f13SBarry Smith 95186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 96273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 975d10bc3aSBarry Smith #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX) 98273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 99273d9f13SBarry Smith #endif 100273d9f13SBarry Smith 101273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 102273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 103209238afSKris Buschelman ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 104273d9f13SBarry Smith 105273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 106273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 107209238afSKris Buschelman ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith 109273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 110273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 111209238afSKris Buschelman ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 112273d9f13SBarry Smith 113273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 114273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 115209238afSKris Buschelman ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 116273d9f13SBarry Smith 117273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 118273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 119209238afSKris Buschelman ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 120273d9f13SBarry Smith 121273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 122c7cd70f7SSatish Balay #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE) 1236d88219bSBarry Smith ierr = MatRegisterDynamic(MATESI, path,"MatCreate_ESI", MatCreate_ESI);CHKERRQ(ierr); 1246d88219bSBarry Smith ierr = MatRegisterDynamic(MATPETSCESI, path,"MatCreate_PetscESI", MatCreate_PetscESI);CHKERRQ(ierr); 1256d88219bSBarry Smith #endif 126b3a1e11cSKris Buschelman #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 127f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 128f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 129f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 130f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 131*bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles",MatCreate_AIJSpooles);CHKERRQ(ierr); 132*bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES,path,"MatCreate_SBAIJSpooles",MatCreate_SBAIJSpooles);CHKERRQ(ierr); 133b3a1e11cSKris Buschelman #endif 13414b396bbSKris Buschelman #if defined(PETSC_HAVE_SUPERLU) && !defined(PETSC_USE_SINGLE) 135f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 13614b396bbSKris Buschelman #endif 137618c6428SHong Zhang #if defined(PETSC_HAVE_SUPERLU_DIST) && !defined(PETSC_USE_SINGLE) 138f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 139448de63eSKris Buschelman #endif 1401677d0b8SKris Buschelman #if defined(PETSC_HAVE_UMFPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 141f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK,path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1421677d0b8SKris Buschelman #endif 143e8aa55a4SKris Buschelman #if defined(PETSC_HAVE_ESSL) && !defined(__cplusplus) 144f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL,path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 145e8aa55a4SKris Buschelman #endif 1464eb8e494SKris Buschelman #if defined(PETSC_HAVE_LUSOL) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 147f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL,path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1484eb8e494SKris Buschelman #endif 149397b6df1SKris Buschelman #if defined(PETSC_HAVE_MUMPS) && !defined(PETSC_USE_SINGLE) 150123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 151123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 152397b6df1SKris Buschelman #endif 1538da957c5SKris Buschelman #if defined(PETSC_HAVE_DSCPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 154f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK,path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1558da957c5SKris Buschelman #endif 1567065e2aaSKris Buschelman #if defined(PETSC_HAVE_MATLAB) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 1577065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB,path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1587065e2aaSKris Buschelman #endif 1598a95e4e9SBarry Smith PetscFunctionReturn(0); 1608a95e4e9SBarry Smith } 161f7cf7585SBarry Smith 1623a7fca6bSBarry Smith 163