1 |
mmeineke |
899 |
|
2 |
|
|
\section{\label{sec:mechanics}Mechanics} |
3 |
|
|
|
4 |
gezelter |
1069 |
\subsection{\label{integrate}Integrating the Equations of Motion: the |
5 |
|
|
DLM method} |
6 |
mmeineke |
899 |
|
7 |
gezelter |
1069 |
The default method for integrating the equations of motion in {\sc |
8 |
|
|
oopse} is carried out using a velocity-Verlet version of the |
9 |
|
|
symplectic splitting method proposed by Dullweber, Leimkuhler and |
10 |
|
|
McLachlan (DLM).\cite{Dullweber1997} When there are no directional |
11 |
|
|
atoms or rigid bodies present in the simulation, this integrator |
12 |
|
|
becomes the standard velocity-Verlet integrator which is known to |
13 |
|
|
sample the microcanonical (NVE) ensemble. |
14 |
mmeineke |
899 |
|
15 |
gezelter |
1069 |
Previous integration methods for orientational motion have problems |
16 |
|
|
that are avoided in the DLM method. Direct propagation of the Euler |
17 |
|
|
angles has a known $1/\sin\theta$ divergence in the equations of |
18 |
|
|
motion for $\phi$ and $\psi$,\cite{AllenTildesley} leading to |
19 |
|
|
numerical instabilities any time one of the directional atoms or rigid |
20 |
|
|
bodies has an orientation near $\theta=0$ or $\theta=\pi$. More |
21 |
|
|
modern quaternion-based integration methods have relatively poor |
22 |
|
|
energy conservation. While quaternions work well for orientational |
23 |
|
|
motion in other ensembles ensembles, the microcanonical ensemble has a |
24 |
|
|
constant energy requirement that is quite sensitive to errors in the |
25 |
|
|
equations of motion. An earlier implementation of {\sc oopse} |
26 |
|
|
utilized quaternions for propagation of rotational motion; however, a |
27 |
|
|
detailed investigation showed that they resulted in a steady drift in |
28 |
|
|
the total energy, something that has been observed by |
29 |
|
|
others.\cite{Laird97} |
30 |
|
|
|
31 |
mmeineke |
899 |
The key difference in the integration method proposed by Dullweber |
32 |
|
|
\emph{et al.} is that the entire rotation matrix is propagated from |
33 |
gezelter |
1069 |
one time step to the next. In the past, this would not have been a |
34 |
|
|
feasible option, since that the rotation matrix for a single body has |
35 |
|
|
nine elements compared to 3 or 4 elements for Euler angles and |
36 |
|
|
quaternions respectively. System memory has become less costly in |
37 |
|
|
recent times, and this can be translated into substantial benefits in |
38 |
|
|
energy conservation. |
39 |
mmeineke |
899 |
|
40 |
gezelter |
1069 |
The basic equations of motion being integrated are derived from the |
41 |
|
|
Hamiltonian for conservative systems containing rigid bodies, |
42 |
|
|
\begin{equation} |
43 |
|
|
H = \sum_{i} \frac{\vec{v}_i^T M_i \vec{v}_i}{2} + \sum_i |
44 |
|
|
\frac{\vec{j}_i^T I_i \vec{j_i}}{2} + |
45 |
|
|
V(\left\{\vec{r}_i\right\}, \left\{\vec{\Omega}_i\right\}) |
46 |
|
|
\end{equation} |
47 |
|
|
where $\vec{r}_i$, $\vec{v}_i$, $\vec{j}_i$ and $I_i$ are the |
48 |
|
|
cartesian position vector of the center of mass, its velocity, the |
49 |
|
|
body-frame angular velocity, and the moment of inertia tensor (also in |
50 |
|
|
the body frame) of particle $i$, respectively. $V$ is the potential |
51 |
|
|
energy function and $\vec{\Omega}_i$ is a representation of the |
52 |
|
|
orientation of particle $i$. The equations of motion for the particle |
53 |
|
|
centers of mass are derived from Hamilton's equations and are quite |
54 |
|
|
simple, |
55 |
|
|
\begin{eqnarray} |
56 |
|
|
\frac{d \vec{r}}{d t} & = & \vec{v}(t) \\ |
57 |
|
|
\frac{d \vec{v}}{d t} & = & \frac{\vec{f}(t)}{m}, |
58 |
|
|
\end{eqnarray} |
59 |
|
|
where $\vec{f}(t)$ is the instantaneous force on the centers of mass, |
60 |
|
|
\begin{equation} |
61 |
|
|
\vec{f}(t) = \frac{\partial}{\partial |
62 |
|
|
\vec{r}}V(\left\{\vec{r}_i(t)\right\}, |
63 |
|
|
\left\{\vec{\Omega}_i(t)\right\}). |
64 |
|
|
\end{equation} |
65 |
|
|
|
66 |
|
|
The equations of motion for the orientational degrees of freedom |
67 |
|
|
require switching between the space-fixed (or laboratory-fixed) |
68 |
|
|
frame and the body-fixed frame. Forces and torques are most |
69 |
|
|
conveniently calculated in the space-fixed frame, while the rotational |
70 |
|
|
equations of motion are simplest in the body-fixed frame, |
71 |
|
|
\begin{eqnarray} |
72 |
|
|
\frac{d j_{x}}{d t} & = & \frac{\tau_x(t)}{I_{xx}} + |
73 |
|
|
\left(\frac{I_{yy} - I_{zz}}{I_{xx}} \right) j_y j_z \\ |
74 |
|
|
\frac{d j_{y}}{d t} & = & \frac{\tau_y(t)}{I_{yy}} + |
75 |
|
|
\left(\frac{I_{zz} - I_{xx}}{I_{yy}} \right) j_z j_x \\ |
76 |
|
|
\frac{d j_{z}}{d t} & = & \frac{\tau_z(t)}{I_{zz}} + |
77 |
|
|
\left(\frac{I_{xx} - I_{yy}}{I_{zz}} \right) j_x j_y |
78 |
|
|
\end{eqnarray} |
79 |
|
|
|
80 |
|
|
The DLM method allows for Verlet style integration of both linear and |
81 |
|
|
angular motion of rigid bodies. |
82 |
|
|
|
83 |
|
|
|
84 |
|
|
|
85 |
|
|
|
86 |
|
|
|
87 |
|
|
In the integration method, the |
88 |
|
|
orientational propagation involves a sequence of matrix evaluations to |
89 |
|
|
update the rotation matrix.\cite{Dullweber1997} These matrix rotations |
90 |
|
|
end up being more costly computationally than the simpler arithmetic |
91 |
|
|
quaternion propagation. With the same time step, a 1000 SSD particle |
92 |
|
|
simulation shows an average 7\% increase in computation time using the |
93 |
|
|
symplectic step method in place of quaternions. This cost is more than |
94 |
|
|
justified when comparing the energy conservation of the two methods as |
95 |
|
|
illustrated in figure |
96 |
mmeineke |
899 |
\ref{timestep}. |
97 |
|
|
|
98 |
|
|
\begin{figure} |
99 |
|
|
\epsfxsize=6in |
100 |
|
|
\epsfbox{timeStep.epsi} |
101 |
|
|
\caption{Energy conservation using quaternion based integration versus |
102 |
|
|
the symplectic step method proposed by Dullweber \emph{et al.} with |
103 |
|
|
increasing time step. For each time step, the dotted line is total |
104 |
|
|
energy using the symplectic step integrator, and the solid line comes |
105 |
|
|
from the quaternion integrator. The larger time step plots are shifted |
106 |
|
|
up from the true energy baseline for clarity.} |
107 |
|
|
\label{timestep} |
108 |
|
|
\end{figure} |
109 |
|
|
|
110 |
|
|
In figure \ref{timestep}, the resulting energy drift at various time |
111 |
|
|
steps for both the symplectic step and quaternion integration schemes |
112 |
|
|
is compared. All of the 1000 SSD particle simulations started with the |
113 |
|
|
same configuration, and the only difference was the method for |
114 |
|
|
handling rotational motion. At time steps of 0.1 and 0.5 fs, both |
115 |
|
|
methods for propagating particle rotation conserve energy fairly well, |
116 |
|
|
with the quaternion method showing a slight energy drift over time in |
117 |
|
|
the 0.5 fs time step simulation. At time steps of 1 and 2 fs, the |
118 |
|
|
energy conservation benefits of the symplectic step method are clearly |
119 |
|
|
demonstrated. Thus, while maintaining the same degree of energy |
120 |
|
|
conservation, one can take considerably longer time steps, leading to |
121 |
|
|
an overall reduction in computation time. |
122 |
|
|
|
123 |
|
|
Energy drift in these SSD particle simulations was unnoticeable for |
124 |
|
|
time steps up to three femtoseconds. A slight energy drift on the |
125 |
|
|
order of 0.012 kcal/mol per nanosecond was observed at a time step of |
126 |
|
|
four femtoseconds, and as expected, this drift increases dramatically |
127 |
|
|
with increasing time step. To insure accuracy in the constant energy |
128 |
|
|
simulations, time steps were set at 2 fs and kept at this value for |
129 |
|
|
constant pressure simulations as well. |
130 |
|
|
|
131 |
|
|
|
132 |
|
|
\subsection{\label{sec:extended}Extended Systems for other Ensembles} |
133 |
|
|
|
134 |
|
|
|
135 |
gezelter |
1069 |
|
136 |
|
|
|
137 |
mmeineke |
899 |
{\sc oopse} implements a |
138 |
|
|
|
139 |
|
|
|
140 |
|
|
\subsubsection{\label{sec:noseHooverThermo}Nose-Hoover Thermostatting} |
141 |
|
|
|
142 |
|
|
To mimic the effects of being in a constant temperature ({\sc nvt}) |
143 |
|
|
ensemble, {\sc oopse} uses the Nose-Hoover extended system |
144 |
|
|
approach.\cite{Hoover85} In this method, the equations of motion for |
145 |
|
|
the particle positions and velocities are |
146 |
|
|
\begin{eqnarray} |
147 |
|
|
\dot{{\bf r}} & = & {\bf v} \\ |
148 |
|
|
\dot{{\bf v}} & = & \frac{{\bf f}}{m} - \chi {\bf v} |
149 |
|
|
\label{eq:nosehoovereom} |
150 |
|
|
\end{eqnarray} |
151 |
|
|
|
152 |
|
|
$\chi$ is an ``extra'' variable included in the extended system, and |
153 |
|
|
it is propagated using the first order equation of motion |
154 |
|
|
\begin{equation} |
155 |
|
|
\dot{\chi} = \frac{1}{\tau_{T}} \left( \frac{T}{T_{target}} - 1 \right) |
156 |
|
|
\label{eq:nosehooverext} |
157 |
|
|
\end{equation} |
158 |
|
|
where $T_{target}$ is the target temperature for the simulation, and |
159 |
|
|
$\tau_{T}$ is a time constant for the thermostat. |
160 |
|
|
|
161 |
|
|
To select the Nose-Hoover {\sc nvt} ensemble, the {\tt ensemble = NVT;} |
162 |
|
|
command would be used in the simulation's {\sc bass} file. There is |
163 |
|
|
some subtlety in choosing values for $\tau_{T}$, and it is usually set |
164 |
|
|
to values of a few ps. Within a {\sc bass} file, $\tau_{T}$ could be |
165 |
|
|
set to 1 ps using the {\tt tauThermostat = 1000; } command. |
166 |
|
|
|
167 |
|
|
|
168 |
|
|
\subsection{\label{Sec:zcons}Z-Constraint Method} |
169 |
|
|
|
170 |
|
|
Based on fluctuatin-dissipation theorem,\bigskip\ force auto-correlation |
171 |
|
|
method was developed to investigate the dynamics of ions inside the ion |
172 |
|
|
channels.\cite{Roux91} Time-dependent friction coefficient can be calculated |
173 |
|
|
from the deviation of the instaneous force from its mean force. |
174 |
|
|
|
175 |
|
|
% |
176 |
|
|
|
177 |
|
|
\begin{equation} |
178 |
|
|
\xi(z,t)=\langle\delta F(z,t)\delta F(z,0)\rangle/k_{B}T |
179 |
|
|
\end{equation} |
180 |
|
|
|
181 |
|
|
|
182 |
|
|
where% |
183 |
|
|
\begin{equation} |
184 |
|
|
\delta F(z,t)=F(z,t)-\langle F(z,t)\rangle |
185 |
|
|
\end{equation} |
186 |
|
|
|
187 |
|
|
|
188 |
|
|
If the time-dependent friction decay rapidly, static friction coefficient can |
189 |
|
|
be approximated by% |
190 |
|
|
|
191 |
|
|
\begin{equation} |
192 |
|
|
\xi^{static}(z)=\int_{0}^{\infty}\langle\delta F(z,t)\delta F(z,0)\rangle dt |
193 |
|
|
\end{equation} |
194 |
|
|
|
195 |
|
|
|
196 |
|
|
Hence, diffusion constant can be estimated by |
197 |
|
|
\begin{equation} |
198 |
|
|
D(z)=\frac{k_{B}T}{\xi^{static}(z)}=\frac{(k_{B}T)^{2}}{\int_{0}^{\infty |
199 |
|
|
}\langle\delta F(z,t)\delta F(z,0)\rangle dt}% |
200 |
|
|
\end{equation} |
201 |
|
|
|
202 |
|
|
|
203 |
|
|
\bigskip Z-Constraint method, which fixed the z coordinates of the molecules |
204 |
|
|
with respect to the center of the mass of the system, was proposed to obtain |
205 |
|
|
the forces required in force auto-correlation method.\cite{Marrink94} However, |
206 |
|
|
simply resetting the coordinate will move the center of the mass of the whole |
207 |
|
|
system. To avoid this problem, a new method was used at {\sc oopse}. Instead of |
208 |
|
|
resetting the coordinate, we reset the forces of z-constraint molecules as |
209 |
|
|
well as subtract the total constraint forces from the rest of the system after |
210 |
|
|
force calculation at each time step. |
211 |
|
|
\begin{verbatim} |
212 |
|
|
$F_{\alpha i}=0$ |
213 |
|
|
$V_{\alpha i}=V_{\alpha i}-\frac{\sum\limits_{i}M_{_{\alpha i}}V_{\alpha i}}{\sum\limits_{i}M_{_{\alpha i}}}$ |
214 |
|
|
$F_{\alpha i}=F_{\alpha i}-\frac{M_{_{\alpha i}}}{\sum\limits_{\alpha}\sum\limits_{i}M_{_{\alpha i}}}\sum\limits_{\beta}F_{\beta}$ |
215 |
|
|
$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}}}$ |
216 |
|
|
\end{verbatim} |
217 |
|
|
|
218 |
|
|
At the very beginning of the simulation, the molecules may not be at its |
219 |
|
|
constraint position. To move the z-constraint molecule to the specified |
220 |
|
|
position, a simple harmonic potential is used% |
221 |
|
|
|
222 |
|
|
\begin{equation} |
223 |
|
|
U(t)=\frac{1}{2}k_{Harmonic}(z(t)-z_{cons})^{2}% |
224 |
|
|
\end{equation} |
225 |
|
|
where $k_{Harmonic}$\bigskip\ is the harmonic force constant, $z(t)$ is |
226 |
|
|
current z coordinate of the center of mass of the z-constraint molecule, and |
227 |
|
|
$z_{cons}$ is the restraint position. Therefore, the harmonic force operated |
228 |
|
|
on the z-constraint molecule at time $t$ can be calculated by% |
229 |
|
|
\begin{equation} |
230 |
|
|
F_{z_{Harmonic}}(t)=-\frac{\partial U(t)}{\partial z(t)}=-k_{Harmonic}% |
231 |
|
|
(z(t)-z_{cons}) |
232 |
|
|
\end{equation} |
233 |
|
|
Worthy of mention, other kinds of potential functions can also be used to |
234 |
|
|
drive the z-constraint molecule. |