1 |
\chapter{\label{chapt:methodology}METHODOLOGY} |
2 |
|
3 |
\section{\label{methodSection:rigidBodyIntegrators}Integrators for Rigid Body Motion in Molecular Dynamics} |
4 |
|
5 |
In order to mimic the experiments, which are usually performed under |
6 |
constant temperature and/or pressure, extended Hamiltonian system |
7 |
methods have been developed to generate statistical ensemble, such |
8 |
as canonical ensemble and isobaric-isothermal ensemble \textit{etc}. |
9 |
In addition to the standard ensemble, specific ensembles have been |
10 |
developed to account for the anisotropy between the lateral and |
11 |
normal directions of membranes. The $NPAT$ ensemble, in which the |
12 |
normal pressure and the lateral surface area of the membrane are |
13 |
kept constant, and the $NP\gamma T$ ensemble, in which the normal |
14 |
pressure and the lateral surface tension are kept constant were |
15 |
proposed to address this issue. |
16 |
|
17 |
Integration schemes for rotational motion of the rigid molecules in |
18 |
microcanonical ensemble have been extensively studied in the last |
19 |
two decades. Matubayasi and Nakahara developed a time-reversible |
20 |
integrator for rigid bodies in quaternion representation. Although |
21 |
it is not symplectic, this integrator still demonstrates a better |
22 |
long-time energy conservation than traditional methods because of |
23 |
the time-reversible nature. Extending Trotter-Suzuki to general |
24 |
system with a flat phase space, Miller and his colleagues devised an |
25 |
novel symplectic, time-reversible and volume-preserving integrator |
26 |
in quaternion representation, which was shown to be superior to the |
27 |
time-reversible integrator of Matubayasi and Nakahara. However, all |
28 |
of the integrators in quaternion representation suffer from the |
29 |
computational penalty of constructing a rotation matrix from |
30 |
quaternions to evolve coordinates and velocities at every time step. |
31 |
An alternative integration scheme utilizing rotation matrix directly |
32 |
proposed by Dullweber, Leimkuhler and McLachlan (DLM) also preserved |
33 |
the same structural properties of the Hamiltonian flow. In this |
34 |
section, the integration scheme of DLM method will be reviewed and |
35 |
extended to other ensembles. |
36 |
|
37 |
\subsection{\label{methodSection:DLM}Integrating the Equations of Motion: the |
38 |
DLM method} |
39 |
|
40 |
The DLM method uses a Trotter factorization of the orientational |
41 |
propagator. This has three effects: |
42 |
\begin{enumerate} |
43 |
\item the integrator is area-preserving in phase space (i.e. it is |
44 |
{\it symplectic}), |
45 |
\item the integrator is time-{\it reversible}, making it suitable for Hybrid |
46 |
Monte Carlo applications, and |
47 |
\item the error for a single time step is of order $\mathcal{O}\left(h^4\right)$ |
48 |
for timesteps of length $h$. |
49 |
\end{enumerate} |
50 |
|
51 |
The integration of the equations of motion is carried out in a |
52 |
velocity-Verlet style 2-part algorithm, where $h= \delta t$: |
53 |
|
54 |
{\tt moveA:} |
55 |
\begin{align*} |
56 |
{\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t) |
57 |
+ \frac{h}{2} \left( {\bf f}(t) / m \right), \\ |
58 |
% |
59 |
{\bf r}(t + h) &\leftarrow {\bf r}(t) |
60 |
+ h {\bf v}\left(t + h / 2 \right), \\ |
61 |
% |
62 |
{\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t) |
63 |
+ \frac{h}{2} {\bf \tau}^b(t), \\ |
64 |
% |
65 |
\mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left( h {\bf j} |
66 |
(t + h / 2) \cdot \overleftrightarrow{\mathsf{I}}^{-1} \right). |
67 |
\end{align*} |
68 |
|
69 |
In this context, the $\mathrm{rotate}$ function is the reversible |
70 |
product of the three body-fixed rotations, |
71 |
\begin{equation} |
72 |
\mathrm{rotate}({\bf a}) = \mathsf{G}_x(a_x / 2) \cdot |
73 |
\mathsf{G}_y(a_y / 2) \cdot \mathsf{G}_z(a_z) \cdot \mathsf{G}_y(a_y |
74 |
/ 2) \cdot \mathsf{G}_x(a_x /2), |
75 |
\end{equation} |
76 |
where each rotational propagator, $\mathsf{G}_\alpha(\theta)$, |
77 |
rotates both the rotation matrix ($\mathsf{A}$) and the body-fixed |
78 |
angular momentum (${\bf j}$) by an angle $\theta$ around body-fixed |
79 |
axis $\alpha$, |
80 |
\begin{equation} |
81 |
\mathsf{G}_\alpha( \theta ) = \left\{ |
82 |
\begin{array}{lcl} |
83 |
\mathsf{A}(t) & \leftarrow & \mathsf{A}(0) \cdot \mathsf{R}_\alpha(\theta)^T, \\ |
84 |
{\bf j}(t) & \leftarrow & \mathsf{R}_\alpha(\theta) \cdot {\bf |
85 |
j}(0). |
86 |
\end{array} |
87 |
\right. |
88 |
\end{equation} |
89 |
$\mathsf{R}_\alpha$ is a quadratic approximation to the single-axis |
90 |
rotation matrix. For example, in the small-angle limit, the |
91 |
rotation matrix around the body-fixed x-axis can be approximated as |
92 |
\begin{equation} |
93 |
\mathsf{R}_x(\theta) \approx \left( |
94 |
\begin{array}{ccc} |
95 |
1 & 0 & 0 \\ |
96 |
0 & \frac{1-\theta^2 / 4}{1 + \theta^2 / 4} & -\frac{\theta}{1+ |
97 |
\theta^2 / 4} \\ |
98 |
0 & \frac{\theta}{1+ \theta^2 / 4} & \frac{1-\theta^2 / 4}{1 + |
99 |
\theta^2 / 4} |
100 |
\end{array} |
101 |
\right). |
102 |
\end{equation} |
103 |
All other rotations follow in a straightforward manner. |
104 |
|
105 |
After the first part of the propagation, the forces and body-fixed |
106 |
torques are calculated at the new positions and orientations |
107 |
|
108 |
{\tt doForces:} |
109 |
\begin{align*} |
110 |
{\bf f}(t + h) &\leftarrow |
111 |
- \left(\frac{\partial V}{\partial {\bf r}}\right)_{{\bf r}(t + h)}, \\ |
112 |
% |
113 |
{\bf \tau}^{s}(t + h) &\leftarrow {\bf u}(t + h) |
114 |
\times \frac{\partial V}{\partial {\bf u}}, \\ |
115 |
% |
116 |
{\bf \tau}^{b}(t + h) &\leftarrow \mathsf{A}(t + h) |
117 |
\cdot {\bf \tau}^s(t + h). |
118 |
\end{align*} |
119 |
|
120 |
{\sc oopse} automatically updates ${\bf u}$ when the rotation matrix |
121 |
$\mathsf{A}$ is calculated in {\tt moveA}. Once the forces and |
122 |
torques have been obtained at the new time step, the velocities can |
123 |
be advanced to the same time value. |
124 |
|
125 |
{\tt moveB:} |
126 |
\begin{align*} |
127 |
{\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t + h / 2 |
128 |
\right) |
129 |
+ \frac{h}{2} \left( {\bf f}(t + h) / m \right), \\ |
130 |
% |
131 |
{\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t + h / 2 |
132 |
\right) |
133 |
+ \frac{h}{2} {\bf \tau}^b(t + h) . |
134 |
\end{align*} |
135 |
|
136 |
The matrix rotations used in the DLM method end up being more costly |
137 |
computationally than the simpler arithmetic quaternion propagation. |
138 |
With the same time step, a 1000-molecule water simulation shows an |
139 |
average 7\% increase in computation time using the DLM method in |
140 |
place of quaternions. This cost is more than justified when |
141 |
comparing the energy conservation of the two methods as illustrated |
142 |
in Fig.~\ref{timestep}. |
143 |
|
144 |
\begin{figure} |
145 |
\centering |
146 |
\includegraphics[width=\linewidth]{timeStep.eps} |
147 |
\caption[Energy conservation for quaternion versus DLM |
148 |
dynamics]{Energy conservation using quaternion based integration |
149 |
versus the method proposed by Dullweber \emph{et al.} with |
150 |
increasing time step. For each time step, the dotted line is total |
151 |
energy using the DLM integrator, and the solid line comes from the |
152 |
quaternion integrator. The larger time step plots are shifted up |
153 |
from the true energy baseline for clarity.} \label{timestep} |
154 |
\end{figure} |
155 |
|
156 |
In Fig.~\ref{timestep}, the resulting energy drift at various time |
157 |
steps for both the DLM and quaternion integration schemes is |
158 |
compared. All of the 1000 molecule water simulations started with |
159 |
the same configuration, and the only difference was the method for |
160 |
handling rotational motion. At time steps of 0.1 and 0.5 fs, both |
161 |
methods for propagating molecule rotation conserve energy fairly |
162 |
well, with the quaternion method showing a slight energy drift over |
163 |
time in the 0.5 fs time step simulation. At time steps of 1 and 2 |
164 |
fs, the energy conservation benefits of the DLM method are clearly |
165 |
demonstrated. Thus, while maintaining the same degree of energy |
166 |
conservation, one can take considerably longer time steps, leading |
167 |
to an overall reduction in computation time. |
168 |
|
169 |
\subsection{\label{methodSection:NVT}Nos\'{e}-Hoover Thermostatting} |
170 |
|
171 |
The Nos\'e-Hoover equations of motion are given by\cite{Hoover85} |
172 |
\begin{eqnarray} |
173 |
\dot{{\bf r}} & = & {\bf v}, \\ |
174 |
\dot{{\bf v}} & = & \frac{{\bf f}}{m} - \chi {\bf v} ,\\ |
175 |
\dot{\mathsf{A}} & = & \mathsf{A} \cdot |
176 |
\mbox{ skew}\left(\overleftrightarrow{\mathsf{I}}^{-1} \cdot {\bf j}\right), \\ |
177 |
\dot{{\bf j}} & = & {\bf j} \times \left( |
178 |
\overleftrightarrow{\mathsf{I}}^{-1} \cdot {\bf j} \right) - \mbox{ |
179 |
rot}\left(\mathsf{A}^{T} \cdot \frac{\partial V}{\partial |
180 |
\mathsf{A}} \right) - \chi {\bf j}. \label{eq:nosehoovereom} |
181 |
\end{eqnarray} |
182 |
|
183 |
$\chi$ is an ``extra'' variable included in the extended system, and |
184 |
it is propagated using the first order equation of motion |
185 |
\begin{equation} |
186 |
\dot{\chi} = \frac{1}{\tau_{T}^2} \left( |
187 |
\frac{T}{T_{\mathrm{target}}} - 1 \right). \label{eq:nosehooverext} |
188 |
\end{equation} |
189 |
|
190 |
The instantaneous temperature $T$ is proportional to the total |
191 |
kinetic energy (both translational and orientational) and is given |
192 |
by |
193 |
\begin{equation} |
194 |
T = \frac{2 K}{f k_B} |
195 |
\end{equation} |
196 |
Here, $f$ is the total number of degrees of freedom in the system, |
197 |
\begin{equation} |
198 |
f = 3 N + 3 N_{\mathrm{orient}} - N_{\mathrm{constraints}}, |
199 |
\end{equation} |
200 |
and $K$ is the total kinetic energy, |
201 |
\begin{equation} |
202 |
K = \sum_{i=1}^{N} \frac{1}{2} m_i {\bf v}_i^T \cdot {\bf v}_i + |
203 |
\sum_{i=1}^{N_{\mathrm{orient}}} \frac{1}{2} {\bf j}_i^T \cdot |
204 |
\overleftrightarrow{\mathsf{I}}_i^{-1} \cdot {\bf j}_i. |
205 |
\end{equation} |
206 |
|
207 |
In eq.(\ref{eq:nosehooverext}), $\tau_T$ is the time constant for |
208 |
relaxation of the temperature to the target value. To set values |
209 |
for $\tau_T$ or $T_{\mathrm{target}}$ in a simulation, one would use |
210 |
the {\tt tauThermostat} and {\tt targetTemperature} keywords in the |
211 |
{\tt .bass} file. The units for {\tt tauThermostat} are fs, and the |
212 |
units for the {\tt targetTemperature} are degrees K. The |
213 |
integration of the equations of motion is carried out in a |
214 |
velocity-Verlet style 2 part algorithm: |
215 |
|
216 |
{\tt moveA:} |
217 |
\begin{align*} |
218 |
T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\ |
219 |
% |
220 |
{\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t) |
221 |
+ \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - {\bf v}(t) |
222 |
\chi(t)\right), \\ |
223 |
% |
224 |
{\bf r}(t + h) &\leftarrow {\bf r}(t) |
225 |
+ h {\bf v}\left(t + h / 2 \right) ,\\ |
226 |
% |
227 |
{\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t) |
228 |
+ \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t) |
229 |
\chi(t) \right) ,\\ |
230 |
% |
231 |
\mathsf{A}(t + h) &\leftarrow \mathrm{rotate} |
232 |
\left(h * {\bf j}(t + h / 2) |
233 |
\overleftrightarrow{\mathsf{I}}^{-1} \right) ,\\ |
234 |
% |
235 |
\chi\left(t + h / 2 \right) &\leftarrow \chi(t) |
236 |
+ \frac{h}{2 \tau_T^2} \left( \frac{T(t)} |
237 |
{T_{\mathrm{target}}} - 1 \right) . |
238 |
\end{align*} |
239 |
|
240 |
Here $\mathrm{rotate}(h * {\bf j} |
241 |
\overleftrightarrow{\mathsf{I}}^{-1})$ is the same symplectic |
242 |
Trotter factorization of the three rotation operations that was |
243 |
discussed in the section on the DLM integrator. Note that this |
244 |
operation modifies both the rotation matrix $\mathsf{A}$ and the |
245 |
angular momentum ${\bf j}$. {\tt moveA} propagates velocities by a |
246 |
half time step, and positional degrees of freedom by a full time |
247 |
step. The new positions (and orientations) are then used to |
248 |
calculate a new set of forces and torques in exactly the same way |
249 |
they are calculated in the {\tt doForces} portion of the DLM |
250 |
integrator. |
251 |
|
252 |
Once the forces and torques have been obtained at the new time step, |
253 |
the temperature, velocities, and the extended system variable can be |
254 |
advanced to the same time value. |
255 |
|
256 |
{\tt moveB:} |
257 |
\begin{align*} |
258 |
T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\}, |
259 |
\left\{{\bf j}(t + h)\right\}, \\ |
260 |
% |
261 |
\chi\left(t + h \right) &\leftarrow \chi\left(t + h / |
262 |
2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+h)} |
263 |
{T_{\mathrm{target}}} - 1 \right), \\ |
264 |
% |
265 |
{\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t |
266 |
+ h / 2 \right) + \frac{h}{2} \left( |
267 |
\frac{{\bf f}(t + h)}{m} - {\bf v}(t + h) |
268 |
\chi(t h)\right) ,\\ |
269 |
% |
270 |
{\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t |
271 |
+ h / 2 \right) + \frac{h}{2} |
272 |
\left( {\bf \tau}^b(t + h) - {\bf j}(t + h) |
273 |
\chi(t + h) \right) . |
274 |
\end{align*} |
275 |
|
276 |
Since ${\bf v}(t + h)$ and ${\bf j}(t + h)$ are required to |
277 |
caclculate $T(t + h)$ as well as $\chi(t + h)$, they indirectly |
278 |
depend on their own values at time $t + h$. {\tt moveB} is |
279 |
therefore done in an iterative fashion until $\chi(t + h)$ becomes |
280 |
self-consistent. The relative tolerance for the self-consistency |
281 |
check defaults to a value of $\mbox{10}^{-6}$, but {\sc oopse} will |
282 |
terminate the iteration after 4 loops even if the consistency check |
283 |
has not been satisfied. |
284 |
|
285 |
The Nos\'e-Hoover algorithm is known to conserve a Hamiltonian for |
286 |
the extended system that is, to within a constant, identical to the |
287 |
Helmholtz free energy,\cite{melchionna93} |
288 |
\begin{equation} |
289 |
H_{\mathrm{NVT}} = V + K + f k_B T_{\mathrm{target}} \left( |
290 |
\frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime) |
291 |
dt^\prime \right). |
292 |
\end{equation} |
293 |
Poor choices of $h$ or $\tau_T$ can result in non-conservation of |
294 |
$H_{\mathrm{NVT}}$, so the conserved quantity is maintained in the |
295 |
last column of the {\tt .stat} file to allow checks on the quality |
296 |
of the integration. |
297 |
|
298 |
Bond constraints are applied at the end of both the {\tt moveA} and |
299 |
{\tt moveB} portions of the algorithm. Details on the constraint |
300 |
algorithms are given in section \ref{oopseSec:rattle}. |
301 |
|
302 |
\subsection{\label{methodSection:NPTi}Constant-pressure integration with |
303 |
isotropic box deformations (NPTi)} |
304 |
|
305 |
To carry out isobaric-isothermal ensemble calculations {\sc oopse} |
306 |
implements the Melchionna modifications to the |
307 |
Nos\'e-Hoover-Andersen equations of motion,\cite{melchionna93} |
308 |
|
309 |
\begin{eqnarray} |
310 |
\dot{{\bf r}} & = & {\bf v} + \eta \left( {\bf r} - {\bf R}_0 \right), \\ |
311 |
\dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\eta + \chi) {\bf v}, \\ |
312 |
\dot{\mathsf{A}} & = & \mathsf{A} \cdot |
313 |
\mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right),\\ |
314 |
\dot{{\bf j}} & = & {\bf j} \times \left( |
315 |
\overleftrightarrow{I}^{-1} \cdot {\bf j} \right) - \mbox{ |
316 |
rot}\left(\mathsf{A}^{T} \cdot \frac{\partial |
317 |
V}{\partial \mathsf{A}} \right) - \chi {\bf j}, \\ |
318 |
\dot{\chi} & = & \frac{1}{\tau_{T}^2} \left( |
319 |
\frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\ |
320 |
\dot{\eta} & = & \frac{1}{\tau_{B}^2 f k_B T_{\mathrm{target}}} V |
321 |
\left( P - |
322 |
P_{\mathrm{target}} \right), \\ |
323 |
\dot{\mathcal{V}} & = & 3 \mathcal{V} \eta . \label{eq:melchionna1} |
324 |
\end{eqnarray} |
325 |
|
326 |
$\chi$ and $\eta$ are the ``extra'' degrees of freedom in the |
327 |
extended system. $\chi$ is a thermostat, and it has the same |
328 |
function as it does in the Nos\'e-Hoover NVT integrator. $\eta$ is |
329 |
a barostat which controls changes to the volume of the simulation |
330 |
box. ${\bf R}_0$ is the location of the center of mass for the |
331 |
entire system, and $\mathcal{V}$ is the volume of the simulation |
332 |
box. At any time, the volume can be calculated from the determinant |
333 |
of the matrix which describes the box shape: |
334 |
\begin{equation} |
335 |
\mathcal{V} = \det(\mathsf{H}). |
336 |
\end{equation} |
337 |
|
338 |
The NPTi integrator requires an instantaneous pressure. This |
339 |
quantity is calculated via the pressure tensor, |
340 |
\begin{equation} |
341 |
\overleftrightarrow{\mathsf{P}}(t) = \frac{1}{\mathcal{V}(t)} \left( |
342 |
\sum_{i=1}^{N} m_i {\bf v}_i(t) \otimes {\bf v}_i(t) \right) + |
343 |
\overleftrightarrow{\mathsf{W}}(t). |
344 |
\end{equation} |
345 |
The kinetic contribution to the pressure tensor utilizes the {\it |
346 |
outer} product of the velocities denoted by the $\otimes$ symbol. |
347 |
The stress tensor is calculated from another outer product of the |
348 |
inter-atomic separation vectors (${\bf r}_{ij} = {\bf r}_j - {\bf |
349 |
r}_i$) with the forces between the same two atoms, |
350 |
\begin{equation} |
351 |
\overleftrightarrow{\mathsf{W}}(t) = \sum_{i} \sum_{j>i} {\bf |
352 |
r}_{ij}(t) \otimes {\bf f}_{ij}(t). |
353 |
\end{equation} |
354 |
The instantaneous pressure is then simply obtained from the trace of |
355 |
the Pressure tensor, |
356 |
\begin{equation} |
357 |
P(t) = \frac{1}{3} \mathrm{Tr} \left( |
358 |
\overleftrightarrow{\mathsf{P}}(t). \right) |
359 |
\end{equation} |
360 |
|
361 |
In eq.(\ref{eq:melchionna1}), $\tau_B$ is the time constant for |
362 |
relaxation of the pressure to the target value. To set values for |
363 |
$\tau_B$ or $P_{\mathrm{target}}$ in a simulation, one would use the |
364 |
{\tt tauBarostat} and {\tt targetPressure} keywords in the {\tt |
365 |
.bass} file. The units for {\tt tauBarostat} are fs, and the units |
366 |
for the {\tt targetPressure} are atmospheres. Like in the NVT |
367 |
integrator, the integration of the equations of motion is carried |
368 |
out in a velocity-Verlet style 2 part algorithm: |
369 |
|
370 |
{\tt moveA:} |
371 |
\begin{align*} |
372 |
T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\ |
373 |
% |
374 |
P(t) &\leftarrow \left\{{\bf r}(t)\right\}, \left\{{\bf v}(t)\right\} ,\\ |
375 |
% |
376 |
{\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t) |
377 |
+ \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - {\bf v}(t) |
378 |
\left(\chi(t) + \eta(t) \right) \right), \\ |
379 |
% |
380 |
{\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t) |
381 |
+ \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t) |
382 |
\chi(t) \right), \\ |
383 |
% |
384 |
\mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h * |
385 |
{\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1} |
386 |
\right) ,\\ |
387 |
% |
388 |
\chi\left(t + h / 2 \right) &\leftarrow \chi(t) + |
389 |
\frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}} - 1 |
390 |
\right) ,\\ |
391 |
% |
392 |
\eta(t + h / 2) &\leftarrow \eta(t) + \frac{h |
393 |
\mathcal{V}(t)}{2 N k_B T(t) \tau_B^2} \left( P(t) |
394 |
- P_{\mathrm{target}} \right), \\ |
395 |
% |
396 |
{\bf r}(t + h) &\leftarrow {\bf r}(t) + h |
397 |
\left\{ {\bf v}\left(t + h / 2 \right) |
398 |
+ \eta(t + h / 2)\left[ {\bf r}(t + h) |
399 |
- {\bf R}_0 \right] \right\} ,\\ |
400 |
% |
401 |
\mathsf{H}(t + h) &\leftarrow e^{-h \eta(t + h / 2)} |
402 |
\mathsf{H}(t). |
403 |
\end{align*} |
404 |
|
405 |
Most of these equations are identical to their counterparts in the |
406 |
NVT integrator, but the propagation of positions to time $t + h$ |
407 |
depends on the positions at the same time. {\sc oopse} carries out |
408 |
this step iteratively (with a limit of 5 passes through the |
409 |
iterative loop). Also, the simulation box $\mathsf{H}$ is scaled |
410 |
uniformly for one full time step by an exponential factor that |
411 |
depends on the value of $\eta$ at time $t + h / 2$. Reshaping the |
412 |
box uniformly also scales the volume of the box by |
413 |
\begin{equation} |
414 |
\mathcal{V}(t + h) \leftarrow e^{ - 3 h \eta(t + h /2)}. |
415 |
\mathcal{V}(t) |
416 |
\end{equation} |
417 |
|
418 |
The {\tt doForces} step for the NPTi integrator is exactly the same |
419 |
as in both the DLM and NVT integrators. Once the forces and torques |
420 |
have been obtained at the new time step, the velocities can be |
421 |
advanced to the same time value. |
422 |
|
423 |
{\tt moveB:} |
424 |
\begin{align*} |
425 |
T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\}, |
426 |
\left\{{\bf j}(t + h)\right\} ,\\ |
427 |
% |
428 |
P(t + h) &\leftarrow \left\{{\bf r}(t + h)\right\}, |
429 |
\left\{{\bf v}(t + h)\right\}, \\ |
430 |
% |
431 |
\chi\left(t + h \right) &\leftarrow \chi\left(t + h / |
432 |
2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+h)} |
433 |
{T_{\mathrm{target}}} - 1 \right), \\ |
434 |
% |
435 |
\eta(t + h) &\leftarrow \eta(t + h / 2) + |
436 |
\frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h) |
437 |
\tau_B^2} \left( P(t + h) - P_{\mathrm{target}} \right), \\ |
438 |
% |
439 |
{\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t |
440 |
+ h / 2 \right) + \frac{h}{2} \left( |
441 |
\frac{{\bf f}(t + h)}{m} - {\bf v}(t + h) |
442 |
(\chi(t + h) + \eta(t + h)) \right) ,\\ |
443 |
% |
444 |
{\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t |
445 |
+ h / 2 \right) + \frac{h}{2} \left( {\bf |
446 |
\tau}^b(t + h) - {\bf j}(t + h) |
447 |
\chi(t + h) \right) . |
448 |
\end{align*} |
449 |
|
450 |
Once again, since ${\bf v}(t + h)$ and ${\bf j}(t + h)$ are required |
451 |
to caclculate $T(t + h)$, $P(t + h)$, $\chi(t + h)$, and $\eta(t + |
452 |
h)$, they indirectly depend on their own values at time $t + h$. |
453 |
{\tt moveB} is therefore done in an iterative fashion until $\chi(t |
454 |
+ h)$ and $\eta(t + h)$ become self-consistent. The relative |
455 |
tolerance for the self-consistency check defaults to a value of |
456 |
$\mbox{10}^{-6}$, but {\sc oopse} will terminate the iteration after |
457 |
4 loops even if the consistency check has not been satisfied. |
458 |
|
459 |
The Melchionna modification of the Nos\'e-Hoover-Andersen algorithm |
460 |
is known to conserve a Hamiltonian for the extended system that is, |
461 |
to within a constant, identical to the Gibbs free energy, |
462 |
\begin{equation} |
463 |
H_{\mathrm{NPTi}} = V + K + f k_B T_{\mathrm{target}} \left( |
464 |
\frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime) |
465 |
dt^\prime \right) + P_{\mathrm{target}} \mathcal{V}(t). |
466 |
\end{equation} |
467 |
Poor choices of $\delta t$, $\tau_T$, or $\tau_B$ can result in |
468 |
non-conservation of $H_{\mathrm{NPTi}}$, so the conserved quantity |
469 |
is maintained in the last column of the {\tt .stat} file to allow |
470 |
checks on the quality of the integration. It is also known that |
471 |
this algorithm samples the equilibrium distribution for the enthalpy |
472 |
(including contributions for the thermostat and barostat), |
473 |
\begin{equation} |
474 |
H_{\mathrm{NPTi}} = V + K + \frac{f k_B T_{\mathrm{target}}}{2} |
475 |
\left( \chi^2 \tau_T^2 + \eta^2 \tau_B^2 \right) + |
476 |
P_{\mathrm{target}} \mathcal{V}(t). |
477 |
\end{equation} |
478 |
|
479 |
Bond constraints are applied at the end of both the {\tt moveA} and |
480 |
{\tt moveB} portions of the algorithm. Details on the constraint |
481 |
algorithms are given in section \ref{oopseSec:rattle}. |
482 |
|
483 |
\subsection{\label{methodSection:NPTf}Constant-pressure integration with a |
484 |
flexible box (NPTf)} |
485 |
|
486 |
There is a relatively simple generalization of the |
487 |
Nos\'e-Hoover-Andersen method to include changes in the simulation |
488 |
box {\it shape} as well as in the volume of the box. This method |
489 |
utilizes the full $3 \times 3$ pressure tensor and introduces a |
490 |
tensor of extended variables ($\overleftrightarrow{\eta}$) to |
491 |
control changes to the box shape. The equations of motion for this |
492 |
method are |
493 |
\begin{eqnarray} |
494 |
\dot{{\bf r}} & = & {\bf v} + \overleftrightarrow{\eta} \cdot \left( {\bf r} - {\bf R}_0 \right), \\ |
495 |
\dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\overleftrightarrow{\eta} + |
496 |
\chi \cdot \mathsf{1}) {\bf v}, \\ |
497 |
\dot{\mathsf{A}} & = & \mathsf{A} \cdot |
498 |
\mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right) ,\\ |
499 |
\dot{{\bf j}} & = & {\bf j} \times \left( |
500 |
\overleftrightarrow{I}^{-1} \cdot {\bf j} \right) - \mbox{ |
501 |
rot}\left(\mathsf{A}^{T} \cdot \frac{\partial |
502 |
V}{\partial \mathsf{A}} \right) - \chi {\bf j} ,\\ |
503 |
\dot{\chi} & = & \frac{1}{\tau_{T}^2} \left( |
504 |
\frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\ |
505 |
\dot{\overleftrightarrow{\eta}} & = & \frac{1}{\tau_{B}^2 f k_B |
506 |
T_{\mathrm{target}}} V \left( \overleftrightarrow{\mathsf{P}} - P_{\mathrm{target}}\mathsf{1} \right) ,\\ |
507 |
\dot{\mathsf{H}} & = & \overleftrightarrow{\eta} \cdot \mathsf{H} . |
508 |
\label{eq:melchionna2} |
509 |
\end{eqnarray} |
510 |
|
511 |
Here, $\mathsf{1}$ is the unit matrix and |
512 |
$\overleftrightarrow{\mathsf{P}}$ is the pressure tensor. Again, |
513 |
the volume, $\mathcal{V} = \det \mathsf{H}$. |
514 |
|
515 |
The propagation of the equations of motion is nearly identical to |
516 |
the NPTi integration: |
517 |
|
518 |
{\tt moveA:} |
519 |
\begin{align*} |
520 |
T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\ |
521 |
% |
522 |
\overleftrightarrow{\mathsf{P}}(t) &\leftarrow \left\{{\bf |
523 |
r}(t)\right\}, |
524 |
\left\{{\bf v}(t)\right\} ,\\ |
525 |
% |
526 |
{\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t) |
527 |
+ \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - |
528 |
\left(\chi(t)\mathsf{1} + \overleftrightarrow{\eta}(t) \right) \cdot |
529 |
{\bf v}(t) \right), \\ |
530 |
% |
531 |
{\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t) |
532 |
+ \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t) |
533 |
\chi(t) \right), \\ |
534 |
% |
535 |
\mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h * |
536 |
{\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1} |
537 |
\right), \\ |
538 |
% |
539 |
\chi\left(t + h / 2 \right) &\leftarrow \chi(t) + |
540 |
\frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}} |
541 |
- 1 \right), \\ |
542 |
% |
543 |
\overleftrightarrow{\eta}(t + h / 2) &\leftarrow |
544 |
\overleftrightarrow{\eta}(t) + \frac{h \mathcal{V}(t)}{2 N k_B |
545 |
T(t) \tau_B^2} \left( \overleftrightarrow{\mathsf{P}}(t) |
546 |
- P_{\mathrm{target}}\mathsf{1} \right), \\ |
547 |
% |
548 |
{\bf r}(t + h) &\leftarrow {\bf r}(t) + h \left\{ {\bf v} |
549 |
\left(t + h / 2 \right) + \overleftrightarrow{\eta}(t + |
550 |
h / 2) \cdot \left[ {\bf r}(t + h) |
551 |
- {\bf R}_0 \right] \right\}, \\ |
552 |
% |
553 |
\mathsf{H}(t + h) &\leftarrow \mathsf{H}(t) \cdot e^{-h |
554 |
\overleftrightarrow{\eta}(t + h / 2)} . |
555 |
\end{align*} |
556 |
{\sc oopse} uses a power series expansion truncated at second order |
557 |
for the exponential operation which scales the simulation box. |
558 |
|
559 |
The {\tt moveB} portion of the algorithm is largely unchanged from |
560 |
the NPTi integrator: |
561 |
|
562 |
{\tt moveB:} |
563 |
\begin{align*} |
564 |
T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\}, |
565 |
\left\{{\bf j}(t + h)\right\}, \\ |
566 |
% |
567 |
\overleftrightarrow{\mathsf{P}}(t + h) &\leftarrow \left\{{\bf r} |
568 |
(t + h)\right\}, \left\{{\bf v}(t |
569 |
+ h)\right\}, \left\{{\bf f}(t + h)\right\} ,\\ |
570 |
% |
571 |
\chi\left(t + h \right) &\leftarrow \chi\left(t + h / |
572 |
2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+ |
573 |
h)}{T_{\mathrm{target}}} - 1 \right), \\ |
574 |
% |
575 |
\overleftrightarrow{\eta}(t + h) &\leftarrow |
576 |
\overleftrightarrow{\eta}(t + h / 2) + |
577 |
\frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h) |
578 |
\tau_B^2} \left( \overleftrightarrow{P}(t + h) |
579 |
- P_{\mathrm{target}}\mathsf{1} \right) ,\\ |
580 |
% |
581 |
{\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t |
582 |
+ h / 2 \right) + \frac{h}{2} \left( |
583 |
\frac{{\bf f}(t + h)}{m} - |
584 |
(\chi(t + h)\mathsf{1} + \overleftrightarrow{\eta}(t |
585 |
+ h)) \right) \cdot {\bf v}(t + h), \\ |
586 |
% |
587 |
{\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t |
588 |
+ h / 2 \right) + \frac{h}{2} \left( {\bf \tau}^b(t |
589 |
+ h) - {\bf j}(t + h) \chi(t + h) \right) . |
590 |
\end{align*} |
591 |
|
592 |
The iterative schemes for both {\tt moveA} and {\tt moveB} are |
593 |
identical to those described for the NPTi integrator. |
594 |
|
595 |
The NPTf integrator is known to conserve the following Hamiltonian: |
596 |
\begin{equation} |
597 |
H_{\mathrm{NPTf}} = V + K + f k_B T_{\mathrm{target}} \left( |
598 |
\frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime) |
599 |
dt^\prime \right) + P_{\mathrm{target}} \mathcal{V}(t) + \frac{f k_B |
600 |
T_{\mathrm{target}}}{2} |
601 |
\mathrm{Tr}\left[\overleftrightarrow{\eta}(t)\right]^2 \tau_B^2. |
602 |
\end{equation} |
603 |
|
604 |
This integrator must be used with care, particularly in liquid |
605 |
simulations. Liquids have very small restoring forces in the |
606 |
off-diagonal directions, and the simulation box can very quickly |
607 |
form elongated and sheared geometries which become smaller than the |
608 |
electrostatic or Lennard-Jones cutoff radii. The NPTf integrator |
609 |
finds most use in simulating crystals or liquid crystals which |
610 |
assume non-orthorhombic geometries. |
611 |
|
612 |
\subsection{\label{methodSection:NPAT}Constant Lateral Pressure and Constant Surface Area (NPAT)} |
613 |
|
614 |
\subsection{\label{methodSection:NPrT}Constant lateral Pressure and Constant Surface Tension (NP\gamma T) } |
615 |
|
616 |
\subsection{\label{methodSection:NPTxyz}Constant pressure in 3 axes (NPTxyz)} |
617 |
|
618 |
There is one additional extended system integrator which is somewhat |
619 |
simpler than the NPTf method described above. In this case, the |
620 |
three axes have independent barostats which each attempt to preserve |
621 |
the target pressure along the box walls perpendicular to that |
622 |
particular axis. The lengths of the box axes are allowed to |
623 |
fluctuate independently, but the angle between the box axes does not |
624 |
change. The equations of motion are identical to those described |
625 |
above, but only the {\it diagonal} elements of |
626 |
$\overleftrightarrow{\eta}$ are computed. The off-diagonal elements |
627 |
are set to zero (even when the pressure tensor has non-zero |
628 |
off-diagonal elements). It should be noted that the NPTxyz |
629 |
integrator is a special case of $NP\gamma T$ if the surface tension |
630 |
$\gamma$ is set to zero. |
631 |
|
632 |
|
633 |
\section{\label{methodSection:constraintMethods}Constraint Methods} |
634 |
|
635 |
\subsection{\label{methodSection:rattle}The {\sc rattle} Method for Bond |
636 |
Constraints} |
637 |
|
638 |
\subsection{\label{methodSection:zcons}Z-Constraint Method} |
639 |
|
640 |
Based on the fluctuation-dissipation theorem, a force |
641 |
auto-correlation method was developed by Roux and Karplus to |
642 |
investigate the dynamics of ions inside ion channels.\cite{Roux91} |
643 |
The time-dependent friction coefficient can be calculated from the |
644 |
deviation of the instantaneous force from its mean force. |
645 |
\begin{equation} |
646 |
\xi(z,t)=\langle\delta F(z,t)\delta F(z,0)\rangle/k_{B}T, |
647 |
\end{equation} |
648 |
where% |
649 |
\begin{equation} |
650 |
\delta F(z,t)=F(z,t)-\langle F(z,t)\rangle. |
651 |
\end{equation} |
652 |
|
653 |
If the time-dependent friction decays rapidly, the static friction |
654 |
coefficient can be approximated by |
655 |
\begin{equation} |
656 |
\xi_{\text{static}}(z)=\int_{0}^{\infty}\langle\delta F(z,t)\delta |
657 |
F(z,0)\rangle dt. |
658 |
\end{equation} |
659 |
Allowing diffusion constant to then be calculated through the |
660 |
Einstein relation:\cite{Marrink94} |
661 |
\begin{equation} |
662 |
D(z)=\frac{k_{B}T}{\xi_{\text{static}}(z)}=\frac{(k_{B}T)^{2}}{\int_{0}^{\infty |
663 |
}\langle\delta F(z,t)\delta F(z,0)\rangle dt}.% |
664 |
\end{equation} |
665 |
|
666 |
The Z-Constraint method, which fixes the z coordinates of the |
667 |
molecules with respect to the center of the mass of the system, has |
668 |
been a method suggested to obtain the forces required for the force |
669 |
auto-correlation calculation.\cite{Marrink94} However, simply |
670 |
resetting the coordinate will move the center of the mass of the |
671 |
whole system. To avoid this problem, a new method was used in {\sc |
672 |
oopse}. Instead of resetting the coordinate, we reset the forces of |
673 |
z-constrained molecules as well as subtract the total constraint |
674 |
forces from the rest of the system after the force calculation at |
675 |
each time step. |
676 |
|
677 |
After the force calculation, define $G_\alpha$ as |
678 |
\begin{equation} |
679 |
G_{\alpha} = \sum_i F_{\alpha i}, \label{oopseEq:zc1} |
680 |
\end{equation} |
681 |
where $F_{\alpha i}$ is the force in the z direction of atom $i$ in |
682 |
z-constrained molecule $\alpha$. The forces of the z constrained |
683 |
molecule are then set to: |
684 |
\begin{equation} |
685 |
F_{\alpha i} = F_{\alpha i} - |
686 |
\frac{m_{\alpha i} G_{\alpha}}{\sum_i m_{\alpha i}}. |
687 |
\end{equation} |
688 |
Here, $m_{\alpha i}$ is the mass of atom $i$ in the z-constrained |
689 |
molecule. Having rescaled the forces, the velocities must also be |
690 |
rescaled to subtract out any center of mass velocity in the z |
691 |
direction. |
692 |
\begin{equation} |
693 |
v_{\alpha i} = v_{\alpha i} - |
694 |
\frac{\sum_i m_{\alpha i} v_{\alpha i}}{\sum_i m_{\alpha i}}, |
695 |
\end{equation} |
696 |
where $v_{\alpha i}$ is the velocity of atom $i$ in the z direction. |
697 |
Lastly, all of the accumulated z constrained forces must be |
698 |
subtracted from the system to keep the system center of mass from |
699 |
drifting. |
700 |
\begin{equation} |
701 |
F_{\beta i} = F_{\beta i} - \frac{m_{\beta i} \sum_{\alpha} |
702 |
G_{\alpha}} |
703 |
{\sum_{\beta}\sum_i m_{\beta i}}, |
704 |
\end{equation} |
705 |
where $\beta$ are all of the unconstrained molecules in the system. |
706 |
Similarly, the velocities of the unconstrained molecules must also |
707 |
be scaled. |
708 |
\begin{equation} |
709 |
v_{\beta i} = v_{\beta i} + \sum_{\alpha} |
710 |
\frac{\sum_i m_{\alpha i} v_{\alpha i}}{\sum_i m_{\alpha i}}. |
711 |
\end{equation} |
712 |
|
713 |
At the very beginning of the simulation, the molecules may not be at |
714 |
their constrained positions. To move a z-constrained molecule to its |
715 |
specified position, a simple harmonic potential is used |
716 |
\begin{equation} |
717 |
U(t)=\frac{1}{2}k_{\text{Harmonic}}(z(t)-z_{\text{cons}})^{2},% |
718 |
\end{equation} |
719 |
where $k_{\text{Harmonic}}$ is the harmonic force constant, $z(t)$ |
720 |
is the current $z$ coordinate of the center of mass of the |
721 |
constrained molecule, and $z_{\text{cons}}$ is the constrained |
722 |
position. The harmonic force operating on the z-constrained molecule |
723 |
at time $t$ can be calculated by |
724 |
\begin{equation} |
725 |
F_{z_{\text{Harmonic}}}(t)=-\frac{\partial U(t)}{\partial z(t)}= |
726 |
-k_{\text{Harmonic}}(z(t)-z_{\text{cons}}). |
727 |
\end{equation} |
728 |
|
729 |
\section{\label{methodSection:langevin}Integrators for Langevin Dynamics of Rigid Bodies} |
730 |
|
731 |
\subsection{\label{methodSection:temperature}Temperature Control} |
732 |
|
733 |
\subsection{\label{methodSection:pressureControl}Pressure Control} |
734 |
|
735 |
\section{\label{methodSection:hydrodynamics}Hydrodynamics} |
736 |
|
737 |
%\section{\label{methodSection:coarseGrained}Coarse-Grained Modeling} |
738 |
|
739 |
%\section{\label{methodSection:moleculeScale}Molecular-Scale Modeling} |