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