646 |
|
if (i_is_Charge) then |
647 |
|
|
648 |
|
if (j_is_Charge) then |
649 |
< |
|
650 |
< |
if (summationMethod .eq. SHIFTED_POTENTIAL) then |
651 |
< |
if (screeningMethod .eq. DAMPED) then |
652 |
< |
f0 = derfc(dampingAlpha*rij) |
653 |
< |
varEXP = exp(-alpha2*rij*rij) |
654 |
< |
f1 = alphaPi*rij*varEXP + f0c |
655 |
< |
endif |
649 |
> |
if (screeningMethod .eq. DAMPED) then |
650 |
> |
f0 = derfc(dampingAlpha*rij) |
651 |
> |
varEXP = exp(-alpha2*rij*rij) |
652 |
> |
f1 = alphaPi*rij*varEXP + f0 |
653 |
> |
endif |
654 |
|
|
655 |
< |
vterm = pre11 * q_i * q_j * (riji*f0 - rcuti*f0c) |
658 |
< |
vpair = vpair + vterm |
659 |
< |
epot = epot + sw*vterm |
660 |
< |
|
661 |
< |
dudr = -sw*pre11*q_i*q_j * riji * riji * f1 |
662 |
< |
|
663 |
< |
dudx = dudx + dudr * xhat |
664 |
< |
dudy = dudy + dudr * yhat |
665 |
< |
dudz = dudz + dudr * zhat |
655 |
> |
preVal = pre11 * q_i * q_j |
656 |
|
|
657 |
+ |
if (summationMethod .eq. SHIFTED_POTENTIAL) then |
658 |
+ |
vterm = preVal * (riji*f0 - rcuti*f0c) |
659 |
+ |
|
660 |
+ |
dudr = -sw * preVal * riji * riji * f1 |
661 |
+ |
|
662 |
|
elseif (summationMethod .eq. SHIFTED_FORCE) then |
663 |
< |
if (screeningMethod .eq. DAMPED) then |
669 |
< |
f0 = derfc(dampingAlpha*rij) |
670 |
< |
varEXP = exp(-alpha2*rij*rij) |
671 |
< |
f1 = alphaPi*rij*varEXP + f0 |
672 |
< |
endif |
673 |
< |
|
674 |
< |
vterm = pre11 * q_i * q_j * ( riji*f0 - rcuti*f0c + & |
663 |
> |
vterm = preVal * ( riji*f0 - rcuti*f0c + & |
664 |
|
f1c*rcuti2*(rij-defaultCutoff) ) |
665 |
|
|
666 |
< |
vpair = vpair + vterm |
667 |
< |
epot = epot + sw*vterm |
679 |
< |
|
680 |
< |
dudr = -sw*pre11*q_i*q_j * (riji*riji*f1 - rcuti2*f1c) |
681 |
< |
|
682 |
< |
dudx = dudx + dudr * xhat |
683 |
< |
dudy = dudy + dudr * yhat |
684 |
< |
dudz = dudz + dudr * zhat |
685 |
< |
|
666 |
> |
dudr = -sw*preVal * (riji*riji*f1 - rcuti2*f1c) |
667 |
> |
|
668 |
|
elseif (summationMethod .eq. REACTION_FIELD) then |
687 |
– |
preVal = pre11 * q_i * q_j |
669 |
|
rfVal = preRF*rij*rij |
670 |
|
vterm = preVal * ( riji + rfVal ) |
671 |
|
|
691 |
– |
vpair = vpair + vterm |
692 |
– |
epot = epot + sw*vterm |
693 |
– |
|
672 |
|
dudr = sw * preVal * ( 2.0d0*rfVal - riji )*riji |
673 |
< |
|
696 |
< |
dudx = dudx + dudr * xhat |
697 |
< |
dudy = dudy + dudr * yhat |
698 |
< |
dudz = dudz + dudr * zhat |
699 |
< |
|
673 |
> |
|
674 |
|
else |
675 |
< |
vterm = pre11 * q_i * q_j * riji |
702 |
< |
vpair = vpair + vterm |
703 |
< |
epot = epot + sw*vterm |
675 |
> |
vterm = preVal * riji*f0 |
676 |
|
|
677 |
< |
dudr = - sw * vterm * riji |
678 |
< |
|
707 |
< |
dudx = dudx + dudr * xhat |
708 |
< |
dudy = dudy + dudr * yhat |
709 |
< |
dudz = dudz + dudr * zhat |
710 |
< |
|
677 |
> |
dudr = - sw * preVal * riji*riji*f1 |
678 |
> |
|
679 |
|
endif |
680 |
|
|
681 |
+ |
vpair = vpair + vterm |
682 |
+ |
epot = epot + sw*vterm |
683 |
+ |
|
684 |
+ |
dudx = dudx + dudr * xhat |
685 |
+ |
dudy = dudy + dudr * yhat |
686 |
+ |
dudz = dudz + dudr * zhat |
687 |
+ |
|
688 |
|
endif |
689 |
|
|
690 |
|
if (j_is_Dipole) then |