1be1d678aSKris Buschelman #define PETSCMAT_DLL 28a95e4e9SBarry Smith 3f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 48a95e4e9SBarry Smith 58a95e4e9SBarry Smith EXTERN_C_BEGIN 67087cfbeSBarry Smith extern PetscErrorCode MatCreate_MFFD(Mat); 77087cfbeSBarry Smith extern PetscErrorCode MatCreate_MAIJ(Mat); 87087cfbeSBarry Smith extern PetscErrorCode MatCreate_IS(Mat); 917667f90SBarry Smith 107087cfbeSBarry Smith extern PetscErrorCode MatCreate_AIJ(Mat); 117087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJ(Mat); 127087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJ(Mat); 1317667f90SBarry Smith 147087cfbeSBarry Smith extern PetscErrorCode MatCreate_BAIJ(Mat); 157087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqBAIJ(Mat); 167087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIBAIJ(Mat); 1717667f90SBarry Smith 187087cfbeSBarry Smith extern PetscErrorCode MatCreate_SBAIJ(Mat); 197087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqSBAIJ(Mat); 207087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPISBAIJ(Mat); 2117667f90SBarry Smith 227087cfbeSBarry Smith extern PetscErrorCode MatCreate_Dense(Mat); 237087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqDense(Mat); 247087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIDense(Mat); 2517667f90SBarry Smith 267087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAdj(Mat); 277087cfbeSBarry Smith extern PetscErrorCode MatCreate_Shell(Mat); 287087cfbeSBarry Smith extern PetscErrorCode MatCreate_Composite(Mat); 2917667f90SBarry Smith 307087cfbeSBarry Smith extern PetscErrorCode MatCreate_AIJPERM(Mat); 317087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJPERM(Mat); 327087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJPERM(Mat); 3317667f90SBarry Smith 347087cfbeSBarry Smith extern PetscErrorCode MatCreate_AIJCRL(Mat); 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); 468154be41SBarry Smith extern PetscErrorCode MatCreate_AIJCUSP(Mat); 47c6570e9aSVictor Minden #endif 48c6570e9aSVictor Minden 49ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 507087cfbeSBarry Smith extern PetscErrorCode MatCreate_IM(Mat); 51ba2f8784SDmitry Karpeev #endif 52*dedccee8SHong Zhang 53*dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 54*dedccee8SHong Zhang extern PetscErrorCode MatCreate_FFTW(Mat); 55*dedccee8SHong Zhang #endif 56c0aa2d19SHong Zhang EXTERN_C_END 578a95e4e9SBarry Smith 588a95e4e9SBarry Smith /* 59f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 60f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 61f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 628a95e4e9SBarry Smith */ 6309573ac7SBarry Smith extern PetscBool MatRegisterAllCalled; 648a95e4e9SBarry Smith 654a2ae208SSatish Balay #undef __FUNCT__ 664a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 678a95e4e9SBarry Smith /*@C 68f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 698a95e4e9SBarry Smith 708a95e4e9SBarry Smith Not Collective 718a95e4e9SBarry Smith 728a95e4e9SBarry Smith Level: advanced 738a95e4e9SBarry Smith 748a95e4e9SBarry Smith .keywords: KSP, register, all 758a95e4e9SBarry Smith 76f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 778a95e4e9SBarry Smith @*/ 787087cfbeSBarry Smith PetscErrorCode MatRegisterAll(const char path[]) 798a95e4e9SBarry Smith { 80dfbe8321SBarry Smith PetscErrorCode ierr; 818a95e4e9SBarry Smith 828a95e4e9SBarry Smith PetscFunctionBegin; 83f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 848a95e4e9SBarry Smith 85e884886fSBarry Smith ierr = MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);CHKERRQ(ierr); 86e884886fSBarry 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); 93793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 9417667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 95273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 96273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 9717667f90SBarry Smith 985a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJPERM, path,"MatCreate_AIJPERM", MatCreate_AIJPERM);CHKERRQ(ierr); 995a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJPERM, path,"MatCreate_MPIAIJPERM", MatCreate_MPIAIJPERM);CHKERRQ(ierr); 1005a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJPERM, path,"MatCreate_SeqAIJPERM", MatCreate_SeqAIJPERM);CHKERRQ(ierr); 10117667f90SBarry Smith 1025a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJCRL, path,"MatCreate_AIJCRL", MatCreate_AIJCRL);CHKERRQ(ierr); 1035a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCRL, path,"MatCreate_SeqAIJCRL", MatCreate_SeqAIJCRL);CHKERRQ(ierr); 1045a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCRL, path,"MatCreate_MPIAIJCRL", MatCreate_MPIAIJCRL);CHKERRQ(ierr); 105273d9f13SBarry Smith 10617667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 107273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 109273d9f13SBarry Smith 11017667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 111273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 112273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 11317667f90SBarry Smith 11417667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 115273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 116273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 11717667f90SBarry Smith 118273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1192a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 120421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 121c8883902SJed Brown ierr = MatRegisterDynamic(MATNEST, path,"MatCreate_Nest", MatCreate_Nest);CHKERRQ(ierr); 12268326731SBarry Smith 1234d6373a4SLisandro Dalcin /*ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr);*/ 124ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 125ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 126ba2f8784SDmitry Karpeev #endif 1278154be41SBarry Smith #if defined PETSC_HAVE_CUSP 1288154be41SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCUSP, path,"MatCreate_SeqAIJCUSP", MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 1298154be41SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCUSP, path,"MatCreate_MPIAIJCUSP", MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 1308154be41SBarry Smith ierr = MatRegisterDynamic(MATAIJCUSP, path,"MatCreate_AIJCUSP", MatCreate_AIJCUSP);CHKERRQ(ierr); 131c6570e9aSVictor Minden #endif 132*dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 133*dedccee8SHong Zhang ierr = MatRegisterDynamic(MATFFTW, path,"MatCreate_FFTW", MatCreate_FFTW);CHKERRQ(ierr); 134*dedccee8SHong Zhang #endif 1358a95e4e9SBarry Smith PetscFunctionReturn(0); 1368a95e4e9SBarry Smith } 137f7cf7585SBarry Smith 1383a7fca6bSBarry Smith 139