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) |
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) |