147d993e7Ssuyashtn /* Portions of this code are under: 247d993e7Ssuyashtn Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. 347d993e7Ssuyashtn */ 4af0996ceSBarry Smith #include <petsc/private/matimpl.h> /*I "petscmat.h" I*/ 58a95e4e9SBarry Smith 68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MFFD(Mat); 78cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MAIJ(Mat); 849bd79ccSDebojyoti Ghosh PETSC_EXTERN PetscErrorCode MatCreate_KAIJ(Mat); 98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_IS(Mat); 10bcf2175cSMatthew Knepley PETSC_EXTERN PetscErrorCode MatCreate_LRC(Mat); 1117667f90SBarry Smith 128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJ(Mat); 138cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJ(Mat); 1417667f90SBarry Smith 158cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqBAIJ(Mat); 168cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIBAIJ(Mat); 1717667f90SBarry Smith 188cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqSBAIJ(Mat); 198cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPISBAIJ(Mat); 2017667f90SBarry Smith 214742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_SeqDense(Mat); 224742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_MPIDense(Mat); 23bfc799aaSStefano Zampini #if defined(PETSC_HAVE_CUDA) 244742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_SeqDenseCUDA(Mat); 254742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_MPIDenseCUDA(Mat); 26bfc799aaSStefano Zampini #endif 2717667f90SBarry Smith 2847d993e7Ssuyashtn #if defined(PETSC_HAVE_HIP) 294742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_SeqDenseHIP(Mat); 304742e46bSJacob Faibussowitsch PETSC_INTERN PetscErrorCode MatCreate_MPIDenseHIP(Mat); 3147d993e7Ssuyashtn #endif 3247d993e7Ssuyashtn 338cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAdj(Mat); 348cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Shell(Mat); 358cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Composite(Mat); 3617667f90SBarry Smith 378cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJPERM(Mat); 388cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJPERM(Mat); 3917667f90SBarry Smith 404dfdc2d9SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJSELL(Mat); 414dfdc2d9SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJSELL(Mat); 424dfdc2d9SRichard Tran Mills 43bfc799aaSStefano Zampini #if defined(PETSC_HAVE_MKL_SPARSE) 444a2a386eSRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJMKL(Mat); 45a84739b8SRichard Tran Mills PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJMKL(Mat); 46b9e7e5c1SBarry Smith #endif 47b5b72c8aSIrina Sokolova 48bfc799aaSStefano Zampini #if defined(PETSC_HAVE_MKL_SPARSE_OPTIMIZE) 49b5b72c8aSIrina Sokolova PETSC_EXTERN PetscErrorCode MatCreate_SeqBAIJMKL(Mat); 50b5b72c8aSIrina Sokolova PETSC_EXTERN PetscErrorCode MatCreate_MPIBAIJMKL(Mat); 51191b95cbSRichard Tran Mills #endif 524a2a386eSRichard Tran Mills 538cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCRL(Mat); 548cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCRL(Mat); 5517667f90SBarry Smith 568cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Scatter(Mat); 578cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_BlockMat(Mat); 588cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Nest(Mat); 59c6570e9aSVictor Minden 60d4002b98SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_SeqSELL(Mat); 61d4002b98SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_MPISELL(Mat); 625e26d47bSHong Zhang 63bfc799aaSStefano Zampini #if defined(PETSC_HAVE_CUDA) 648cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJCUSPARSE(Mat); 658cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJCUSPARSE(Mat); 662d1451d4SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_SeqSELLCUDA(Mat); 672d1451d4SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_MPISELLCUDA(Mat); 689ae82921SPaul Mullowney #endif 699ae82921SPaul Mullowney 7047d993e7Ssuyashtn #if defined(PETSC_HAVE_HIP) 7147d993e7Ssuyashtn PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJHIPSPARSE(Mat); 7247d993e7Ssuyashtn PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJHIPSPARSE(Mat); 73773bf0f6SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_SeqSELLHIP(Mat); 74773bf0f6SHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_MPISELLHIP(Mat); 7547d993e7Ssuyashtn #endif 7647d993e7Ssuyashtn 77bfc799aaSStefano Zampini #if defined(PETSC_HAVE_VIENNACL) 78d67ff14aSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJViennaCL(Mat); 798f86e40fSKarl Rupp PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJViennaCL(Mat); 80d67ff14aSKarl Rupp #endif 81d67ff14aSKarl Rupp 828c3ff71bSJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS) 838c3ff71bSJunchao Zhang PETSC_EXTERN PetscErrorCode MatCreate_SeqAIJKokkos(Mat); 848c3ff71bSJunchao Zhang PETSC_EXTERN PetscErrorCode MatCreate_MPIAIJKokkos(Mat); 858c3ff71bSJunchao Zhang #endif 868c3ff71bSJunchao Zhang 87bfc799aaSStefano Zampini #if defined(PETSC_HAVE_FFTW) 888cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_FFTW(Mat); 89dedccee8SHong Zhang #endif 90d8304050SJose E. Roman #if defined(PETSC_HAVE_ELEMENTAL) 918cc058d9SJed Brown PETSC_EXTERN PetscErrorCode MatCreate_Elemental(Mat); 92d8304050SJose E. Roman #endif 93*d1a032dbSPierre Jolivet #if defined(PETSC_HAVE_SCALAPACK) && (defined(PETSC_USE_REAL_SINGLE) || defined(PETSC_USE_REAL_DOUBLE)) 94d24d4204SJose E. Roman PETSC_EXTERN PetscErrorCode MatCreate_ScaLAPACK(Mat); 95d24d4204SJose E. Roman #endif 968a95e4e9SBarry Smith 97c094ef40SMatthew G. Knepley PETSC_EXTERN PetscErrorCode MatCreate_Preallocator(Mat); 98a3b2e22bSHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_Dummy(Mat); 99c094ef40SMatthew G. Knepley 100bfc799aaSStefano Zampini #if defined(PETSC_HAVE_HYPRE) 10163c07aadSStefano Zampini PETSC_EXTERN PetscErrorCode MatCreate_HYPRE(Mat); 10263c07aadSStefano Zampini #endif 10363c07aadSStefano Zampini 1043423f386SBarry Smith PETSC_EXTERN PetscErrorCode MatCreate_ConstantDiagonal(Mat); 105345a4b08SToby Isaac PETSC_INTERN PetscErrorCode MatCreate_Diagonal(Mat); 106a0d2e7d8SStefano Zampini 10753022affSStefano Zampini #if defined(PETSC_HAVE_H2OPUS) 10853022affSStefano Zampini PETSC_EXTERN PetscErrorCode MatCreate_H2OPUS(Mat); 109a0d2e7d8SStefano Zampini #endif 110a0d2e7d8SStefano Zampini 111c7a4214aSPierre Jolivet #if defined(PETSC_HAVE_HTOOL) 112c7a4214aSPierre Jolivet PETSC_EXTERN PetscErrorCode MatCreate_Htool(Mat); 113c7a4214aSPierre Jolivet #endif 114c7a4214aSPierre Jolivet 1158a95e4e9SBarry Smith /*@C 116f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 1178a95e4e9SBarry Smith 1188a95e4e9SBarry Smith Not Collective 1198a95e4e9SBarry Smith 1208a95e4e9SBarry Smith Level: advanced 1218a95e4e9SBarry Smith 12211a5261eSBarry Smith .seealso: `MatType`, `MatSetType()`, `MatRegister()` 1238a95e4e9SBarry Smith @*/ 124d71ae5a4SJacob Faibussowitsch PetscErrorCode MatRegisterAll(void) 125d71ae5a4SJacob Faibussowitsch { 1268a95e4e9SBarry Smith PetscFunctionBegin; 1273ba16761SJacob Faibussowitsch if (MatRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS); 128f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 1298a95e4e9SBarry Smith 1309566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMFFD, MatCreate_MFFD)); 131e884886fSBarry Smith 1329566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIMAIJ, MatCreate_MAIJ)); 1339566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQMAIJ, MatCreate_MAIJ)); 1349566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMAIJ, MatCreate_MAIJ)); 135273d9f13SBarry Smith 1369566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIKAIJ, MatCreate_KAIJ)); 1379566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQKAIJ, MatCreate_KAIJ)); 1389566063dSJacob Faibussowitsch PetscCall(MatRegister(MATKAIJ, MatCreate_KAIJ)); 13949bd79ccSDebojyoti Ghosh 1409566063dSJacob Faibussowitsch PetscCall(MatRegister(MATIS, MatCreate_IS)); 1419566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSHELL, MatCreate_Shell)); 1429566063dSJacob Faibussowitsch PetscCall(MatRegister(MATCOMPOSITE, MatCreate_Composite)); 143bcf2175cSMatthew Knepley PetscCall(MatRegister(MATLRC, MatCreate_LRC)); 14401bebe75SBarry Smith 1459566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJ, MATSEQAIJ, MATMPIAIJ)); 1469566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJ, MatCreate_MPIAIJ)); 1479566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJ, MatCreate_SeqAIJ)); 14817667f90SBarry Smith 1499566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJPERM, MATSEQAIJPERM, MATMPIAIJPERM)); 1509566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJPERM, MatCreate_MPIAIJPERM)); 1519566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJPERM, MatCreate_SeqAIJPERM)); 15217667f90SBarry Smith 1539566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJSELL, MATSEQAIJSELL, MATMPIAIJSELL)); 1549566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJSELL, MatCreate_MPIAIJSELL)); 1559566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJSELL, MatCreate_SeqAIJSELL)); 1564dfdc2d9SRichard Tran Mills 157bfc799aaSStefano Zampini #if defined(PETSC_HAVE_MKL_SPARSE) 1589566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJMKL, MATSEQAIJMKL, MATMPIAIJMKL)); 1599566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJMKL, MatCreate_MPIAIJMKL)); 1609566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJMKL, MatCreate_SeqAIJMKL)); 161b9e7e5c1SBarry Smith #endif 162b5b72c8aSIrina Sokolova 163bfc799aaSStefano Zampini #if defined(PETSC_HAVE_MKL_SPARSE_OPTIMIZE) 1649566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATBAIJMKL, MATSEQBAIJMKL, MATMPIBAIJMKL)); 1659566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIBAIJMKL, MatCreate_MPIBAIJMKL)); 1669566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQBAIJMKL, MatCreate_SeqBAIJMKL)); 167191b95cbSRichard Tran Mills #endif 1684a2a386eSRichard Tran Mills 1699566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJCRL, MATSEQAIJCRL, MATMPIAIJCRL)); 1709566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJCRL, MatCreate_SeqAIJCRL)); 1719566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJCRL, MatCreate_MPIAIJCRL)); 172273d9f13SBarry Smith 1739566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATBAIJ, MATSEQBAIJ, MATMPIBAIJ)); 1749566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIBAIJ, MatCreate_MPIBAIJ)); 1759566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQBAIJ, MatCreate_SeqBAIJ)); 176273d9f13SBarry Smith 1779566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATSBAIJ, MATSEQSBAIJ, MATMPISBAIJ)); 1789566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPISBAIJ, MatCreate_MPISBAIJ)); 1799566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQSBAIJ, MatCreate_SeqSBAIJ)); 18017667f90SBarry Smith 1819566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATDENSE, MATSEQDENSE, MATMPIDENSE)); 1829566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIDENSE, MatCreate_MPIDense)); 1839566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQDENSE, MatCreate_SeqDense)); 184bfc799aaSStefano Zampini #if defined(PETSC_HAVE_CUDA) 1859566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATDENSECUDA, MATSEQDENSECUDA, MATMPIDENSECUDA)); 1869566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQDENSECUDA, MatCreate_SeqDenseCUDA)); 1879566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIDENSECUDA, MatCreate_MPIDenseCUDA)); 188bfc799aaSStefano Zampini #endif 18917667f90SBarry Smith 19047d993e7Ssuyashtn #if defined(PETSC_HAVE_HIP) 19147d993e7Ssuyashtn PetscCall(MatRegisterRootName(MATDENSEHIP, MATSEQDENSEHIP, MATMPIDENSEHIP)); 19247d993e7Ssuyashtn PetscCall(MatRegister(MATSEQDENSEHIP, MatCreate_SeqDenseHIP)); 19347d993e7Ssuyashtn PetscCall(MatRegister(MATMPIDENSEHIP, MatCreate_MPIDenseHIP)); 19447d993e7Ssuyashtn #endif 19547d993e7Ssuyashtn 1969566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIADJ, MatCreate_MPIAdj)); 1979566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSCATTER, MatCreate_Scatter)); 1989566063dSJacob Faibussowitsch PetscCall(MatRegister(MATBLOCKMAT, MatCreate_BlockMat)); 1999566063dSJacob Faibussowitsch PetscCall(MatRegister(MATNEST, MatCreate_Nest)); 20068326731SBarry Smith 2019566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATSELL, MATSEQSELL, MATMPISELL)); 2029566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPISELL, MatCreate_MPISELL)); 2039566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQSELL, MatCreate_SeqSELL)); 2045e26d47bSHong Zhang 205bfc799aaSStefano Zampini #if defined(PETSC_HAVE_CUDA) 2069566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJCUSPARSE, MATSEQAIJCUSPARSE, MATMPIAIJCUSPARSE)); 2079566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJCUSPARSE, MatCreate_SeqAIJCUSPARSE)); 2089566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJCUSPARSE, MatCreate_MPIAIJCUSPARSE)); 2092d1451d4SHong Zhang PetscCall(MatRegisterRootName(MATSELLCUDA, MATSEQSELLCUDA, MATMPISELLCUDA)); 2102d1451d4SHong Zhang PetscCall(MatRegister(MATSEQSELLCUDA, MatCreate_SeqSELLCUDA)); 2112d1451d4SHong Zhang PetscCall(MatRegister(MATMPISELLCUDA, MatCreate_MPISELLCUDA)); 2129ae82921SPaul Mullowney #endif 2139ae82921SPaul Mullowney 21447d993e7Ssuyashtn #if defined(PETSC_HAVE_HIP) 21547d993e7Ssuyashtn PetscCall(MatRegisterRootName(MATAIJHIPSPARSE, MATSEQAIJHIPSPARSE, MATMPIAIJHIPSPARSE)); 21647d993e7Ssuyashtn PetscCall(MatRegister(MATSEQAIJHIPSPARSE, MatCreate_SeqAIJHIPSPARSE)); 21747d993e7Ssuyashtn PetscCall(MatRegister(MATMPIAIJHIPSPARSE, MatCreate_MPIAIJHIPSPARSE)); 218773bf0f6SHong Zhang PetscCall(MatRegisterRootName(MATSELLHIP, MATSEQSELLHIP, MATMPISELLHIP)); 219773bf0f6SHong Zhang PetscCall(MatRegister(MATSEQSELLHIP, MatCreate_SeqSELLHIP)); 220773bf0f6SHong Zhang PetscCall(MatRegister(MATMPISELLHIP, MatCreate_MPISELLHIP)); 22147d993e7Ssuyashtn #endif 22247d993e7Ssuyashtn 223bfc799aaSStefano Zampini #if defined(PETSC_HAVE_VIENNACL) 2249566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJVIENNACL, MATSEQAIJVIENNACL, MATMPIAIJVIENNACL)); 2259566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJVIENNACL, MatCreate_SeqAIJViennaCL)); 2269566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJVIENNACL, MatCreate_MPIAIJViennaCL)); 2278f86e40fSKarl Rupp #endif 2288f86e40fSKarl Rupp 2298c3ff71bSJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS) 2309566063dSJacob Faibussowitsch PetscCall(MatRegisterRootName(MATAIJKOKKOS, MATSEQAIJKOKKOS, MATMPIAIJKOKKOS)); 2319566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSEQAIJKOKKOS, MatCreate_SeqAIJKokkos)); 2329566063dSJacob Faibussowitsch PetscCall(MatRegister(MATMPIAIJKOKKOS, MatCreate_MPIAIJKokkos)); 2338c3ff71bSJunchao Zhang #endif 2348c3ff71bSJunchao Zhang 235bfc799aaSStefano Zampini #if defined(PETSC_HAVE_FFTW) 2369566063dSJacob Faibussowitsch PetscCall(MatRegister(MATFFTW, MatCreate_FFTW)); 237dedccee8SHong Zhang #endif 238bfc799aaSStefano Zampini #if defined(PETSC_HAVE_ELEMENTAL) 2399566063dSJacob Faibussowitsch PetscCall(MatRegister(MATELEMENTAL, MatCreate_Elemental)); 240db31f6deSJed Brown #endif 241*d1a032dbSPierre Jolivet #if defined(PETSC_HAVE_SCALAPACK) && (defined(PETSC_USE_REAL_SINGLE) || defined(PETSC_USE_REAL_DOUBLE)) 2429566063dSJacob Faibussowitsch PetscCall(MatRegister(MATSCALAPACK, MatCreate_ScaLAPACK)); 243d24d4204SJose E. Roman #endif 244c094ef40SMatthew G. Knepley 2459566063dSJacob Faibussowitsch PetscCall(MatRegister(MATPREALLOCATOR, MatCreate_Preallocator)); 2469566063dSJacob Faibussowitsch PetscCall(MatRegister(MATDUMMY, MatCreate_Dummy)); 24763c07aadSStefano Zampini 2489566063dSJacob Faibussowitsch PetscCall(MatRegister(MATCONSTANTDIAGONAL, MatCreate_ConstantDiagonal)); 249345a4b08SToby Isaac PetscCall(MatRegister(MATDIAGONAL, MatCreate_Diagonal)); 2503423f386SBarry Smith 251bfc799aaSStefano Zampini #if defined(PETSC_HAVE_HYPRE) 2529566063dSJacob Faibussowitsch PetscCall(MatRegister(MATHYPRE, MatCreate_HYPRE)); 25363c07aadSStefano Zampini #endif 254a0d2e7d8SStefano Zampini 25553022affSStefano Zampini #if defined(PETSC_HAVE_H2OPUS) 2569566063dSJacob Faibussowitsch PetscCall(MatRegister(MATH2OPUS, MatCreate_H2OPUS)); 257a0d2e7d8SStefano Zampini #endif 258c7a4214aSPierre Jolivet 259c7a4214aSPierre Jolivet #if defined(PETSC_HAVE_HTOOL) 2609566063dSJacob Faibussowitsch PetscCall(MatRegister(MATHTOOL, MatCreate_Htool)); 261c7a4214aSPierre Jolivet #endif 2623ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 2638a95e4e9SBarry Smith } 264