For a set of atoms,
where
It turns out that atomic DoF can be determined from the Jacobian which maps
modal velocities of a fragment (group of atoms connected by at least 1 bond, or
atoms which form a rigid body) to atomic velocities.
This library groups atoms into fragments based on provided connectivity
information, and then calculates the Jacobian for a given conformation and uses
it to determine
For performance and compatibility reasons, dofulator is written as a C library, but a python wrapper is also provided for convenience which includes an MDAnalysis plugin. A basic CLI is also included, which is primarily intended for quickly calculating atomic DoF of single molecules.
Note, currently the global center of mass constraint which results in a loss of 1 DoF in each direction over the entire system is currently not accounted for, but the resultant error is negligible except in very small systems.