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); 10*51d315f7SKerry Stevens extern PetscErrorCode MatCreate_SeqPThreadAIJ(Mat); 117087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJ(Mat); 1217667f90SBarry Smith 137087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqBAIJ(Mat); 147087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIBAIJ(Mat); 1517667f90SBarry Smith 167087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqSBAIJ(Mat); 177087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPISBAIJ(Mat); 1817667f90SBarry Smith 192938c13dSDahai Guo extern PetscErrorCode MatCreate_SeqBSTRM(Mat); 202938c13dSDahai Guo extern PetscErrorCode MatCreate_MPIBSTRM(Mat); 212938c13dSDahai Guo 222938c13dSDahai Guo extern PetscErrorCode MatCreate_SeqSBSTRM(Mat); 232938c13dSDahai Guo extern PetscErrorCode MatCreate_MPISBSTRM(Mat); 242938c13dSDahai Guo 257087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqDense(Mat); 267087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIDense(Mat); 2717667f90SBarry Smith 287087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAdj(Mat); 297087cfbeSBarry Smith extern PetscErrorCode MatCreate_Shell(Mat); 307087cfbeSBarry Smith extern PetscErrorCode MatCreate_Composite(Mat); 3117667f90SBarry Smith 327087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJPERM(Mat); 337087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJPERM(Mat); 3417667f90SBarry Smith 357087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJCRL(Mat); 367087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJCRL(Mat); 3717667f90SBarry Smith 387087cfbeSBarry Smith extern PetscErrorCode MatCreate_Scatter(Mat); 397087cfbeSBarry Smith extern PetscErrorCode MatCreate_BlockMat(Mat); 40c8883902SJed Brown extern PetscErrorCode MatCreate_Nest(Mat); 417087cfbeSBarry Smith extern PetscErrorCode MatCreate_DD(Mat); 42c6570e9aSVictor Minden 438154be41SBarry Smith #if defined PETSC_HAVE_CUSP 448154be41SBarry Smith extern PetscErrorCode MatCreate_SeqAIJCUSP(Mat); 458154be41SBarry Smith extern PetscErrorCode MatCreate_MPIAIJCUSP(Mat); 46c6570e9aSVictor Minden #endif 47c6570e9aSVictor Minden 48ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 497087cfbeSBarry Smith extern PetscErrorCode MatCreate_IM(Mat); 50ba2f8784SDmitry Karpeev #endif 51dedccee8SHong Zhang 52dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 53dedccee8SHong Zhang extern PetscErrorCode MatCreate_FFTW(Mat); 54dedccee8SHong Zhang #endif 55c0aa2d19SHong Zhang EXTERN_C_END 568a95e4e9SBarry Smith 578a95e4e9SBarry Smith /* 58f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 59f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 60f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 618a95e4e9SBarry Smith */ 6209573ac7SBarry Smith extern PetscBool MatRegisterAllCalled; 638a95e4e9SBarry Smith 644a2ae208SSatish Balay #undef __FUNCT__ 654a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 668a95e4e9SBarry Smith /*@C 67f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 688a95e4e9SBarry Smith 698a95e4e9SBarry Smith Not Collective 708a95e4e9SBarry Smith 718a95e4e9SBarry Smith Level: advanced 728a95e4e9SBarry Smith 738a95e4e9SBarry Smith .keywords: KSP, register, all 748a95e4e9SBarry Smith 75f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 768a95e4e9SBarry Smith @*/ 777087cfbeSBarry Smith PetscErrorCode MatRegisterAll(const char path[]) 788a95e4e9SBarry Smith { 79dfbe8321SBarry Smith PetscErrorCode ierr; 808a95e4e9SBarry Smith 818a95e4e9SBarry Smith PetscFunctionBegin; 82f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 838a95e4e9SBarry Smith 84e884886fSBarry Smith ierr = MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);CHKERRQ(ierr); 85e884886fSBarry Smith 86f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 87b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 88209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 89273d9f13SBarry Smith 90186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 91273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 92793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 9301bebe75SBarry Smith 9401bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJ,MATSEQAIJ,MATMPIAIJ);CHKERRQ(ierr); 95*51d315f7SKerry Stevens ierr = MatRegisterDynamic(MATSEQPTHREADAIJ, path,"MatCreate_SeqPThreadAIJ", MatCreate_SeqPThreadAIJ);CHKERRQ(ierr); 96273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 97273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 9817667f90SBarry Smith 9901bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJPERM,MATSEQAIJPERM,MATMPIAIJPERM);CHKERRQ(ierr); 1005a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJPERM, path,"MatCreate_MPIAIJPERM", MatCreate_MPIAIJPERM);CHKERRQ(ierr); 1015a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJPERM, path,"MatCreate_SeqAIJPERM", MatCreate_SeqAIJPERM);CHKERRQ(ierr); 10217667f90SBarry Smith 10301bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCRL,MATSEQAIJCRL,MATMPIAIJCRL);CHKERRQ(ierr); 1045a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCRL, path,"MatCreate_SeqAIJCRL", MatCreate_SeqAIJCRL);CHKERRQ(ierr); 1055a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCRL, path,"MatCreate_MPIAIJCRL", MatCreate_MPIAIJCRL);CHKERRQ(ierr); 106273d9f13SBarry Smith 10701bebe75SBarry Smith ierr = MatRegisterBaseName(MATBAIJ,MATSEQBAIJ,MATMPIBAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 109273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 110273d9f13SBarry Smith 11101bebe75SBarry Smith ierr = MatRegisterBaseName(MATSBAIJ,MATSEQSBAIJ,MATMPISBAIJ);CHKERRQ(ierr); 112273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 113273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 11417667f90SBarry Smith 1152938c13dSDahai Guo ierr = MatRegisterBaseName(MATBSTRM,MATSEQBSTRM,MATMPIBSTRM);CHKERRQ(ierr); 1162938c13dSDahai Guo ierr = MatRegisterDynamic(MATMPIBSTRM, path,"MatCreate_MPIBSTRM", MatCreate_MPIBSTRM);CHKERRQ(ierr); 1172938c13dSDahai Guo ierr = MatRegisterDynamic(MATSEQBSTRM, path,"MatCreate_SeqBSTRM", MatCreate_SeqBSTRM);CHKERRQ(ierr); 1182938c13dSDahai Guo 1192938c13dSDahai Guo ierr = MatRegisterBaseName(MATSBSTRM,MATSEQSBSTRM,MATMPISBSTRM);CHKERRQ(ierr); 1202938c13dSDahai Guo ierr = MatRegisterDynamic(MATMPISBSTRM, path,"MatCreate_MPISBSTRM", MatCreate_MPISBSTRM);CHKERRQ(ierr); 1212938c13dSDahai Guo ierr = MatRegisterDynamic(MATSEQSBSTRM, path,"MatCreate_SeqSBSTRM", MatCreate_SeqSBSTRM);CHKERRQ(ierr); 1222938c13dSDahai Guo 12301bebe75SBarry Smith ierr = MatRegisterBaseName(MATDENSE,MATSEQDENSE,MATMPIDENSE);CHKERRQ(ierr); 124273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 125273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 12617667f90SBarry Smith 127273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1282a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 129421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 130c8883902SJed Brown ierr = MatRegisterDynamic(MATNEST, path,"MatCreate_Nest", MatCreate_Nest);CHKERRQ(ierr); 13168326731SBarry Smith 1324d6373a4SLisandro Dalcin /*ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr);*/ 133ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 134ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 135ba2f8784SDmitry Karpeev #endif 13601bebe75SBarry Smith 1378154be41SBarry Smith #if defined PETSC_HAVE_CUSP 13801bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCUSP,MATSEQAIJCUSP,MATMPIAIJCUSP);CHKERRQ(ierr); 1398154be41SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCUSP, path,"MatCreate_SeqAIJCUSP", MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 1408154be41SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCUSP, path,"MatCreate_MPIAIJCUSP", MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 141c6570e9aSVictor Minden #endif 14201bebe75SBarry Smith 143dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 144dedccee8SHong Zhang ierr = MatRegisterDynamic(MATFFTW, path,"MatCreate_FFTW", MatCreate_FFTW);CHKERRQ(ierr); 145dedccee8SHong Zhang #endif 1468a95e4e9SBarry Smith PetscFunctionReturn(0); 1478a95e4e9SBarry Smith } 148f7cf7585SBarry Smith 1493a7fca6bSBarry Smith 150