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
PM6MethodWrapper.h
Go to the documentation of this file.
1 
7 #ifndef SPARROW_PM6METHODWRAPPER_H
8 #define SPARROW_PM6METHODWRAPPER_H
9 
10 /* Internal Includes */
11 
14 /* External Includes */
16 #include <string>
17 
18 namespace Scine {
19 namespace Sparrow {
24 class PM6MethodWrapper final : public Utils::CloneInterface<PM6MethodWrapper, NDDOMethodWrapper, Core::Calculator> {
25  public:
26  static constexpr const char* model = "PM6";
27 
30  // Rule of 5
32  PM6MethodWrapper& operator=(const PM6MethodWrapper& rhs);
33  PM6MethodWrapper(PM6MethodWrapper&& rhs) = delete;
34  PM6MethodWrapper& operator=(PM6MethodWrapper&& rhs) = delete;
36  ~PM6MethodWrapper() final;
41  std::string name() const final;
45  void applySettings() final;
46 
51  void addElectronicContribution(std::shared_ptr<Utils::AdditiveElectronicContribution> contribution) final;
52 
53  private:
54  bool successfulCalculation() const final;
55  Eigen::MatrixXd getOneElectronMatrix() const final;
56  Utils::SpinAdaptedMatrix getTwoElectronMatrix() const final;
57 
58  Utils::DensityMatrix getDensityMatrixGuess() const final;
60  void initialize() final;
61 
63  CISData getCISDataImpl() const final;
64  Utils::LcaoMethod& getLcaoMethod() final;
65  const Utils::LcaoMethod& getLcaoMethod() const final;
66  void calculateImpl(Utils::Derivative requiredDerivative) final;
67  nddo::PM6Method method_;
68 };
69 
70 } /* namespace Sparrow */
71 } /* namespace Scine */
72 
73 #endif /* SPARROW_PM6METHODWRAPPER_H */
A method wrapper running PM6 calculations.
Definition: PM6MethodWrapper.h:24
~PM6MethodWrapper() final
Default Destructor.
void applySettings() final
Function to apply the settings to the underlying method.
Definition: PM6MethodWrapper.cpp:49
void addElectronicContribution(std::shared_ptr< Utils::AdditiveElectronicContribution > contribution) final
Function to add a contribution to the electronic PM6 Hamiltonian.
Definition: PM6MethodWrapper.cpp:115
This class contains the infos needed to perform a CIS calculation. This way excited states properties...
Definition: CISData.h:24
Definition: PM6Method.h:23
std::string name() const final
Getter for the name of the method.
Definition: PM6MethodWrapper.cpp:58
PM6MethodWrapper()
Default Constructor.
Definition: PM6MethodWrapper.cpp:30