File IndirectPreconditionerEvaluator.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 IndirectPreconditionerEvaluator : public Scine::Utils::PreconditionerEvaluator

This preconditioner evaluator returns the diagonal preconditioner for the Davidson algorithm.

Public Functions

IndirectPreconditionerEvaluator(const Eigen::VectorXd &diagonal)
~IndirectPreconditionerEvaluator()
Eigen::VectorXd evaluate(double eigenvalue) const

Evaluates the preconditioner vector.

The preconditioner elements are p_k = (H - h_k*I)^{-1}, where H is the diagonal of the full matrix.

Parameters
  • eigenvalues: The current guess for the eigenvalue h_k

Private Members

Eigen::VectorXd diagonalOfMatrixToDiagonalize_