Dear all,

We were trying to update the petsc version we use in our code to the version 
3.19.1 when we noticed that some of the unit tests in our code started failing. 
The reason for the failure seems to be due to a change in the linesearch logic 
of petsc version 3.19.1. In particular, the implementation of the function 
SNESLineSearchGetTolerances was modified such that maxstep is now scaled with 
fnorm as shown in the following link 
https://gitlab.com/petsc/petsc/-/blob/main/src/snes/linesearch/interface/linesearch.c#L1097
This change seems to be inconsistent with the way maxstep is being used later 
on to compute a step size using the l2 line search algorithm, for instance, 
check the following code 
https://gitlab.com/petsc/petsc/-/blob/main/src/snes/linesearch/impls/l2/linesearchl2.c#L119
 where maxstep is compared to lambda_update and where maxstep is scaled by 
fnorm whereas lambda_update seems to be a scalar of a different order as 
computed here 
https://gitlab.com/petsc/petsc/-/blob/main/src/snes/linesearch/impls/l2/linesearchl2.c#L111
 .
The way this change is reflected in our code is that we were trying to enforce 
a range for the step size provided by the l2 line search between 0.1 and 1 and 
now with the new changes in petsc version 3.19.1 the upper limit seems not to 
hold anymore and we are seeing step sizes larger than 1.

Thank you in advance for your help.
Best regards,
Nabil



Reply via email to