Scine::Sparrow  3.1.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 
17 class DFTBMethodWrapper : public Utils::CloneInterface<Utils::Abstract<DFTBMethodWrapper>, GenericMethodWrapper> {
18  public:
24  ~DFTBMethodWrapper() override;
31  TDDFTBData getTDDFTBData() const;
32 
33  private:
34  void assembleResults(const std::string& description) final;
35 
36  protected:
37  virtual TDDFTBData getTDDFTBDataImpl() const = 0;
38 
39  // Extracted method from all copy constructors and copy assignment operators.
40  template<class DFTBMethod>
41  void copyInto(DFTBMethod& instance, const DFTBMethod& classToCopy) {
42  auto results = classToCopy.results();
43  instance.settings() = classToCopy.settings();
44  // Concurrent calling of the logger introduces race conditions
45  // that eventually trigger a segfault
46  instance.setStructure(*classToCopy.getStructure());
47  instance.results() = std::move(results);
48  instance.loadState(classToCopy.getState());
49  instance.setLog(classToCopy.getLog());
50  }
51  bool getZPVEInclusion() const final;
52 };
53 
54 } // namespace Sparrow
55 } // namespace Scine
56 
57 #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