7 #ifndef SPARROW_TDDFTBCALCULATOR_H
8 #define SPARROW_TDDFTBCALCULATOR_H
10 #include <Core/Interfaces/CalculatorWithReference.h>
14 #include <Utils/Math/IterativeDiagonalizer/SpinAdaptedEigenContainer.h>
17 #include <Eigen/Sparse>
31 class ElectronicOccupation;
33 enum class SpinTransition;
37 class DFTBMethodWrapper;
39 template<Utils::Reference restrictedness>
41 template<Utils::Reference restrictedness>
74 constexpr
static const char* model =
"TD-DFTB";
124 std::string
name()
const final;
131 template<Utils::Reference restrictedness>
133 int numberOfEnergyLevels = 0,
int initialSubspaceDimension = 0,
134 Utils::SpinTransition spinBlock = Utils::SpinTransition::Singlet);
150 void setGuess(std::shared_ptr<GuessSpecifier> guessVectorMatrix)
final;
151 auto getGuess()
const -> std::shared_ptr<GuessSpecifier>
final;
154 void checkMemoryRequirement(
int excitationsDim,
int numberOfEnergyLevels);
155 template<Utils::Reference restrictedness>
157 const std::vector<Utils::Excitation>& excitations)
const;
158 auto isDFTB0(std::shared_ptr<DFTBMethodWrapper> method)
const -> bool;
160 template<Utils::Reference restrictedness>
162 const Eigen::MatrixXd& transitionCharges, std::shared_ptr<Utils::DipoleMatrix> dipoleMatrix);
163 template<Utils::Reference restrictedness>
166 int initialSubspaceDimension);
167 std::shared_ptr<DFTBMethodWrapper> dftbMethod_;
168 std::shared_ptr<GuessSpecifier> guess_;
169 std::unique_ptr<Utils::Settings> settings_;
170 std::unique_ptr<TDDFTBData> tddftbData_;
171 std::vector<int> orderMap_;
172 std::vector<Utils::Excitation> excitations_;
178 #endif // SPARROW_TDDFTBCALCULATOR_H
void referenceCalculation() final
This function gives the chance to perform a reference calculation. This is not needed if the calculat...
Definition: TDDFTBCalculator.cpp:57
std::string name() const final
Getter for the model name, in this case "TDDFTB".
Definition: TDDFTBCalculator.cpp:85
const Utils::Results & calculate() final
Overridden calculate method, inherited from Core::CalculatorWithReference. This method works through ...
Definition: TDDFTBCalculator.cpp:124
Definition: LinearResponseCalculator.h:15
Definition: TDDFTBCalculator.h:72
Utils::Settings & settings() final
Accessor for the underlying settings.
Definition: TDDFTBCalculator.cpp:77
Utils::Results & results() final
Accessor for the Results stored.
Definition: TDDFTBCalculator.cpp:49
auto getGuess() const -> std::shared_ptr< GuessSpecifier > final
Returns the guess in the full singles space (no pruning)
Definition: TDDFTBCalculator.cpp:289
Definition: TDDFTBCalculator.h:42
Core::Calculator & getReferenceCalculator() final
Accessor for the ground state calculator.
Definition: TDDFTBCalculator.cpp:69
void setGuess(std::shared_ptr< GuessSpecifier > guessVectorMatrix) final
Sets the guess to be used in the next calculation. If empty, diagonal dominant guess will be used...
Definition: TDDFTBCalculator.cpp:284
void applySettings() final
Apply the settings contained in the settings_ member.
Definition: TDDFTBCalculator.cpp:89
void setReferenceCalculator(std::shared_ptr< Core::Calculator > method) final
Sets the ground state method to calculate excited states.
Definition: TDDFTBCalculator.cpp:37