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

Comparing branches/development/src/nonbonded/Electrostatic.cpp (file contents):
Revision 1825 by gezelter, Wed Jan 9 19:27:52 2013 UTC vs.
Revision 1842 by gezelter, Tue Jan 29 19:10:04 2013 UTC

# Line 808 | Line 808 | namespace OpenMD {
808        
809        if (idat.excluded) {
810          *(idat.skippedCharge2) += C_a;
811 +      } else {
812 +        // only do the field if we're not excluded:
813 +        Eb -= C_a *  pre11_ * v02 * rhat;
814        }
812      Eb -= C_a *  pre11_ * v02 * rhat;
815      }
816      
817      if (a_is_Dipole) {
818        D_a = *(idat.dipole1);
819        rdDa = dot(rhat, D_a);
820        rxDa = cross(rhat, D_a);
821 <      Eb -=  pre12_ * (v13 * rdDa * rhat + v12 * D_a);
821 >      if (!idat.excluded)
822 >        Eb -=  pre12_ * (v13 * rdDa * rhat + v12 * D_a);
823      }
824      
825      if (a_is_Quadrupole) {
# Line 826 | Line 829 | namespace OpenMD {
829        rQa = rhat * Q_a;
830        rdQar = dot(rhat, Qar);
831        rxQar = cross(rhat, Qar);
832 <      Eb -= pre14_ * ((trQa * rhat + 2.0 * Qar) * v23 + rdQar * rhat * v24);
832 >      if (!idat.excluded)
833 >        Eb -= pre14_ * ((trQa * rhat + 2.0 * Qar) * v23 + rdQar * rhat * v24);
834      }
835      
836      if (b_is_Charge) {
# Line 837 | Line 841 | namespace OpenMD {
841        
842        if (idat.excluded) {
843          *(idat.skippedCharge1) += C_b;
844 +      } else {
845 +        // only do the field if we're not excluded:
846 +        Ea += C_b *  pre11_ * v02 * rhat;
847        }
841      Ea += C_b *  pre11_ * v02 * rhat;
848      }
849      
850      if (b_is_Dipole) {
851        D_b = *(idat.dipole2);
852        rdDb = dot(rhat, D_b);
853        rxDb = cross(rhat, D_b);
854 <      Ea += pre12_ * (v13 * rdDb * rhat + v12 * D_b);
854 >      if (!idat.excluded)
855 >        Ea += pre12_ * (v13 * rdDb * rhat + v12 * D_b);
856      }
857      
858      if (b_is_Quadrupole) {
# Line 855 | Line 862 | namespace OpenMD {
862        rQb = rhat * Q_b;
863        rdQbr = dot(rhat, Qbr);
864        rxQbr = cross(rhat, Qbr);
865 <      Ea += pre14_ * ((trQb * rhat + 2.0 * Qbr) * v23 + rdQbr * rhat * v24);
865 >      if (!idat.excluded)
866 >        Ea += pre14_ * ((trQb * rhat + 2.0 * Qbr) * v23 + rdQbr * rhat * v24);
867      }
868      
869      if ((a_is_Fluctuating || b_is_Fluctuating) && idat.excluded) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines