8 #ifndef SWOOSE_QMMM_QMMMDATABASEHELPER_H
9 #define SWOOSE_QMMM_QMMMDATABASEHELPER_H
11 #include <Database/Manager.h>
13 #include <yaml-cpp/yaml.h>
14 #include <Eigen/Dense>
27 class BondOrderCollection;
38 using ForcesCollection = Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>;
51 const std::vector<QmmmModel>& qmmmReferenceModels,
const QmmmData& qmmmData);
61 std::string getParametersAsString()
const;
63 bool submitCalculation(
const QmmmModel& qmmmModel,
const Database::ID& structureID,
int qmmmModelIndex,
64 std::shared_ptr<Database::Collection> calculations,
double symmetryScore = 0.0,
65 double maxAllowedSymmetryScore = 0.0);
67 std::vector<ForcesCollection> collectCalculationResults(std::shared_ptr<Database::Collection> calculations,
68 std::shared_ptr<Database::Collection> structures,
69 std::shared_ptr<Database::Collection> properties);
75 std::unique_ptr<Database::Manager> database_;
77 const std::vector<QmmmModel>& qmmmModelCandidates_;
79 const std::vector<QmmmModel>& qmmmReferenceModels_;
93 #endif // SWOOSE_QMMM_QMMMDATABASEHELPER_H
Definition: QmmmReferenceDataManager.h:35
Holds the information about one QM/MM model: its structure, its QM atom indices, and its charge and s...
Definition: QmRegionSelector.h:30
QmmmDatabaseHelper(const Utils::Settings &settings, Core::Log &log, const Utils::AtomCollection &structure, const Utils::BondOrderCollection &bondOrders, const std::vector< QmmmModel > &qmmmModelCandidates, const std::vector< QmmmModel > &qmmmReferenceModels, const QmmmData &qmmmData)
Constructor.
Definition: QmmmDatabaseHelper.cpp:29
std::vector< ForcesCollection > calculateForces()
Calculates the forces for the QM/MM candidate and reference models.
Definition: QmmmDatabaseHelper.cpp:56
This class handles the submission and collection of results for QM/MM calculations via the database...
Definition: QmmmDatabaseHelper.h:44