ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/nonbonded/Electrostatic.cpp
(Generate patch)

Comparing trunk/src/nonbonded/Electrostatic.cpp (file contents):
Revision 1932 by gezelter, Wed Aug 21 16:52:56 2013 UTC vs.
Revision 1938 by gezelter, Thu Oct 31 15:32:17 2013 UTC

# Line 39 | Line 39
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 + #ifdef IS_MPI
44 + #include <mpi.h>
45 + #endif
46  
47   #include <stdio.h>
48   #include <string.h>
# Line 57 | Line 61
61   #include "math/erfc.hpp"
62   #include "math/SquareMatrix.hpp"
63   #include "primitives/Molecule.hpp"
60 #ifdef IS_MPI
61 #include <mpi.h>
62 #endif
64  
65   namespace OpenMD {
66    
# Line 987 | Line 988 | namespace OpenMD {
988          F  -= pref * (rdDa * rdDb) * (dv22 - 2.0*v22or) * rhat;
989          Ta += pref * ( v21 * DaxDb - v22 * rdDb * rxDa);
990          Tb += pref * (-v21 * DaxDb - v22 * rdDa * rxDb);
990
991          // Even if we excluded this pair from direct interactions, we
992          // still have the reaction-field-mediated dipole-dipole
993          // interaction:
# Line 1047 | Line 1047 | namespace OpenMD {
1047          trQaQb = QaQb.trace();
1048          rQaQb = rhat * QaQb;
1049          QaQbr = QaQb * rhat;
1050 <        QaxQb = cross(Q_a, Q_b);
1050 >        QaxQb = mCross(Q_a, Q_b);
1051          rQaQbr = dot(rQa, Qbr);
1052          rQaxQbr = cross(rQa, Qbr);
1053          
# Line 1078 | Line 1078 | namespace OpenMD {
1078          //             + 4.0 * cross(rhat, QbQar)
1079  
1080          Tb += pref * 2.0 * cross(rhat,Qbr) * rdQar * v43;
1081
1081        }
1082      }
1083  
# Line 1441 | Line 1440 | namespace OpenMD {
1440                  if (data.is_Quadrupole) {
1441                    Q = atom->getQuadrupole() * mPoleConverter;
1442                    Qk = Q * kVec;                  
1443 <                  qk = dot(Qk, kVec);
1444 <                  qxk[i] = cross(Qk, kVec);
1443 >                  qk = dot(kVec, Qk);
1444 >                  qxk[i] = -cross(kVec, Qk);
1445                    qkc[i] = qk * ckr[i];
1446                    qks[i] = qk * skr[i];
1447                  }              
# Line 1501 | Line 1500 | namespace OpenMD {
1500                  RealType qtrq1 = AK[kk]*(skr[i]*(ckcs-dkss-qkcs)
1501                                           -ckr[i]*(ckss+dkcs-qkss));
1502                  RealType qtrq2 = 2.0*AK[kk]*(ckr[i]*(ckcs-dkss-qkcs)
1503 <                                             +skr[i]*(ckss+dkcs-qkss));
1503 >                                            +skr[i]*(ckss+dkcs-qkss));
1504                
1505                  atom->addFrc( 4.0 * rvol * qfrc * kVec );
1506                  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines