This module implements subspaces for infinitesimal (or finite small-amplitude) atomic motions. They can be used in normal mode calculations (see example NormalModes/constrained_modes.py) or for analyzing complex motions [Hinsen1999a].
Constructor: Subspace(universe, vectors)
the universe for which the subspace is created
a list of MMTK.ParticleVector objects that define the subspace. They need not be orthogonal or linearly independent.
Returns a basis for the subspace, which is obtained by orthonormalization of the input vectors using Singular Value Decomposition. The basis consists of a sequence of MMTK.ParticleVector objects that are orthonormal in configuration space.
Returns the projection of vector (a MMTK.ParticleVector object) onto the subspace.
Returns the projection of vector (a MMTK.ParticleVector object) onto the orthogonal complement of the subspace.
A subclass of MMTK.Subspace.Subspace.
A rigid-body motion subspace is the subspace which contains the rigid-body motions of any number of chemical objects.
Constructor: RigidMotionSubspace(universe, objects)
the universe for which the subspace is created
a sequence of objects whose rigid-body motion is included in the subspace
A subclass of MMTK.Subspace.Subspace.
A pair-distance motion subspace is the subspace which contains the relative motions of any number of atom pairs along their distance vector, e.g. bond elongation between two bonded atoms.
Constructor: PairDistanceSubspace(universe, atom_pairs)
the universe for which the subspace is created
a sequence of atom pairs whose distance-vector motion is included in the subspace