To minimise target functions within relax, the minfx optimisation library is used (https://sourceforge.net/projects/minfx/). This Python package is bundled with the official relax distribution archives. If you are using a version of relax checked out directly from the source code repository, you will need to manually install minfx as a standard Python package.
The minfx library originated as one of relax's packages, but has been spun off as its own project for the benefit of other scientific, analytical, or numerical projects. Minfx is complete, very stable, well tested. Numerous optimisation algorithms are supported and can be clustered into three major categories - the line search methods, the trust-region methods, and the conjugate gradient methods.
The supported line search methods include:
The supported trust-region methods include:
The supported conjugate gradient methods include:
In addition, the following miscellaneous algorithms are implemented:
The step selection subalgorithms include:
The Hessian modification subalgorithms include:
All methods can be constrained by:
These lists may be out of date, so please see the minfx website for additional information.
The relax user manual (PDF), created 2019-06-14.