--- branches/development/src/primitives/RigidBody.cpp 2013/01/30 14:43:08 1844 +++ branches/development/src/primitives/RigidBody.cpp 2013/05/15 15:09:35 1874 @@ -35,7 +35,7 @@ * * [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). + * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ @@ -290,6 +290,8 @@ namespace OpenMD { for (unsigned int i = 0; i < atoms_.size(); i++) { + atype = atoms_[i]->getAtomType(); + afrc = atoms_[i]->getFrc(); apos = atoms_[i]->getPos(); rpos = apos - pos; @@ -307,6 +309,7 @@ namespace OpenMD { atrq = atoms_[i]->getTrq(); trq += atrq; } + if ((sl & DataStorage::dslElectricField) && (atype->isElectrostatic())) { ef += atoms_[i]->getElectricField(); eCount++; @@ -352,7 +355,7 @@ namespace OpenMD { if (atoms_[i]->isDirectional()) { - dAtom = (DirectionalAtom *) atoms_[i]; + dAtom = dynamic_cast(atoms_[i]); dAtom->setA(refOrients_[i].transpose() * a); } @@ -379,7 +382,7 @@ namespace OpenMD { if (atoms_[i]->isDirectional()) { - dAtom = (DirectionalAtom *) atoms_[i]; + dAtom = dynamic_cast(atoms_[i]); dAtom->setA(refOrients_[i].transpose() * a, frame); }