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
CISPseudoDensityBuilder.h
Go to the documentation of this file.
1 
7 #ifndef SPARROW_CISPSEUDODENSITYBUILDER_H
8 #define SPARROW_CISPSEUDODENSITYBUILDER_H
9 
10 #include "CISData.h"
12 #include <Eigen/Core>
13 #include <Eigen/Sparse>
14 #include <vector>
15 namespace Scine {
16 namespace Sparrow {
17 
41 template<Utils::Reference restrictedness>
43  public:
53  CISPseudoDensityBuilder(const Utils::MolecularOrbitals& molecularOrbitals,
54  const Utils::LcaoUtils::ElectronicOccupation& occupation);
58  ~CISPseudoDensityBuilder() = default;
68  void constructOrbitals(Eigen::MatrixXd& occupiedOrbitals, Eigen::MatrixXd& virtualOrbitals,
69  const Eigen::MatrixXd& allMOs, const std::vector<int>& filledOrbitals);
97  Eigen::MatrixXd mapAndMultiply(const Eigen::VectorXd& Vector, const Eigen::MatrixXd& virtualMOs,
98  const Eigen::MatrixXd& occupiedMOs) const;
99 
100  private:
101  SAMType occupiedMolecularOrbitals_;
102  SAMType virtualMolecularOrbitals_;
103 };
104 
105 template<Utils::Reference restrictedness>
107  return occupiedMolecularOrbitals_;
108 }
109 
110 template<Utils::Reference restrictedness>
112  return virtualMolecularOrbitals_;
113 }
114 
115 } // namespace Sparrow
116 } // namespace Scine
117 #endif // SPARROW_CISPSEUDODENSITYBUILDER_H
SAMType getOccupiedOrbitals() const
Getter for occupied block of coefficient matrix.
Definition: CISPseudoDensityBuilder.h:106
const SAMType getPseudoDensityMatrix(const Utils::SpinAdaptedContainer< restrictedness, Eigen::VectorXd > &guessVector) const
Evaluates and returns the pseudo-density matrix Calculates the pseudo-density matrix with one guessVe...
~CISPseudoDensityBuilder()=default
Destructor.
This class evaluates pseudo-density matrices for the construction of the sigma-vectors in the Davidso...
Definition: CISPseudoDensityBuilder.h:42
CISPseudoDensityBuilder(const Utils::MolecularOrbitals &molecularOrbitals, const Utils::LcaoUtils::ElectronicOccupation &occupation)
Constructs the class by building the virtual and occupied blocks from the full coefficient matrix...
Eigen::MatrixXd mapAndMultiply(const Eigen::VectorXd &Vector, const Eigen::MatrixXd &virtualMOs, const Eigen::MatrixXd &occupiedMOs) const
Perform a matrix multiplication of the coefficient blocks with a mapped guessVector.
Definition: CISPseudoDensityBuilder.cpp:99
void constructOrbitals(Eigen::MatrixXd &occupiedOrbitals, Eigen::MatrixXd &virtualOrbitals, const Eigen::MatrixXd &allMOs, const std::vector< int > &filledOrbitals)
Constructs the virtual and occupied blocks from the full coefficient matrix. The blocks are construct...
Definition: CISPseudoDensityBuilder.cpp:56
SAMType getVirtualOrbitals() const
Getter for virtual block of coefficient matrix.
Definition: CISPseudoDensityBuilder.h:111