1be1d678aSKris Buschelman #define PETSCMAT_DLL 28a95e4e9SBarry Smith 3f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 48a95e4e9SBarry Smith 58a95e4e9SBarry Smith EXTERN_C_BEGIN 6be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MAIJ(Mat); 7be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_IS(Mat); 8be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIRowbs(Mat); 917667f90SBarry Smith 1017667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJ(Mat); 11be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJ(Mat); 12be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJ(Mat); 1317667f90SBarry Smith 1417667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BAIJ(Mat); 15be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBAIJ(Mat); 16be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBAIJ(Mat); 1717667f90SBarry Smith 1817667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJ(Mat); 19be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJ(Mat); 20be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJ(Mat); 2117667f90SBarry Smith 2217667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BDiag(Mat); 23be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBDiag(Mat); 24be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBDiag(Mat); 2517667f90SBarry Smith 2617667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Dense(Mat); 27be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqDense(Mat); 28be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIDense(Mat); 2917667f90SBarry Smith 30be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAdj(Mat); 31be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Shell(Mat); 3217667f90SBarry Smith 3317667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CSRPERM(Mat); 3420f673eaSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCSRPERM(Mat); 3517667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICSRPERM(Mat); 3617667f90SBarry Smith 3717667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CRL(Mat); 3881824310SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCRL(Mat); 391472f72bSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICRL(Mat); 4017667f90SBarry Smith 412a6744ebSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Scatter(Mat); 42*421e10b8SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BlockMat(Mat); 432515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 44be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat); 4517667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat); 4617667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat); 4717667f90SBarry Smith 48be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat); 4917667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat); 5017667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat); 51b3a1e11cSKris Buschelman #endif 522515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 53be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat); 5414b396bbSKris Buschelman #endif 552515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 56be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat); 57448de63eSKris Buschelman #endif 582515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 59be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat); 601677d0b8SKris Buschelman #endif 61ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 62be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat); 63e8aa55a4SKris Buschelman #endif 642515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 65be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat); 664eb8e494SKris Buschelman #endif 672515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 68be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat); 69be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat); 70397b6df1SKris Buschelman #endif 712515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 72be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat); 738da957c5SKris Buschelman #endif 74909a696eSBarry Smith #if defined(PETSC_HAVE_MATLAB_ENGINE) 75be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat); 767065e2aaSKris Buschelman #endif 77c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 78c0aa2d19SHong Zhang EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Plapack(Mat); 79c0aa2d19SHong Zhang #endif 80c0aa2d19SHong Zhang EXTERN_C_END 818a95e4e9SBarry Smith 828a95e4e9SBarry Smith /* 83f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 84f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 85f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 868a95e4e9SBarry Smith */ 87f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 888a95e4e9SBarry Smith 894a2ae208SSatish Balay #undef __FUNCT__ 904a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 918a95e4e9SBarry Smith /*@C 92f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 938a95e4e9SBarry Smith 948a95e4e9SBarry Smith Not Collective 958a95e4e9SBarry Smith 968a95e4e9SBarry Smith Level: advanced 978a95e4e9SBarry Smith 988a95e4e9SBarry Smith .keywords: KSP, register, all 998a95e4e9SBarry Smith 100f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 1018a95e4e9SBarry Smith @*/ 102be1d678aSKris Buschelman PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[]) 1038a95e4e9SBarry Smith { 104dfbe8321SBarry Smith PetscErrorCode ierr; 1058a95e4e9SBarry Smith 1068a95e4e9SBarry Smith PetscFunctionBegin; 107f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 1088a95e4e9SBarry Smith 109f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 110b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 111209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 112273d9f13SBarry Smith 113186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 114273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 115bdf45cc9SSatish Balay #if defined(PETSC_HAVE_BLOCKSOLVE95) 116273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS, path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 117273d9f13SBarry Smith #endif 11817667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 119273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 120273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 12117667f90SBarry Smith 122814655b8SBarry Smith ierr = MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);CHKERRQ(ierr); 123381ac109SSatish Balay ierr = MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);CHKERRQ(ierr); 124381ac109SSatish Balay ierr = MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);CHKERRQ(ierr); 12517667f90SBarry Smith 12617667f90SBarry Smith ierr = MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);CHKERRQ(ierr); 12781824310SBarry Smith ierr = MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);CHKERRQ(ierr); 128c02b24c5SBarry Smith ierr = MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);CHKERRQ(ierr); 129273d9f13SBarry Smith 13017667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 131273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 132273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 133273d9f13SBarry Smith 13417667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 135273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 136273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 13717667f90SBarry Smith 13817667f90SBarry Smith ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 139273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 140273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 14117667f90SBarry Smith 14217667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 143273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 144273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 14517667f90SBarry Smith 146273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1472a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 148*421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 1492515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 150bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles", MatCreate_AIJSpooles);CHKERRQ(ierr); 15117667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 15217667f90SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 15317667f90SBarry Smith 154bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES, path,"MatCreate_SBAIJSpooles", MatCreate_SBAIJSpooles);CHKERRQ(ierr); 15517667f90SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 15617667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 157b3a1e11cSKris Buschelman #endif 1582515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 159f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU, path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 16014b396bbSKris Buschelman #endif 1612515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 162f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST, path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 163448de63eSKris Buschelman #endif 1642515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 165f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK, path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1661677d0b8SKris Buschelman #endif 167ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 168f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL, path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 169e8aa55a4SKris Buschelman #endif 1702515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 171f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL, path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1724eb8e494SKris Buschelman #endif 1732515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 174123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 175123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS, path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 176397b6df1SKris Buschelman #endif 1772515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 178f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK, path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1798da957c5SKris Buschelman #endif 180909a696eSBarry Smith #if defined(PETSC_HAVE_MATLAB_ENGINE) 1817065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB, path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1827065e2aaSKris Buschelman #endif 183c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 184c0aa2d19SHong Zhang ierr = MatRegisterDynamic(MATPLAPACK, path,"MatCreate_Plapack",MatCreate_Plapack);CHKERRQ(ierr); 185c0aa2d19SHong Zhang #endif 1868a95e4e9SBarry Smith PetscFunctionReturn(0); 1878a95e4e9SBarry Smith } 188f7cf7585SBarry Smith 1893a7fca6bSBarry Smith 190