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 43*8154be41SBarry Smith #if defined PETSC_HAVE_CUSP 44*8154be41SBarry Smith extern PetscErrorCode MatCreate_SeqAIJCUSP(Mat); 45*8154be41SBarry Smith extern PetscErrorCode MatCreate_MPIAIJCUSP(Mat); 46*8154be41SBarry 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 52c0aa2d19SHong Zhang EXTERN_C_END 538a95e4e9SBarry Smith 548a95e4e9SBarry Smith /* 55f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 56f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 57f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 588a95e4e9SBarry Smith */ 5909573ac7SBarry Smith extern PetscBool MatRegisterAllCalled; 608a95e4e9SBarry Smith 614a2ae208SSatish Balay #undef __FUNCT__ 624a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 638a95e4e9SBarry Smith /*@C 64f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 658a95e4e9SBarry Smith 668a95e4e9SBarry Smith Not Collective 678a95e4e9SBarry Smith 688a95e4e9SBarry Smith Level: advanced 698a95e4e9SBarry Smith 708a95e4e9SBarry Smith .keywords: KSP, register, all 718a95e4e9SBarry Smith 72f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 738a95e4e9SBarry Smith @*/ 747087cfbeSBarry Smith PetscErrorCode MatRegisterAll(const char path[]) 758a95e4e9SBarry Smith { 76dfbe8321SBarry Smith PetscErrorCode ierr; 778a95e4e9SBarry Smith 788a95e4e9SBarry Smith PetscFunctionBegin; 79f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 808a95e4e9SBarry Smith 81e884886fSBarry Smith ierr = MatRegisterDynamic(MATMFFD, path,"MatCreate_MFFD", MatCreate_MFFD);CHKERRQ(ierr); 82e884886fSBarry Smith 83f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 84b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 85209238afSKris Buschelman ierr = MatRegisterDynamic(MATMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 86273d9f13SBarry Smith 87186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 88273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 89793850ffSBarry Smith ierr = MatRegisterDynamic(MATCOMPOSITE, path,"MatCreate_Composite", MatCreate_Composite);CHKERRQ(ierr); 9017667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);CHKERRQ(ierr); 91273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 92273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 9317667f90SBarry Smith 945a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJPERM, path,"MatCreate_AIJPERM", MatCreate_AIJPERM);CHKERRQ(ierr); 955a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJPERM, path,"MatCreate_MPIAIJPERM", MatCreate_MPIAIJPERM);CHKERRQ(ierr); 965a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJPERM, path,"MatCreate_SeqAIJPERM", MatCreate_SeqAIJPERM);CHKERRQ(ierr); 9717667f90SBarry Smith 985a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJCRL, path,"MatCreate_AIJCRL", MatCreate_AIJCRL);CHKERRQ(ierr); 995a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCRL, path,"MatCreate_SeqAIJCRL", MatCreate_SeqAIJCRL);CHKERRQ(ierr); 1005a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCRL, path,"MatCreate_MPIAIJCRL", MatCreate_MPIAIJCRL);CHKERRQ(ierr); 101273d9f13SBarry Smith 10217667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);CHKERRQ(ierr); 103273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 104273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 105273d9f13SBarry Smith 10617667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);CHKERRQ(ierr); 107273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 108273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 10917667f90SBarry Smith 11017667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 111273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 112273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 11317667f90SBarry Smith 114273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1152a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 116421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 117c8883902SJed Brown ierr = MatRegisterDynamic(MATNEST, path,"MatCreate_Nest", MatCreate_Nest);CHKERRQ(ierr); 11868326731SBarry Smith 1194d6373a4SLisandro Dalcin /*ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr);*/ 120ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 121ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 122ba2f8784SDmitry Karpeev #endif 123*8154be41SBarry Smith #if defined PETSC_HAVE_CUSP 124*8154be41SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCUSP, path,"MatCreate_SeqAIJCUSP", MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 125*8154be41SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCUSP, path,"MatCreate_MPIAIJCUSP", MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 126*8154be41SBarry Smith ierr = MatRegisterDynamic(MATAIJCUSP, path,"MatCreate_AIJCUSP", MatCreate_AIJCUSP);CHKERRQ(ierr); 127c6570e9aSVictor Minden #endif 1288a95e4e9SBarry Smith PetscFunctionReturn(0); 1298a95e4e9SBarry Smith } 130f7cf7585SBarry Smith 1313a7fca6bSBarry Smith 132