ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic.F90
(Generate patch)

Comparing trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic.F90 (file contents):
Revision 2394 by chrisfen, Sun Oct 23 21:08:08 2005 UTC vs.
Revision 2395 by chrisfen, Mon Oct 24 14:06:36 2005 UTC

# Line 726 | Line 726 | contains
726               duduz_j(2) = duduz_j(2) - sw*pref*( ri2*yhat - d(2)*rcuti3 )
727               duduz_j(3) = duduz_j(3) - sw*pref*( ri2*zhat - d(3)*rcuti3 )
728  
729 +          elseif (summationMethod .eq. REACTION_FIELD) then
730 +             ri2 = ri * ri
731 +             ri3 = ri2 * ri
732 +    
733 +             pref = pre12 * q_i * mu_j
734 +             vterm = - pref * ct_j * ( ri2 - preRF2*rij )
735 +             vpair = vpair + vterm
736 +             epot = epot + sw*vterm
737 +            
738 +             !! this has a + sign in the () because the rij vector is
739 +             !! r_j - r_i and the charge-dipole potential takes the origin
740 +             !! as the point dipole, which is atom j in this case.
741 +            
742 +             dudx = dudx - sw*pref*( ri3*(uz_j(1) - 3.0d0*ct_j*xhat) - &
743 +                                     preRF2*uz_j(1) )
744 +             dudy = dudy - sw*pref*( ri3*(uz_j(2) - 3.0d0*ct_j*yhat) - &
745 +                                     preRF2*uz_j(2) )
746 +             dudz = dudz - sw*pref*( ri3*(uz_j(3) - 3.0d0*ct_j*zhat) - &
747 +                                     preRF2*uz_j(3) )        
748 +             duduz_j(1) = duduz_j(1) - sw*pref * xhat * ( ri2 - preRF2*rij )
749 +             duduz_j(2) = duduz_j(2) - sw*pref * yhat * ( ri2 - preRF2*rij )
750 +             duduz_j(3) = duduz_j(3) - sw*pref * zhat * ( ri2 - preRF2*rij )
751 +
752            else
753               if (j_is_SplitDipole) then
754                  BigR = sqrt(r2 + 0.25_dp * d_j * d_j)
# Line 892 | Line 915 | contains
915               duduz_i(2) = duduz_i(2) - sw*pref*( ri2*yhat - d(2)*rcuti3 )
916               duduz_i(3) = duduz_i(3) - sw*pref*( ri2*zhat - d(3)*rcuti3 )
917  
918 +          elseif (summationMethod .eq. REACTION_FIELD) then
919 +             ri2 = ri * ri
920 +             ri3 = ri2 * ri
921 +
922 +             pref = pre12 * q_j * mu_i
923 +             vterm = pref * ct_i * ( ri2 - preRF*rij )
924 +             vpair = vpair + vterm
925 +             epot = epot + sw*vterm
926 +            
927 +             dudx = dudx + sw*pref * ri3 * ( uz_i(1) - 3.0d0*ct_i*xhat - &
928 +                                             preRF*uz_i(1) )
929 +             dudy = dudy + sw*pref * ri3 * ( uz_i(2) - 3.0d0*ct_i*yhat - &
930 +                                             preRF*uz_i(2) )
931 +             dudz = dudz + sw*pref * ri3 * ( uz_i(3) - 3.0d0*ct_i*zhat - &
932 +                                             preRF*uz_i(3) )
933 +            
934 +             duduz_i(1) = duduz_i(1) + sw*pref * xhat * ( ri2 - preRF*rij )
935 +             duduz_i(2) = duduz_i(2) + sw*pref * yhat * ( ri2 - preRF*rij )
936 +             duduz_i(3) = duduz_i(3) + sw*pref * zhat * ( ri2 - preRF*rij )
937 +
938            else
939               if (i_is_SplitDipole) then
940                  BigR = sqrt(r2 + 0.25_dp * d_i * d_i)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines