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); 9*17667f90SBarry Smith 10*17667f90SBarry 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); 13*17667f90SBarry Smith 14*17667f90SBarry 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); 17*17667f90SBarry Smith 18*17667f90SBarry 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); 21*17667f90SBarry Smith 22*17667f90SBarry 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); 25*17667f90SBarry Smith 26*17667f90SBarry 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); 29*17667f90SBarry Smith 30be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAdj(Mat); 31be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Shell(Mat); 32*17667f90SBarry Smith 33*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CSRPERM(Mat); 3420f673eaSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCSRPERM(Mat); 35*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICSRPERM(Mat); 36*17667f90SBarry Smith 37*17667f90SBarry 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); 40*17667f90SBarry Smith 412a6744ebSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Scatter(Mat); 422515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 43be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat); 44*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat); 45*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat); 46*17667f90SBarry Smith 47be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat); 48*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat); 49*17667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat); 50b3a1e11cSKris Buschelman #endif 512515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 52be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat); 5314b396bbSKris Buschelman #endif 542515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 55be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat); 56448de63eSKris Buschelman #endif 572515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 58be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat); 591677d0b8SKris Buschelman #endif 60ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 61be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat); 62e8aa55a4SKris Buschelman #endif 632515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 64be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat); 654eb8e494SKris Buschelman #endif 662515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 67be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat); 68be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat); 69397b6df1SKris Buschelman #endif 702515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 71be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat); 728da957c5SKris Buschelman #endif 732515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 74be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat); 757065e2aaSKris Buschelman #endif 76c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 77c0aa2d19SHong Zhang EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Plapack(Mat); 78c0aa2d19SHong Zhang #endif 79c0aa2d19SHong Zhang EXTERN_C_END 808a95e4e9SBarry Smith 818a95e4e9SBarry Smith /* 82f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 83f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 84f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 858a95e4e9SBarry Smith */ 86f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 878a95e4e9SBarry Smith 884a2ae208SSatish Balay #undef __FUNCT__ 894a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 908a95e4e9SBarry Smith /*@C 91f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 928a95e4e9SBarry Smith 938a95e4e9SBarry Smith Not Collective 948a95e4e9SBarry Smith 958a95e4e9SBarry Smith Level: advanced 968a95e4e9SBarry Smith 978a95e4e9SBarry Smith .keywords: KSP, register, all 988a95e4e9SBarry Smith 99f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 1008a95e4e9SBarry Smith @*/ 101be1d678aSKris Buschelman PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[]) 1028a95e4e9SBarry Smith { 103dfbe8321SBarry Smith PetscErrorCode ierr; 1048a95e4e9SBarry Smith 1058a95e4e9SBarry Smith PetscFunctionBegin; 106f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 1078a95e4e9SBarry Smith 108f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 109b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 110209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 111273d9f13SBarry Smith 112186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 113273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 114bdf45cc9SSatish Balay #if defined(PETSC_HAVE_BLOCKSOLVE95) 115273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS, path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 116273d9f13SBarry Smith #endif 117*17667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 118273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 119273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 120*17667f90SBarry Smith 121814655b8SBarry Smith ierr = MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);CHKERRQ(ierr); 122381ac109SSatish Balay ierr = MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);CHKERRQ(ierr); 123381ac109SSatish Balay ierr = MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);CHKERRQ(ierr); 124*17667f90SBarry Smith 125*17667f90SBarry Smith ierr = MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);CHKERRQ(ierr); 12681824310SBarry Smith ierr = MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);CHKERRQ(ierr); 127c02b24c5SBarry Smith ierr = MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);CHKERRQ(ierr); 128273d9f13SBarry Smith 129*17667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 130273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 131273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 132273d9f13SBarry Smith 133*17667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 134273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 135273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 136*17667f90SBarry Smith 137*17667f90SBarry Smith ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 138273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 139273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 140*17667f90SBarry Smith 141*17667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 142273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 143273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 144*17667f90SBarry Smith 145273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1462a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 1472515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 148bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles", MatCreate_AIJSpooles);CHKERRQ(ierr); 149*17667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 150*17667f90SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 151*17667f90SBarry Smith 152bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES, path,"MatCreate_SBAIJSpooles", MatCreate_SBAIJSpooles);CHKERRQ(ierr); 153*17667f90SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 154*17667f90SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 155b3a1e11cSKris Buschelman #endif 1562515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 157f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU, path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 15814b396bbSKris Buschelman #endif 1592515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 160f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST, path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 161448de63eSKris Buschelman #endif 1622515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 163f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK, path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1641677d0b8SKris Buschelman #endif 165ccc59212SSatish Balay #if defined(PETSC_HAVE_ESSL) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_MAT_SINGLE) 166f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL, path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 167e8aa55a4SKris Buschelman #endif 1682515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 169f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL, path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1704eb8e494SKris Buschelman #endif 1712515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 172123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 173123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS, path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 174397b6df1SKris Buschelman #endif 1752515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 176f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK, path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1778da957c5SKris Buschelman #endif 1782515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 1797065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB, path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1807065e2aaSKris Buschelman #endif 181c0aa2d19SHong Zhang #if defined(PETSC_HAVE_PLAPACK) 182c0aa2d19SHong Zhang ierr = MatRegisterDynamic(MATPLAPACK, path,"MatCreate_Plapack",MatCreate_Plapack);CHKERRQ(ierr); 183c0aa2d19SHong Zhang #endif 1848a95e4e9SBarry Smith PetscFunctionReturn(0); 1858a95e4e9SBarry Smith } 186f7cf7585SBarry Smith 1873a7fca6bSBarry Smith 188