fix SNESLineSearchBisection wrongfully exiting when reaching maximum number of iterations
Improve the propagation of function domain error handling in SNES, especially in the line search routines.Due to the object layering of SNESLineSearch under SNES there is some code duplication incl
Improve the propagation of function domain error handling in SNES, especially in the line search routines.Due to the object layering of SNESLineSearch under SNES there is some code duplication include both SNESLineSearchReason and SNESConvergedReason and SNESCheckFunctionNorm() and SNESLineSearchCheckFunctionNorm() and Jacobian friendsReported-by: david.knezevic@akselos.com
show more ...
SNESLinesearch: Minor improvements- add missing configuration options in the documentation of the line searches (some of the available options were not listed), and consistently list their respecti
SNESLinesearch: Minor improvements- add missing configuration options in the documentation of the line searches (some of the available options were not listed), and consistently list their respective default values- add proper convergence criteria for the secant method in the L2 line search based on ltol and atol (otherwise, the secant method is mostly running for the maximum number of iterations)- fix a small bug in the CP line search, where steptol * lambda was used to check for convergence based on the change of lambda instead of the ltol parameter- rename sneslinesearch->maxstep to sneslinesearch->maxlambda in the options database to be consistent with its purpose in the algorithms- rename SNESLineSearchL2 to SNESLineSearchSecant to better represent its underlying approach
SNESLineSearch: fix computation of directional derivative in the case of the VI solversThe two line search algorithms bisection and critical point work with the directional derivative, assuming tha
SNESLineSearch: fix computation of directional derivative in the case of the VI solversThe two line search algorithms bisection and critical point work with the directional derivative, assuming that F(x) = grad G(x).However, when working with the variational inequality solvers, the constraints were not correctly considered when computing the directional derivative.This commit introduces a new linesearch->ops->vidirderiv function which correctly considers the constraints (similar to linesearch->ops->viproject and linesearch->ops->vinorm).
SNESLineSearch: add bisection line searchAdd new bisection line search for SNES, which proves to be useful for highly non-linear problems. The line search assumes that F(X) = grad G(X) and seeks to
SNESLineSearch: add bisection line searchAdd new bisection line search for SNES, which proves to be useful for highly non-linear problems. The line search assumes that F(X) = grad G(X) and seeks to find the root in the directional derivative through bisection.(tested in snes/tutorials/ex99)