Scine::Swoose  1.0.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
QmmmDirectCalculationsHelper.h
Go to the documentation of this file.
1 
8 #ifndef SWOOSE_QMMM_QMMMDIRECTCALCULATIONSHELPER_H
9 #define SWOOSE_QMMM_QMMMDIRECTCALCULATIONSHELPER_H
10 
11 #include <Eigen/Dense>
12 #include <memory>
13 #include <vector>
14 
15 namespace Scine {
16 
17 namespace Core {
18 class Log;
19 } // namespace Core
20 
21 namespace Utils {
22 class Settings;
23 class AtomCollection;
24 class BondOrderCollection;
25 } // namespace Utils
26 
27 namespace Qmmm {
28 struct QmmmModel;
29 struct QmmmData;
30 using ForcesCollection = Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>;
31 
37  public:
41  QmmmDirectCalculationsHelper(const Utils::Settings& settings, Core::Log& log, const Utils::AtomCollection& structure,
42  const std::vector<QmmmModel>& qmmmModelCandidates,
43  const std::vector<QmmmModel>& qmmmReferenceModels, const QmmmData& qmmmData);
44 
49  std::vector<ForcesCollection> calculateForces();
50 
51  private:
52  // The settings.
53  const Utils::Settings& settings_;
54  // Logger.
55  Core::Log& log_;
56  // Molecular structure of the whole system
57  const Utils::AtomCollection& structure_;
58  // QM/MM model candidates
59  const std::vector<QmmmModel>& qmmmModelCandidates_;
60  // QM/MM reference models
61  const std::vector<QmmmModel>& qmmmReferenceModels_;
62  // The data calculated for the QM/MM candidate and reference models.
63  const QmmmData& qmmmData_;
64 };
65 
66 } // namespace Qmmm
67 } // namespace Scine
68 
69 #endif // SWOOSE_QMMM_QMMMDIRECTCALCULATIONSHELPER_H
QmmmDirectCalculationsHelper(const Utils::Settings &settings, Core::Log &log, const Utils::AtomCollection &structure, const std::vector< QmmmModel > &qmmmModelCandidates, const std::vector< QmmmModel > &qmmmReferenceModels, const QmmmData &qmmmData)
Constructor.
Definition: QmmmDirectCalculationsHelper.cpp:26
std::vector< ForcesCollection > calculateForces()
Calculates the forces for the QM/MM candidate and reference models.
Definition: QmmmDirectCalculationsHelper.cpp:39
Definition: QmmmReferenceDataManager.h:35
This class handles QM/MM calculations in the direct mode.
Definition: QmmmDirectCalculationsHelper.h:36