| 186 |
|
* idat structure. |
| 187 |
|
*/ |
| 188 |
|
|
| 189 |
< |
void Sticky::calcForce(InteractionData idat) { |
| 189 |
> |
void Sticky::calcForce(InteractionData &idat) { |
| 190 |
|
|
| 191 |
|
if (!initialized_) initialize(); |
| 192 |
|
|
| 193 |
– |
pair<AtomType*, AtomType*> key = make_pair(idat.atype1, idat.atype2); |
| 193 |
|
map<pair<AtomType*, AtomType*>, StickyInteractionData>::iterator it; |
| 194 |
< |
it = MixingMap.find(key); |
| 194 |
> |
it = MixingMap.find(idat.atypes); |
| 195 |
|
if (it != MixingMap.end()) { |
| 196 |
|
|
| 197 |
|
StickyInteractionData mixer = (*it).second; |
| 342 |
|
dspdr = 0.0; |
| 343 |
|
} |
| 344 |
|
|
| 345 |
< |
idat.vpair += 0.5*(v0*s*w + v0p*sp*wp); |
| 346 |
< |
idat.pot += 0.5*(v0*s*w + v0p*sp*wp)*idat.sw; |
| 345 |
> |
idat.vpair[2] += 0.5*(v0*s*w + v0p*sp*wp); |
| 346 |
> |
idat.pot[2] += 0.5*(v0*s*w + v0p*sp*wp)*idat.sw; |
| 347 |
|
|
| 348 |
|
// do the torques first since they are easy: |
| 349 |
|
// remember that these are still in the body-fixed axes |
| 377 |
|
return; |
| 378 |
|
} |
| 379 |
|
|
| 380 |
< |
RealType Sticky::getSuggestedCutoffRadius(AtomType* at1, AtomType* at2) { |
| 380 |
> |
RealType Sticky::getSuggestedCutoffRadius(pair<AtomType*, AtomType*> atypes) { |
| 381 |
|
if (!initialized_) initialize(); |
| 383 |
– |
pair<AtomType*, AtomType*> key = make_pair(at1, at2); |
| 382 |
|
map<pair<AtomType*, AtomType*>, StickyInteractionData>::iterator it; |
| 383 |
< |
it = MixingMap.find(key); |
| 383 |
> |
it = MixingMap.find(atypes); |
| 384 |
|
if (it == MixingMap.end()) |
| 385 |
|
return 0.0; |
| 386 |
|
else { |