48#include "flucq/FluctuatingChargeParameters.hpp"
55 FluctuatingChargeParameters::FluctuatingChargeParameters() {
56 DefineOptionalParameterWithDefaultValue(Propagator,
"propagator",
"Damped");
57 DefineOptionalParameterWithDefaultValue(DoInitialOptimization,
58 "doInitialOptimization",
true);
59 DefineOptionalParameterWithDefaultValue(ChargeOptimizationMethod,
"method",
61 DefineOptionalParameterWithDefaultValue(Friction,
"friction", 1600.0);
62 DefineOptionalParameterWithDefaultValue(Tolerance,
"tolerance", 1.0e-5);
63 DefineOptionalParameterWithDefaultValue(MaxIterations,
"maxIterations",
65 DefineOptionalParameterWithDefaultValue(TargetTemp,
"targetTemp", 1.0e-6);
66 DefineOptionalParameterWithDefaultValue(TauThermostat,
"tauThermostat",
68 DefineOptionalParameterWithDefaultValue(DragCoefficient,
"dragCoefficient",
70 DefineOptionalParameterWithDefaultValue(ConstrainRegions,
71 "constrainRegions",
false);
72 DefineOptionalParameterWithDefaultValue(InitialStepSize,
"initialStepSize",
76 void FluctuatingChargeParameters::validate() {
77 CheckParameter(Propagator,
78 isEqualIgnoreCase(
"Damped") || isEqualIgnoreCase(
"NVT") ||
79 isEqualIgnoreCase(
"Langevin") ||
80 isEqualIgnoreCase(
"Minimizer") ||
81 isEqualIgnoreCase(
"NVE") || isEqualIgnoreCase(
"Exact"));
82 CheckParameter(Friction, isNonNegative());
83 CheckParameter(Tolerance, isPositive());
84 CheckParameter(ChargeOptimizationMethod, isEqualIgnoreCase(
"SD") ||
85 isEqualIgnoreCase(
"CG") ||
86 isEqualIgnoreCase(
"BFGS"));
87 CheckParameter(MaxIterations, isPositive());
88 CheckParameter(TargetTemp, isNonNegative());
89 CheckParameter(TauThermostat, isPositive());
90 CheckParameter(DragCoefficient, isPositive());
93 CheckParameter(InitialStepSize,
94 isGreaterThan(zero) && isLessThanOrEqualTo(one));
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.