--- branches/development/src/UseTheForce/ForceField.cpp 2011/09/14 21:15:17 1629 +++ branches/development/src/UseTheForce/ForceField.cpp 2012/05/18 21:44:02 1710 @@ -36,7 +36,8 @@ * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). - * [4] Vardeman & Gezelter, in progress (2009). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ /** @@ -51,6 +52,8 @@ #include "UseTheForce/ForceField.hpp" #include "utils/simError.h" #include "utils/Tuple.hpp" +#include "types/LennardJonesAdapter.hpp" + namespace OpenMD { ForceField::ForceField() { @@ -634,34 +637,11 @@ namespace OpenMD { } RealType ForceField::getRcutFromAtomType(AtomType* at) { - /**@todo */ - GenericData* data; RealType rcut = 0.0; - if (at->isLennardJones()) { - data = at->getPropertyByName("LennardJones"); - if (data != NULL) { - LJParamGenericData* ljData = dynamic_cast(data); - - if (ljData != NULL) { - LJParam ljParam = ljData->getData(); - - //by default use 2.5*sigma as cutoff radius - rcut = 2.5 * ljParam.sigma; - - } else { - sprintf( painCave.errMsg, - "Can not cast GenericData to LJParam\n"); - painCave.severity = OPENMD_ERROR; - painCave.isFatal = 1; - simError(); - } - } else { - sprintf( painCave.errMsg, "Can not find Parameters for LennardJones\n"); - painCave.severity = OPENMD_ERROR; - painCave.isFatal = 1; - simError(); - } + LennardJonesAdapter lja = LennardJonesAdapter(at); + if (lja.isLennardJones()) { + rcut = 2.5 * lja.getSigma(); } return rcut; }