<div>Do you now see identical residual histories for a job using 1 rank and 4 ranks?</div><div><br></div><div>If not, I am inclined to believe that the IS's you are defining for the splits in the parallel case are incorrect. The operator created to approximate the Schur complement with selfp should not depend on  the number of ranks.</div><div><br></div><div>Or possibly your problem is horribly I'll-conditioned. If it is, then this could result in slightly different residual histories when using different numbers of ranks - even if the operators are in fact identical </div><div><br></div><div><br></div><div>Thanks,</div><div>  Dave</div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote"><div>On Thu, 5 Jan 2017 at 12:14, Karin&NiKo <<a href="mailto:niko.karin@gmail.com">niko.karin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Dear Barry, dear Dave,<br class="gmail_msg"><br class="gmail_msg"></div>THANK YOU! <br class="gmail_msg"></div>You two pointed out the right problem.By using the options you provided (-fieldsplit_0_ksp_type gmres -fieldsplit_0_ksp_pc_side right -fieldsplit_1_ksp_type gmres -fieldsplit_1_ksp_pc_side right), the solver converges in 3 iterations whatever the size of the communicator. <br class="gmail_msg">All the trick is in the precise resolution of the Schur complement, by using a Krylov method (and not only preonly) *and* applying the preconditioner on the right (so evaluating the convergence on the unpreconditioned residual).<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">@Barry : the difference you see on the nonzero allocations for the different runs is just an artefact : when using more than one proc, we slighly over-estimate the number of non-zero terms. If I run the same problem with the -info option, I get extra information : <br class="gmail_msg">[2] MatAssemblyEnd_SeqAIJ(): Matrix size: 110 X 110; storage space: 0 unneeded,5048 used<br class="gmail_msg">[1] MatAssemblyEnd_SeqAIJ(): Matrix size: 271 X 271; storage space: 4249 unneeded,26167 used<br class="gmail_msg">[0] MatAssemblyEnd_SeqAIJ(): Matrix size: 307 X 307; storage space: 7988 unneeded,31093 used<br class="gmail_msg">[2] MatAssemblyEnd_SeqAIJ(): Matrix size: 110 X 244; storage space: 0 unneeded,6194 used<br class="gmail_msg">[1] MatAssemblyEnd_SeqAIJ(): Matrix size: 271 X 233; storage space: 823 unneeded,9975 used<br class="gmail_msg">[0] MatAssemblyEnd_SeqAIJ(): Matrix size: 307 X 197; storage space: 823 unneeded,8263 used<br class="gmail_msg"></div><div class="gmail_msg">And 5048+26167+31093+6194+9975+8263=86740 which is the number of exactly estimated nonzero terms for 1 proc.<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thank you again!<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Best regards,<br class="gmail_msg"></div><div class="gmail_msg">Nicolas<br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">2017-01-05 1:36 GMT+01:00 Barry Smith <span class="gmail_msg"><<a href="mailto:bsmith@mcs.anl.gov" class="gmail_msg" target="_blank">bsmith@mcs.anl.gov</a>></span>:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg"><br><br>   There is something wrong with your set up.<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>1 process<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>           total: nonzeros=140616, allocated nonzeros=140616<br class="gmail_msg"><br><br>          total: nonzeros=68940, allocated nonzeros=68940<br class="gmail_msg"><br><br>                total: nonzeros=3584, allocated nonzeros=3584<br class="gmail_msg"><br><br>                total: nonzeros=1000, allocated nonzeros=1000<br class="gmail_msg"><br><br>                total: nonzeros=8400, allocated nonzeros=8400<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>2 processes<br class="gmail_msg"><br><br>                total: nonzeros=146498, allocated nonzeros=146498<br class="gmail_msg"><br><br>          total: nonzeros=73470, allocated nonzeros=73470<br class="gmail_msg"><br><br>                total: nonzeros=3038, allocated nonzeros=3038<br class="gmail_msg"><br><br>                total: nonzeros=1110, allocated nonzeros=1110<br class="gmail_msg"><br><br>                total: nonzeros=6080, allocated nonzeros=6080<br class="gmail_msg"><br><br>                        total: nonzeros=146498, allocated nonzeros=146498<br class="gmail_msg"><br><br>                  total: nonzeros=73470, allocated nonzeros=73470<br class="gmail_msg"><br><br>                total: nonzeros=6080, allocated nonzeros=6080<br class="gmail_msg"><br><br>          total: nonzeros=2846, allocated nonzeros=2846<br class="gmail_msg"><br><br>    total: nonzeros=86740, allocated nonzeros=94187<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>  It looks like you are setting up the problem differently in parallel and seq. If it is suppose to be an identical problem then the number nonzeros should be the same in at least the first two matrices.<br class="gmail_msg"><br><br><span class="gmail_msg"><br class="gmail_msg"><br><br><br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>> On Jan 4, 2017, at 3:39 PM, Karin&NiKo <<a href="mailto:niko.karin@gmail.com" class="gmail_msg" target="_blank">niko.karin@gmail.com</a>> wrote:<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br></span><span class="gmail_msg">> Dear Petsc team,<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> I am (still) trying to solve Biot's poroelasticity problem :<br class="gmail_msg"><br><br></span>>  <image.png><br class="gmail_msg"><br><br><span class="gmail_msg">><br class="gmail_msg"><br><br>> I am using a mixed P2-P1 finite element discretization. The matrix of the discretized system in binary format is attached to this email.<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> I am using the fieldsplit framework to solve the linear system. Since I am facing some troubles, I have decided to go back to simple things. Here are the options I am using :<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> -ksp_rtol 1.0e-5<br class="gmail_msg"><br><br>> -ksp_type fgmres<br class="gmail_msg"><br><br>> -pc_type fieldsplit<br class="gmail_msg"><br><br>> -pc_fieldsplit_schur_factorization_type full<br class="gmail_msg"><br><br>> -pc_fieldsplit_type schur<br class="gmail_msg"><br><br>> -pc_fieldsplit_schur_precondition selfp<br class="gmail_msg"><br><br>> -fieldsplit_0_pc_type lu<br class="gmail_msg"><br><br>> -fieldsplit_0_pc_factor_mat_solver_package mumps<br class="gmail_msg"><br><br>> -fieldsplit_0_ksp_type preonly<br class="gmail_msg"><br><br>> -fieldsplit_0_ksp_converged_reason<br class="gmail_msg"><br><br>> -fieldsplit_1_pc_type lu<br class="gmail_msg"><br><br>> -fieldsplit_1_pc_factor_mat_solver_package mumps<br class="gmail_msg"><br><br>> -fieldsplit_1_ksp_type preonly<br class="gmail_msg"><br><br>> -fieldsplit_1_ksp_converged_reason<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> On a single proc, everything runs fine : the solver converges in 3 iterations, according to the theory (see Run-1-proc.txt [contains -log_view]).<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> On 2 procs, the solver converges in 28 iterations (see Run-2-proc.txt).<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> On 3 procs, the solver converges in 91 iterations (see Run-3-proc.txt).<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> I do not understand this behavior : since MUMPS is a parallel direct solver, shouldn't the solver converge in max 3 iterations whatever the number of procs?<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> Thanks for your precious help,<br class="gmail_msg"><br><br>> Nicolas<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br></span>> <Run-1-proc.txt><Run-2-proc.txt><Run-3-proc.txt><1_Warning.txt><br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></blockquote></div><br class="gmail_msg"></div><br><br></blockquote></div></div>