Scine::Sparrow  5.1.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Scine::Sparrow::BasisPruner< restrictedness > Class Template Reference
Collaboration diagram for Scine::Sparrow::BasisPruner< restrictedness >:
Collaboration graph

Public Types

using BoolVector = Eigen::Matrix< bool,-1, 1 >
 

Public Member Functions

 BasisPruner (const OrderedInput< restrictedness > &input, std::shared_ptr< Eigen::MatrixXd > gammaMatrix, std::shared_ptr< Eigen::VectorXd > spinConstants)
 
auto prune (EnergyThreshold enThresh, PerturbativeThreshold ptThresh, Utils::SpinTransition spinBlock=Utils::SpinTransition::Singlet) -> OrderedInput< restrictedness >
 Function making the pruning of the space. More...
 
auto prune (NumberOfConfigurations nRoots, PerturbativeThreshold ptThresh, Utils::SpinTransition spinBlock=Utils::SpinTransition::Singlet) -> OrderedInput< restrictedness >
 Function making the pruning of the space. More...
 
auto getNumberOfRootsUnderThreshold () const -> int
 Returns the number of "primary" configurations under the energy threshold.
 
auto prune (const LinearResponseCalculator::GuessSpecifier &matrixToPrune) const -> std::shared_ptr< LinearResponseCalculator::GuessSpecifier >
 Prunes a matrix with the already calculated isIncluded_ private member. The matrix will have less-equal rows. More...
 
template<>
auto prune (const LinearResponseCalculator::GuessSpecifier &matrixToPrune) const -> std::shared_ptr< LinearResponseCalculator::GuessSpecifier >
 
template<>
auto prune (const LinearResponseCalculator::GuessSpecifier &matrixToPrune) const -> std::shared_ptr< LinearResponseCalculator::GuessSpecifier >
 

Member Function Documentation

template<Utils::Reference restrictedness>
auto Scine::Sparrow::BasisPruner< restrictedness >::prune ( EnergyThreshold  enThresh,
PerturbativeThreshold  ptThresh,
Utils::SpinTransition  spinBlock = Utils::SpinTransition::Singlet 
) -> OrderedInput<restrictedness>

Function making the pruning of the space.

Parameters
enThreshStrongly typed double, represents the energy threshold (in hartree).
ptThreshStrongly typed double, represents the perturbation theory threshold for the inclusion of a secondary configuration. (in hartree)

All the configurations lower in energy than enThresh are included, called "primary configurations". The other configurations ("secondary configurations") are tested for interaction with the primary space via perturbation theory: E_u = ^PBF |A_uv|^2 / (E_u - E_v). if E_u, the estimated interaction energy of the secondary configuration u, is higher than the ptThresh, then it is included in the calculation. Otherwise, the estimated interaction is added to the energy differences.

Returns
a OrderedInput<restrictedness>.
template<Utils::Reference restrictedness>
auto Scine::Sparrow::BasisPruner< restrictedness >::prune ( NumberOfConfigurations  nRoots,
PerturbativeThreshold  ptThresh,
Utils::SpinTransition  spinBlock = Utils::SpinTransition::Singlet 
) -> OrderedInput<restrictedness>

Function making the pruning of the space.

Parameters
nRootsStrongly typed int, represents the number of roots sought after.
ptThreshStrongly typed double, represents the perturbation theory threshold for the inclusion of a secondary configuration. (in hartree)

All the first nRoots configurations are included, called "primary configurations". The other configurations ("secondary configurations") are tested for interaction with the primary space via perturbation theory: E_u = ^PBF |A_uv|^2 / (E_u - E_v). if E_u, the estimated interaction energy of the secondary configuration u, is higher than the ptThresh, then it is included in the calculation. Otherwise, the estimated interaction is added to the energy differences.

Returns
a OrderedInput<restrictedness>.
template<Utils::Reference restrictedness>
auto Scine::Sparrow::BasisPruner< restrictedness >::prune ( const LinearResponseCalculator::GuessSpecifier matrixToPrune) const -> std::shared_ptr< LinearResponseCalculator::GuessSpecifier >

Prunes a matrix with the already calculated isIncluded_ private member. The matrix will have less-equal rows.

Precondition
The energy pruning must already have taken place.
matrixToPrune.rows() == isIncluded_.size()

The documentation for this class was generated from the following files: