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*4a2a386eSRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJMKL(Mat); 28*4a2a386eSRichard Tran Mills /* PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJMKL(Mat); */ 29*4a2a386eSRichard Tran Mills /* Uncomment above line when I have MPIAIJMKL completed. -- RTM */ 30*4a2a386eSRichard Tran Mills 318cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCRL(Mat); 328cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCRL(Mat); 3317667f90SBarry Smith 348cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Scatter(Mat); 358cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_BlockMat(Mat); 368cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Nest(Mat); 37c6570e9aSVictor Minden 388154be41SBarry Smith #if defined PETSC_HAVE_CUSP 398cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCUSP(Mat); 408cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCUSP(Mat); 41c6570e9aSVictor Minden #endif 42c6570e9aSVictor Minden 43c41cb2e2SAlejandro Lamas Daviña #if defined PETSC_HAVE_VECCUDA 448cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCUSPARSE(Mat); 458cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCUSPARSE(Mat); 469ae82921SPaul Mullowney #endif 479ae82921SPaul Mullowney 48d67ff14aSKarl Rupp #if defined PETSC_HAVE_VIENNACL 49d67ff14aSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJViennaCL(Mat); 508f86e40fSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJViennaCL(Mat); 51d67ff14aSKarl Rupp #endif 52d67ff14aSKarl Rupp 53dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 548cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_FFTW(Mat); 55dedccee8SHong Zhang #endif 568cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Elemental(Mat); 578a95e4e9SBarry Smith 58c094ef40SMatthew G. Knepley PETSC_EXTERN PetscErrorCode MatCreate_Preallocator(Mat); 59a3b2e22bSHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_Dummy(Mat); 60c094ef40SMatthew G. Knepley 6163c07aadSStefano Zampini #if defined PETSC_HAVE_HYPRE 6263c07aadSStefano Zampini PETSC_EXTERN PetscErrorCode MatCreate_HYPRE(Mat); 6363c07aadSStefano Zampini #endif 6463c07aadSStefano Zampini 658a95e4e9SBarry Smith /*@C 66f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 678a95e4e9SBarry Smith 688a95e4e9SBarry Smith Not Collective 698a95e4e9SBarry Smith 708a95e4e9SBarry Smith Level: advanced 718a95e4e9SBarry Smith 728a95e4e9SBarry Smith .keywords: KSP, register, all 738a95e4e9SBarry Smith 74d7ee760dSBarry Smith .seealso: MatRegister() 758a95e4e9SBarry Smith @*/ 76607a6623SBarry Smith PetscErrorCode MatRegisterAll(void) 778a95e4e9SBarry Smith { 78dfbe8321SBarry Smith PetscErrorCode ierr; 798a95e4e9SBarry Smith 808a95e4e9SBarry Smith PetscFunctionBegin; 810f51fdf8SToby Isaac if (MatRegisterAllCalled) PetscFunctionReturn(0); 82f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 838a95e4e9SBarry Smith 84bdf89e91SBarry Smith ierr = MatRegister(MATMFFD, MatCreate_MFFD);CHKERRQ(ierr); 85e884886fSBarry Smith 86bdf89e91SBarry Smith ierr = MatRegister(MATMPIMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 87bdf89e91SBarry Smith ierr = MatRegister(MATSEQMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 88bdf89e91SBarry Smith ierr = MatRegister(MATMAIJ, MatCreate_MAIJ);CHKERRQ(ierr); 89273d9f13SBarry Smith 90bdf89e91SBarry Smith ierr = MatRegister(MATIS, MatCreate_IS);CHKERRQ(ierr); 91bdf89e91SBarry Smith ierr = MatRegister(MATSHELL, MatCreate_Shell);CHKERRQ(ierr); 92bdf89e91SBarry Smith ierr = MatRegister(MATCOMPOSITE, MatCreate_Composite);CHKERRQ(ierr); 9301bebe75SBarry Smith 9401bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJ,MATSEQAIJ,MATMPIAIJ);CHKERRQ(ierr); 95bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJ, MatCreate_MPIAIJ);CHKERRQ(ierr); 96bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJ, MatCreate_SeqAIJ);CHKERRQ(ierr); 9717667f90SBarry Smith 9801bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJPERM,MATSEQAIJPERM,MATMPIAIJPERM);CHKERRQ(ierr); 99bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJPERM, MatCreate_MPIAIJPERM);CHKERRQ(ierr); 100bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJPERM, MatCreate_SeqAIJPERM);CHKERRQ(ierr); 10117667f90SBarry Smith 102*4a2a386eSRichard Tran Mills ierr = MatRegisterBaseName(MATAIJMKL,MATSEQAIJMKL,MATMPIAIJMKL);CHKERRQ(ierr); 103*4a2a386eSRichard Tran Mills /* ierr = MatRegister(MATMPIAIJMKL, MatCreate_MPIAIJMKL);CHKERRQ(ierr); */ 104*4a2a386eSRichard Tran Mills /* Uncomment above line when I have MPIAIJMKL implemented. --RTM */ 105*4a2a386eSRichard Tran Mills ierr = MatRegister(MATSEQAIJMKL, MatCreate_SeqAIJMKL);CHKERRQ(ierr); 106*4a2a386eSRichard Tran Mills 10701bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCRL,MATSEQAIJCRL,MATMPIAIJCRL);CHKERRQ(ierr); 108bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJCRL, MatCreate_SeqAIJCRL);CHKERRQ(ierr); 109bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJCRL, MatCreate_MPIAIJCRL);CHKERRQ(ierr); 110273d9f13SBarry Smith 11101bebe75SBarry Smith ierr = MatRegisterBaseName(MATBAIJ,MATSEQBAIJ,MATMPIBAIJ);CHKERRQ(ierr); 112bdf89e91SBarry Smith ierr = MatRegister(MATMPIBAIJ, MatCreate_MPIBAIJ);CHKERRQ(ierr); 113bdf89e91SBarry Smith ierr = MatRegister(MATSEQBAIJ, MatCreate_SeqBAIJ);CHKERRQ(ierr); 114273d9f13SBarry Smith 11501bebe75SBarry Smith ierr = MatRegisterBaseName(MATSBAIJ,MATSEQSBAIJ,MATMPISBAIJ);CHKERRQ(ierr); 116bdf89e91SBarry Smith ierr = MatRegister(MATMPISBAIJ, MatCreate_MPISBAIJ);CHKERRQ(ierr); 117bdf89e91SBarry Smith ierr = MatRegister(MATSEQSBAIJ, MatCreate_SeqSBAIJ);CHKERRQ(ierr); 11817667f90SBarry Smith 11901bebe75SBarry Smith ierr = MatRegisterBaseName(MATDENSE,MATSEQDENSE,MATMPIDENSE);CHKERRQ(ierr); 120bdf89e91SBarry Smith ierr = MatRegister(MATMPIDENSE, MatCreate_MPIDense);CHKERRQ(ierr); 121bdf89e91SBarry Smith ierr = MatRegister(MATSEQDENSE, MatCreate_SeqDense);CHKERRQ(ierr); 12217667f90SBarry Smith 123bdf89e91SBarry Smith ierr = MatRegister(MATMPIADJ, MatCreate_MPIAdj);CHKERRQ(ierr); 124bdf89e91SBarry Smith ierr = MatRegister(MATSCATTER, MatCreate_Scatter);CHKERRQ(ierr); 125bdf89e91SBarry Smith ierr = MatRegister(MATBLOCKMAT, MatCreate_BlockMat);CHKERRQ(ierr); 126bdf89e91SBarry Smith ierr = MatRegister(MATNEST, MatCreate_Nest);CHKERRQ(ierr); 12768326731SBarry Smith 1288154be41SBarry Smith #if defined PETSC_HAVE_CUSP 12901bebe75SBarry Smith ierr = MatRegisterBaseName(MATAIJCUSP,MATSEQAIJCUSP,MATMPIAIJCUSP);CHKERRQ(ierr); 130bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJCUSP, MatCreate_SeqAIJCUSP);CHKERRQ(ierr); 131bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJCUSP, MatCreate_MPIAIJCUSP);CHKERRQ(ierr); 132c6570e9aSVictor Minden #endif 13301bebe75SBarry Smith 134c41cb2e2SAlejandro Lamas Daviña #if defined PETSC_HAVE_VECCUDA 1359ae82921SPaul Mullowney ierr = MatRegisterBaseName(MATAIJCUSPARSE,MATSEQAIJCUSPARSE,MATMPIAIJCUSPARSE);CHKERRQ(ierr); 136bdf89e91SBarry Smith ierr = MatRegister(MATSEQAIJCUSPARSE, MatCreate_SeqAIJCUSPARSE);CHKERRQ(ierr); 137bdf89e91SBarry Smith ierr = MatRegister(MATMPIAIJCUSPARSE, MatCreate_MPIAIJCUSPARSE);CHKERRQ(ierr); 1389ae82921SPaul Mullowney #endif 1399ae82921SPaul Mullowney 1408f86e40fSKarl Rupp #if defined PETSC_HAVE_VIENNACL 1418f86e40fSKarl Rupp ierr = MatRegisterBaseName(MATAIJVIENNACL,MATSEQAIJVIENNACL,MATMPIAIJVIENNACL);CHKERRQ(ierr); 142ab6435e1SKarl Rupp ierr = MatRegister(MATSEQAIJVIENNACL, MatCreate_SeqAIJViennaCL);CHKERRQ(ierr); 143ab6435e1SKarl Rupp ierr = MatRegister(MATMPIAIJVIENNACL, MatCreate_MPIAIJViennaCL);CHKERRQ(ierr); 1448f86e40fSKarl Rupp #endif 1458f86e40fSKarl Rupp 146dedccee8SHong Zhang #if defined PETSC_HAVE_FFTW 147bdf89e91SBarry Smith ierr = MatRegister(MATFFTW, MatCreate_FFTW);CHKERRQ(ierr); 148dedccee8SHong Zhang #endif 149db31f6deSJed Brown #if defined PETSC_HAVE_ELEMENTAL 150bdf89e91SBarry Smith ierr = MatRegister(MATELEMENTAL, MatCreate_Elemental);CHKERRQ(ierr); 151db31f6deSJed Brown #endif 152c094ef40SMatthew G. Knepley 153c094ef40SMatthew G. Knepley ierr = MatRegister(MATPREALLOCATOR, MatCreate_Preallocator);CHKERRQ(ierr); 154a3b2e22bSHong Zhang ierr = MatRegister(MATDUMMY, MatCreate_Dummy);CHKERRQ(ierr); 15563c07aadSStefano Zampini 15663c07aadSStefano Zampini #if defined PETSC_HAVE_HYPRE 15763c07aadSStefano Zampini ierr = MatRegister(MATHYPRE, MatCreate_HYPRE);CHKERRQ(ierr); 15863c07aadSStefano Zampini #endif 1598a95e4e9SBarry Smith PetscFunctionReturn(0); 1608a95e4e9SBarry Smith } 161f7cf7585SBarry Smith 1623a7fca6bSBarry Smith 163