Support objective functions in SNESNGMRES
This MR adds support for objective functions in SNESNGMRES
.
The reference I have used is this https://epubs.siam.org/doi/pdf/10.1137/110835530. @knepley Please let me know if there's some other work I should consider
Another change in the MR is that now all SNES line search objects call the PostCheck
uniformly (i.e. with Y
unscaled). Previously, BT
was passing the scaled direction. This change didn't break any code in the testsuite, so I presume it is ok. I have made it clear in the documentation (if anyone reads it...)
Another change in SNESNGMRES
is that I have replaced a few occurrences of PetscSqrtReal(fnorm)
with the objective value, which is fnorm
if SNES has no objective. It seems a bugfix to me and there are some improvements in convergence histories in some tests
I approve for `TAO` since the changes are not in the base code, only in the `TAOSNES` wrapper code