8 #ifndef MMPARAMETRIZATION_OPTIMIZATIONSETUP_H
9 #define MMPARAMETRIZATION_OPTIMIZATIONSETUP_H
22 namespace MMParametrization {
23 struct ParametrizationData;
70 std::vector<Eigen::RowVector3d> atomIndicesToPositions(std::vector<int> indices,
int numberOfInitialCandidateFragments);
74 void setEquilibriumValues();
78 void setAtomicCharges();
82 void setNonCovalentParameters();
86 void setC6Parameters();
90 void setConstantDihedralParameters();
94 void setInitialGuessForForceConstants();
99 template<
typename M,
typename T>
100 double getMeanValueForEquilibriumValue(
const M& map,
const T& parameterType)
const;
102 double getPhaseShift(
int atom1,
int atom2,
int periodicity);
104 int getPeriodicity(
int atom1,
int atom2)
const;
106 int gcd(
int n1,
int n2)
const;
108 static constexpr
double improperDihedralForceConstantForPlanarGroups_ = 50.0;
112 std::shared_ptr<Utils::Settings> settings_;
116 std::unique_ptr<FragmentDataDistributor> fragmentDataDistributor_;
118 static constexpr
double initialBondForceConstant_ = 700.0;
119 static constexpr
double initialAngleForceConstant_ = 120.0;
120 static constexpr
double initialDihedralHalfBarrierHeight_ = 0.5;
122 static constexpr
double initialImproperDihedralForceConstantForNonPlanarGroups_ = 0.0;
131 static constexpr
double parameterValueInUninitializedState_ = -1.0;
137 #endif // MMPARAMETRIZATION_OPTIMIZATIONSETUP_H
static double getInitialAngleForceConstant()
Getter for the initial value that is used for the force constants of angles.
Definition: OptimizationSetup.cpp:405
OptimizationSetup(ParametrizationData &data, std::shared_ptr< Utils::Settings > settings, Core::Log &log)
Constructor.
Definition: OptimizationSetup.cpp:27
void generateInitialParameters()
This function generates the initial MM parameters.
Definition: OptimizationSetup.cpp:32
static double getImproperDihedralForceConstantForPlanarGroups()
Getter for the constant value that is used for the force constants of improper dihedrals.
Definition: OptimizationSetup.cpp:393
static double getInitialDihedralHalfBarrierHeight()
Getter for the initial value that is used for the force constants of dihedral angles.
Definition: OptimizationSetup.cpp:401
static double getInitialBondForceConstant()
Getter for the initial value that is used for the force constants of bonds.
Definition: OptimizationSetup.cpp:409
static double getInitialImproperDihedralForceConstantForNonPlanarGroups()
Getter for the initial value that is used for the force constants of improper dihedrals of non-planar...
Definition: OptimizationSetup.cpp:397
This struct holds all objects used inside the MM parametrization algorithm.
Definition: ParametrizationData.h:29
This class sets up the initial MM parameters. The force constants will be optimized after that...
Definition: OptimizationSetup.h:29