ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/calc_gb.F90
(Generate patch)

Comparing:
branches/mmeineke/OOPSE/libmdtools/calc_gb.F90 (file contents), Revision 377 by mmeineke, Fri Mar 21 17:42:12 2003 UTC vs.
trunk/OOPSE/libmdtools/calc_gb.F90 (file contents), Revision 611 by gezelter, Tue Jul 15 17:10:50 2003 UTC

# Line 1 | Line 1
1   module gb_pair
2    use force_globals
3    use definitions
4 +  use simulation
5   #ifdef IS_MPI
6    use mpiSimulation
7   #endif
# Line 53 | Line 54 | contains
54      real (kind=dp), intent(inout) :: r, r2
55      real (kind=dp), dimension(3), intent(in) :: d
56      real (kind=dp) :: pot
57 <    real (kind=dp), dimension(:,:) :: u_l
58 <    real (kind=dp), dimension(:,:) :: f
59 <    real (kind=dp), dimension(:,:) :: t
57 >    real (kind=dp), dimension(3,getNlocal()) :: u_l
58 >    real (kind=dp), dimension(3,getNlocal()) :: f
59 >    real (kind=dp), dimension(3,getNlocal()) :: t
60      logical, intent(in) :: do_pot, do_stress
61      real (kind = dp), dimension(3) :: ul1
62      real (kind = dp), dimension(3) :: ul2
# Line 351 | Line 352 | contains
352   #endif
353      
354      if (do_stress) then          
355 <       tau_Temp(1) = tau_Temp(1) + dUdx * d(1)
356 <       tau_Temp(2) = tau_Temp(2) + dUdx * d(2)
357 <       tau_Temp(3) = tau_Temp(3) + dUdx * d(3)
358 <       tau_Temp(4) = tau_Temp(4) + dUdy * d(1)
359 <       tau_Temp(5) = tau_Temp(5) + dUdy * d(2)
360 <       tau_Temp(6) = tau_Temp(6) + dUdy * d(3)
361 <       tau_Temp(7) = tau_Temp(7) + dUdz * d(1)
362 <       tau_Temp(8) = tau_Temp(8) + dUdz * d(2)
363 <       tau_Temp(9) = tau_Temp(9) + dUdz * d(3)
364 <       virial_Temp = virial_Temp + (tau_Temp(1) + tau_Temp(5) + tau_Temp(9))
355 >       if (molMembershipList(atom1) .ne. molMembershipList(atom2)) then
356 >
357 >          ! because the d vector is the rj - ri vector, and
358 >          ! because dUdx, dUdy, dUdz are the force on atom i, we need a
359 >          ! negative sign here:
360 >          
361 >          tau_Temp(1) = tau_Temp(1) - d(1) * dUdx
362 >          tau_Temp(2) = tau_Temp(2) - d(1) * dUdy
363 >          tau_Temp(3) = tau_Temp(3) - d(1) * dUdz
364 >          tau_Temp(4) = tau_Temp(4) - d(2) * dUdx
365 >          tau_Temp(5) = tau_Temp(5) - d(2) * dUdy
366 >          tau_Temp(6) = tau_Temp(6) - d(2) * dUdz
367 >          tau_Temp(7) = tau_Temp(7) - d(3) * dUdx
368 >          tau_Temp(8) = tau_Temp(8) - d(3) * dUdy
369 >          tau_Temp(9) = tau_Temp(9) - d(3) * dUdz
370 >          
371 >          virial_Temp = virial_Temp + (tau_Temp(1) + tau_Temp(5) + tau_Temp(9))
372 >       endif
373      endif
374          
375      if (do_pot) then

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines