File FullSecondDerivativeCollection.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
FullSecondDerivativeCollection
- #include <FullSecondDerivativeCollection.h>
Container class for full second derivatives (Hessian matrix + first derivatives).
Public Functions
-
FullSecondDerivativeCollection
(int N = 0) Constructor.
- Parameters
N
: Size of the container (number of atoms).
-
const FullSecondDerivativeCollection &
operator+=
(const FullSecondDerivativeCollection &dc) Add another FullSecondDerivativeCollection.
-
void
setZero
() Reset all the derivatives to zero.
-
GradientCollection
generateGradients
(const DisplacementCollection &displacements) const Generate a GradientCollection from the full second derivatives and the displacements.
-
Gradient
generateGradient
(int idx, const DisplacementCollection &displacements) const Generate a Gradient from the full second derivatives and the displacements.
-
void
addDerivative
(int a, int b, const AutomaticDifferentiation::Second3D &v) Add a derivative object for the pair a->b.
-
const HessianMatrix &
getHessianMatrix
() const Getter for the Hessian Matrix.
- Return
HessianMatrix This ist just a type alias for Eigen::MatrixXd.
-
const GradientCollection &
getReferenceGradients
() const Return the reference gradients.
- Return
GradientCollection This ist just a type alias for Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>.
Private Functions
-
Eigen::MatrixXd &
hessian
()¶
-
-
class
-
namespace