7 #ifndef SPARROW_NDDOMETHODWRAPPER_H
8 #define SPARROW_NDDOMETHODWRAPPER_H
19 class SpinAdaptedMatrix;
24 class DipoleMatrixCalculator;
31 :
public Utils::CloneInterface<Utils::Abstract<NDDOMethodWrapper>, GenericMethodWrapper, Core::Calculator> {
46 friend class NDDOStatesHandler;
64 template<
class NDDOMethod>
65 void copyInto(NDDOMethod& instance,
const NDDOMethod& classToCopy) {
66 auto results = classToCopy.results();
67 instance.settings() = classToCopy.settings();
70 instance.setStructure(*classToCopy.getStructure());
71 instance.results() = std::move(results);
72 instance.loadState(classToCopy.getState());
73 instance.setLog(classToCopy.getLog());
75 virtual Eigen::MatrixXd getOneElectronMatrix()
const = 0;
77 virtual CISData getCISDataImpl()
const = 0;
78 void assembleResults(
const std::string& description)
final;
80 void applySettings(std::unique_ptr<Utils::Settings>& settings,
Utils::ScfMethod& method);
81 bool getZPVEInclusion() const final;
87 #endif // SPARROW_NDDOMETHODWRAPPER_H
bool allowsPythonGILRelease() const override
Whether the calculator has no underlying Python code and can therefore release the global interpreter...
Definition: NDDOMethodWrapper.h:58
Abstract class acting as a genericWrapper for NDDO methods.
Definition: NDDOMethodWrapper.h:30
CISData getCISData() const
This function is needed in the calcualtion of the CIS matrix in linear response method.
Definition: NDDOMethodWrapper.cpp:105
Utils::PropertyList possibleProperties() const override
Get the list of the possible properties to calculate analytically. Since it is the same for all NDDO...
Definition: NDDOMethodWrapper.cpp:28
NDDOMethodWrapper()
Constructor. It plays with the befriended states handler by giving it a *this reference.
This class contains the infos needed to perform a CIS calculation. This way excited states properties...
Definition: CISData.h:24