8 #ifndef MMPARAMETRIZATION_DATABASEHELPER_H
9 #define MMPARAMETRIZATION_DATABASEHELPER_H
12 #include <unordered_set>
32 namespace MMParametrization {
33 struct ParametrizationData;
61 void resetAnalyzedCalculationsAndDetectExistingSubsequentCalculations();
66 bool analyzedCalculationsHasFailed(
const Database::Calculation& calculation)
const;
71 void addCalculationsToDatabaseForUnoptimizedStructures();
76 void collectResultsAndSubmitSubsequentCalculations();
83 int handleCompletedCalculations(std::shared_ptr<Database::Collection> calculations,
84 std::shared_ptr<Database::Collection> structures,
85 std::shared_ptr<Database::Collection> properties);
92 int handleFailedCalculations(std::shared_ptr<Database::Collection> calculations,
93 std::shared_ptr<Database::Collection> structures);
96 void addStructuresToDatabase();
100 void setNameOfHessianOrder();
104 void setNameOfStructureOptimizationOrder();
108 void setNameOfBondOrdersOrder();
112 void setNameOfAtomicChargesOrder();
116 bool mustCalculateAtomicChargesSeparately()
const;
120 void evaluatePriorities();
125 bool optimizedStructureIsValid(
int structureIndex)
const;
129 std::vector<std::unique_ptr<Database::ID>> structureIDs_;
131 int numberOfStructures_;
135 bool refineConnectivity_;
139 bool earlyTerminationEnabled_;
150 std::vector<int> failedCalculationsScoreForEachFragment_;
154 std::unordered_set<int> fragmentsWithHessianCalculationsInDatabase_;
156 std::unordered_set<int> fragmentsWithAtomicChargesCalculationsInDatabase_;
158 std::string referenceProgram_;
160 std::string referenceMethod_;
162 std::string referenceBasisSet_;
164 std::string nameOfStructureOptimizationOrder_;
166 std::string nameOfHessianOrder_;
168 std::string nameOfBondOrdersOrder_;
170 std::string nameOfAtomicChargesOrder_;
172 std::vector<int> priorities_;
176 std::shared_ptr<Utils::Settings> settings_;
178 std::unique_ptr<Database::Manager> database_;
186 #endif // MMPARAMETRIZATION_DATABASEHELPER_H
Definition: DatabaseHelper.h:35
DatabaseHelper(ParametrizationData &data, std::shared_ptr< Utils::Settings > settings, Core::Log &log)
Constructor.
Definition: DatabaseHelper.cpp:40
void runCalculationsAndCollectResults()
Runs structure optimizations and other reference calculations (Hessians, charges, bond orders) and sa...
Definition: DatabaseHelper.cpp:88
This struct holds all objects used inside the MM parametrization algorithm.
Definition: ParametrizationData.h:28
void dropDatabase()
Deletes the database.
Definition: DatabaseHelper.cpp:544
~DatabaseHelper()
Destructor.