| 36 |  | * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). | 
| 37 |  | * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). | 
| 38 |  | * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). | 
| 39 | < | * [4]  Vardeman & Gezelter, in progress (2009). | 
| 39 | > | * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010). | 
| 40 | > | * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). | 
| 41 |  | */ | 
| 42 |  |  | 
| 43 |  | #ifndef IO_FORCEFIELDOPTIONS_HPP | 
| 44 |  | #define IO_FORCEFIELDOPTIONS_HPP | 
| 45 |  | #include "utils/simError.h" | 
| 46 | + | #include "types/DataHolder.hpp" | 
| 47 |  | #include "utils/ParameterManager.hpp" | 
| 48 |  | #include "utils/StringUtils.hpp" | 
| 49 |  | #include "io/ParamConstraint.hpp" | 
| 48 | – | #define __OPENMD_C | 
| 49 | – | #include "UseTheForce/fForceOptions.h" | 
| 50 |  |  | 
| 51 |  | namespace OpenMD { | 
| 52 |  |  | 
| 53 | < | class ForceFieldOptions { | 
| 53 | > | class ForceFieldOptions : public DataHolder { | 
| 54 |  | DeclareParameter(Name, std::string); | 
| 55 |  | DeclareParameter(vdWtype, std::string); | 
| 56 |  | DeclareParameter(DistanceMixingRule, std::string); | 
| 70 |  | DeclareParameter(electrostatic14scale, RealType); | 
| 71 |  | DeclareParameter(GayBerneMu, RealType); | 
| 72 |  | DeclareParameter(GayBerneNu, RealType); | 
| 73 | + | DeclareParameter(EAMMixingMethod, std::string); | 
| 74 |  |  | 
| 75 |  | public: | 
| 76 |  | ForceFieldOptions(); | 
| 82 |  | CheckParameter(DistanceMixingRule, isEqualIgnoreCase(std::string("arithmetic")) || isEqualIgnoreCase(std::string("geometric")) || isEqualIgnoreCase(std::string("cubic"))); | 
| 83 |  | CheckParameter(DistanceType, isEqualIgnoreCase(std::string("sigma")) || isEqualIgnoreCase(std::string("Rmin"))); | 
| 84 |  | CheckParameter(EnergyMixingRule, isEqualIgnoreCase(std::string("arithmetic")) || isEqualIgnoreCase(std::string("geometric")) || isEqualIgnoreCase(std::string("hhg"))); | 
| 85 | < | CheckParameter(TorsionAngleConvention, isEqualIgnoreCase(std::string("180 is trans")) || isEqualIgnoreCase(std::string("0 is trans"))); | 
| 85 | > | CheckParameter(TorsionAngleConvention, isEqualIgnoreCase(std::string("180_is_trans")) || isEqualIgnoreCase(std::string("0_is_trans"))); | 
| 86 |  | CheckParameter(CutoffPolicy, isEqualIgnoreCase(std::string("MIX")) || isEqualIgnoreCase(std::string("MAX")) || isEqualIgnoreCase(std::string("TRADITIONAL"))); | 
| 87 | + | CheckParameter(EAMMixingMethod, isEqualIgnoreCase(std::string("JOHNSON")) || isEqualIgnoreCase(std::string("DAW"))); | 
| 88 |  | } | 
| 89 |  |  | 
| 90 |  | bool setData(const std::string& keyword, const std::string& value) { | 
| 118 |  | return result; | 
| 119 |  | } | 
| 120 |  |  | 
| 119 | – | void makeFortranOptions(ForceOptions & fortranForceOptions); | 
| 121 |  | private: | 
| 122 |  | typedef std::map<std::string, ParameterBase*> ParamMap; | 
| 123 |  | ParamMap parameters_; |