On Thu, Jun 23, 2011 at 5:49 AM, Juha Jäykkä <span dir="ltr">&lt;<a href="mailto:juhaj@iki.fi">juhaj@iki.fi</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt;   As Matt notes you absolutely need to run with -pc_type lu<br>
&gt; -ksp_monitor_true_residual -ksp_converged_reason to make sure that the<br>
<br>
Why lu? I was running with bjacobi for whatever reason, which I no longer<br>
recall. Probably gave the fastest convergence before introducing the horribly<br>
nonlinear terms.<br>
<br>
I just tried lu again: it converges, too, but snes still diverges. Running<br>
with -pc_type none requires too many KSP iterations, I had a limit of 1e6 and<br>
ran out. I will revisit this while I wait for any further replies, but as it<br>
takes so long, I will finish this reply first.<br></blockquote><div><br></div><div>As Jed points out, there are no a priori guarantees that your system has a solution.</div><div>Do you have  a proof? If not, and if the linear systems converge, the most likely</div>
<div>conclusion is that</div><div><br></div><div>  a) Your system has no solution at this parameter value</div><div><br></div><div>or</div><div><br></div><div>  b) Your initial guess is far from the solution</div><div><br>
</div><div>In either case, more theoretical investigation of the solution space is warranted.</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;">

&gt; linear system solve is not the issue. It is also possible that a bug in<br>
&gt; the function evaluation (using uninitialized values or something) is<br>
&gt; causing the difficulty: run with valgrind<br>
<br>
Valgrind complains a LOT about openmpi, which guess is not the issue here. It<br>
also complains about PetscStrcasecmp (sic!) and some other Petsc* functions,<br>
but my code is clean: the last complaint from valgrind (apart from the summary<br>
at the end) comes from SNESSetFromOptions, which is called before I construct<br>
the initial guess.<br>
<br>
Cheers,<br>
-Juha<br>
<font color="#888888"><br>
--<br>
                 -----------------------------------------------<br>
                | Juha Jäykkä, <a href="mailto:juhaj@iki.fi">juhaj@iki.fi</a>                     |<br>
                | <a href="http://www.maths.leeds.ac.uk/~juhaj" target="_blank">http://www.maths.leeds.ac.uk/~juhaj</a>           |<br>
                 -----------------------------------------------<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>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<br>