Scine::Sparrow
5.1.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
|
Direct preconditioner calculator. More...
#include <DiagonalPreconditionerEvaluator.h>
Public Member Functions | |
DiagonalPreconditionerEvaluator (const Eigen::VectorXd &energyDifferenceVector) | |
The constructor generates a preconditioner from an ordered energy difference vector. | |
DiagonalPreconditionerEvaluator (const Utils::SpinAdaptedContainer< Utils::Reference::Unrestricted, Eigen::VectorXd > &energyDifferenceVector) | |
The constructor generates concatenated energyDifferences from an Unrestricted SpinAdaptedContainer. | |
DiagonalPreconditionerEvaluator (const Utils::SpinAdaptedContainer< Utils::Reference::Restricted, Eigen::VectorXd > &energyDifferenceVector) | |
The constructor generates energyDifferences from a Restricted SpinAdaptedContainer. | |
DiagonalPreconditionerEvaluator (const Utils::SpinAdaptedContainer< Utils::Reference::Unrestricted, Eigen::VectorXd > &energyDifferenceVector, OrderTag) | |
The constructor orders the energy differences in energetic increasing ordering from an Unrestricted SpinAdaptedContainer. More... | |
DiagonalPreconditionerEvaluator (const Utils::SpinAdaptedContainer< Utils::Reference::Restricted, Eigen::VectorXd > &energyDifferenceVector, OrderTag) | |
The constructor orders the energy differences in energetic increasing ordering from a Restricted SpinAdaptedContainer. More... | |
Eigen::VectorXd | evaluate (const Eigen::VectorXd &vectorToPrecondition, double eigenvalue) const final |
Evaluates the preconditioner vector. The preconditioner elements are p_k = (H_{k,k} - h_k)^{-1}, where H_{k,k} is the approximated k-th diagonal element of H, given by the energy difference between the molecular orbitals. H_{k,k} = e_a - e_i. More... | |
Direct preconditioner calculator.
Scine::Sparrow::DiagonalPreconditionerEvaluator::DiagonalPreconditionerEvaluator | ( | const Utils::SpinAdaptedContainer< Utils::Reference::Unrestricted, Eigen::VectorXd > & | energyDifferenceVector, |
OrderTag | |||
) |
The constructor orders the energy differences in energetic increasing ordering from an Unrestricted SpinAdaptedContainer.
OrderTag | Tag to give if ordering is needed. |
Scine::Sparrow::DiagonalPreconditionerEvaluator::DiagonalPreconditionerEvaluator | ( | const Utils::SpinAdaptedContainer< Utils::Reference::Restricted, Eigen::VectorXd > & | energyDifferenceVector, |
OrderTag | |||
) |
The constructor orders the energy differences in energetic increasing ordering from a Restricted SpinAdaptedContainer.
OrderTag | Tag to give if ordering is needed. |
|
finalvirtual |
Evaluates the preconditioner vector. The preconditioner elements are p_k = (H_{k,k} - h_k)^{-1}, where H_{k,k} is the approximated k-th diagonal element of H, given by the energy difference between the molecular orbitals. H_{k,k} = e_a - e_i.
eigenValues | The current guess for the eigenvalues: h_k |
Implements Scine::Utils::PreconditionerEvaluator.