Hi all,
The problem is solved.
I previously use
ierr = SNESSetType(snes,SNESNEWTONLS);
ierr = SNESLineSearchCreate(PETSC_COMM_WORLD, &snesls);
ierr = SNESLineSearchSetType(snesls, SNESLINESEARCHBASIC);
This method create a new snesls, but not work.
Barry told me that I should use
ierr = SNESGetLineSearch(snes, &snesls);
instead of
ierr = SNESLineSearchCreate(PETSC_COMM_WORLD, &snesls);
Then everything is ok now.
Thanks very much.
Gong Ding
> Hi,
> I updated petsc from 3.2 to 3.4. However, I found that the nonlinear solver
> previously worked well now failed with massage DIVERGED_LINE_SEARCH.
> My problem is extremely nonlinear, cubic line search may fail but Newton
> method works.
>
> With petsc 3.2, I only use basic Newton by calling
> SNESLineSearchSet(snes, SNESLineSearchNo, PETSC_NULL)
> With 3.4 I call basic Newton by
> SNESLineSearchSetType(snes, SNESLINESEARCHBASIC).
>
> However, petsc 3.4 still reports
> [0] SNESSolve_NEWTONLS(): fnorm=3.7500000000000006e-02,
> gnorm=3.7500000000000006e-02, ynorm=1.0000000000000000e+00, lssucceed=0
> [0] SNESNEWTONLSCheckLocalMin_Private(): || J^T F|| 1.414213562373e+00 near
> zero implies found a local minimum
>
>
> It seems petsc 3.4 can not disable line search. Does anyone have the same
> problem?
>
> Gong Ding
>
>
>