ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/trunk/src/mengine/src/ehal.c
(Generate patch)
# Line 125 | Line 125
125        double rik,rik2;
126        double rik6,rik7;
127        double sigma, kappa, kappa7;
128 <      double rv7,rho, tau, rv14;
128 >      double rv7,rho, tau,tau7,tau8, rv14;
129        double dedx,dedy,dedz,de;
130        double cutoff;
131        
# Line 136 | Line 136
136        
137        sigma = 1.12;
138        kappa = 1.07;
139 <      kappa7 = pow(kappa,7.0);
139 >      kappa7 = kappa*kappa*kappa*kappa*kappa*kappa*kappa;
140        
141        for (i=1; i <= natom; i++)
142        {
# Line 194 | Line 194
194                      if (skip[j] == -i)
195                          eps /= units.v14scale;
196                      rik = sqrt(rik2);
197 <                    rv7 = pow(rv,7.0);
197 >                                         rv7 = rv7*rv7*rv7*rv7*rv7*rv7*rv7;  //   pow(rv,7.0);
198                      rv14 = rv7*rv7;
199                      rik6 = rik2*rik2*rik2;
200                      rik7 = rik6*rik;
201                      rho = rik7 + (sigma-1.00)*rv7;
202                      tau = rik + (kappa-1.00)*rv;
203 <
204 <                    e = eps*kappa7*(rv7/pow(tau,7.0))*(sigma*rv7/rho-2.00);
203 >                                        tau7 = tau*tau*tau*tau*tau*tau*tau;
204 >                                        tau8 = tau7*tau;
205 >                    e = eps*kappa7*(rv7/tau7)*(sigma*rv7/rho-2.00);
206          
207 <                    de = -7.00*eps*kappa7*(rv7/pow(tau,8.00))*(sigma*rv7/rho-2.00)
208 <                         -7.00*eps*kappa7*sigma*rv14*rik6/(rho*rho*pow(tau,7.00));
207 >                    de = -7.00*eps*kappa7*(rv7/tau8)*(sigma*rv7/rho-2.00)
208 >                         -7.00*eps*kappa7*sigma*rv14*rik6/(rho*rho*tau7);
209  
210                      de /= rik;
211                      dedx = de*xr;
# Line 242 | Line 243
243  
244   void ehal2(int iatom)
245   {
246 <      int j,ia, ib, k, ita, itb, it, kk;
246 >      int j,ia, ib, k, ita, itb, it;
247        double xi,yi,zi,xr,yr,zr;
248        double xk,yk,zk;
249 <      double e,rv,eps;
249 >      double rv,eps;
250        double rik,rik2, rik5;
251        double rik6,rik7, rik12;
252        double sigma, kappa, kappa7;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines