Scine::Sparrow  4.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
DFTBMethodWrapper.h
Go to the documentation of this file.
1 
7 #ifndef SPARROW_DFTBMETHODWRAPPER_H
8 #define SPARROW_DFTBMETHODWRAPPER_H
9 
12 
13 namespace Scine {
14 namespace Sparrow {
15 class TDDFTBData;
16 
18  : public Utils::CloneInterface<Utils::Abstract<DFTBMethodWrapper>, GenericMethodWrapper, Core::Calculator> {
19  public:
25  ~DFTBMethodWrapper() override;
32  TDDFTBData getTDDFTBData() const;
33 
34  private:
35  void assembleResults(const std::string& description) final;
36 
37  protected:
38  virtual TDDFTBData getTDDFTBDataImpl() const = 0;
39 
40  // Extracted method from all copy constructors and copy assignment operators.
41  template<class DFTBMethod>
42  void copyInto(DFTBMethod& instance, const DFTBMethod& classToCopy) {
43  auto results = classToCopy.results();
44  instance.settings() = classToCopy.settings();
45  // Concurrent calling of the logger introduces race conditions
46  // that eventually trigger a segfault
47  instance.setStructure(*classToCopy.getStructure());
48  instance.results() = std::move(results);
49  instance.loadState(classToCopy.getState());
50  instance.setLog(classToCopy.getLog());
51  }
52  bool getZPVEInclusion() const final;
53 };
54 
55 } // namespace Sparrow
56 } // namespace Scine
57 
58 #endif // SPARROW_DFTBMETHODWRAPPER_H
Definition: DFTBMethodWrapper.h:17
DFTBMethodWrapper()
Constructor. It plays with the befriended states handler by giving it a *this reference.
This class contains the infos needed to perform a TD-DFTB calculation. This way excited states proper...
Definition: TDDFTBData.h:27
Utils::PropertyList possibleProperties() const final
Get the list of the possible properties to calculate analytically. Since it is the same for all DFTB...
Definition: DFTBMethodWrapper.cpp:20