1be1d678aSKris Buschelman #define PETSCMAT_DLL 28a95e4e9SBarry Smith 3f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 48a95e4e9SBarry Smith 58a95e4e9SBarry Smith EXTERN_C_BEGIN 6e884886fSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MFFD(Mat); 7be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MAIJ(Mat); 8be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_IS(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_Dense(Mat); 23be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqDense(Mat); 24be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIDense(Mat); 2517667f90SBarry Smith 26be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAdj(Mat); 27be1d678aSKris Buschelman EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Shell(Mat); 28793850ffSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Composite(Mat); 2917667f90SBarry Smith 3017667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CSRPERM(Mat); 3120f673eaSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCSRPERM(Mat); 3217667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICSRPERM(Mat); 3317667f90SBarry Smith 3417667f90SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_CRL(Mat); 3581824310SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqCRL(Mat); 361472f72bSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPICRL(Mat); 3717667f90SBarry Smith 382a6744ebSBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_Scatter(Mat); 39421e10b8SBarry Smith EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_BlockMat(Mat); 4068326731SBarry Smith 41dbc6227fSDmitry Karpeev EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_DD(Mat); 42c6570e9aSVictor Minden 43c6570e9aSVictor Minden #if defined PETSC_HAVE_CUDA 44c6570e9aSVictor Minden EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_SeqAIJCUDA(Mat); 45*4182d338SVictor Minden EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_MPIAIJCUDA(Mat); 46c6570e9aSVictor Minden #endif 47c6570e9aSVictor Minden 48ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 49ba2f8784SDmitry Karpeev EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatCreate_IM(Mat); 50ba2f8784SDmitry Karpeev #endif 51c0aa2d19SHong Zhang EXTERN_C_END 528a95e4e9SBarry Smith 538a95e4e9SBarry Smith /* 54f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 55f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 56f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 578a95e4e9SBarry Smith */ 58f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 598a95e4e9SBarry Smith 604a2ae208SSatish Balay #undef __FUNCT__ 614a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 628a95e4e9SBarry Smith /*@C 63f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 648a95e4e9SBarry Smith 658a95e4e9SBarry Smith Not Collective 668a95e4e9SBarry Smith 678a95e4e9SBarry Smith Level: advanced 688a95e4e9SBarry Smith 698a95e4e9SBarry Smith .keywords: KSP, register, all 708a95e4e9SBarry Smith 71f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 728a95e4e9SBarry Smith @*/ 73be1d678aSKris Buschelman PetscErrorCode PETSCMAT_DLLEXPORT MatRegisterAll(const char path[]) 748a95e4e9SBarry Smith { 75dfbe8321SBarry Smith PetscErrorCode ierr; 768a95e4e9SBarry Smith 778a95e4e9SBarry Smith PetscFunctionBegin; 78f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 798a95e4e9SBarry Smith 80e884886fSBarry Smith ierr = MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);CHKERRQ(ierr); 81e884886fSBarry Smith 82f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 83b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 84209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 85273d9f13SBarry Smith 86186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 87273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 88793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 8917667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 90273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 91273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 9217667f90SBarry Smith 93814655b8SBarry Smith ierr = MatRegisterDynamic(MATCSRPERM, path,"MatCreate_CSRPERM", MatCreate_CSRPERM);CHKERRQ(ierr); 94381ac109SSatish Balay ierr = MatRegisterDynamic(MATMPICSRPERM, path,"MatCreate_MPICSRPERM", MatCreate_MPICSRPERM);CHKERRQ(ierr); 95381ac109SSatish Balay ierr = MatRegisterDynamic(MATSEQCSRPERM, path,"MatCreate_SeqCSRPERM", MatCreate_SeqCSRPERM);CHKERRQ(ierr); 9617667f90SBarry Smith 9717667f90SBarry Smith ierr = MatRegisterDynamic(MATCRL, path,"MatCreate_CRL", MatCreate_CRL);CHKERRQ(ierr); 9881824310SBarry Smith ierr = MatRegisterDynamic(MATSEQCRL, path,"MatCreate_SeqCRL", MatCreate_SeqCRL);CHKERRQ(ierr); 99c02b24c5SBarry Smith ierr = MatRegisterDynamic(MATMPICRL, path,"MatCreate_MPICRL", MatCreate_MPICRL);CHKERRQ(ierr); 100273d9f13SBarry Smith 10117667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 102273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 103273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 104273d9f13SBarry Smith 10517667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 106273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 107273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 10817667f90SBarry Smith 10917667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);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); 11217667f90SBarry Smith 113273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1142a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 115421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 11668326731SBarry Smith 117b2bf4413SMatthew G Knepley ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr); 118ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 119ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 120ba2f8784SDmitry Karpeev #endif 121c6570e9aSVictor Minden #if defined PETSC_HAVE_CUDA 122c6570e9aSVictor Minden ierr = MatRegisterDynamic(MATSEQAIJCUDA, path,"MatCreate_SeqAIJCUDA", MatCreate_SeqAIJCUDA);CHKERRQ(ierr); 123*4182d338SVictor Minden ierr = MatRegisterDynamic(MATMPIAIJCUDA, path,"MatCreate_MPIAIJCUDA", MatCreate_MPIAIJCUDA);CHKERRQ(ierr); 124c6570e9aSVictor Minden #endif 1258a95e4e9SBarry Smith PetscFunctionReturn(0); 1268a95e4e9SBarry Smith } 127f7cf7585SBarry Smith 1283a7fca6bSBarry Smith 129