<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 12, 2016 at 8:44 AM, Hoang Giang Bui <span dir="ltr"><<a href="mailto:hgbk2008@gmail.com" target="_blank">hgbk2008@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Matt<div><br></div><div><div style="font-size:12.8px">1) In the log you sent, the linear solver converges due to the Relative Tolerance, 1.0e-9, not the breakdown tolerance 1e-30. Change rtol will affect the convergence.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div style="font-size:small">Sorry i got it wrong in the previous email, the ksp_rtol 1.0e-12 DOES affect the convergence, and it took more iterations. But the simulation still failed at a definite time step.</div><div><br></div><div><span style="font-size:12.8px">2) What do you mean  -fieldsplit_wp_ksp_rtol 1.0e-8 does not work? ALWAYS send the view output.</span><br></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">In the log file I sent previously, the line</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div style="font-size:12.8px">    KSP Object:    (fieldsplit_wp_)     8 MPI processes</div><div style="font-size:12.8px">      type: preonly</div><div style="font-size:12.8px">      maximum iterations=10000, initial guess is zero</div><div style="font-size:12.8px">      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div style="font-size:12.8px">      left preconditioning</div><div style="font-size:12.8px">      using NONE norm type for convergence test</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">impressed me that the rtol for fieldsplit_wp is still 1.0e-5</div></div></div></blockquote><div><br></div><div>KSP "preonly" does no iterations, so it does not read the tolerance. If you want to lower the tolerance,</div><div>choose a solver like GMRES</div><div><br></div><div>  -fieldsplit_wp_ksp_type gmres -fieldsplit_wp_ksp_rtol 1e-8</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div style="font-size:12.8px">3) I can't tell you anything about Newton convergence if you do not send the output, -snes_monitor -snes_view</div><div style="font-size:12.8px"><span style="font-size:small"><br></span></div><div style="font-size:12.8px"><span style="font-size:small">I did not yet use SNES, instead using my NR iterator so I have no view for SNES.</span></div></div></div></blockquote><div><br></div><div>It is hard to debug an iteration which we did not code. It could be you have a bug. If not, then very small changes in</div><div>the iterates are making a difference, which means your Jacobians are close to singular. A problem reformulation would</div><div>probably help more than solver tweaking.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div style="font-size:12.8px">4) If there is a difference between LU and an iterative solver with residual 1e-9, then your system is very ill-conditioned.</div></div><div style="font-size:12.8px">Yes it is ill-conditioned</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div data-smartmail="gmail_signature"><div dir="ltr">Giang</div></div></div>
<br><div class="gmail_quote">On Tue, Jul 12, 2016 at 2:49 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div>On Tue, Jul 12, 2016 at 7:42 AM, Hoang Giang Bui <span dir="ltr"><<a href="mailto:hgbk2008@gmail.com" target="_blank">hgbk2008@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello<div><br></div><div>I encountered different convergence behaviour of Newton Raphson when using different solver settings with PETSc</div><div><br></div><div>For the first solver configuration, I used direct solver</div><div><div>-ksp_type preonly</div><div>-pc_type lu</div><div>-pc_factor_mat_solver_package mumps</div><div>-mat_mumps_icntl_1 6</div><div>-mat_mumps_icntl_4 3</div><div>-mat_mumps_icntl_7 4</div><div>-mat_mumps_icntl_14 40</div><div>-mat_mumps_icntl_23 0</div></div><div><br></div><div>The simulation can run completely and the NR typically converged after 6/7 iterations. Of course, it's very slow. For the second solver configuration:</div><div><div>-ksp_type gmres</div><div>-ksp_max_it 300</div><div>-ksp_gmres_restart 300</div><div>-ksp_gmres_modifiedgramschmidt</div><div>-pc_view</div><div>-pc_fieldsplit_type multiplicative</div><div>-fieldsplit_u_pc_type hypre</div><div>-fieldsplit_u_pc_hypre_type boomeramg</div><div>-fieldsplit_u_pc_hypre_boomeramg_coarsen_type PMIS</div><div>-fieldsplit_u_pc_hypre_boomeramg_strong_threshold 0.6</div><div>-fieldsplit_u_pc_hypre_boomeramg_max_levels 25</div><div>-fieldsplit_wp_ksp_rtol 1.0e-8</div><div>-fieldsplit_wp_pc_type hypre</div><div>-fieldsplit_wp_pc_hypre_type boomeramg</div><div>-fieldsplit_wp_pc_hypre_boomeramg_coarsen_type PMIS</div><div>-fieldsplit_wp_pc_hypre_boomeramg_strong_threshold 0.6</div><div>-fieldsplit_wp_pc_hypre_boomeramg_max_levels 25</div></div><div><br></div><div>The solver runs much faster, but the NR does not converge in 30 iterations after some time steps. I thought setting the solver tolerance -ksp_rtol 1.0e-12 but it doesn't help much because GMRES already terminate with tolerance 1e-30 (see sample log file). Can we set the tolerance of the sub-ksp of the Fieldsplit? I tried -fieldsplit_wp_ksp_rtol 1.0e-8 but it doesn't work.</div></div></blockquote><div><br></div></div></div><div>1) In the log you sent, the linear solver converges due to the Relative Tolerance, 1.0e-9, not the breakdown tolerance 1e-30. Change rtol will affect the convergence.</div><div><br></div><div>2) What do you mean  -fieldsplit_wp_ksp_rtol 1.0e-8 does not work? ALWAYS send the view output.</div><div><br></div><div>3) I can't tell you anything about Newton convergence if you do not send the output, -snes_monitor -snes_view</div><div><br></div><div>4) If there is a difference between LU and an iterative solver with residual 1e-9, then your system is very ill-conditioned.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Sorry this problem is run with many time steps and is quite big so I cannot reproduce in a simple test case.</div><span><font color="#888888"><div><br clear="all"><div><div data-smartmail="gmail_signature"><div dir="ltr">Giang</div><div dir="ltr"><br></div></div></div>
</div></font></span></div>
</blockquote></span></div><span><font color="#888888"><br><br clear="all"><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div data-smartmail="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></font></span></div></div>
</blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>