1 |
chrisfen |
908 |
As stated in the previously, one of the features that sets OOPSE apart |
2 |
|
|
from most of the current molecular simulation packages is the ability |
3 |
|
|
to handle rigid body dynamics. Rigid bodies are non-spherical |
4 |
|
|
particles or collections of particles that have a constant internal |
5 |
|
|
potential and move collectively.\cite{Goldstein01} They are not |
6 |
|
|
included in many standard simulation packages because of the need to |
7 |
|
|
consider orientational degrees of freedom and include an integrator |
8 |
|
|
that accurately propagates these motions in time. |
9 |
|
|
|
10 |
|
|
Moving a rigid body involves determination of both the force and |
11 |
|
|
torque applied by the surroundings, which directly affect the |
12 |
|
|
translation and rotation in turn. In order to accumulate the total |
13 |
|
|
force on a rigid body, the external forces must first be calculated |
14 |
|
|
for all the interal particles. The total force on the rigid body is |
15 |
|
|
simply the sum of these external forces. Accumulation of the total |
16 |
|
|
torque on the rigid body is similar to the force in that it is a sum |
17 |
|
|
of the torque applied on each internal particle, mapped onto the |
18 |
|
|
center of mass of the rigid body. |
19 |
|
|
|
20 |
|
|
The application of the total torque is done in the body fixed axis of |
21 |
|
|
the rigid body. In order to move between the space fixed and body |
22 |
|
|
fixed coordinate axes, parameters describing the orientation be |
23 |
|
|
maintained for each rigid body. At a minimum, the rotation matrix can |
24 |
|
|
be described and propagated by the three Euler |
25 |
|
|
angles.\cite{Goldstein01} In order to avoid rotational limitations |
26 |
|
|
when using Euler angles, the four parameter ``quaternion'' scheme can |
27 |
|
|
be used instead.\cite{allen87:csl} Use of quaternions also leads to |
28 |
|
|
performance enhancements, particularly for very small |
29 |
|
|
systems.\cite{Evans77} OOPSE utilizes a relatively new scheme that |
30 |
|
|
propagates the entire nine parameter rotation matrix. Further |
31 |
|
|
discussion on this choice can be found in Sec.~\ref{sec:integrate} |