You can change the maxstep before the SNESSolve() if needed. Such a huge step 
is not common.

> On Mar 7, 2023, at 12:39 PM, Angus, Justin Ray <ang...@llnl.gov> wrote:
> 
> Barry,
>  
> “It defaults to a huge value linesearch->maxstep      = 1e8;” – That is the 
> answer!
>  
> The newton step being taken in the slide I sent is 2.7e10.
>  
> Thank you.
>  
> -Justin
>  
> From: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>
> Date: Tuesday, March 7, 2023 at 9:34 AM
> To: "Angus, Justin Ray" <ang...@llnl.gov <mailto:ang...@llnl.gov>>
> Cc: Matthew Knepley <knep...@gmail.com <mailto:knep...@gmail.com>>, 
> "petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>" <petsc-dev@mcs.anl.gov 
> <mailto:petsc-dev@mcs.anl.gov>>
> Subject: Re: [petsc-dev] SNESNEWTONLS
>  
>  
> 
> 
>> On Mar 7, 2023, at 12:19 PM, Angus, Justin Ray <ang...@llnl.gov 
>> <mailto:ang...@llnl.gov>> wrote:
>>  
>> Hi Matthew,
>>  
>> Thank you for the reply. But my question was really related to what Barry 
>> had said – the BT method will use the full step as long as it leads to some 
>> decease in the function norm. The full step does indeed satisfy this 
>> condition, but the BT method does not seem to be using the full step. Why?
>>  
>> Is it because the step value is larger than the default maxstep? I don’t 
>> know what that value is or how to find it.
>  
>    The easiest way is to run in a debugger and put in a break point for 
> SNESLineSearchApply_BT(). Step to see exactly what decision it is making
>  
>    You can see the parameters used by running with -snes_view_pre (here pre 
> means to display the parameters before the solve is done). 
>  
>    The line search default values are set in SNESLineSearchCreate() in 
> src/snes/linesearch/interface/linesearch.c  It defaults to a huge value 
> linesearch->maxstep      = 1e8;
>  
>    If you use VSCode or some other programming environment you can set it up 
> to find things in the PETSc source easily 
> https://petsc.org/release/docs/manual/other/#visual-studio-code-users 
> <https://urldefense.us/v3/__https:/petsc.org/release/docs/manual/other/*visual-studio-code-users__;Iw!!G2kpM7uM-TzIFchu!kQU20Vj5R0UB_QFB21x9Xjasg-Ho2l-QtzxZdjA8AKCBr2ieX1aHpvjO04tN68k$>
>  
>   Barry
>  
>  
> 
> 
>>  
>> -Justin
>>  
>> From: Matthew Knepley <knep...@gmail.com <mailto:knep...@gmail.com>>
>> Date: Tuesday, March 7, 2023 at 9:16 AM
>> To: "Angus, Justin Ray" <ang...@llnl.gov <mailto:ang...@llnl.gov>>
>> Cc: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>, 
>> "petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>" 
>> <petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>>
>> Subject: Re: [petsc-dev] SNESNEWTONLS
>>  
>> On Tue, Mar 7, 2023 at 12:03 PM Angus, Justin Ray via petsc-dev 
>> <petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>> wrote:
>>> Hi Barry,
>>>  
>>> Very helpful.
>>>  
>>> I’m still having some trouble with reconciling your answer to question 
>>> number 2 based on some recent observations I have had. I’ve shared 1 slide 
>>> concerning that observation, which I will briefly describe below.
>>>  
>>> I have a code that uses petsc but also has a native JFNK solver that works 
>>> in the standard textbook way and always uses the full newton step. I 
>>> recently found that the SNES newton solver in petsc with default options 
>>> was failing on step 1 of a simulation, while our native solver worked fine. 
>>> The fix for petsc was to switch from backtracking line search to basic.
>>>  
>>> Based in the information in the slide, can you make sense of this behavior?
>>  
>> Sure. It is completely possible to converge using full steps when you do not 
>> converge using BT. All of the convergence proofs
>> are predicated on starting "close enough" to the solution. You can start far 
>> away, take full steps, and by chance get into the basin of
>> convergence. BT, that is trying to guarantee convergence, will fail. There 
>> are a very small number of cases for which we can
>> guarantee global convergence.
>>  
>>   Thanks,
>>  
>>      Matt
>>  
>>> -Justin
>>>  
>>> From: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>
>>> Date: Tuesday, March 7, 2023 at 8:52 AM
>>> To: "Angus, Justin Ray" <ang...@llnl.gov <mailto:ang...@llnl.gov>>
>>> Cc: "petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>" 
>>> <petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>>
>>> Subject: Re: [petsc-dev] SNESNEWTONLS
>>>  
>>>  
>>>  
>>> 
>>>> On Mar 7, 2023, at 11:36 AM, Angus, Justin Ray via petsc-dev 
>>>> <petsc-dev@mcs.anl.gov <mailto:petsc-dev@mcs.anl.gov>> wrote:
>>>>  
>>>> Hello,
>>>>  
>>>> I’ve been using the default newton line search nonlinear solver in petsc. 
>>>> I recently discovered that the default line search method is bt – 
>>>> backtracking. I have two questions.
>>>>  
>>>> How exactly does the backtracking line search use the L2 norm of the 
>>>> function to modify the newton step? What is the formula?
>>>  
>>>    
>>> https://petsc.org/main/src/snes/linesearch/impls/bt/linesearchbt.c.html#SNESLINESEARCHBT
>>>  
>>> <https://urldefense.us/v3/__https:/petsc.org/main/src/snes/linesearch/impls/bt/linesearchbt.c.html*SNESLINESEARCHBT__;Iw!!G2kpM7uM-TzIFchu!gRMzIDCT2gk_bmfyFDMW_2hqc18xUq_eOd-GQOXGkPsHzw_F01t55J_ab98JKVI$>
>>>  
>>> 
>>>>  
>>>> Why is backtracking default? I would think that the basic method, which is 
>>>> a standard Newton method, would be default.
>>>  
>>>    All SNES Newton line searches use the full Newton step if it satisfies 
>>> the Wolf conditions (there is some decrease in the function norm) and if 
>>> the full Newton step is selected there is no nontrivial extra costs from 
>>> using a line search (since the line search is never done) so there is no 
>>> reason not to default to using SNESLINESEARCHBT. While using ONLY the 
>>> full-step there may not convergence for many situations.  Hence our default.
>>>  
>>>  
>>>  
>>>  
>>>  
>>> 
>>>>  
>>>>  
>>>> -Justin
>>> 
>>>  
>>> 
>> 
>> 
>>  
>> -- 
>> What most experimenters take for granted before they begin their experiments 
>> is infinitely more interesting than any results to which their experiments 
>> lead.
>> -- Norbert Wiener
>>  
>> https://www.cse.buffalo.edu/~knepley/ 
>> <https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!j3AGZCLzChJI9AkGBKcae0TA2fNh_B_Y_Isx1koEbyAOIQVPHznYaIG73_xzqJw$>

Reply via email to