651 |
|
|
652 |
|
|
653 |
|
!! Does EAM pairwise Force calculation. |
654 |
< |
subroutine do_eam_pair(atom1,atom2,d,rij,r2,pot,f,do_pot,do_stress) |
654 |
> |
subroutine do_eam_pair(atom1, atom2, d, rij, r2, sw, vpair, fpair, & |
655 |
> |
pot, f, do_pot) |
656 |
|
!Arguments |
657 |
|
integer, intent(in) :: atom1, atom2 |
658 |
|
real( kind = dp ), intent(in) :: rij, r2 |
659 |
< |
real( kind = dp ) :: pot |
659 |
> |
real( kind = dp ) :: pot, sw, vpair |
660 |
|
real( kind = dp ), dimension(3,nLocal) :: f |
661 |
|
real( kind = dp ), intent(in), dimension(3) :: d |
662 |
< |
logical, intent(in) :: do_pot, do_stress |
662 |
> |
real( kind = dp ), intent(inout), dimension(3) :: fpair |
663 |
> |
|
664 |
> |
logical, intent(in) :: do_pot |
665 |
|
|
666 |
|
real( kind = dp ) :: drdx,drdy,drdz |
667 |
|
real( kind = dp ) :: d2 |
814 |
|
f(3,atom2) = f(3,atom2) - fz |
815 |
|
#endif |
816 |
|
|
817 |
+ |
vpair = vpair + phab |
818 |
+ |
fpair(1) = fpair(1) + fx |
819 |
+ |
fpair(2) = fpair(2) + fy |
820 |
+ |
fpair(3) = fpair(3) + fz |
821 |
+ |
|
822 |
|
if (nmflag) then |
823 |
|
|
824 |
|
drhoidr = drha |
842 |
|
drhojdr*drhojdr*d2frhodrhodrho(atom1) |
843 |
|
#endif |
844 |
|
end if |
837 |
– |
|
838 |
– |
|
845 |
|
|
846 |
< |
|
841 |
< |
if (do_stress) then |
842 |
< |
|
843 |
< |
#ifdef IS_MPI |
844 |
< |
id1 = tagRow(atom1) |
845 |
< |
id2 = tagColumn(atom2) |
846 |
< |
#else |
847 |
< |
id1 = atom1 |
848 |
< |
id2 = atom2 |
849 |
< |
#endif |
850 |
< |
|
851 |
< |
if (molMembershipList(id1) .ne. molMembershipList(id2)) then |
852 |
< |
|
853 |
< |
tau_Temp(1) = tau_Temp(1) - d(1) * fx |
854 |
< |
tau_Temp(2) = tau_Temp(2) - d(1) * fy |
855 |
< |
tau_Temp(3) = tau_Temp(3) - d(1) * fz |
856 |
< |
tau_Temp(4) = tau_Temp(4) - d(2) * fx |
857 |
< |
tau_Temp(5) = tau_Temp(5) - d(2) * fy |
858 |
< |
tau_Temp(6) = tau_Temp(6) - d(2) * fz |
859 |
< |
tau_Temp(7) = tau_Temp(7) - d(3) * fx |
860 |
< |
tau_Temp(8) = tau_Temp(8) - d(3) * fy |
861 |
< |
tau_Temp(9) = tau_Temp(9) - d(3) * fz |
862 |
< |
|
863 |
< |
virial_Temp = virial_Temp + & |
864 |
< |
(tau_Temp(1) + tau_Temp(5) + tau_Temp(9)) |
865 |
< |
|
866 |
< |
endif |
867 |
< |
endif |
868 |
< |
endif |
869 |
< |
|
870 |
< |
|
846 |
> |
endif |
847 |
|
end subroutine do_eam_pair |
848 |
|
|
849 |
|
|