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); 32*793850ffSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Composite(Mat); 3317667f90SBarry Smith 3417667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CSRPERM(Mat); 3520f673eaSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCSRPERM(Mat); 3617667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICSRPERM(Mat); 3717667f90SBarry Smith 3817667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CRL(Mat); 3981824310SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCRL(Mat); 401472f72bSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICRL(Mat); 4117667f90SBarry Smith 422a6744ebSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Scatter(Mat); 43421e10b8SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BlockMat(Mat); 442515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 45be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat); 4617667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat); 4717667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat); 4817667f90SBarry Smith 49be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat); 5017667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat); 5117667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat); 52b3a1e11cSKris Buschelman #endif 532515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 54be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat); 5514b396bbSKris Buschelman #endif 562515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 57be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat); 58448de63eSKris Buschelman #endif 592515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 60be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat); 611677d0b8SKris Buschelman #endif 62ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 63be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat); 64e8aa55a4SKris Buschelman #endif 652515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 66be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat); 674eb8e494SKris Buschelman #endif 682515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 69be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat); 70be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat); 71397b6df1SKris Buschelman #endif 722515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 73be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat); 748da957c5SKris Buschelman #endif 75909a696eSBarry Smith #if defined(PETSC_HAVE_MATLAB_ENGINE) 76be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat); 777065e2aaSKris Buschelman #endif 78c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 79c0aa2d19SHong Zhang EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Plapack(Mat); 80c0aa2d19SHong Zhang #endif 81c0aa2d19SHong Zhang EXTERN_C_END 828a95e4e9SBarry Smith 838a95e4e9SBarry Smith /* 84f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 85f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 86f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 878a95e4e9SBarry Smith */ 88f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 898a95e4e9SBarry Smith 904a2ae208SSatish Balay #undef __FUNCT__ 914a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 928a95e4e9SBarry Smith /*@C 93f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 948a95e4e9SBarry Smith 958a95e4e9SBarry Smith Not Collective 968a95e4e9SBarry Smith 978a95e4e9SBarry Smith Level: advanced 988a95e4e9SBarry Smith 998a95e4e9SBarry Smith .keywords: KSP, register, all 1008a95e4e9SBarry Smith 101f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 1028a95e4e9SBarry Smith @*/ 103be1d678aSKris Buschelman PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[]) 1048a95e4e9SBarry Smith { 105dfbe8321SBarry Smith PetscErrorCode ierr; 1068a95e4e9SBarry Smith 1078a95e4e9SBarry Smith PetscFunctionBegin; 108f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 1098a95e4e9SBarry Smith 110f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 111b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 112209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 113273d9f13SBarry Smith 114186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 115273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 116*793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 117bdf45cc9SSatish Balay #if defined(PETSC_HAVE_BLOCKSOLVE95) 118273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS, path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 119273d9f13SBarry Smith #endif 12017667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 121273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 122273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 12317667f90SBarry Smith 124814655b8SBarry Smith ierr = MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);CHKERRQ(ierr); 125381ac109SSatish Balay ierr = MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);CHKERRQ(ierr); 126381ac109SSatish Balay ierr = MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);CHKERRQ(ierr); 12717667f90SBarry Smith 12817667f90SBarry Smith ierr = MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);CHKERRQ(ierr); 12981824310SBarry Smith ierr = MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);CHKERRQ(ierr); 130c02b24c5SBarry Smith ierr = MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);CHKERRQ(ierr); 131273d9f13SBarry Smith 13217667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 133273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 134273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 135273d9f13SBarry Smith 13617667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 137273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 138273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 13917667f90SBarry Smith 14017667f90SBarry Smith ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 141273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 142273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 14317667f90SBarry Smith 14417667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 145273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 146273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 14717667f90SBarry Smith 148273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1492a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 150421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 1512515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 152bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles", MatCreate_AIJSpooles);CHKERRQ(ierr); 15317667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 15417667f90SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 15517667f90SBarry Smith 156bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES, path,"MatCreate_SBAIJSpooles", MatCreate_SBAIJSpooles);CHKERRQ(ierr); 15717667f90SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 15817667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 159b3a1e11cSKris Buschelman #endif 1602515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 161f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU, path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 16214b396bbSKris Buschelman #endif 1632515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 164f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST, path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 165448de63eSKris Buschelman #endif 1662515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 167f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK, path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1681677d0b8SKris Buschelman #endif 169ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 170f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL, path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 171e8aa55a4SKris Buschelman #endif 1722515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 173f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL, path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1744eb8e494SKris Buschelman #endif 1752515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 176123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 177123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS, path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 178397b6df1SKris Buschelman #endif 1792515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 180f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK, path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1818da957c5SKris Buschelman #endif 182909a696eSBarry Smith #if defined(PETSC_HAVE_MATLAB_ENGINE) 1837065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB, path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1847065e2aaSKris Buschelman #endif 185c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 186c0aa2d19SHong Zhang ierr = MatRegisterDynamic(MATPLAPACK, path,"MatCreate_Plapack",MatCreate_Plapack);CHKERRQ(ierr); 187c0aa2d19SHong Zhang #endif 1888a95e4e9SBarry Smith PetscFunctionReturn(0); 1898a95e4e9SBarry Smith } 190f7cf7585SBarry Smith 1913a7fca6bSBarry Smith 192