[petsc-users] PETSc using problem
Matthew Knepley
knepley at gmail.com
Sun May 11 10:50:00 CDT 2025
On Sun, May 11, 2025 at 11:39 AM hj2000--- via petsc-users <
petsc-users at mcs.anl.gov> wrote:
> Dear Developer:
>
> I am a user of PETSc, and I am using SNESLineSearchSetPostCheck to
> perform some actions when the line search fails.
>
> However, it seems that this function is only called when the line search
> is successful. Why is that?
>
PostCheck is intended to work on the solution found by the line search.
> Do I need to do something else?
>
Yes. We do not have a specific hook for failure, because that would make it
a different line search (one which may not obey the advertised properties).
Thus we would want your scheme to be its own line search.
Thanks,
Matt
> My PETSc version is 3.18.6. Below is my code.
>
>
>
> auto LineSearchPostCheck = []( SNESLineSearch ls, Vec x, Vec y,
> Vec w, PetscBool* changed_Y,
>
> PetscBool* changed_W, void* ) {
>
> SNESLineSearchReason lscnv;
>
> SNESLineSearchGetReason( ls, &lscnv );
>
> SNES snes = nullptr;
>
> SNESLineSearchGetSNES( ls, &snes );
>
> SNESConvergedReason cnv;
>
> SNESGetConvergedReason( snes, &cnv );
>
> double lambda = 0.0;
>
> SNESLineSearchGetLambda( ls, &lambda );
>
> PetscPrintf( MPI_COMM_WORLD, "lambda=%lf\n", lambda );
>
> if ( lscnv != SNES_LINESEARCH_SUCCEEDED || lambda < 1e-4 )
>
> {
>
> VecWAXPY( w, -0.1, y, x );
>
> SNESLineSearchSetReason( ls, SNES_LINESEARCH_SUCCEEDED );
>
> *changed_W = PETSC_TRUE;
>
> }
>
> return 0;
>
> };
>
> SNESLineSearchSetPostCheck( ls, LineSearchPostCheck, nullptr);
>
>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!Y6XIK823eTx-iRg60ThDREJsmpqY4jNxIxr-y3_Li6lAA2rs8JvxNjeeUrgfpgbcSCSaRzhBaYiBHw7nGypK$ <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!Y6XIK823eTx-iRg60ThDREJsmpqY4jNxIxr-y3_Li6lAA2rs8JvxNjeeUrgfpgbcSCSaRzhBaYiBH_soe98y$ >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20250511/1cebbd55/attachment.html>
More information about the petsc-users
mailing list