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
GuessPropagator.h
Go to the documentation of this file.
1 
9 #include <Utils/Typenames.h>
10 #include <deque>
11 
12 namespace Scine {
13 namespace Sparrow {
14 namespace RealTimeSpectroscopy {
15 
29  public:
37  -> std::shared_ptr<LinearResponseCalculator::GuessSpecifier>;
38 
42  void record(const LinearResponseCalculator::GuessSpecifier& excitedState);
46  void record(const Utils::PositionCollection& positions);
47 
48  void setDimension(int diisDimension);
49 
53  void reset();
54 
55  private:
56  enum class SpectralType { Singlet, Unrestricted };
57  Eigen::MatrixXd calculateOverlapMatrix(const Utils::PositionCollection& positions) const;
58  Eigen::MatrixXd calculateErrorVectors(const Utils::PositionCollection& newPosition) const;
59  Eigen::VectorXd calculateRhsVector() const;
60 
61  std::deque<Eigen::MatrixXd> excitedStatesHistory_;
62  std::deque<Utils::PositionCollection> positionsHistory_;
63  int maxHistoryDimension_ = 4;
64  SpectralType symmetry_;
65 };
66 
67 } // namespace RealTimeSpectroscopy
68 } // namespace Sparrow
69 } // namespace Scine
auto calculateGuessAtNewPosition(const Utils::PositionCollection &newPositions) -> std::shared_ptr< LinearResponseCalculator::GuessSpecifier >
Calculates the new guess for the excited states calculation. If no previous structures are recorded...
Definition: GuessPropagator.cpp:15
void record(const LinearResponseCalculator::GuessSpecifier &excitedState)
Saves the excited states of the previous step to be used in the extrapolation.
Definition: GuessPropagator.cpp:39
Definition: LinearResponseCalculator.h:17
void reset()
Empties the memory and resets the extrapolation.
Definition: GuessPropagator.cpp:69