[petsc-dev] PCREDUNDANT

Mark Adams mfadams at lbl.gov
Sun Jul 28 08:02:15 CDT 2019

On Sun, Jul 28, 2019 at 2:54 AM Pierre Jolivet via petsc-dev <
petsc-dev at mcs.anl.gov> wrote:

> Hello,
> 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 shouldn’t
> this be sum != N? I’m running an example where it says that sum (4) !=
> Nbs (60), with a bs=15.

Clearly a bug.

> 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

Using LU as a default for symmetric matrices does seem wrong.

> 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?
Generally, we don't like to switch parameters under the covers like this.
We would rather you get your inputs right so you know what is going on.

> Thanks,
> Pierre
> 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/a5324147/attachment.html>

More information about the petsc-dev mailing list