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

Comparing trunk/OOPSE-2.0/src/UseTheForce/DarkSide/sticky.F90 (file contents):
Revision 2232 by chrisfen, Wed May 18 19:06:22 2005 UTC vs.
Revision 2251 by chrisfen, Sun May 29 21:16:25 2005 UTC

# Line 50 | Line 50
50   !! @author Matthew Meineke
51   !! @author Christopher Fennell
52   !! @author J. Daniel Gezelter
53 < !! @version $Id: sticky.F90,v 1.12 2005-05-18 19:06:22 chrisfen Exp $, $Date: 2005-05-18 19:06:22 $, $Name: not supported by cvs2svn $, $Revision: 1.12 $
53 > !! @version $Id: sticky.F90,v 1.13 2005-05-29 21:16:25 chrisfen Exp $, $Date: 2005-05-29 21:16:25 $, $Name: not supported by cvs2svn $, $Revision: 1.13 $
54  
55   module sticky
56  
# Line 512 | Line 512 | contains
512      if(allocated(StickyMap)) deallocate(StickyMap)
513    end subroutine destroyStickyTypes
514    
515 <    subroutine do_sticky_power_pair(atom1, atom2, d, rij, r2, sw, vpair, fpair, &
516 <       pot, A, f, t, do_pot, ebalance)
515 >  subroutine do_sticky_power_pair(atom1, atom2, d, rij, r2, sw, vpair, fpair, &
516 >       pot, A, f, t, do_pot)
517      !! We assume that the rotation matrices have already been calculated
518      !! and placed in the A array.
519 <
519 >    
520      !! i and j are pointers to the two SSD atoms
521 <
521 >    
522      integer, intent(in) :: atom1, atom2
523      real (kind=dp), intent(inout) :: rij, r2
524      real (kind=dp), dimension(3), intent(in) :: d
# Line 527 | Line 527 | contains
527      real (kind=dp), dimension(9,nLocal) :: A
528      real (kind=dp), dimension(3,nLocal) :: f
529      real (kind=dp), dimension(3,nLocal) :: t
530    real (kind=dp), intent(in) :: ebalance
530      logical, intent(in) :: do_pot
531  
532      real (kind=dp) :: xi, yi, zi, xj, yj, zj, xi2, yi2, zi2, xj2, yj2, zj2
533      real (kind=dp) :: xihat, yihat, zihat, xjhat, yjhat, zjhat
534      real (kind=dp) :: rI, rI2, rI3, rI4, rI5, rI6, rI7, s, sp, dsdr, dspdr
535 <    real (kind=dp) :: wi, wj, w, wi2, wj2
535 >    real (kind=dp) :: wi, wj, w, wi2, wj2, eScale, v0scale
536      real (kind=dp) :: dwidx, dwidy, dwidz, dwjdx, dwjdy, dwjdz
537      real (kind=dp) :: dwidux, dwiduy, dwiduz, dwjdux, dwjduy, dwjduz
538      real (kind=dp) :: drdx, drdy, drdz
# Line 651 | Line 650 | contains
650        
651         call calc_sw_fnc(rij, rl, ru, rlp, rup, s, sp, dsdr, dspdr)
652            
653 <       frac1 = 1.5d0
654 <       frac2 = 0.5d0
653 >       frac1 = 0.25d0
654 >       frac2 = 0.75d0
655        
656         wi = 2.0d0*(xi2-yi2)*zi*rI3
657         wj = 2.0d0*(xj2-yj2)*zj*rI3
# Line 660 | Line 659 | contains
659         wi2 = wi*wi
660         wj2 = wj*wj
661  
662 <       w = frac1*wi*wi2 + frac2*wi + frac1*wj*wj2 + frac2*wj
662 >       w = frac1*wi*wi2 + frac2*wi + frac1*wj*wj2 + frac2*wj + v0p
663  
664 <       vpair = vpair + 0.5d0*(v0*s*w) + ebalance
664 >       vpair = vpair + 0.5d0*(v0*s*w)
665        
666         if (do_pot) then
667   #ifdef IS_MPI
668           pot_row(atom1) = pot_row(atom1) + 0.25d0*(v0*s*w)*sw
669           pot_col(atom2) = pot_col(atom2) + 0.25d0*(v0*s*w)*sw
670   #else
671 <         pot = pot + 0.5d0*(v0*s*w)*sw + ebalance
671 >         pot = pot + 0.5d0*(v0*s*w)*sw
672   #endif  
673         endif
674  
# Line 805 | Line 804 | contains
804  
805         ! now assemble these with the radial-only terms:
806  
807 <       fxradial = 0.5d0*(v0*dsdr*w*drdx + fxii + fxji + ebalance*xihat)
808 <       fyradial = 0.5d0*(v0*dsdr*w*drdy + fyii + fyji + ebalance*yihat)
809 <       fzradial = 0.5d0*(v0*dsdr*w*drdz + fzii + fzji + ebalance*zihat)
807 >       fxradial = 0.5d0*(v0*dsdr*w*drdx + fxii + fxji)
808 >       fyradial = 0.5d0*(v0*dsdr*w*drdy + fyii + fyji)
809 >       fzradial = 0.5d0*(v0*dsdr*w*drdz + fzii + fzji)
810  
811   #ifdef IS_MPI
812         f_Row(1,atom1) = f_Row(1,atom1) + fxradial

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines