18a95e4e9SBarry Smith 2*c6db04a5SJed 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_AIJ(Mat); 107087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJ(Mat); 117087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJ(Mat); 1217667f90SBarry Smith 137087cfbeSBarry Smith extern PetscErrorCode MatCreate_BAIJ(Mat); 147087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqBAIJ(Mat); 157087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIBAIJ(Mat); 1617667f90SBarry Smith 177087cfbeSBarry Smith extern PetscErrorCode MatCreate_SBAIJ(Mat); 187087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqSBAIJ(Mat); 197087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPISBAIJ(Mat); 2017667f90SBarry Smith 217087cfbeSBarry Smith extern PetscErrorCode MatCreate_Dense(Mat); 227087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqDense(Mat); 237087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIDense(Mat); 2417667f90SBarry Smith 257087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAdj(Mat); 267087cfbeSBarry Smith extern PetscErrorCode MatCreate_Shell(Mat); 277087cfbeSBarry Smith extern PetscErrorCode MatCreate_Composite(Mat); 2817667f90SBarry Smith 297087cfbeSBarry Smith extern PetscErrorCode MatCreate_AIJPERM(Mat); 307087cfbeSBarry Smith extern PetscErrorCode MatCreate_SeqAIJPERM(Mat); 317087cfbeSBarry Smith extern PetscErrorCode MatCreate_MPIAIJPERM(Mat); 3217667f90SBarry Smith 337087cfbeSBarry Smith extern PetscErrorCode MatCreate_AIJCRL(Mat); 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); 458154be41SBarry Smith extern PetscErrorCode MatCreate_AIJCUSP(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); 9317667f90SBarry Smith ierr = MatRegisterDynamic(MATAIJ, path,"MatCreate_AIJ", MatCreate_AIJ);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 975a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJPERM, path,"MatCreate_AIJPERM", MatCreate_AIJPERM);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 1015a11e1b2SBarry Smith ierr = MatRegisterDynamic(MATAIJCRL, path,"MatCreate_AIJCRL", MatCreate_AIJCRL);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 10517667f90SBarry Smith ierr = MatRegisterDynamic(MATBAIJ, path,"MatCreate_BAIJ", MatCreate_BAIJ);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 10917667f90SBarry Smith ierr = MatRegisterDynamic(MATSBAIJ, path,"MatCreate_SBAIJ", MatCreate_SBAIJ);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 11317667f90SBarry Smith ierr = MatRegisterDynamic(MATDENSE, path,"MatCreate_Dense", MatCreate_Dense);CHKERRQ(ierr); 114273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 115273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 11617667f90SBarry Smith 117273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 1182a6744ebSBarry Smith ierr = MatRegisterDynamic(MATSCATTER, path,"MatCreate_Scatter", MatCreate_Scatter);CHKERRQ(ierr); 119421e10b8SBarry Smith ierr = MatRegisterDynamic(MATBLOCKMAT, path,"MatCreate_BlockMat", MatCreate_BlockMat);CHKERRQ(ierr); 120c8883902SJed Brown ierr = MatRegisterDynamic(MATNEST, path,"MatCreate_Nest", MatCreate_Nest);CHKERRQ(ierr); 12168326731SBarry Smith 1224d6373a4SLisandro Dalcin /*ierr = MatRegisterDynamic(MATDD, path,"MatCreate_DD", MatCreate_DD);CHKERRQ(ierr);*/ 123ba2f8784SDmitry Karpeev #if defined PETSC_HAVE_MATIM 124ba2f8784SDmitry Karpeev ierr = MatRegisterDynamic(MATIM, path,"MatCreate_IM", MatCreate_IM);CHKERRQ(ierr); 125ba2f8784SDmitry Karpeev #endif 1268154be41SBarry Smith #if defined PETSC_HAVE_CUSP 1278154be41SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJCUSP, path,"MatCreate_SeqAIJCUSP", MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 1288154be41SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJCUSP, path,"MatCreate_MPIAIJCUSP", MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 1298154be41SBarry Smith ierr = MatRegisterDynamic(MATAIJCUSP, path,"MatCreate_AIJCUSP", MatCreate_AIJCUSP);CHKERRQ(ierr); 130c6570e9aSVictor Minden #endif 131dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 132dedccee8SHong Zhang ierr = MatRegisterDynamic(MATFFTW, path,"MatCreate_FFTW", MatCreate_FFTW);CHKERRQ(ierr); 133dedccee8SHong Zhang #endif 1348a95e4e9SBarry Smith PetscFunctionReturn(0); 1358a95e4e9SBarry Smith } 136f7cf7585SBarry Smith 1373a7fca6bSBarry Smith 138