18a95e4e9SBarry Smith 2af0996ceSBarry Smith #include <petsc/private/matimpl.h> /*I "petscmat.h" I*/ 38a95e4e9SBarry Smith 48cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MFFD(Mat); 58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MAIJ(Mat); 68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_IS(Mat); 717667f90SBarry Smith 88cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJ(Mat); 98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJ(Mat); 1017667f90SBarry Smith 118cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqBAIJ(Mat); 128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIBAIJ(Mat); 1317667f90SBarry Smith 148cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqSBAIJ(Mat); 158cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPISBAIJ(Mat); 1617667f90SBarry Smith 178cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqDense(Mat); 188cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIDense(Mat); 1917667f90SBarry Smith 208cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAdj(Mat); 218cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Shell(Mat); 228cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Composite(Mat); 2317667f90SBarry Smith 248cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJPERM(Mat); 258cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJPERM(Mat); 2617667f90SBarry Smith 27*4dfdc2d9SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJSELL(Mat); 28*4dfdc2d9SRichard Tran Mills /* Uncomment below line when MatCreate_MPIAIJSELL() is completed. --RTM 29*4dfdc2d9SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJSELL(Mat); 30*4dfdc2d9SRichard Tran Mills */ 31*4dfdc2d9SRichard Tran Mills 329779e05dSSatish Balay #if defined PETSC_HAVE_MKL_SPARSE 334a2a386eSRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJMKL(Mat); 34a84739b8SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJMKL(Mat); 35b5b72c8aSIrina Sokolova 36b5b72c8aSIrina Sokolova PETSC_EXTERN PetscErrorCode MatCreate_SeqBAIJMKL(Mat); 37b5b72c8aSIrina Sokolova PETSC_EXTERN PetscErrorCode MatCreate_MPIBAIJMKL(Mat); 38191b95cbSRichard Tran Mills #endif 394a2a386eSRichard Tran Mills 408cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCRL(Mat); 418cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCRL(Mat); 4217667f90SBarry Smith 438cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Scatter(Mat); 448cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_BlockMat(Mat); 458cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Nest(Mat); 46c6570e9aSVictor Minden 47d4002b98SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_SeqSELL(Mat); 48d4002b98SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_MPISELL(Mat); 495e26d47bSHong Zhang 50c41cb2e2SAlejandro Lamas Daviña #if defined PETSC_HAVE_VECCUDA 518cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCUSPARSE(Mat); 528cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCUSPARSE(Mat); 539ae82921SPaul Mullowney #endif 549ae82921SPaul Mullowney 55d67ff14aSKarl Rupp #if defined PETSC_HAVE_VIENNACL 56d67ff14aSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJViennaCL(Mat); 578f86e40fSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJViennaCL(Mat); 58d67ff14aSKarl Rupp #endif 59d67ff14aSKarl Rupp 60dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 618cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_FFTW(Mat); 62dedccee8SHong Zhang #endif 638cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Elemental(Mat); 648a95e4e9SBarry Smith 65c094ef40SMatthew G. Knepley PETSC_EXTERN PetscErrorCode MatCreate_Preallocator(Mat); 66a3b2e22bSHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_Dummy(Mat); 67c094ef40SMatthew G. Knepley 6863c07aadSStefano Zampini #if defined PETSC_HAVE_HYPRE 6963c07aadSStefano Zampini PETSC_EXTERN PetscErrorCode MatCreate_HYPRE(Mat); 7063c07aadSStefano Zampini #endif 7163c07aadSStefano Zampini 728a95e4e9SBarry Smith /*@C 73f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 748a95e4e9SBarry Smith 758a95e4e9SBarry Smith Not Collective 768a95e4e9SBarry Smith 778a95e4e9SBarry Smith Level: advanced 788a95e4e9SBarry Smith 798a95e4e9SBarry Smith .keywords: KSP, register, all 808a95e4e9SBarry Smith 81d7ee760dSBarry Smith .seealso: MatRegister() 828a95e4e9SBarry Smith @*/ 83607a6623SBarry Smith PetscErrorCode MatRegisterAll(void) 848a95e4e9SBarry Smith { 85dfbe8321SBarry Smith PetscErrorCode ierr; 868a95e4e9SBarry Smith 878a95e4e9SBarry Smith PetscFunctionBegin; 880f51fdf8SToby Isaac if (MatRegisterAllCalled) PetscFunctionReturn(0); 89f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 908a95e4e9SBarry Smith 91bdf89e91SBarry Smith ierr = MatRegister(MATMFFD, MatCreate_MFFD);CHKERRQ(ierr); 92e884886fSBarry Smith 93bdf89e91SBarry Smith ierr = MatRegister(MATMPIMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 94bdf89e91SBarry Smith ierr = MatRegister(MATSEQMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 95bdf89e91SBarry Smith ierr = MatRegister(MATMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 96273d9f13SBarry Smith 97bdf89e91SBarry Smith ierr = MatRegister(MATIS, MatCreate_IS);CHKERRQ(ierr); 98bdf89e91SBarry Smith ierr = MatRegister(MATSHELL, MatCreate_Shell);CHKERRQ(ierr); 99bdf89e91SBarry Smith ierr = MatRegister(MATCOMPOSITE, MatCreate_Composite);CHKERRQ(ierr); 10001bebe75SBarry Smith 10101bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJ,MATSEQAIJ,MATMPIAIJ);CHKERRQ(ierr); 102bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJ, MatCreate_MPIAIJ);CHKERRQ(ierr); 103bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJ, MatCreate_SeqAIJ);CHKERRQ(ierr); 10417667f90SBarry Smith 10501bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJPERM,MATSEQAIJPERM,MATMPIAIJPERM);CHKERRQ(ierr); 106bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJPERM, MatCreate_MPIAIJPERM);CHKERRQ(ierr); 107bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJPERM, MatCreate_SeqAIJPERM);CHKERRQ(ierr); 10817667f90SBarry Smith 109*4dfdc2d9SRichard Tran Mills ierr = MatRegisterBaseName(MATAIJSELL,MATSEQAIJSELL,MATMPIAIJSELL);CHKERRQ(ierr); 110*4dfdc2d9SRichard Tran Mills /* Uncomment when MatCreate_MPIAIJSELL has been created. --RTM 111*4dfdc2d9SRichard Tran Mills ierr = MatRegister(MATMPIAIJSELL, MatCreate_MPIAIJSELL);CHKERRQ(ierr); 112*4dfdc2d9SRichard Tran Mills */ 113*4dfdc2d9SRichard Tran Mills ierr = MatRegister(MATSEQAIJSELL, MatCreate_SeqAIJSELL);CHKERRQ(ierr); 114*4dfdc2d9SRichard Tran Mills 1159779e05dSSatish Balay #if defined PETSC_HAVE_MKL_SPARSE 1164a2a386eSRichard Tran Mills ierr = MatRegisterBaseName(MATAIJMKL, MATSEQAIJMKL,MATMPIAIJMKL);CHKERRQ(ierr); 117a84739b8SRichard Tran Mills ierr = MatRegister(MATMPIAIJMKL, MatCreate_MPIAIJMKL);CHKERRQ(ierr); 1184a2a386eSRichard Tran Mills ierr = MatRegister(MATSEQAIJMKL, MatCreate_SeqAIJMKL);CHKERRQ(ierr); 119b5b72c8aSIrina Sokolova 120b5b72c8aSIrina Sokolova ierr = MatRegisterBaseName(MATBAIJMKL,MATSEQBAIJMKL,MATMPIBAIJMKL);CHKERRQ(ierr); 121b5b72c8aSIrina Sokolova ierr = MatRegister(MATMPIBAIJMKL, MatCreate_MPIBAIJMKL);CHKERRQ(ierr); 122b5b72c8aSIrina Sokolova ierr = MatRegister(MATSEQBAIJMKL, MatCreate_SeqBAIJMKL);CHKERRQ(ierr); 123191b95cbSRichard Tran Mills #endif 1244a2a386eSRichard Tran Mills 12501bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCRL,MATSEQAIJCRL,MATMPIAIJCRL);CHKERRQ(ierr); 126bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJCRL, MatCreate_SeqAIJCRL);CHKERRQ(ierr); 127bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJCRL, MatCreate_MPIAIJCRL);CHKERRQ(ierr); 128273d9f13SBarry Smith 12901bebe75SBarry Smith ierr = MatRegisterBaseName(MATBAIJ,MATSEQBAIJ,MATMPIBAIJ);CHKERRQ(ierr); 130bdf89e91SBarry Smith ierr = MatRegister(MATMPIBAIJ, MatCreate_MPIBAIJ);CHKERRQ(ierr); 131bdf89e91SBarry Smith ierr = MatRegister(MATSEQBAIJ, MatCreate_SeqBAIJ);CHKERRQ(ierr); 132273d9f13SBarry Smith 13301bebe75SBarry Smith ierr = MatRegisterBaseName(MATSBAIJ,MATSEQSBAIJ,MATMPISBAIJ);CHKERRQ(ierr); 134bdf89e91SBarry Smith ierr = MatRegister(MATMPISBAIJ, MatCreate_MPISBAIJ);CHKERRQ(ierr); 135bdf89e91SBarry Smith ierr = MatRegister(MATSEQSBAIJ, MatCreate_SeqSBAIJ);CHKERRQ(ierr); 13617667f90SBarry Smith 13701bebe75SBarry Smith ierr = MatRegisterBaseName(MATDENSE,MATSEQDENSE,MATMPIDENSE);CHKERRQ(ierr); 138bdf89e91SBarry Smith ierr = MatRegister(MATMPIDENSE, MatCreate_MPIDense);CHKERRQ(ierr); 139bdf89e91SBarry Smith ierr = MatRegister(MATSEQDENSE, MatCreate_SeqDense);CHKERRQ(ierr); 14017667f90SBarry Smith 141bdf89e91SBarry Smith ierr = MatRegister(MATMPIADJ, MatCreate_MPIAdj);CHKERRQ(ierr); 142bdf89e91SBarry Smith ierr = MatRegister(MATSCATTER, MatCreate_Scatter);CHKERRQ(ierr); 143bdf89e91SBarry Smith ierr = MatRegister(MATBLOCKMAT, MatCreate_BlockMat);CHKERRQ(ierr); 144bdf89e91SBarry Smith ierr = MatRegister(MATNEST, MatCreate_Nest);CHKERRQ(ierr); 14568326731SBarry Smith 146d4002b98SHong Zhang ierr = MatRegisterBaseName(MATSELL,MATSEQSELL,MATMPISELL);CHKERRQ(ierr); 147d4002b98SHong Zhang ierr = MatRegister(MATMPISELL, MatCreate_MPISELL);CHKERRQ(ierr); 148d4002b98SHong Zhang ierr = MatRegister(MATSEQSELL, MatCreate_SeqSELL);CHKERRQ(ierr); 1495e26d47bSHong Zhang 150c41cb2e2SAlejandro Lamas Daviña #if defined PETSC_HAVE_VECCUDA 1519ae82921SPaul Mullowney ierr = MatRegisterBaseName(MATAIJCUSPARSE,MATSEQAIJCUSPARSE,MATMPIAIJCUSPARSE);CHKERRQ(ierr); 152bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJCUSPARSE, MatCreate_SeqAIJCUSPARSE);CHKERRQ(ierr); 153bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJCUSPARSE, MatCreate_MPIAIJCUSPARSE);CHKERRQ(ierr); 1549ae82921SPaul Mullowney #endif 1559ae82921SPaul Mullowney 1568f86e40fSKarl Rupp #if defined PETSC_HAVE_VIENNACL 1578f86e40fSKarl Rupp ierr = MatRegisterBaseName(MATAIJVIENNACL,MATSEQAIJVIENNACL,MATMPIAIJVIENNACL);CHKERRQ(ierr); 158ab6435e1SKarl Rupp ierr = MatRegister(MATSEQAIJVIENNACL, MatCreate_SeqAIJViennaCL);CHKERRQ(ierr); 159ab6435e1SKarl Rupp ierr = MatRegister(MATMPIAIJVIENNACL, MatCreate_MPIAIJViennaCL);CHKERRQ(ierr); 1608f86e40fSKarl Rupp #endif 1618f86e40fSKarl Rupp 162dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 163bdf89e91SBarry Smith ierr = MatRegister(MATFFTW, MatCreate_FFTW);CHKERRQ(ierr); 164dedccee8SHong Zhang #endif 165db31f6deSJed Brown #if defined PETSC_HAVE_ELEMENTAL 166bdf89e91SBarry Smith ierr = MatRegister(MATELEMENTAL, MatCreate_Elemental);CHKERRQ(ierr); 167db31f6deSJed Brown #endif 168c094ef40SMatthew G. Knepley 169c094ef40SMatthew G. Knepley ierr = MatRegister(MATPREALLOCATOR, MatCreate_Preallocator);CHKERRQ(ierr); 170a3b2e22bSHong Zhang ierr = MatRegister(MATDUMMY, MatCreate_Dummy);CHKERRQ(ierr); 17163c07aadSStefano Zampini 17263c07aadSStefano Zampini #if defined PETSC_HAVE_HYPRE 17363c07aadSStefano Zampini ierr = MatRegister(MATHYPRE, MatCreate_HYPRE);CHKERRQ(ierr); 17463c07aadSStefano Zampini #endif 1758a95e4e9SBarry Smith PetscFunctionReturn(0); 1768a95e4e9SBarry Smith } 177