|
|
Next: Creating a Metadata File
Up: Concepts & Files
Previous: Meta-data Files
Contents
Atoms, Molecules, and other
ways of grouping atoms
As mentioned above, the fundamental unit for an OOPSE simulation
is the atom. Atoms can be collected into secondary structures
such as rigidBodies, cutoffGroups, or molecules. The
molecule is a way for OOPSE to keep track of the atoms in
a simulation in logical manner. Molecular units store the identities
of all the atoms and rigid bodies associated with themselves, and they
are responsible for the evaluation of their own internal interactions
(i.e. bonds, bends, and torsions). Scheme
2.2 shows how one creates a molecule in an
included meta-data file. The positions of the atoms given in the
declaration are relative to the origin of the molecule, and the origin
is used when creating a system containing the molecule.
One of the features that sets OOPSE apart from most of the
current molecular simulation packages is the ability to handle rigid
body dynamics. Rigid bodies are non-spherical particles or collections
of particles (e.g.
C
) that have a constant internal
potential and move collectively.[11] They are not
included in most simulation packages because of the algorithmic
complexity involved in propagating orientational degrees of freedom.
Integrators which propagate orientational motion with an acceptable
level of energy conservation for molecular dynamics are relatively
new inventions.
Moving a rigid body involves determination of both the force and
torque applied by the surroundings, which directly affect the
translational and rotational motion in turn. In order to accumulate
the total force on a rigid body, the external forces and torques must
first be calculated for all the internal particles. The total force on
the rigid body is simply the sum of these external forces.
Accumulation of the total torque on the rigid body is more complex
than the force because the torque is applied to the center of mass of
the rigid body. The space-fixed torque on rigid body
is
![$\displaystyle \boldsymbol{\tau}_i= \sum_{a}\biggl[(\mathbf{r}_{ia}-\mathbf{r}_i)\times \mathbf{f}_{ia} + \boldsymbol{\tau}_{ia}\biggr],$](img15.png) |
(2.2) |
where
and
are the torque on and
position of the center of mass respectively, while
,
, and
are the force on,
position of, and torque on the component particles of the rigid body.
The summation of the total torque is done in the body fixed axis of
each rigid body. In order to move between the space fixed and body
fixed coordinate axes, parameters describing the orientation must be
maintained for each rigid body. At a minimum, the rotation matrix
(
) can be described by the three Euler angles (
and
), where the elements of
are composed of
trigonometric operations involving
and
.[11] In order to avoid numerical instabilities
inherent in using the Euler angles, the four parameter ``quaternion''
scheme is often used. The elements of
can be expressed as
arithmetic operations involving the four quaternions (
and
).[12] Use of quaternions also leads to
performance enhancements, particularly for very small
systems.[13]
Rather than use one of the previously stated methods, OOPSE
utilizes a relatively new scheme that propagates the entire nine
parameter rotation matrix. Further discussion on this choice can be
found in Sec. 4.1. An example definition of a
rigid body can be seen in Scheme
2.4.
Next: Creating a Metadata File
Up: Concepts & Files
Previous: Meta-data Files
Contents
|