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.