<div class="gmail_quote">On Mon, Apr 23, 2012 at 07:17, Dominik Szczerba <span dir="ltr">&lt;<a href="mailto:dominik@itis.ethz.ch">dominik@itis.ethz.ch</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":2ia">Great to hear there is a dedicated functionality for the Picard<br>
scheme. I have 2 related questions:<br>
<br>
1) What is &#39;func&#39; on the SNESSetPicard manual page. It only says<br>
&quot;function evaluation routine&quot;. What function? Do you mean Ax-b?<br>
2) Is it supposed to perform better / more optimally then using<br>
FormFunction with FormJacobian and passing A as the Jacobian?</div></blockquote></div><br><div>All SNESSetPicard does is evaluate both A and b in &quot;residual evaluation&quot;, compute F(x) = A(x)x - b(x), and internally cache the matrix A(x). Using it is completely optional. If you are willing to write residual evaluation for the whole F(x), then you will benefit from having less expensive residual evaluations, making line searches and matrix-free Newton (-snes_mf_operator) affordable.</div>
<div><br></div><div>Personally, I dislike Picard. I have yet to find a problem in which I can&#39;t make some variant of Newton beat it.</div>