[petsc-users] When does DIVERGED_LINE_SEARCH Happen?
Dafang Wang
dafang.wang at jhu.edu
Tue Mar 18 12:04:44 CDT 2014
Hi Peter,
Running with "snes_linesearch_monitor" would give the following results
which I presented in my original email:
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
------------------------------------------------------------------------
Also, running with "-snes_stol=0" effectively suppressed the occurrence
of CONVERGED_SNORM_RELATIVE. Instead, most nonlinear solves took more
iterations and ended with CONVERGED_FNORM_RELATIVE at a smaller residual
error. In some cases (roughly 10 out of 5000), the nonlinear solves
failed with DIVERGED_LINE_SEARCH
Cheers,
Dafang
On 03/18/2014 10:15 AM, Peter Brune wrote:
> 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
> <mailto: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
>> <mailto: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 <mailto: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
>
>
--
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/e70ddac1/attachment.html>
More information about the petsc-users
mailing list