[petsc-dev] PCREDUNDANT

Pierre Jolivet pierre.jolivet at enseeiht.fr
Sun Jul 28 01:54:17 CDT 2019

I’m facing multiple issues with PCREDUNDANT and MATMPISBAIJ:
1) https://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/sbaij/mpi/mpisbaij.c.html#line3354 <https://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/sbaij/mpi/mpisbaij.c.html#line3354> shouldn’t this be sum != N? I’m running an example where it says that sum (4) != Nbs (60), with a bs=15.
2) when I’m using MATMPIBAIJ, I can do stuff like: -prefix_mat_type baij -prefix_pc_type redundant -prefix_redundant_pc_type ilu, and in the KSPView, I have "package used to perform factorization: petsc”, so the underlying MatType is indeed MATSEQBAIJ.
However, with MATMPISBAIJ, if I do: -prefix_mat_type sbaij -prefix_pc_type redundant, first, it looks like you are hardwiring a PCLU (MatGetFactor() line 4440 in src/mat/interface/matrix.c Could not locate a solver package.), then, if I append -prefix_redundant_pc_type cholesky, I end up with an error related to MUMPS: MatGetFactor_sbaij_mumps() line 2625 in src/mat/impls/aij/mpi/mumps/mumps.c Cannot use PETSc SBAIJ matrices with block size > 1 with MUMPS Cholesky, use AIJ matrix instead. Why isn’t this call dispatched to PETSc Cholesky for SeqSBAIJ matrices?


1) I don’t think this is tested right now, at least not in src/ksp/ksp/examples/tutorials
2) reproducer: src/ksp/ksp/examples/tutorials/ex2.c
$ mpirun -np 2 ./ex2 -pc_type redundant -mat_type sbaij
// error because trying to do LU with a symmetric matrix
$ mpirun -np 2 ./ex2 -pc_type redundant -mat_type sbaij -redundant_pc_type cholesky -ksp_view
// you’ll see: that MUMPS is being used, but since bs=1, it’s working, but it won’t for the general case
//                  the MatType is mpisbaij with "1 MPI processes" whereas with baij, it’s seqbaij

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20190728/ce7b4d29/attachment.html>

More information about the petsc-dev mailing list