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

Comparing trunk/OOPSE-3.0/src/UseTheForce/doForces.F90 (file contents):
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
Revision 2231 by chrisfen, Wed May 18 18:31:40 2005 UTC

# Line 45 | Line 45
45  
46   !! @author Charles F. Vardeman II
47   !! @author Matthew Meineke
48 < !! @version $Id: doForces.F90,v 1.13 2005-04-15 22:03:37 gezelter Exp $, $Date: 2005-04-15 22:03:37 $, $Name: not supported by cvs2svn $, $Revision: 1.13 $
48 > !! @version $Id: doForces.F90,v 1.18 2005-05-18 18:31:40 chrisfen Exp $, $Date: 2005-05-18 18:31:40 $, $Name: not supported by cvs2svn $, $Revision: 1.18 $
49  
50  
51   module doForces
# Line 89 | Line 89 | module doForces
89    logical, save :: FF_uses_Charges
90    logical, save :: FF_uses_Dipoles
91    logical, save :: FF_uses_Quadrupoles
92 <  logical, save :: FF_uses_sticky
92 >  logical, save :: FF_uses_Sticky
93 >  logical, save :: FF_uses_StickyPower
94    logical, save :: FF_uses_GayBerne
95    logical, save :: FF_uses_EAM
96    logical, save :: FF_uses_Shapes
# Line 103 | Line 104 | module doForces
104    logical, save :: SIM_uses_Dipoles
105    logical, save :: SIM_uses_Quadrupoles
106    logical, save :: SIM_uses_Sticky
107 +  logical, save :: SIM_uses_StickyPower
108    logical, save :: SIM_uses_GayBerne
109    logical, save :: SIM_uses_EAM
110    logical, save :: SIM_uses_Shapes
# Line 134 | Line 136 | module doForces
136       logical :: is_Dipole        = .false.
137       logical :: is_Quadrupole    = .false.
138       logical :: is_Sticky        = .false.
139 +     logical :: is_StickyPower   = .false.
140       logical :: is_GayBerne      = .false.
141       logical :: is_EAM           = .false.
142       logical :: is_Shape         = .false.
# Line 196 | Line 199 | contains
199  
200         call getElementProperty(atypes, i, "is_Sticky", thisProperty)
201         PropertyMap(i)%is_Sticky = thisProperty
202 +      
203 +       call getElementProperty(atypes, i, "is_StickyPower", thisProperty)
204 +       PropertyMap(i)%is_StickyPower = thisProperty
205  
206         call getElementProperty(atypes, i, "is_GayBerne", thisProperty)
207         PropertyMap(i)%is_GayBerne = thisProperty
# Line 221 | Line 227 | contains
227      SIM_uses_Charges = SimUsesCharges()
228      SIM_uses_Dipoles = SimUsesDipoles()
229      SIM_uses_Sticky = SimUsesSticky()
230 +    SIM_uses_StickyPower = SimUsesStickyPower()
231      SIM_uses_GayBerne = SimUsesGayBerne()
232      SIM_uses_EAM = SimUsesEAM()
233      SIM_uses_Shapes = SimUsesShapes()
# Line 315 | Line 322 | contains
322      FF_uses_Charges = .false.    
323      FF_uses_Dipoles = .false.
324      FF_uses_Sticky = .false.
325 +    FF_uses_StickyPower = .false.
326      FF_uses_GayBerne = .false.
327      FF_uses_EAM = .false.
328      FF_uses_Shapes = .false.
# Line 364 | Line 372 | contains
372         FF_uses_DirectionalAtoms = .true.
373      endif
374  
375 +    call getMatchingElementList(atypes, "is_StickyPower", .true., nMatches, &
376 +         MatchList)
377 +    if (nMatches .gt. 0) then
378 +       FF_uses_StickyPower = .true.
379 +       FF_uses_DirectionalAtoms = .true.
380 +    endif
381 +    
382      call getMatchingElementList(atypes, "is_GayBerne", .true., &
383           nMatches, MatchList)
384      if (nMatches .gt. 0) then
# Line 908 | Line 923 | contains
923      real ( kind = dp ), intent(inout) :: rijsq
924      real ( kind = dp )                :: r
925      real ( kind = dp ), intent(inout) :: d(3)
926 +    real ( kind = dp ) :: ebalance
927      integer :: me_i, me_j
928  
929      r = sqrt(rijsq)
# Line 938 | Line 954 | contains
954         if (PropertyMap(me_i)%is_Electrostatic .and. &
955              PropertyMap(me_j)%is_Electrostatic) then
956            call doElectrostaticPair(i, j, d, r, rijsq, sw, vpair, fpair, &
957 <               pot, eFrame, f, t, do_pot)
957 >               pot, eFrame, f, t, do_pot, ebalance)
958         endif
959  
960         if (FF_uses_dipoles .and. SIM_uses_dipoles) then      
# Line 962 | Line 978 | contains
978  
979      endif
980  
981 <
981 >    if (FF_uses_StickyPower .and. SIM_uses_stickypower) then
982 >       if ( PropertyMap(me_i)%is_StickyPower .and. &
983 >            PropertyMap(me_j)%is_StickyPower) then
984 >          call do_sticky_power_pair(i, j, d, r, rijsq, sw, vpair, fpair, &
985 >               pot, A, f, t, do_pot, ebalance)
986 >       endif
987 >    endif
988 >    
989      if (FF_uses_GayBerne .and. SIM_uses_GayBerne) then
990  
991         if ( PropertyMap(me_i)%is_GayBerne .and. &
# Line 991 | Line 1014 | contains
1014            call do_shape_pair(i, j, d, r, rijsq, sw, vpair, fpair, &
1015                 pot, A, f, t, do_pot)
1016         endif
1017 <
1017 >       if ( (PropertyMap(me_i)%is_Shape .and. &
1018 >            PropertyMap(me_j)%is_LennardJones) .or. &
1019 >            (PropertyMap(me_i)%is_LennardJones .and. &
1020 >            PropertyMap(me_j)%is_Shape) ) then
1021 >          call do_shape_pair(i, j, d, r, rijsq, sw, vpair, fpair, &
1022 >               pot, A, f, t, do_pot)
1023 >       endif
1024      endif
1025  
1026    end subroutine do_pair
# Line 1234 | Line 1263 | contains
1263      logical :: doesit
1264      doesit = FF_uses_DirectionalAtoms .or. FF_uses_Dipoles .or. &
1265           FF_uses_Quadrupoles .or. FF_uses_Sticky .or. &
1266 <         FF_uses_GayBerne .or. FF_uses_Shapes
1266 >         FF_uses_StickyPower .or. FF_uses_GayBerne .or. FF_uses_Shapes
1267    end function FF_UsesDirectionalAtoms
1268  
1269    function FF_RequiresPrepairCalc() result(doesit)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines