File Gdiis.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine
This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.
This header contains alias definitions defining which classes to use for the different degrees of derivatives.
-
namespace
Utils
-
class
Gdiis
- #include <Gdiis.h>
An implementation of the GDIIS optimization acceleration algorithm.
Public Functions
-
Gdiis
(const Eigen::MatrixXd &hessianInverse, unsigned int maxm) Construct a new GDIIS.
- Parameters
hessianInverse
: A reference to the Hessian inverse to be used for the generation of an actual step. The content of the reference can continuosly be updated using e.g. the BFGS scheme or it can also just remain the identity.maxm
: The maximum number of old steps to be stored and to be extrapolated from. Upon reaching the maximum number of points, the oldest one will be replaced with the newly given one.
-
void
store
(Eigen::VectorXd ¶meters, Eigen::VectorXd &gradients) Store data into the GDIIS without extrapolation.
- Parameters
parameters
: The current parameters.gradients
: The current gradients (for the current parameters).
-
void
flush
() Resets the storage of the GDIIS.
-
Eigen::VectorXd
update
(Eigen::VectorXd ¶meters, Eigen::VectorXd &gradients) Stores the new data and extrapolates to optimum parameters using all stored data.
- Return
Eigen::VectorXd The extrapolated best parameters.
- Parameters
parameters
: The current parameters.gradients
: The current gradients (for the current parameters).
-
-
class
-
namespace