ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/nonbonded/GB.cpp
(Generate patch)

Comparing branches/development/src/nonbonded/GB.cpp (file contents):
Revision 1544 by gezelter, Wed Jan 5 14:49:05 2011 UTC vs.
Revision 1545 by gezelter, Fri Apr 8 21:25:19 2011 UTC

# Line 267 | Line 267 | namespace OpenMD {
267  
268      if (!initialized_) initialize();
269      
270 <    pair<AtomType*, AtomType*> key = make_pair(idat.atype1, idat.atype2);
271 <    GBInteractionData mixer = MixingMap[key];
270 >    GBInteractionData mixer = MixingMap[idat.atypes];
271  
272      RealType sigma0 = mixer.sigma0;
273      RealType dw     = mixer.dw;
# Line 285 | Line 284 | namespace OpenMD {
284  
285      RealType a, b, g;
286  
287 <    bool i_is_LJ = idat.atype1->isLennardJones();
288 <    bool j_is_LJ = idat.atype2->isLennardJones();
287 >    bool i_is_LJ = idat.atypes.first->isLennardJones();
288 >    bool j_is_LJ = idat.atypes.second->isLennardJones();
289  
290      if (i_is_LJ) {
291        a = 0.0;
# Line 367 | Line 366 | namespace OpenMD {
366  
367    }
368  
369 <  RealType GB::getSuggestedCutoffRadius(AtomType* at1, AtomType* at2) {
369 >  RealType GB::getSuggestedCutoffRadius(pair<AtomType*, AtomType*> atypes) {
370      if (!initialized_) initialize();  
371  
372      RealType cut = 0.0;
373  
374 <    if (at1->isGayBerne()) {
375 <      GayBerneParam gb1 = getGayBerneParam(at1);
374 >    if (atypes.first->isGayBerne()) {
375 >      GayBerneParam gb1 = getGayBerneParam(atypes.first);
376        RealType d1 = gb1.GB_d;
377        RealType l1 = gb1.GB_l;
378        // sigma is actually sqrt(2)*l  for prolate ellipsoids
379        cut = max(cut, 2.5 * sqrt(2.0) * max(d1, l1));
380 <    } else if (at1->isLennardJones()) {
381 <      cut = max(cut, 2.5 * getLJSigma(at1));
380 >    } else if (atypes.first->isLennardJones()) {
381 >      cut = max(cut, 2.5 * getLJSigma(atypes.first));
382      }
383  
384 <    if (at2->isGayBerne()) {
385 <      GayBerneParam gb2 = getGayBerneParam(at2);
384 >    if (atypes.second->isGayBerne()) {
385 >      GayBerneParam gb2 = getGayBerneParam(atypes.second);
386        RealType d2 = gb2.GB_d;
387        RealType l2 = gb2.GB_l;
388        cut = max(cut, 2.5 * sqrt(2.0) * max(d2, l2));
389 <    } else if (at1->isLennardJones()) {
390 <      cut = max(cut, 2.5 * getLJSigma(at2));
389 >    } else if (atypes.second->isLennardJones()) {
390 >      cut = max(cut, 2.5 * getLJSigma(atypes.second));
391      }
392    
393      return cut;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines