7 #ifndef SPARROW_NDDOMETHODWRAPPER_H
8 #define SPARROW_NDDOMETHODWRAPPER_H
19 class SpinAdaptedMatrix;
24 class DipoleMatrixCalculator;
45 friend class NDDOStatesHandler;
55 template<
class NDDOMethod>
56 void copyInto(NDDOMethod& instance,
const NDDOMethod& classToCopy) {
57 auto results = classToCopy.results();
58 instance.settings() = classToCopy.settings();
61 instance.setStructure(*classToCopy.getStructure());
62 instance.results() = std::move(results);
63 instance.loadState(classToCopy.getState());
64 instance.setLog(classToCopy.getLog());
66 virtual Eigen::MatrixXd getOneElectronMatrix()
const = 0;
68 virtual CISData getCISDataImpl()
const = 0;
69 void assembleResults(
const std::string& description)
final;
71 void applySettings(std::unique_ptr<Utils::Settings>& settings,
Utils::ScfMethod& method);
72 bool getZPVEInclusion()
const final;
78 #endif // SPARROW_NDDOMETHODWRAPPER_H
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