| 1 |
mmeineke |
899 |
|
| 2 |
|
|
\section{\label{sec:mechanics}Mechanics} |
| 3 |
|
|
|
| 4 |
|
|
\subsection{\label{integrate}Integrating the Equations of Motion: the Symplectic Step Integrator} |
| 5 |
|
|
|
| 6 |
|
|
Integration of the equations of motion was carried out using the |
| 7 |
|
|
symplectic splitting method proposed by Dullweber \emph{et |
| 8 |
|
|
al.}.\cite{Dullweber1997} The reason for this integrator selection |
| 9 |
|
|
deals with poor energy conservation of rigid body systems using |
| 10 |
|
|
quaternions. While quaternions work well for orientational motion in |
| 11 |
|
|
alternate ensembles, the microcanonical ensemble has a constant energy |
| 12 |
|
|
requirement that is quite sensitive to errors in the equations of |
| 13 |
|
|
motion. The original implementation of this code utilized quaternions |
| 14 |
|
|
for rotational motion propagation; however, a detailed investigation |
| 15 |
|
|
showed that they resulted in a steady drift in the total energy, |
| 16 |
|
|
something that has been observed by others.\cite{Laird97} |
| 17 |
|
|
|
| 18 |
|
|
The key difference in the integration method proposed by Dullweber |
| 19 |
|
|
\emph{et al.} is that the entire rotation matrix is propagated from |
| 20 |
|
|
one time step to the next. In the past, this would not have been as |
| 21 |
|
|
feasible a option, being that the rotation matrix for a single body is |
| 22 |
|
|
nine elements long as opposed to 3 or 4 elements for Euler angles and |
| 23 |
|
|
quaternions respectively. System memory has become much less of an |
| 24 |
|
|
issue in recent times, and this has resulted in substantial benefits |
| 25 |
|
|
in energy conservation. There is still the issue of 5 or 6 additional |
| 26 |
|
|
elements for describing the orientation of each particle, which will |
| 27 |
|
|
increase dump files substantially. Simply translating the rotation |
| 28 |
|
|
matrix into its component Euler angles or quaternions for storage |
| 29 |
|
|
purposes relieves this burden. |
| 30 |
|
|
|
| 31 |
|
|
The symplectic splitting method allows for Verlet style integration of |
| 32 |
|
|
both linear and angular motion of rigid bodies. In the integration |
| 33 |
|
|
method, the orientational propagation involves a sequence of matrix |
| 34 |
|
|
evaluations to update the rotation matrix.\cite{Dullweber1997} These |
| 35 |
|
|
matrix rotations end up being more costly computationally than the |
| 36 |
|
|
simpler arithmetic quaternion propagation. With the same time step, a |
| 37 |
|
|
1000 SSD particle simulation shows an average 7\% increase in |
| 38 |
|
|
computation time using the symplectic step method in place of |
| 39 |
|
|
quaternions. This cost is more than justified when comparing the |
| 40 |
|
|
energy conservation of the two methods as illustrated in figure |
| 41 |
|
|
\ref{timestep}. |
| 42 |
|
|
|
| 43 |
|
|
\begin{figure} |
| 44 |
|
|
\epsfxsize=6in |
| 45 |
|
|
\epsfbox{timeStep.epsi} |
| 46 |
|
|
\caption{Energy conservation using quaternion based integration versus |
| 47 |
|
|
the symplectic step method proposed by Dullweber \emph{et al.} with |
| 48 |
|
|
increasing time step. For each time step, the dotted line is total |
| 49 |
|
|
energy using the symplectic step integrator, and the solid line comes |
| 50 |
|
|
from the quaternion integrator. The larger time step plots are shifted |
| 51 |
|
|
up from the true energy baseline for clarity.} |
| 52 |
|
|
\label{timestep} |
| 53 |
|
|
\end{figure} |
| 54 |
|
|
|
| 55 |
|
|
In figure \ref{timestep}, the resulting energy drift at various time |
| 56 |
|
|
steps for both the symplectic step and quaternion integration schemes |
| 57 |
|
|
is compared. All of the 1000 SSD particle simulations started with the |
| 58 |
|
|
same configuration, and the only difference was the method for |
| 59 |
|
|
handling rotational motion. At time steps of 0.1 and 0.5 fs, both |
| 60 |
|
|
methods for propagating particle rotation conserve energy fairly well, |
| 61 |
|
|
with the quaternion method showing a slight energy drift over time in |
| 62 |
|
|
the 0.5 fs time step simulation. At time steps of 1 and 2 fs, the |
| 63 |
|
|
energy conservation benefits of the symplectic step method are clearly |
| 64 |
|
|
demonstrated. Thus, while maintaining the same degree of energy |
| 65 |
|
|
conservation, one can take considerably longer time steps, leading to |
| 66 |
|
|
an overall reduction in computation time. |
| 67 |
|
|
|
| 68 |
|
|
Energy drift in these SSD particle simulations was unnoticeable for |
| 69 |
|
|
time steps up to three femtoseconds. A slight energy drift on the |
| 70 |
|
|
order of 0.012 kcal/mol per nanosecond was observed at a time step of |
| 71 |
|
|
four femtoseconds, and as expected, this drift increases dramatically |
| 72 |
|
|
with increasing time step. To insure accuracy in the constant energy |
| 73 |
|
|
simulations, time steps were set at 2 fs and kept at this value for |
| 74 |
|
|
constant pressure simulations as well. |
| 75 |
|
|
|
| 76 |
|
|
|
| 77 |
|
|
\subsection{\label{sec:extended}Extended Systems for other Ensembles} |
| 78 |
|
|
|
| 79 |
|
|
|
| 80 |
|
|
{\sc oopse} implements a |
| 81 |
|
|
|
| 82 |
|
|
|
| 83 |
|
|
\subsubsection{\label{sec:noseHooverThermo}Nose-Hoover Thermostatting} |
| 84 |
|
|
|
| 85 |
|
|
To mimic the effects of being in a constant temperature ({\sc nvt}) |
| 86 |
|
|
ensemble, {\sc oopse} uses the Nose-Hoover extended system |
| 87 |
|
|
approach.\cite{Hoover85} In this method, the equations of motion for |
| 88 |
|
|
the particle positions and velocities are |
| 89 |
|
|
\begin{eqnarray} |
| 90 |
|
|
\dot{{\bf r}} & = & {\bf v} \\ |
| 91 |
|
|
\dot{{\bf v}} & = & \frac{{\bf f}}{m} - \chi {\bf v} |
| 92 |
|
|
\label{eq:nosehoovereom} |
| 93 |
|
|
\end{eqnarray} |
| 94 |
|
|
|
| 95 |
|
|
$\chi$ is an ``extra'' variable included in the extended system, and |
| 96 |
|
|
it is propagated using the first order equation of motion |
| 97 |
|
|
\begin{equation} |
| 98 |
|
|
\dot{\chi} = \frac{1}{\tau_{T}} \left( \frac{T}{T_{target}} - 1 \right) |
| 99 |
|
|
\label{eq:nosehooverext} |
| 100 |
|
|
\end{equation} |
| 101 |
|
|
where $T_{target}$ is the target temperature for the simulation, and |
| 102 |
|
|
$\tau_{T}$ is a time constant for the thermostat. |
| 103 |
|
|
|
| 104 |
|
|
To select the Nose-Hoover {\sc nvt} ensemble, the {\tt ensemble = NVT;} |
| 105 |
|
|
command would be used in the simulation's {\sc bass} file. There is |
| 106 |
|
|
some subtlety in choosing values for $\tau_{T}$, and it is usually set |
| 107 |
|
|
to values of a few ps. Within a {\sc bass} file, $\tau_{T}$ could be |
| 108 |
|
|
set to 1 ps using the {\tt tauThermostat = 1000; } command. |
| 109 |
|
|
|
| 110 |
|
|
|
| 111 |
|
|
\subsection{\label{Sec:zcons}Z-Constraint Method} |
| 112 |
|
|
|
| 113 |
|
|
Based on fluctuatin-dissipation theorem,\bigskip\ force auto-correlation |
| 114 |
|
|
method was developed to investigate the dynamics of ions inside the ion |
| 115 |
|
|
channels.\cite{Roux91} Time-dependent friction coefficient can be calculated |
| 116 |
|
|
from the deviation of the instaneous force from its mean force. |
| 117 |
|
|
|
| 118 |
|
|
% |
| 119 |
|
|
|
| 120 |
|
|
\begin{equation} |
| 121 |
|
|
\xi(z,t)=\langle\delta F(z,t)\delta F(z,0)\rangle/k_{B}T |
| 122 |
|
|
\end{equation} |
| 123 |
|
|
|
| 124 |
|
|
|
| 125 |
|
|
where% |
| 126 |
|
|
\begin{equation} |
| 127 |
|
|
\delta F(z,t)=F(z,t)-\langle F(z,t)\rangle |
| 128 |
|
|
\end{equation} |
| 129 |
|
|
|
| 130 |
|
|
|
| 131 |
|
|
If the time-dependent friction decay rapidly, static friction coefficient can |
| 132 |
|
|
be approximated by% |
| 133 |
|
|
|
| 134 |
|
|
\begin{equation} |
| 135 |
|
|
\xi^{static}(z)=\int_{0}^{\infty}\langle\delta F(z,t)\delta F(z,0)\rangle dt |
| 136 |
|
|
\end{equation} |
| 137 |
|
|
|
| 138 |
|
|
|
| 139 |
|
|
Hence, diffusion constant can be estimated by |
| 140 |
|
|
\begin{equation} |
| 141 |
|
|
D(z)=\frac{k_{B}T}{\xi^{static}(z)}=\frac{(k_{B}T)^{2}}{\int_{0}^{\infty |
| 142 |
|
|
}\langle\delta F(z,t)\delta F(z,0)\rangle dt}% |
| 143 |
|
|
\end{equation} |
| 144 |
|
|
|
| 145 |
|
|
|
| 146 |
|
|
\bigskip Z-Constraint method, which fixed the z coordinates of the molecules |
| 147 |
|
|
with respect to the center of the mass of the system, was proposed to obtain |
| 148 |
|
|
the forces required in force auto-correlation method.\cite{Marrink94} However, |
| 149 |
|
|
simply resetting the coordinate will move the center of the mass of the whole |
| 150 |
|
|
system. To avoid this problem, a new method was used at {\sc oopse}. Instead of |
| 151 |
|
|
resetting the coordinate, we reset the forces of z-constraint molecules as |
| 152 |
|
|
well as subtract the total constraint forces from the rest of the system after |
| 153 |
|
|
force calculation at each time step. |
| 154 |
|
|
\begin{verbatim} |
| 155 |
|
|
$F_{\alpha i}=0$ |
| 156 |
|
|
$V_{\alpha i}=V_{\alpha i}-\frac{\sum\limits_{i}M_{_{\alpha i}}V_{\alpha i}}{\sum\limits_{i}M_{_{\alpha i}}}$ |
| 157 |
|
|
$F_{\alpha i}=F_{\alpha i}-\frac{M_{_{\alpha i}}}{\sum\limits_{\alpha}\sum\limits_{i}M_{_{\alpha i}}}\sum\limits_{\beta}F_{\beta}$ |
| 158 |
|
|
$V_{\alpha i}=V_{\alpha i}-\frac{\sum\limits_{\alpha}\sum\limits_{i}M_{_{\alpha i}}V_{\alpha i}}{\sum\limits_{\alpha}\sum\limits_{i}M_{_{\alpha i}}}$ |
| 159 |
|
|
\end{verbatim} |
| 160 |
|
|
|
| 161 |
|
|
At the very beginning of the simulation, the molecules may not be at its |
| 162 |
|
|
constraint position. To move the z-constraint molecule to the specified |
| 163 |
|
|
position, a simple harmonic potential is used% |
| 164 |
|
|
|
| 165 |
|
|
\begin{equation} |
| 166 |
|
|
U(t)=\frac{1}{2}k_{Harmonic}(z(t)-z_{cons})^{2}% |
| 167 |
|
|
\end{equation} |
| 168 |
|
|
where $k_{Harmonic}$\bigskip\ is the harmonic force constant, $z(t)$ is |
| 169 |
|
|
current z coordinate of the center of mass of the z-constraint molecule, and |
| 170 |
|
|
$z_{cons}$ is the restraint position. Therefore, the harmonic force operated |
| 171 |
|
|
on the z-constraint molecule at time $t$ can be calculated by% |
| 172 |
|
|
\begin{equation} |
| 173 |
|
|
F_{z_{Harmonic}}(t)=-\frac{\partial U(t)}{\partial z(t)}=-k_{Harmonic}% |
| 174 |
|
|
(z(t)-z_{cons}) |
| 175 |
|
|
\end{equation} |
| 176 |
|
|
Worthy of mention, other kinds of potential functions can also be used to |
| 177 |
|
|
drive the z-constraint molecule. |