This module implements routines for treating angle axis systems. An angle axis system can be a system with non-spherical potentials or a rigid body system, where rigid objects are treated as a collection of atoms.

The degrees of freedom of a rigid body is fully described the 3 center of mass coordinates and the 3 elements of an angle axis rotation. But to do calculation you need to be able to convert from center of mass + angle axis to atomistic coordinates and back. Furthermore you need to know about the masses of the atoms, the tensor of gyration and more. All of this is stored in the RigidFragment class

RigidFragment() |
Defines a single rigid fragment .. |

The topology classes keep track of which types of rigid bodies, and how many of each type. It also manages how to convert from angle axis coordinates to atomistic coordinates.

RBTopology() |
This defines the topology of a collection of rigid bodies. |

The following classes define how to perform measurements (e.g. center of mass, distance between structures, etc.). They also define how to perform transformations on a structure, e.g. how to translate a structure, how to rotate a cluster, etc.

MeasureRigidBodyCluster(topology[, ...]) |
perform measurements on clusters of rigid bodies |

TransformAngleAxisCluster(topology) |
transformation rules for angle axis clusters |

The following routines perform structure alignment on rigid body clusters

ExactMatchAACluster(topology[, transform, ...]) |
test whether two structure are exactly the same |

MinPermDistAACluster(topology[, transform, ...]) |
minimize the distance between two structures |