pele.angleaxis.aaperiodicttransforms#
- class pele.angleaxis.aaperiodicttransforms.MeasurePeriodicRigid
-
class MeasurePeriodicRigid(MeasureAngleAxisCluster):Measure rules for rigid body systems with periodic boundary conditions
- Parameters:
- topology: RBTopologyBulk
the topology object for the system, containing the box size vector
- transform: Transform object, optional
should be TransformPeriodicRigid().
- permlistlist of lists, optional
list of lists of identical atoms
Notes
Ensure that the topology is of type RBTopologyBulk There is no meaningful definition of the centre of mass in a periodic system, so this is removed. Rotations are not yet implemented, so technically we should only use non-cubic boxes.
- class pele.angleaxis.aaperiodicttransforms.TransformPeriodicRigid
-
class TransformPeriodicRigid(TransformPeriodic):Interface for possible transformations on a set of rigid body coordinates with periodic boundary conditions.
The transform policy tells minpermdist how to perform translations only, because rotations and inversions are not generally relevant in periodic systems. Permutations should be implemented but currently are not.
All transformations act in place, that means they change the current coordinates and do not make a copy.
- TransformPeriodicRigid.translate()
-
def translate(self, X, d):Performs an in-place translation of coordinates X by vector d
- class pele.angleaxis.aaperiodicttransforms.ExactMatchRigidPeriodic
-
class ExactMatchRigidPeriodic:Tests whether two rigid body periodic systems are identical
Performs a translation to align the first atom in each set of coordinates, then tests whether the two structures are identical.
- Parameters:
- measure: Measure object
should be MeasurePeriodicRigid(system.topology,TransformPeriodicRigid()
- accuracy: float (optional)
the tolerance to which the structure comparison will test
- ExactMatchRigidPeriodic.__call__()
-
def __call__(self, x1, x2):Tests whether coordinate sets x1 and x2 are translationally equivalent