18a95e4e9SBarry Smith 2c6db04a5SJed Brown #include <petscmat.h> /*I "petscmat.h" I*/ 38a95e4e9SBarry Smith 48a95e4e9SBarry Smith EXTERN_C_BEGIN 57087cfbeSBarry Smith extern PetscErrorCode MatCreate_MFFD(Mat); 67087cfbeSBarry Smith extern PetscErrorCode MatCreate_MAIJ(Mat); 77087cfbeSBarry Smith extern PetscErrorCode MatCreate_IS(Mat); 817667f90SBarry Smith 97087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJ(Mat); 107087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJ(Mat); 1117667f90SBarry Smith 127087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqBAIJ(Mat); 137087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIBAIJ(Mat); 1417667f90SBarry Smith 157087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqSBAIJ(Mat); 167087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPISBAIJ(Mat); 1717667f90SBarry Smith 18*2938c13dSDahai Guo extern PetscErrorCode MatCreate_SeqBSTRM(Mat); 19*2938c13dSDahai Guo extern PetscErrorCode MatCreate_MPIBSTRM(Mat); 20*2938c13dSDahai Guo 21*2938c13dSDahai Guo extern PetscErrorCode MatCreate_SeqSBSTRM(Mat); 22*2938c13dSDahai Guo extern PetscErrorCode MatCreate_MPISBSTRM(Mat); 23*2938c13dSDahai Guo 247087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqDense(Mat); 257087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIDense(Mat); 2617667f90SBarry Smith 277087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAdj(Mat); 287087cfbeSBarry Smith extern PetscErrorCode MatCreate_Shell(Mat); 297087cfbeSBarry Smith extern PetscErrorCode MatCreate_Composite(Mat); 3017667f90SBarry Smith 317087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJPERM(Mat); 327087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJPERM(Mat); 3317667f90SBarry Smith 347087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJCRL(Mat); 357087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJCRL(Mat); 3617667f90SBarry Smith 377087cfbeSBarry Smith extern PetscErrorCode MatCreate_Scatter(Mat); 387087cfbeSBarry Smith extern PetscErrorCode MatCreate_BlockMat(Mat); 39c8883902SJed Brown extern PetscErrorCode MatCreate_Nest(Mat); 407087cfbeSBarry Smith extern PetscErrorCode MatCreate_DD(Mat); 41c6570e9aSVictor Minden 428154be41SBarry Smith #if defined PETSC_HAVE_CUSP 438154be41SBarry Smith extern PetscErrorCode MatCreate_SeqAIJCUSP(Mat); 448154be41SBarry Smith extern PetscErrorCode MatCreate_MPIAIJCUSP(Mat); 45c6570e9aSVictor Minden #endif 46c6570e9aSVictor Minden 47ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 487087cfbeSBarry Smith extern PetscErrorCode MatCreate_IM(Mat); 49ba2f8784SDmitry Karpeev #endif 50dedccee8SHong Zhang 51dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 52dedccee8SHong Zhang extern PetscErrorCode MatCreate_FFTW(Mat); 53dedccee8SHong Zhang #endif 54c0aa2d19SHong Zhang EXTERN_C_END 558a95e4e9SBarry Smith 568a95e4e9SBarry Smith /* 57f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 58f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 59f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 608a95e4e9SBarry Smith */ 6109573ac7SBarry Smith extern PetscBool MatRegisterAllCalled; 628a95e4e9SBarry Smith 634a2ae208SSatish Balay #undef __FUNCT__ 644a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 658a95e4e9SBarry Smith /*@C 66f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 678a95e4e9SBarry Smith 688a95e4e9SBarry Smith Not Collective 698a95e4e9SBarry Smith 708a95e4e9SBarry Smith Level: advanced 718a95e4e9SBarry Smith 728a95e4e9SBarry Smith .keywords: KSP, register, all 738a95e4e9SBarry Smith 74f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 758a95e4e9SBarry Smith @*/ 767087cfbeSBarry Smith PetscErrorCode MatRegisterAll(const char path[]) 778a95e4e9SBarry Smith { 78dfbe8321SBarry Smith PetscErrorCode ierr; 798a95e4e9SBarry Smith 808a95e4e9SBarry Smith PetscFunctionBegin; 81f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 828a95e4e9SBarry Smith 83e884886fSBarry Smith ierr = MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);CHKERRQ(ierr); 84e884886fSBarry Smith 85f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 86b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 87209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 88273d9f13SBarry Smith 89186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 90273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 91793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 9201bebe75SBarry Smith 9301bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJ,MATSEQAIJ,MATMPIAIJ);CHKERRQ(ierr); 94273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 95273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 9617667f90SBarry Smith 9701bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJPERM,MATSEQAIJPERM,MATMPIAIJPERM);CHKERRQ(ierr); 985a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJPERM, path,"MatCreate_MPIAIJPERM", MatCreate_MPIAIJPERM);CHKERRQ(ierr); 995a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJPERM, path,"MatCreate_SeqAIJPERM", MatCreate_SeqAIJPERM);CHKERRQ(ierr); 10017667f90SBarry Smith 10101bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCRL,MATSEQAIJCRL,MATMPIAIJCRL);CHKERRQ(ierr); 1025a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCRL, path,"MatCreate_SeqAIJCRL", MatCreate_SeqAIJCRL);CHKERRQ(ierr); 1035a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCRL, path,"MatCreate_MPIAIJCRL", MatCreate_MPIAIJCRL);CHKERRQ(ierr); 104273d9f13SBarry Smith 10501bebe75SBarry Smith ierr = MatRegisterBaseName(MATBAIJ,MATSEQBAIJ,MATMPIBAIJ);CHKERRQ(ierr); 106273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 107273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith 10901bebe75SBarry Smith ierr = MatRegisterBaseName(MATSBAIJ,MATSEQSBAIJ,MATMPISBAIJ);CHKERRQ(ierr); 110273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 111273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 11217667f90SBarry Smith 113*2938c13dSDahai Guo ierr = MatRegisterBaseName(MATBSTRM,MATSEQBSTRM,MATMPIBSTRM);CHKERRQ(ierr); 114*2938c13dSDahai Guo ierr = MatRegisterDynamic(MATMPIBSTRM, path,"MatCreate_MPIBSTRM", MatCreate_MPIBSTRM);CHKERRQ(ierr); 115*2938c13dSDahai Guo ierr = MatRegisterDynamic(MATSEQBSTRM, path,"MatCreate_SeqBSTRM", MatCreate_SeqBSTRM);CHKERRQ(ierr); 116*2938c13dSDahai Guo 117*2938c13dSDahai Guo ierr = MatRegisterBaseName(MATSBSTRM,MATSEQSBSTRM,MATMPISBSTRM);CHKERRQ(ierr); 118*2938c13dSDahai Guo ierr = MatRegisterDynamic(MATMPISBSTRM, path,"MatCreate_MPISBSTRM", MatCreate_MPISBSTRM);CHKERRQ(ierr); 119*2938c13dSDahai Guo ierr = MatRegisterDynamic(MATSEQSBSTRM, path,"MatCreate_SeqSBSTRM", MatCreate_SeqSBSTRM);CHKERRQ(ierr); 120*2938c13dSDahai Guo 12101bebe75SBarry Smith ierr = MatRegisterBaseName(MATDENSE,MATSEQDENSE,MATMPIDENSE);CHKERRQ(ierr); 122273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 123273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 12417667f90SBarry Smith 125273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1262a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 127421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 128c8883902SJed Brown ierr = MatRegisterDynamic(MATNEST, path,"MatCreate_Nest", MatCreate_Nest);CHKERRQ(ierr); 12968326731SBarry Smith 1304d6373a4SLisandro Dalcin /*ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr);*/ 131ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 132ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 133ba2f8784SDmitry Karpeev #endif 13401bebe75SBarry Smith 1358154be41SBarry Smith #if defined PETSC_HAVE_CUSP 13601bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCUSP,MATSEQAIJCUSP,MATMPIAIJCUSP);CHKERRQ(ierr); 1378154be41SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCUSP, path,"MatCreate_SeqAIJCUSP", MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 1388154be41SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCUSP, path,"MatCreate_MPIAIJCUSP", MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 139c6570e9aSVictor Minden #endif 14001bebe75SBarry Smith 141dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 142dedccee8SHong Zhang ierr = MatRegisterDynamic(MATFFTW, path,"MatCreate_FFTW", MatCreate_FFTW);CHKERRQ(ierr); 143dedccee8SHong Zhang #endif 1448a95e4e9SBarry Smith PetscFunctionReturn(0); 1458a95e4e9SBarry Smith } 146f7cf7585SBarry Smith 1473a7fca6bSBarry Smith 148