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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 >
