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 @*/
MatRegisterAll(void)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