OK, that's clear, thank you!

David


On Tue, Mar 8, 2022 at 11:43 AM Jed Brown <j...@jedbrown.org> wrote:

> 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.
>
>   /* precheck */
>   ierr = SNESLineSearchPreCheck(linesearch,X,Y,&changed_y);CHKERRQ(ierr);
>
>   /* update */
>   ierr = VecWAXPY(W,-lambda,Y,X);CHKERRQ(ierr);
>   [...]
>   ierr = VecCopy(W, X);CHKERRQ(ierr);
>
> David Knezevic <david.kneze...@akselos.com> writes:
>
> > We're using SNESLinesearchPrecheck in order to implement some nonlinear
> > continuation methods, and we had a couple of questions:
> >
> > 1. The "search direction" that is handed to the pre-check function is
> > referred to as "y" in the documentation. We had assumed that we would
> have
> > "y = delta_x_k", where delta_x_k is as shown in the attached screenshot
> > from the PETSc manual. But after doing some testing it seems that in fact
> > we have "y = -delta_x_k", i.e. y is the NEGATIVE of the Newton step. Is
> > this correct?
> >
> > 2. In the documentation for SNESLineSearchPreCheck it says that "x" is
> the
> > "current solution". Referring again to the attached screenshot, does this
> > mean that it's x_k+1 or x_k? I assume it means x_k+1 but I wanted to
> > confirm this.
> >
> > Thanks for your help!
> >
> > Regards,
> > David
>

Reply via email to