<div dir="ltr">I am using PETSc 3.4.1. This problem is reproducible. I tested several other cases, almost every case has the similar problem. Take this one as an example:<div><br></div><div>with ./abc.bin -snes_monitor -snes_linesearch_monitor</div>
<div><br></div><div><div> 0 SNES Function norm 1.470975405802e+06 </div><div>      Line search: lambdas = [1, 0.5, 0], fnorms = [7051.02, 735338, 1.47098e+06]</div><div>      Line search terminated: lambda = 0.999762, fnorms = 7026.38</div>
<div>  1 SNES Function norm 7.026377609722e+03 </div><div>      Line search: lambdas = [1, 0.5, 0], fnorms = [189.711, 3514.55, 7026.38]</div><div>      Line search terminated: lambda = 0.999295, fnorms = 189.783</div><div>
  2 SNES Function norm 1.897827226353e+02 </div><div>      Line search: lambdas = [1, 0.5, 0], fnorms = [32.3811, 100.302, 189.783]</div><div>      Line search terminated: lambda = 1.01592, fnorms = 32.5125</div><div>  3 SNES Function norm 3.251248928384e+01 </div>
<div>      Line search: lambdas = [1, 0.5, 0], fnorms = [0.00236829, 16.2564, 32.5125]</div><div>      Line search terminated: lambda = 1.00001, fnorms = 0.00233087</div><div>  4 SNES Function norm 2.330867616400e-03 </div>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">with ./abc.bin -snes_monitor</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">  0 SNES Function norm 1.470975405802e+06 </div>
<div class="gmail_extra">  1 SNES Function norm 7.026377609170e+03 </div><div class="gmail_extra">  2 SNES Function norm 1.897827231670e+02 </div><div class="gmail_extra">  3 SNES Function norm 3.251248934919e+01 </div><div class="gmail_extra">
  4 SNES Function norm 2.171496483661e-02 </div><div class="gmail_extra"><br></div><div class="gmail_extra">Significant difference can be observed. The equation I am solving is quite ill-conditioned. Without L2 line search it is hard to converge in some cases. Still try to figure out the reason.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">Su</div><br><div class="gmail_quote">On Sat, Aug 17, 2013 at 8:49 AM, Peter Brune <span dir="ltr"><<a href="mailto:brune@mcs.anl.gov" target="_blank">brune@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">
<div class="im">On Sat, Aug 17, 2013 at 1:40 AM, Su Yan <span dir="ltr"><<a href="mailto:suyan0@gmail.com" target="_blank">suyan0@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi, I ran into something really weird when I tried to solve a nonlinear equation with Newton method and line search. Specifically, I used SNESSetType(snesMbr, SNESNEWTONLS); and PetscOptionsSetValue("-snes_linesearch_type", "l2");<div>


<br></div></div></blockquote><div><br></div></div><div>Which version of PETSc are you using?</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div></div><div>When I execute my program abc.bin with the following command:</div><div><br></div><div>./abc.bin -snes_monitor -snes_linesearch_monitor</div><div><br></div><div>I got the following output:</div><div><div>
<br>

</div><div>0 SNES Function norm 1.457697974866e+07</div><div>       Line search: lambdas = [1, 0.5, 0], fnorms = [669102, 7.35102e+06, 1.4577e+07]</div><div>       Line search terminated: lambda = 1.00553, fnorms = 652606</div>


<div>1 SNES Function norm 6.526060362905e+05</div><div>       Line search: lambdas = [1, 0.5, 0], fnorms = [3406.6, 326873, 652606]</div><div>       Line search terminated: lambda = 1.00171, fnorms = 2801.6</div><div>2 SNES Function norm 2.801596249480e+03</div>


<div>       Line search: lambdas = [1, 0.5, 0], fnorms = [2.51242, 1401.2, 2801.6]</div><div>       Line search terminated: lambda = 1.00029, fnorms = 2.09292</div><div>3 SNES Function norm 2.092918540169e+00</div><div>       Line search: lambdas = [1, 0.5, 0], fnorms = [0.000123295, 1.04646, 2.09292]</div>


<div>       Line search terminated: lambda = 1, fnorms = 0.000122588</div><div>4 SNES Function norm 1.225883678418e-04</div><div> </div><div>Converged Reason: FNORM_RELATIVE</div></div><div><br></div><div>The nonlinear problem converged normally with a relative f_norm set as 1E-7.</div>


<div><br></div><div>However, if I execute exactly the same program, but with a slightly different runtime command:</div><div><br></div><div>./abc.bin -snes_monitor</div><div><br></div><div>I got the following output:</div>


<div><br></div><div><div> 0 SNES Function norm 1.457697974975e+07</div><div>1 SNES Function norm 6.526060348917e+05</div><div>2 SNES Function norm 2.801608208510e+03</div><div>3 SNES Function norm 2.450488738084e+03</div>


<div>4 SNES Function norm 3.269507987119e+02</div><div>5 SNES Function norm 3.016606325384e+02</div><div>6 SNES Function norm 2.463851989463e+02</div><div>7 SNES Function norm 1.546266418976e+02</div><div>8 SNES Function norm 1.492518400407e+02</div>


<div>9 SNES Function norm 1.477122410995e+02</div><div>10 SNES Function norm 1.503359418680e+02</div><div>11 SNES Function norm 1.504759910776e+02</div><div>12 SNES Function norm 1.417592634863e+02</div><div>13 SNES Function norm 3.047096130411e+05</div>


</div><div><br></div></div></blockquote><div><br></div></div></div><div>Is this problem reproducible?  Note that even your 0th norm is very slightly different, and the first three norms are quite similar.</div><div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div></div><div>and the solver diverged.</div><div><br></div><div>The only difference was that whether I used "-snes_linesearch_monitor" or not.</div><div><br></div><div>In my understanding, this runtime option only turns on the screen print. So why did it make such a big difference? Is there anything special with this option turned on? Hope someone could help me out.</div>

</div></blockquote><div><br></div></div><div>This is correct.  It should not influence the solution at all, and all it does is enable printing.  Also, the l2 line search takes significantly more work for well-behaved Newton convergence than bt, as bt automatically accepts the full step.  l2 is mostly meant for cases where the step is automatically ill-scaled.</div>
<span class=""><font color="#888888">
<div><br></div><div>- Peter</div></font></span><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div><br></div><div>Thanks a lot.</div><div><br></div><div>Regards,</div><div>Su</div><div><br></div></div>
</blockquote></div></div><br></div></div>
</blockquote></div><br></div></div>