4 |
|
|
5 |
|
!! @author Charles F. Vardeman II |
6 |
|
!! @author Matthew Meineke |
7 |
< |
!! @version $Id: do_Forces.F90,v 1.45 2004-01-06 18:54:57 chuckv Exp $, $Date: 2004-01-06 18:54:57 $, $Name: not supported by cvs2svn $, $Revision: 1.45 $ |
7 |
> |
!! @version $Id: do_Forces.F90,v 1.46 2004-01-13 23:01:43 gezelter Exp $, $Date: 2004-01-13 23:01:43 $, $Name: not supported by cvs2svn $, $Revision: 1.46 $ |
8 |
|
|
9 |
|
module do_Forces |
10 |
|
use force_globals |
15 |
|
use lj |
16 |
|
use sticky_pair |
17 |
|
use dipole_dipole |
18 |
+ |
use charge_charge |
19 |
|
use reaction_field |
20 |
|
use gb_pair |
21 |
|
use vector_class |
39 |
|
logical, save :: haveSaneForceField = .false. |
40 |
|
logical, save :: FF_uses_LJ |
41 |
|
logical, save :: FF_uses_sticky |
42 |
+ |
logical, save :: FF_uses_charges |
43 |
|
logical, save :: FF_uses_dipoles |
44 |
|
logical, save :: FF_uses_RF |
45 |
|
logical, save :: FF_uses_GB |
46 |
|
logical, save :: FF_uses_EAM |
47 |
|
logical, save :: SIM_uses_LJ |
48 |
|
logical, save :: SIM_uses_sticky |
49 |
+ |
logical, save :: SIM_uses_charges |
50 |
|
logical, save :: SIM_uses_dipoles |
51 |
|
logical, save :: SIM_uses_RF |
52 |
|
logical, save :: SIM_uses_GB |
76 |
|
logical :: is_dp = .false. |
77 |
|
logical :: is_gb = .false. |
78 |
|
logical :: is_eam = .false. |
79 |
+ |
logical :: is_charge = .false. |
80 |
+ |
real(kind=DP) :: charge = 0.0_DP |
81 |
|
real(kind=DP) :: dipole_moment = 0.0_DP |
82 |
|
end type Properties |
83 |
|
|
119 |
|
do i = 1, nAtypes |
120 |
|
call getElementProperty(atypes, i, "is_LJ", thisProperty) |
121 |
|
PropertyMap(i)%is_LJ = thisProperty |
122 |
+ |
|
123 |
+ |
call getElementProperty(atypes, i, "is_Charge", thisProperty) |
124 |
+ |
PropertyMap(i)%is_Charge = thisProperty |
125 |
+ |
|
126 |
+ |
if (thisProperty) then |
127 |
+ |
call getElementProperty(atypes, i, "charge", thisDPproperty) |
128 |
+ |
PropertyMap(i)%charge = thisDPproperty |
129 |
+ |
endif |
130 |
+ |
|
131 |
|
call getElementProperty(atypes, i, "is_DP", thisProperty) |
132 |
|
PropertyMap(i)%is_DP = thisProperty |
133 |
|
|
151 |
|
subroutine setSimVariables() |
152 |
|
SIM_uses_LJ = SimUsesLJ() |
153 |
|
SIM_uses_sticky = SimUsesSticky() |
154 |
+ |
SIM_uses_charges = SimUsesCharges() |
155 |
|
SIM_uses_dipoles = SimUsesDipoles() |
156 |
|
SIM_uses_RF = SimUsesRF() |
157 |
|
SIM_uses_GB = SimUsesGB() |
251 |
|
|
252 |
|
FF_uses_LJ = .false. |
253 |
|
FF_uses_sticky = .false. |
254 |
+ |
FF_uses_charges = .false. |
255 |
|
FF_uses_dipoles = .false. |
256 |
|
FF_uses_GB = .false. |
257 |
|
FF_uses_EAM = .false. |
258 |
|
|
259 |
|
call getMatchingElementList(atypes, "is_LJ", .true., nMatches, MatchList) |
260 |
|
if (nMatches .gt. 0) FF_uses_LJ = .true. |
261 |
+ |
|
262 |
+ |
call getMatchingElementList(atypes, "is_Charge", .true., nMatches, MatchList) |
263 |
+ |
if (nMatches .gt. 0) FF_uses_charges = .true. |
264 |
|
|
265 |
|
call getMatchingElementList(atypes, "is_DP", .true., nMatches, MatchList) |
266 |
|
if (nMatches .gt. 0) FF_uses_dipoles = .true. |