| 35 |
|
* |
| 36 |
|
* [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). |
| 37 |
|
* [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). |
| 38 |
< |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
| 38 |
> |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). |
| 39 |
|
* [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
| 40 |
|
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 56 |
|
|
| 57 |
|
SelectionEvaluator::SelectionEvaluator(SimInfo* si) |
| 58 |
|
: info(si), nameFinder(info), distanceFinder(info), hullFinder(info), |
| 59 |
< |
indexFinder(info), |
| 59 |
> |
indexFinder(info), hasSurfaceArea_(false), |
| 60 |
|
isLoaded_(false){ |
| 61 |
|
nStuntDouble = info->getNGlobalAtoms() + info->getNGlobalRigidBodies(); |
| 62 |
|
} |
| 376 |
|
int property, int comparator, |
| 377 |
|
float comparisonValue) { |
| 378 |
|
RealType propertyValue = 0.0; |
| 379 |
+ |
Vector3d pos; |
| 380 |
|
switch (property) { |
| 381 |
|
case Token::mass: |
| 382 |
|
propertyValue = sd->getMass(); |
| 403 |
|
case Token::z: |
| 404 |
|
propertyValue = sd->getPos().z(); |
| 405 |
|
break; |
| 406 |
+ |
case Token::wrappedX: |
| 407 |
+ |
pos = sd->getPos(); |
| 408 |
+ |
info->getSnapshotManager()->getCurrentSnapshot()->wrapVector(pos); |
| 409 |
+ |
propertyValue = pos.x(); |
| 410 |
+ |
break; |
| 411 |
+ |
case Token::wrappedY: |
| 412 |
+ |
pos = sd->getPos(); |
| 413 |
+ |
info->getSnapshotManager()->getCurrentSnapshot()->wrapVector(pos); |
| 414 |
+ |
propertyValue = pos.y(); |
| 415 |
+ |
break; |
| 416 |
+ |
case Token::wrappedZ: |
| 417 |
+ |
pos = sd->getPos(); |
| 418 |
+ |
info->getSnapshotManager()->getCurrentSnapshot()->wrapVector(pos); |
| 419 |
+ |
propertyValue = pos.z(); |
| 420 |
+ |
break; |
| 421 |
|
case Token::r: |
| 422 |
|
propertyValue = sd->getPos().length(); |
| 423 |
|
break; |
| 456 |
|
int property, int comparator, |
| 457 |
|
float comparisonValue, int frame) { |
| 458 |
|
RealType propertyValue = 0.0; |
| 459 |
+ |
Vector3d pos; |
| 460 |
|
switch (property) { |
| 461 |
|
case Token::mass: |
| 462 |
|
propertyValue = sd->getMass(); |
| 483 |
|
case Token::z: |
| 484 |
|
propertyValue = sd->getPos(frame).z(); |
| 485 |
|
break; |
| 486 |
+ |
case Token::wrappedX: |
| 487 |
+ |
pos = sd->getPos(frame); |
| 488 |
+ |
info->getSnapshotManager()->getSnapshot(frame)->wrapVector(pos); |
| 489 |
+ |
propertyValue = pos.x(); |
| 490 |
+ |
break; |
| 491 |
+ |
case Token::wrappedY: |
| 492 |
+ |
pos = sd->getPos(frame); |
| 493 |
+ |
info->getSnapshotManager()->getSnapshot(frame)->wrapVector(pos); |
| 494 |
+ |
propertyValue = pos.y(); |
| 495 |
+ |
break; |
| 496 |
+ |
case Token::wrappedZ: |
| 497 |
+ |
pos = sd->getPos(frame); |
| 498 |
+ |
info->getSnapshotManager()->getSnapshot(frame)->wrapVector(pos); |
| 499 |
+ |
propertyValue = pos.z(); |
| 500 |
+ |
break; |
| 501 |
+ |
|
| 502 |
|
case Token::r: |
| 503 |
|
propertyValue = sd->getPos(frame).length(); |
| 504 |
|
break; |
| 730 |
|
OpenMDBitSet bs(nStuntDouble); |
| 731 |
|
|
| 732 |
|
bs = hullFinder.findHull(); |
| 733 |
< |
|
| 733 |
> |
surfaceArea_ = hullFinder.getSurfaceArea(); |
| 734 |
> |
hasSurfaceArea_ = true; |
| 735 |
|
return bs; |
| 736 |
|
} |
| 737 |
|
|
| 740 |
|
OpenMDBitSet bs(nStuntDouble); |
| 741 |
|
|
| 742 |
|
bs = hullFinder.findHull(frame); |
| 743 |
< |
|
| 743 |
> |
|
| 744 |
|
return bs; |
| 745 |
|
} |
| 746 |
|
|