8 #ifndef GAFFMOLECULARMECHANICSCALCULATOR_H
9 #define GAFFMOLECULARMECHANICSCALCULATOR_H
11 #include "../Interactions/AnglesEvaluator.h"
12 #include "../Interactions/BondsEvaluator.h"
13 #include "../Interactions/DihedralsEvaluator.h"
14 #include "../Interactions/ElectrostaticEvaluator.h"
15 #include "../Interactions/LennardJonesEvaluator.h"
16 #include "../MolecularMechanicsCalculator.h"
17 #include "../Topology/IndexedStructuralTopology.h"
24 class InteractionTermEliminator;
27 namespace MolecularMechanics {
29 class AtomTypesHolder;
33 struct ImproperDihedralType;
43 :
public Utils::CloneInterface<GaffMolecularMechanicsCalculator, MolecularMechanicsCalculator, Core::Calculator> {
45 static constexpr
const char* model =
"GAFF";
70 std::string
name()
const override;
87 std::unique_ptr<BondsEvaluator> bondsEvaluator_;
88 std::unique_ptr<AnglesEvaluator> anglesEvaluator_;
89 std::unique_ptr<DihedralsEvaluator> dihedralsEvaluator_;
90 std::unique_ptr<DihedralsEvaluator> improperDihedralsEvaluator_;
91 std::unique_ptr<ElectrostaticEvaluator> electrostaticEvaluator_;
92 std::unique_ptr<LennardJonesEvaluator> lennardJonesEvaluator_;
93 bool printContributionsMolecularMechanics_;
94 std::string atomicChargesFile_;
95 std::string atomTypesFile_;
96 bool onlyCalculateBondedContribution_;
97 bool detectBondsWithCovalentRadii_;
103 bool applyCutoffDuringInitialization_;
104 double nonCovalentCutoffRadius_;
105 std::string connectivityFilePath_;
106 std::string parameterFilePath_;
113 bool parameterFilePathHasBeenChanged_ =
false;
115 bool hessianMode_ =
false;
118 bool parametersHaveBeenSetInternally_ =
false;
123 void generatePotentialTerms(
const std::string& parameterPath);
129 #endif // GAFFMOLECULARMECHANICSCALCULATOR_H
Class containing the structural information about the connectivity of a system.
Definition: IndexedStructuralTopology.h:25
const Utils::Results & calculate(std::string description) override
The main function running calculations.
Definition: GaffMolecularMechanicsCalculator.cpp:97
Class containing the parameters for the GAFF model obtained after parsing a GAFF parameter file...
Definition: GaffParameters.h:38
~GaffMolecularMechanicsCalculator() override=default
Default Destructor.
std::string name() const override
Getter for the name of the Calculator.
Definition: GaffMolecularMechanicsCalculator.cpp:26
Calculator for the GAFF Molecular Mechanics method.
Definition: GaffMolecularMechanicsCalculator.h:42
Class containing the MM atom types of the atoms in a molecular system.
Definition: AtomTypesHolder.h:21
This class handles the elimination of MM interaction terms, which are already covered by the QM calcu...
Definition: InteractionTermEliminator.h:39
GaffMolecularMechanicsCalculator()
Constructor.
Definition: GaffMolecularMechanicsCalculator.cpp:30
void setStructure(const Utils::AtomCollection &structure) override
Changes the molecular structure to calculate.
Definition: GaffMolecularMechanicsCalculator.cpp:91