--- trunk/src/nonbonded/Electrostatic.cpp 2013/08/21 16:52:56 1932 +++ trunk/src/nonbonded/Electrostatic.cpp 2013/10/31 15:32:17 1938 @@ -39,6 +39,10 @@ * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ + +#ifdef IS_MPI +#include +#endif #include #include @@ -57,9 +61,6 @@ #include "math/erfc.hpp" #include "math/SquareMatrix.hpp" #include "primitives/Molecule.hpp" -#ifdef IS_MPI -#include -#endif namespace OpenMD { @@ -987,7 +988,6 @@ namespace OpenMD { F -= pref * (rdDa * rdDb) * (dv22 - 2.0*v22or) * rhat; Ta += pref * ( v21 * DaxDb - v22 * rdDb * rxDa); Tb += pref * (-v21 * DaxDb - v22 * rdDa * rxDb); - // Even if we excluded this pair from direct interactions, we // still have the reaction-field-mediated dipole-dipole // interaction: @@ -1047,7 +1047,7 @@ namespace OpenMD { trQaQb = QaQb.trace(); rQaQb = rhat * QaQb; QaQbr = QaQb * rhat; - QaxQb = cross(Q_a, Q_b); + QaxQb = mCross(Q_a, Q_b); rQaQbr = dot(rQa, Qbr); rQaxQbr = cross(rQa, Qbr); @@ -1078,7 +1078,6 @@ namespace OpenMD { // + 4.0 * cross(rhat, QbQar) Tb += pref * 2.0 * cross(rhat,Qbr) * rdQar * v43; - } } @@ -1441,8 +1440,8 @@ namespace OpenMD { if (data.is_Quadrupole) { Q = atom->getQuadrupole() * mPoleConverter; Qk = Q * kVec; - qk = dot(Qk, kVec); - qxk[i] = cross(Qk, kVec); + qk = dot(kVec, Qk); + qxk[i] = -cross(kVec, Qk); qkc[i] = qk * ckr[i]; qks[i] = qk * skr[i]; } @@ -1501,7 +1500,7 @@ namespace OpenMD { RealType qtrq1 = AK[kk]*(skr[i]*(ckcs-dkss-qkcs) -ckr[i]*(ckss+dkcs-qkss)); RealType qtrq2 = 2.0*AK[kk]*(ckr[i]*(ckcs-dkss-qkcs) - +skr[i]*(ckss+dkcs-qkss)); + +skr[i]*(ckss+dkcs-qkss)); atom->addFrc( 4.0 * rvol * qfrc * kVec );