[petsc-dev] Block system

Pierre Jolivet Pierre.Jolivet at enseeiht.fr
Mon Feb 13 09:46:03 CST 2017


Hello,
Given this block matrix:
A = [A11,A12,A13,A14;
      A21,A22,A23,A24;
      A31,A32,A33,A34;
      A41,A42,A43,A44];
It is trivial to precondition Ax = b with M^-1 = diag(A11^-1, A22^-1, 
A33^-1, A44^-1);
My application requires a slightly fancier preconditionner which should 
be M^-1 = diag(inv([A11,A12;A21,A22]),inv([A33,A34;A43,A44]));
I'm not sure what is the right tool for this.
I've stopped at a 4x4 block matrix, but at scale I have a matrix with 
few thousands x few thousands blocks (still with the nested 2 x 2 block 
structure).

1) should I implement a PCSHELL myself, or use a fieldsplit 
preconditioner with "few thousands / 2" fields (i.e., does PCFIELDSPLIT 
scale relatively well with the number of fields, or do you recommend it 
only for "Stokes-like" problems?)?
2) I gave PCFIELDSPLIT a go, but I'm failing miserably. In the attached 
tarball, I'm loading matrix A on four processes. Each process owns 2 
rows of A. I'm thus creating two ISes:

IS Object: 4 MPI processes
   type: general
[0] Number of indices in set 2
[0] 0 0
[0] 1 1
[1] Number of indices in set 2
[1] 0 2
[1] 1 3
[2] Number of indices in set 0
[3] Number of indices in set 0
IS Object: 4 MPI processes
   type: general
[0] Number of indices in set 0
[1] Number of indices in set 0
[2] Number of indices in set 2
[2] 0 4
[2] 1 5
[3] Number of indices in set 2
[3] 0 6
[3] 1 7

which looks good to me. But when I run:
$ mpirun -np 4 ./a.out -f almost_full_jolivet -pc_type fieldsplit 
-pc_fieldsplit_type additive -fieldsplit_ksp_type preonly 
-fieldsplit_pc_type lu -fieldsplit_pc_factor_mat_solver_package mumps
It fails during setup:
[0]PETSC ERROR: Petsc has generated inconsistent data
[0]PETSC ERROR: Unhandled case, must have at least two fields, not 1

I would appreciate any feedback and/or fix for this.
Thanks, and feel free to move the thread to petsc-users.
Pierre
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fieldsplit.tar.bz2
Type: application/x-bzip
Size: 1409 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20170213/41c2db3c/attachment.bin>


More information about the petsc-dev mailing list