next up previous contents
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$ _{60}$ ) 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 $ i$ is

$\displaystyle \boldsymbol{\tau}_i= \sum_{a}\biggl[(\mathbf{r}_{ia}-\mathbf{r}_i)\times \mathbf{f}_{ia} + \boldsymbol{\tau}_{ia}\biggr],$ (2.2)

where $ \boldsymbol{\tau}_i$ and $ \mathbf{r}_i$ are the torque on and position of the center of mass respectively, while $ \mathbf{f}_{ia}$ , $ \mathbf{r}_{ia}$ , and $ \boldsymbol{\tau}_{ia}$ 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 ( $ \mathsf{A}$ ) can be described by the three Euler angles ( $ \phi,
\theta,$ and $ \psi$ ), where the elements of $ \mathsf{A}$ are composed of trigonometric operations involving $ \phi,
\theta,$ and $ \psi$ .[11] In order to avoid numerical instabilities inherent in using the Euler angles, the four parameter ``quaternion'' scheme is often used. The elements of $ \mathsf{A}$ can be expressed as arithmetic operations involving the four quaternions ( $ q_w, q_x, q_y,$ and $ q_z$ ).[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.


\begin{lstlisting}[float,caption={[Defining rigid bodies]A sample
definition of ...
...ps = 1;
cutoffGroup[0]{
nMembers = 3;
members(0, 1, 2);
}
}
\end{lstlisting}


next up previous contents
Next: Creating a Metadata File Up: Concepts & Files Previous: Meta-data Files   Contents
Copyright © 2006 - University of Notre Dame

Updated on January 16, 2006