<div dir="ltr"><div dir="ltr">OK, that's clear, thank you!<br><br>David</div><div dir="ltr"><br></div><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 8, 2022 at 11:43 AM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I think SNESLineSearchApply_Basic will clarify these points. Note that the pre-check is applied before "taking the step", so X is x_k. You're right that the sign is flipped on search direction Y, as it's using -lambda below.<br>
<br>
  /* precheck */<br>
  ierr = SNESLineSearchPreCheck(linesearch,X,Y,&changed_y);CHKERRQ(ierr);<br>
<br>
  /* update */<br>
  ierr = VecWAXPY(W,-lambda,Y,X);CHKERRQ(ierr);<br>
  [...]<br>
  ierr = VecCopy(W, X);CHKERRQ(ierr);<br>
<br>
David Knezevic <<a href="mailto:david.knezevic@akselos.com" target="_blank">david.knezevic@akselos.com</a>> writes:<br>
<br>
> We're using SNESLinesearchPrecheck in order to implement some nonlinear<br>
> continuation methods, and we had a couple of questions:<br>
><br>
> 1. The "search direction" that is handed to the pre-check function is<br>
> referred to as "y" in the documentation. We had assumed that we would have<br>
> "y = delta_x_k", where delta_x_k is as shown in the attached screenshot<br>
> from the PETSc manual. But after doing some testing it seems that in fact<br>
> we have "y = -delta_x_k", i.e. y is the NEGATIVE of the Newton step. Is<br>
> this correct?<br>
><br>
> 2. In the documentation for SNESLineSearchPreCheck it says that "x" is the<br>
> "current solution". Referring again to the attached screenshot, does this<br>
> mean that it's x_k+1 or x_k? I assume it means x_k+1 but I wanted to<br>
> confirm this.<br>
><br>
> Thanks for your help!<br>
><br>
> Regards,<br>
> David<br>
</blockquote></div></div>