On Oct 22, 2013, at 2:18 AM, Gong Ding <[email protected]> wrote:
> 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).
You need to use
SNESLineSearch ls;
SNESGetLineSearch(snes,&ls);
SNESLineSearchSetType(ls,SNESLINESEARCHBASIC)
is that what you do?
Try calling
SNESLineSearchView(ls,NULL); immediately after this and see what it reports.
Possibly somehow later the line search is being reset back to the default.
It is suppose to behave like previous versions of PETSc and just use the
full Newton step.
Barry
>
> 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
>
>
>