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
CISMatrixAOFockBuilder.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_CISMATRIXAOFOCKBUILDER_H
9 #define SPARROW_CISMATRIXAOFOCKBUILDER_H
10 
14 
15 namespace Scine {
16 namespace Sparrow {
17 class CISData;
18 
19 template<Utils::Reference restrictedness>
21  public:
24  std::map<int, std::vector<int>> atomPairList) const = 0;
25  virtual ~CISMatrixAOFockBuilderBase() = default;
26 };
27 
28 template<Utils::Reference restrictedness, Utils::SpinTransition spinBlock = Utils::SpinTransition::Singlet>
29 class CISMatrixAOFockBuilder : public CISMatrixAOFockBuilderBase<restrictedness> {
30  public:
32  CISMatrixAOFockBuilder(CISData cisData, const ExcitedStatesParam& excitedStatesParam);
34  SAMType getAOFock(const SAMType& pseudoDensity, std::map<int, std::vector<int>> atomPairList) const final;
35 
36  private:
37  SAMType buildFock(const SAMType& pseudoDensity, std::map<int, std::vector<int>> atomPairList) const;
38  void initialize();
39  void calculateMatrices();
40  void calculate(int atomI, int atomJ);
41  void calculate(int atomI);
42  Eigen::MatrixXd getCoulombIntegrals(int atomI, int atomJ);
43  Eigen::MatrixXd getExchangeIntegrals(int atomI, int atomJ);
44  CISData cisData_;
45  int nAtoms_{cisData_.AOInfo.getNAtoms()};
46  int nAOs_{cisData_.AOInfo.getNAtomicOrbitals()};
47  std::shared_ptr<std::vector<std::map<int, std::shared_ptr<Eigen::MatrixXd>>>> coulombContainer_, exchangeContainer_;
48  static constexpr const double sparseThreshold_ = 1e-8;
49  double c1_;
50  double c2_;
51 };
52 
53 } // namespace Sparrow
54 } // namespace Scine
55 
56 #endif // SPARROW_CISMATRIXAOFOCKBUILDER_H
Definition: CISMatrixAOFockBuilder.h:29
Definition: TimeDependentUtils.h:22
Definition: CISMatrixAOFockBuilder.h:20
This class contains the infos needed to perform a CIS calculation. This way excited states properties...
Definition: CISData.h:24