Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
CISSigmaVectorEvaluator.h
Go to the documentation of this file.
1 
7 #ifndef SPARROW_CISSIGMAVECTOREVALUATOR_H
8 #define SPARROW_CISSIGMAVECTOREVALUATOR_H
9 
10 #include "CISData.h"
15 #include <Eigen/Core>
16 #include <Eigen/Sparse>
17 #include <vector>
18 
19 namespace Scine {
20 namespace Sparrow {
21 template<Utils::Reference restrictedness>
22 class CISMatrixAOFockBuilderBase;
52 template<Utils::Reference restrictedness>
54  public:
60  explicit CISSigmaVectorEvaluator(CISData cisData, const ExcitedStatesParam& excitedStatesParam,
62  const std::vector<std::multimap<double, int, std::greater<double>>>& integralsThresholds,
63  std::vector<int> orderMap,
64  Utils::SpinTransition spinBlock = Utils::SpinTransition::Singlet);
69 
76  const Eigen::MatrixXd& evaluate(const Eigen::MatrixXd& guessVectors) const final;
77 
78  private:
79  std::map<int, std::vector<int>>
80  generateAtomPairList(const Utils::SpinAdaptedContainer<restrictedness, Eigen::MatrixXd>& guessVector) const;
84  void collapsed(int newSubspaceDimension) final;
85  mutable Eigen::MatrixXd currentSigmaMatrix_;
86  CISData cisData_;
87  std::shared_ptr<CISMatrixAOFockBuilderBase<restrictedness>> aoFockBuilder_;
89  Utils::SpinTransition spinBlock_{Utils::SpinTransition::Singlet};
90  std::shared_ptr<CISPseudoDensityBuilder<restrictedness>> pseudoDensityBuilder_;
91  std::shared_ptr<Utils::SpinAdaptedContainer<restrictedness, Eigen::MatrixXd>> occupiedOrbitals_;
92  std::shared_ptr<Utils::SpinAdaptedContainer<restrictedness, Eigen::MatrixXd>> virtualOrbitals_;
93  const std::vector<std::multimap<double, int, std::greater<double>>>& integralsThresholds_;
94  std::vector<int> orderMap_;
95 };
96 } // namespace Sparrow
97 } // namespace Scine
98 
99 #endif // SPARROW_CISSIGMAVECTOREVALUATOR_H
CISSigmaVectorEvaluator(CISData cisData, const ExcitedStatesParam &excitedStatesParam, const Utils::SpinAdaptedContainer< restrictedness, Eigen::VectorXd > &energyDifferenceVector, const std::vector< std::multimap< double, int, std::greater< double >>> &integralsThresholds, std::vector< int > orderMap, Utils::SpinTransition spinBlock=Utils::SpinTransition::Singlet)
Constructor: sets the cisData_ variable and calculates the energy difference-vector generation in the...
Definition: CISSigmaVectorEvaluator.cpp:16
const Eigen::MatrixXd & evaluate(const Eigen::MatrixXd &guessVectors) const final
Evaluates the sigma vectors in a loop over all new guess vectors and inserts them in the currentSigma...
Definition: TimeDependentUtils.h:22
Definition: CISSigmaVectorEvaluator.h:53
This class contains the infos needed to perform a CIS calculation. This way excited states properties...
Definition: CISData.h:24
~CISSigmaVectorEvaluator() final
Destructor.