18a95e4e9SBarry Smith 2f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 38a95e4e9SBarry Smith 48a95e4e9SBarry Smith EXTERN_C_BEGIN 5dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MAIJ(Mat); 6dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_IS(Mat); 7dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIRowbs(Mat); 8dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqAIJ(Mat); 9dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIAIJ(Mat); 10dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_AIJ(Mat); 11dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqBAIJ(Mat); 12dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIBAIJ(Mat); 13dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_BAIJ(Mat); 14dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqSBAIJ(Mat); 15dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPISBAIJ(Mat); 16dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SBAIJ(Mat); 17dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqBDiag(Mat); 18dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIBDiag(Mat); 19dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_BDiag(Mat); 20dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqDense(Mat); 21dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIDense(Mat); 22dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_Dense(Mat); 23dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIAdj(Mat); 24dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_Shell(Mat); 25*2515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 26dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqAIJSpooles(Mat); 27dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SeqSBAIJSpooles(Mat); 28dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPIAIJSpooles(Mat); 29dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_MPISBAIJSpooles(Mat); 30dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_AIJSpooles(Mat); 31dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SBAIJSpooles(Mat); 32b3a1e11cSKris Buschelman #endif 33*2515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 34dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SuperLU(Mat); 3514b396bbSKris Buschelman #endif 36*2515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 37dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SuperLU_DIST(Mat); 38448de63eSKris Buschelman #endif 39*2515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 40dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_UMFPACK(Mat); 411677d0b8SKris Buschelman #endif 42*2515c552SBarry Smith #if defined(PETSC_HAVE_ESSL) 43dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_Essl(Mat); 44e8aa55a4SKris Buschelman #endif 45*2515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 46dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_LUSOL(Mat); 474eb8e494SKris Buschelman #endif 48*2515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 49dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_AIJMUMPS(Mat); 50dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_SBAIJMUMPS(Mat); 51397b6df1SKris Buschelman #endif 52*2515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 53dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_DSCPACK(Mat); 548da957c5SKris Buschelman #endif 55*2515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 56dfbe8321SBarry Smith EXTERN PetscErrorCode MatCreate_Matlab(Mat); 577065e2aaSKris Buschelman #endif 588a95e4e9SBarry Smith EXTERN_C_END 598a95e4e9SBarry Smith 608a95e4e9SBarry Smith /* 61f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 62f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 63f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 648a95e4e9SBarry Smith */ 65f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 668a95e4e9SBarry Smith 674a2ae208SSatish Balay #undef __FUNCT__ 684a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 698a95e4e9SBarry Smith /*@C 70f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 718a95e4e9SBarry Smith 728a95e4e9SBarry Smith Not Collective 738a95e4e9SBarry Smith 748a95e4e9SBarry Smith Level: advanced 758a95e4e9SBarry Smith 768a95e4e9SBarry Smith .keywords: KSP, register, all 778a95e4e9SBarry Smith 78f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 798a95e4e9SBarry Smith @*/ 80dfbe8321SBarry Smith PetscErrorCode MatRegisterAll(const char path[]) 818a95e4e9SBarry Smith { 82dfbe8321SBarry Smith PetscErrorCode ierr; 838a95e4e9SBarry Smith 848a95e4e9SBarry Smith PetscFunctionBegin; 85f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 868a95e4e9SBarry Smith 87f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 88b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 89209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 90273d9f13SBarry Smith 91186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 92273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 93*2515c552SBarry Smith #if defined(PETSC_HAVE_BLOCKSOLVE) 94273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 95273d9f13SBarry Smith #endif 96273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 97273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 98209238afSKris Buschelman ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 99273d9f13SBarry Smith 100273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 101273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 102209238afSKris Buschelman ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 103273d9f13SBarry Smith 104273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 105273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 106209238afSKris Buschelman ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 107273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 108273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 109209238afSKris Buschelman ierr = MatRegisterDynamic(MATBDIAG, path,"MatCreate_BDiag", MatCreate_BDiag);CHKERRQ(ierr); 110273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 111273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 112209238afSKris Buschelman ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 113273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 114*2515c552SBarry Smith #if defined(PETSC_HAVE_SPOOLES) 115f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJSpooles", MatCreate_SeqAIJSpooles);CHKERRQ(ierr); 116f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJSpooles",MatCreate_SeqSBAIJSpooles);CHKERRQ(ierr); 117f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJSpooles", MatCreate_MPIAIJSpooles);CHKERRQ(ierr); 118f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJSpooles",MatCreate_MPISBAIJSpooles);CHKERRQ(ierr); 119bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATAIJSPOOLES, path,"MatCreate_AIJSpooles",MatCreate_AIJSpooles);CHKERRQ(ierr); 120bb4d4166SHong Zhang ierr = MatRegisterDynamic(MATSBAIJSPOOLES,path,"MatCreate_SBAIJSpooles",MatCreate_SBAIJSpooles);CHKERRQ(ierr); 121b3a1e11cSKris Buschelman #endif 122*2515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU) 123f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SuperLU",MatCreate_SuperLU);CHKERRQ(ierr); 12414b396bbSKris Buschelman #endif 125*2515c552SBarry Smith #if defined(PETSC_HAVE_SUPERLU_DIST) 126f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_SuperLU_DIST",MatCreate_SuperLU_DIST);CHKERRQ(ierr); 127448de63eSKris Buschelman #endif 128*2515c552SBarry Smith #if defined(PETSC_HAVE_UMFPACK) 129f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK,path,"MatCreate_UMFPACK",MatCreate_UMFPACK);CHKERRQ(ierr); 1301677d0b8SKris Buschelman #endif 131*2515c552SBarry Smith #if defined(PETSC_HAVE_ESSL) 132f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATESSL,path,"MatCreate_Essl",MatCreate_Essl);CHKERRQ(ierr); 133e8aa55a4SKris Buschelman #endif 134*2515c552SBarry Smith #if defined(PETSC_HAVE_LUSOL) 135f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATLUSOL,path,"MatCreate_LUSOL",MatCreate_LUSOL);CHKERRQ(ierr); 1364eb8e494SKris Buschelman #endif 137*2515c552SBarry Smith #if defined(PETSC_HAVE_MUMPS) 138123bf89aSSatish Balay ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJMUMPS",MatCreate_AIJMUMPS);CHKERRQ(ierr); 139123bf89aSSatish Balay ierr = MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJMUMPS",MatCreate_SBAIJMUMPS);CHKERRQ(ierr); 140397b6df1SKris Buschelman #endif 141*2515c552SBarry Smith #if defined(PETSC_HAVE_DSCPACK) 142f0c56d0fSKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK,path,"MatCreate_DSCPACK",MatCreate_DSCPACK);CHKERRQ(ierr); 1438da957c5SKris Buschelman #endif 144*2515c552SBarry Smith #if defined(PETSC_HAVE_MATLAB) 1457065e2aaSKris Buschelman ierr = MatRegisterDynamic(MATMATLAB,path,"MatCreate_Matlab",MatCreate_Matlab);CHKERRQ(ierr); 1467065e2aaSKris Buschelman #endif 1478a95e4e9SBarry Smith PetscFunctionReturn(0); 1488a95e4e9SBarry Smith } 149f7cf7585SBarry Smith 1503a7fca6bSBarry Smith 151