[petsc-users] When does DIVERGED_LINE_SEARCH Happen?

Peter Brune prbrune at gmail.com
Tue Mar 18 09:15:38 CDT 2014


Is there more output from the line search?  What happens when you run with
-snes_linesearch_monitor?  I remember there being a reason that I didn't
put this update in the maintenance branch.  Let me figure out exactly why
and get back to you.


On Mon, Mar 17, 2014 at 5:37 PM, Dafang Wang <dafang.wang at jhu.edu> wrote:

>  Hi Peter,
>
> My version of PETSc (v3.4.3) does not contain the bug fix you mentioned:
> "+      ierr =
> SNESLineSearchSetNorms(linesearch,xnorm,fnorm,ynorm);CHKERRQ(ierr);"
> Would that be a problem?
>
 I typically used the default value of -snes_stol, never setting it to
> zero. I will let you know soon if you believe this is important.
>
>
It would certainly be worth a try.

- Peter


>  Cheers,
> Dafang
>
>
> On 03/17/2014 06:27 PM, Peter Brune wrote:
>
>  This may be related to a bug we had reported before to petsc-maint:
>
>
> https://bitbucket.org/petsc/petsc/commits/ced04f9d467b04aa83a18d3f8875c7f72c17217a
>
>    What version of PETSc are you running?  Also, what happens if you set
> -snes_stol to zero?
>
>  Thanks,
>
>  - Peter
>
>
> On Mon, Mar 17, 2014 at 5:19 PM, Dafang Wang <dafang.wang at jhu.edu> wrote:
>
>> Hi Barry,
>>
>> Thanks for your tips. I have read the webpage you mentioned many times
>> before, but still I have been stuck on the line-search problem for weeks.
>>
>> I cannot guarantee my Jacobian is correct but I believe an incorrect
>> Jacobian is very unlikely. My Jacobian-calculation code has been under test
>> for a year with both analytical and realistic models, and the results have
>> been good until recently when I ran a very realistic physical model.
>>
>> Also, I looked up the implementation of SNESSolve_NEWTONLS() in "ls.c".
>> According to the algorithm, when the function "SNESLineSearchApply()" does
>> not succeed, one may encounter two possible outcomes:
>> CONVERGED_SNORM_RELATIVE (if the search step is too small) or otherwise,
>> DIVERGED_LINE_SEARCH. Does this mean that both these two outcomes indicate
>> that the line search fails?
>>
>> I ask this question because my simulation encountered many
>> CONVERGED_SNORM_RELATIVE. I treated them as if my nonlinear system
>> converged, accepted the nonlinear solution, and then proceeded to the next
>> time step of my simulation. Apparently, such practice has worked well in
>> most cases, (even when I encountered suspicious DIVERGED_LINE_SEARCH
>> behaviors). However, I wonder if there are any potential pitfalls in my
>> practice such as missing a nonlinear solve divergence and taking a partial
>> solution as the correct solution.
>>
>> Thank you very much for your time and help.
>>
>> Best,
>> Dafang
>>
>>
>> On 03/15/2014 11:15 AM, Barry Smith wrote:
>>
>>>     Failed line search are almost always due to an incorrect Jacobian.
>>> Please let us know if the suggestions at
>>> http://www.mcs.anl.gov/petsc/documentation/faq.html#newton don't help.
>>>
>>>     Barry
>>>
>>> On Mar 14, 2014, at 8:57 PM, Dafang Wang <dafang.wang at jhu.edu> wrote:
>>>
>>>  Hi,
>>>>
>>>> Does anyone know what the error code DIVERGED_LINE_SEARCH means in the
>>>> SNES nonlinear solve? Or what scenario would lead to this error code?
>>>>
>>>> Running a solid mechanics simulation, I found that the occurrence of
>>>> DIVERGED_LINE_SEARCH was very unpredictable and sensitive to the input
>>>> values to my nonlinear system, although my system should not be that
>>>> unstable. As shown by the two examples below, my system diverged in one
>>>> case and converged in the other, although the input values in these two
>>>> cases differed by only 1e-4,
>>>>
>>>> Moreover, the Newton steps in the two cases were very similar up to NL
>>>> step 1. Since then, however, Case 1 encountered a line-search divergence
>>>> whereas Case 2 converged successfully. This is my main confusion. (Note
>>>> that each residual vector contains 3e04 DOF, so when their L2 norms differ
>>>> within 1e-4, the two systems should be very close.)
>>>>
>>>> My simulation input consists of two scalar values (p1 and p2), each of
>>>> which acts as a constant pressure boundary condition.
>>>>
>>>> Case 1, diverge:
>>>> p1= -10.190869   p2= -2.367555
>>>>    NL step  0, |residual|_2 = 1.621402e-02
>>>>        Line search: Using full step: fnorm 1.621401550027e-02 gnorm
>>>> 7.022558235262e-05
>>>>    NL step  1, |residual|_2 = 7.022558e-05
>>>>        Line search: Using full step: fnorm 7.022558235262e-05 gnorm
>>>> 1.636418730611e-06
>>>>    NL step  2, |residual|_2 = 1.636419e-06
>>>> Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations
>>>> 2
>>>> Case 2: converge:
>>>> p1= -10.190747 p2= -2.367558
>>>>    NL step  0, |residual|_2 = 1.621380e-02
>>>>        Line search: Using full step: fnorm 1.621379778276e-02 gnorm
>>>> 6.976373804153e-05
>>>>    NL step  1, |residual|_2 = 6.976374e-05
>>>>        Line search: Using full step: fnorm 6.976373804153e-05 gnorm
>>>> 4.000992847275e-07
>>>>    NL step  2, |residual|_2 = 4.000993e-07
>>>>        Line search: Using full step: fnorm 4.000992847275e-07 gnorm
>>>> 1.621646014441e-08
>>>>    NL step  3, |residual|_2 = 1.621646e-08
>>>> Nonlinear solve converged due to CONVERGED_SNORM_RELATIVE iterations 3
>>>>
>>>> Aside from the input values, the initial solution in both cases may
>>>> differ very slightly. (Each case is one time step in a time-sequence
>>>> simulation. The two cases behaved nearly identically up to the last time
>>>> step before the step shown above, so their initial solutions may differ by
>>>> a cumulative error but such error should be very small.)  Is it possible
>>>> that little difference in initial guess leads to different local minimum
>>>> regions where the line search in Case 1 failed?
>>>>
>>>> Any comments will be greatly appreciated.
>>>>
>>>> Thanks,
>>>> Dafang
>>>> --
>>>> Dafang Wang, Ph.D
>>>> Postdoctoral Fellow
>>>> Institute of Computational Medicine
>>>> Department of Biomedical Engineering
>>>> Johns Hopkins University
>>>> Hackerman Hall Room 218
>>>> Baltimore, MD, 21218
>>>>
>>>
>> --
>> Dafang Wang, Ph.D
>> Postdoctoral Fellow
>> Institute of Computational Medicine
>> Department of Biomedical Engineering
>> Johns Hopkins University
>> Hackerman Hall Room 218
>> Baltimore, MD, 21218
>>
>
>
> --
> Dafang Wang, Ph.D
> Postdoctoral Fellow
> Institute of Computational Medicine
> Department of Biomedical Engineering
> Johns Hopkins University
> Hackerman Hall Room 218
> Baltimore, MD, 21218
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140318/b5f9005e/attachment-0001.html>


More information about the petsc-users mailing list