1*be1d678aSKris Buschelman #define PETSCMAT_DLL 28a95e4e9SBarry Smith 3f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 48a95e4e9SBarry Smith 58a95e4e9SBarry Smith EXTERN_C_BEGIN 6*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MAIJ(Mat); 7*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_IS(Mat); 8*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIRowbs(Mat); 9*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJ(Mat); 10*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJ(Mat); 11*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJ(Mat); 12*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBAIJ(Mat); 13*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBAIJ(Mat); 14*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BAIJ(Mat); 15*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJ(Mat); 16*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJ(Mat); 17*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJ(Mat); 18*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqBDiag(Mat); 19*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIBDiag(Mat); 20*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BDiag(Mat); 21*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqDense(Mat); 22*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIDense(Mat); 23*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Dense(Mat); 24*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAdj(Mat); 25*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Shell(Mat); 262515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 27*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJSpooles(Mat); 28*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqSBAIJSpooles(Mat); 29*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJSpooles(Mat); 30*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPISBAIJSpooles(Mat); 31*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJSpooles(Mat); 32*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJSpooles(Mat); 33b3a1e11cSKris Buschelman #endif 342515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 35*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU(Mat); 3614b396bbSKris Buschelman #endif 372515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 38*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SuperLU_DIST(Mat); 39448de63eSKris Buschelman #endif 402515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 41*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_UMFPACK(Mat); 421677d0b8SKris Buschelman #endif 432515c552SBarry Smith #if defined(PETSC_HAVE_ESSL) 44*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Essl(Mat); 45e8aa55a4SKris Buschelman #endif 462515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 47*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_LUSOL(Mat); 484eb8e494SKris Buschelman #endif 492515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 50*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_AIJMUMPS(Mat); 51*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SBAIJMUMPS(Mat); 52397b6df1SKris Buschelman #endif 532515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 54*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DSCPACK(Mat); 558da957c5SKris Buschelman #endif 562515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 57*be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Matlab(Mat); 587065e2aaSKris Buschelman #endif 598a95e4e9SBarry Smith EXTERN_C_END 608a95e4e9SBarry Smith 618a95e4e9SBarry Smith /* 62f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 63f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 64f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 658a95e4e9SBarry Smith */ 66f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 678a95e4e9SBarry Smith 684a2ae208SSatish Balay #undef __FUNCT__ 694a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 708a95e4e9SBarry Smith /*@C 71f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 728a95e4e9SBarry Smith 738a95e4e9SBarry Smith Not Collective 748a95e4e9SBarry Smith 758a95e4e9SBarry Smith Level: advanced 768a95e4e9SBarry Smith 778a95e4e9SBarry Smith .keywords: KSP, register, all 788a95e4e9SBarry Smith 79f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 808a95e4e9SBarry Smith @*/ 81*be1d678aSKris Buschelman PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[]) 828a95e4e9SBarry Smith { 83dfbe8321SBarry Smith PetscErrorCode ierr; 848a95e4e9SBarry Smith 858a95e4e9SBarry Smith PetscFunctionBegin; 86f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 878a95e4e9SBarry Smith 88f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 89b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 90209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 91273d9f13SBarry Smith 92186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 93273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 942515c552SBarry Smith #if defined(PETSC_HAVE_BLOCKSOLVE) 95273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 96273d9f13SBarry Smith #endif 97273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 98273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 99209238afSKris Buschelman ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 100273d9f13SBarry Smith 101273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 102273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 103209238afSKris Buschelman ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 104273d9f13SBarry Smith 105273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 106273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 107209238afSKris Buschelman ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 109273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 110209238afSKris Buschelman ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 111273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 112273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 113209238afSKris Buschelman ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 114273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1152515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 116f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 117f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 118f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 119f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 120bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles",MatCreate_AIJSpooles);CHKERRQ(ierr); 121bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES,path,"MatCreate_SBAIJSpooles",MatCreate_SBAIJSpooles);CHKERRQ(ierr); 122b3a1e11cSKris Buschelman #endif 1232515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 124f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 12514b396bbSKris Buschelman #endif 1262515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 127f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 128448de63eSKris Buschelman #endif 1292515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 130f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK,path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1311677d0b8SKris Buschelman #endif 1322515c552SBarry Smith #if defined(PETSC_HAVE_ESSL) 133f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL,path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 134e8aa55a4SKris Buschelman #endif 1352515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 136f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL,path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1374eb8e494SKris Buschelman #endif 1382515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 139123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 140123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 141397b6df1SKris Buschelman #endif 1422515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 143f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK,path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1448da957c5SKris Buschelman #endif 1452515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 1467065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB,path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1477065e2aaSKris Buschelman #endif 1488a95e4e9SBarry Smith PetscFunctionReturn(0); 1498a95e4e9SBarry Smith } 150f7cf7585SBarry Smith 1513a7fca6bSBarry Smith 152