8 #ifndef SPARROW_BASISPRUNER_H
9 #define SPARROW_BASISPRUNER_H
13 #include <Utils/Math/IterativeDiagonalizer/SpinAdaptedEigenContainer.h>
18 enum class SpinTransition;
79 template<Utils::Reference restrictedness>
82 using BoolVector = Eigen::Matrix<bool, -1, 1>;
84 std::shared_ptr<Eigen::VectorXd> spinConstants);
129 return nBasisFunctionsUnderThreshold_;
139 -> std::shared_ptr<LinearResponseCalculator::GuessSpecifier>;
145 Utils::SpinTransition spinBlock) -> void;
146 auto perturbativeCorrection(
PerturbativeThreshold ptThresh, Utils::SpinTransition spinBlock) -> void;
148 auto perturbationContributionVector(
int nOfSecondary, Utils::SpinTransition spinBlock) -> Eigen::VectorXd;
149 auto generateEnergyWeightingMatrix(Utils::SpinTransition spinBlock);
158 auto generatePerturbationMatrix(
const Eigen::MatrixXd& primaryCharges,
const Eigen::MatrixXd& secondaryCharges,
159 Utils::SpinTransition spinBlock) -> Eigen::MatrixXd;
167 auto generateDiagonalCouplings(
const Eigen::VectorXd& energies) -> Eigen::VectorXd;
169 auto check(Utils::SpinTransition spinBlock)
const -> void;
171 std::shared_ptr<Eigen::MatrixXd> gammaMatrix_;
172 std::shared_ptr<Eigen::VectorXd> spinConstants_;
174 int nBasisFunctionsAfterPruning_;
175 int nBasisFunctionsUnderThreshold_;
176 BoolVector isIncluded_;
181 #endif // SPARROW_BASISPRUNER_H
Strongly named double representing an energy threshold.Used in function signature to differentiate fr...
Definition: BasisPruner.h:38
Definition: LinearResponseCalculator.h:17
auto getNumberOfRootsUnderThreshold() const -> int
Returns the number of "primary" configurations under the energy threshold.
Definition: BasisPruner.h:128
Strongly named double representing a perturbation threshold.Used in function signature to differentia...
Definition: BasisPruner.h:46
auto prune(EnergyThreshold enThresh, PerturbativeThreshold ptThresh, Utils::SpinTransition spinBlock=Utils::SpinTransition::Singlet) -> OrderedInput< restrictedness >
Function making the pruning of the space.
Definition: BasisPruner.cpp:27
Definition: BasisPruner.h:80
Strongly named int representing the number of electronic configurations.Used in return type to give s...
Definition: BasisPruner.h:29