Scine::Swoose  2.1.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 struct 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 class QmmmCalculator;
31 using ForcesCollection = Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>;
32 
38  public:
42  QmmmDirectCalculationsHelper(std::shared_ptr<QmmmCalculator> qmmmCalculator, const Utils::Settings& settings, Core::Log& log,
43  const Utils::AtomCollection& structure, const std::vector<QmmmModel>& qmmmModelCandidates,
44  const std::vector<QmmmModel>& qmmmReferenceModels, const QmmmData& qmmmData);
45 
50  std::vector<ForcesCollection> calculateForces();
51 
52  private:
53  // The settings.
54  const Utils::Settings& settings_;
55  // Logger.
56  Core::Log& log_;
57  // Molecular structure of the whole system
58  const Utils::AtomCollection& structure_;
59  // QM/MM model candidates
60  const std::vector<QmmmModel>& qmmmModelCandidates_;
61  // QM/MM reference models
62  const std::vector<QmmmModel>& qmmmReferenceModels_;
63  // The data calculated for the QM/MM candidate and reference models.
64  const QmmmData& qmmmData_;
65  std::shared_ptr<Qmmm::QmmmCalculator> qmmmCalculator_;
66 };
67 
68 } // namespace Qmmm
69 } // namespace Scine
70 
71 #endif // SWOOSE_QMMM_QMMMDIRECTCALCULATIONSHELPER_H
QmmmDirectCalculationsHelper(std::shared_ptr< QmmmCalculator > qmmmCalculator, 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:27
std::vector< ForcesCollection > calculateForces()
Calculates the forces for the QM/MM candidate and reference models.
Definition: QmmmDirectCalculationsHelper.cpp:42
Definition: QmmmReferenceDataManager.h:36
This class handles QM/MM calculations in the direct mode.
Definition: QmmmDirectCalculationsHelper.h:37