ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/tengDissertation/Methodology.tex
Revision: 2801
Committed: Tue Jun 6 14:56:36 2006 UTC (18 years ago) by tim
Content type: application/x-tex
File size: 28815 byte(s)
Log Message:
more reference fixes

File Contents

# User Rev Content
1 tim 2685 \chapter{\label{chapt:methodology}METHODOLOGY}
2    
3     \section{\label{methodSection:rigidBodyIntegrators}Integrators for Rigid Body Motion in Molecular Dynamics}
4    
5 tim 2729 In order to mimic the experiments, which are usually performed under
6     constant temperature and/or pressure, extended Hamiltonian system
7 tim 2739 methods have been developed to generate statistical ensembles, such
8 tim 2729 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 tim 2685
17 tim 2729 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 tim 2685
37 tim 2729 \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 tim 2801 from the true energy baseline for clarity.}
154     \label{methodFig:timestep}
155 tim 2729 \end{figure}
156    
157 tim 2801 In Fig.~\ref{methodFig:timestep}, the resulting energy drift at
158     various time steps for both the DLM and quaternion integration
159     schemes is compared. All of the 1000 molecule water simulations
160     started with the same configuration, and the only difference was the
161     method for handling rotational motion. At time steps of 0.1 and 0.5
162     fs, both methods for propagating molecule rotation conserve energy
163     fairly well, with the quaternion method showing a slight energy
164     drift over time in the 0.5 fs time step simulation. At time steps of
165     1 and 2 fs, the energy conservation benefits of the DLM method are
166     clearly demonstrated. Thus, while maintaining the same degree of
167     energy conservation, one can take considerably longer time steps,
168     leading to an overall reduction in computation time.
169 tim 2729
170     \subsection{\label{methodSection:NVT}Nos\'{e}-Hoover Thermostatting}
171    
172 tim 2801 The Nos\'e-Hoover equations of motion are given by\cite{Hoover1985}
173 tim 2729 \begin{eqnarray}
174     \dot{{\bf r}} & = & {\bf v}, \\
175     \dot{{\bf v}} & = & \frac{{\bf f}}{m} - \chi {\bf v} ,\\
176     \dot{\mathsf{A}} & = & \mathsf{A} \cdot
177     \mbox{ skew}\left(\overleftrightarrow{\mathsf{I}}^{-1} \cdot {\bf j}\right), \\
178     \dot{{\bf j}} & = & {\bf j} \times \left(
179     \overleftrightarrow{\mathsf{I}}^{-1} \cdot {\bf j} \right) - \mbox{
180     rot}\left(\mathsf{A}^{T} \cdot \frac{\partial V}{\partial
181     \mathsf{A}} \right) - \chi {\bf j}. \label{eq:nosehoovereom}
182     \end{eqnarray}
183    
184     $\chi$ is an ``extra'' variable included in the extended system, and
185     it is propagated using the first order equation of motion
186     \begin{equation}
187     \dot{\chi} = \frac{1}{\tau_{T}^2} \left(
188     \frac{T}{T_{\mathrm{target}}} - 1 \right). \label{eq:nosehooverext}
189     \end{equation}
190    
191     The instantaneous temperature $T$ is proportional to the total
192     kinetic energy (both translational and orientational) and is given
193     by
194     \begin{equation}
195     T = \frac{2 K}{f k_B}
196     \end{equation}
197     Here, $f$ is the total number of degrees of freedom in the system,
198     \begin{equation}
199     f = 3 N + 3 N_{\mathrm{orient}} - N_{\mathrm{constraints}},
200     \end{equation}
201     and $K$ is the total kinetic energy,
202     \begin{equation}
203     K = \sum_{i=1}^{N} \frac{1}{2} m_i {\bf v}_i^T \cdot {\bf v}_i +
204     \sum_{i=1}^{N_{\mathrm{orient}}} \frac{1}{2} {\bf j}_i^T \cdot
205     \overleftrightarrow{\mathsf{I}}_i^{-1} \cdot {\bf j}_i.
206     \end{equation}
207    
208     In eq.(\ref{eq:nosehooverext}), $\tau_T$ is the time constant for
209     relaxation of the temperature to the target value. To set values
210     for $\tau_T$ or $T_{\mathrm{target}}$ in a simulation, one would use
211     the {\tt tauThermostat} and {\tt targetTemperature} keywords in the
212     {\tt .bass} file. The units for {\tt tauThermostat} are fs, and the
213     units for the {\tt targetTemperature} are degrees K. The
214     integration of the equations of motion is carried out in a
215     velocity-Verlet style 2 part algorithm:
216    
217     {\tt moveA:}
218     \begin{align*}
219     T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\
220     %
221     {\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t)
222     + \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - {\bf v}(t)
223     \chi(t)\right), \\
224     %
225     {\bf r}(t + h) &\leftarrow {\bf r}(t)
226     + h {\bf v}\left(t + h / 2 \right) ,\\
227     %
228     {\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t)
229     + \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t)
230     \chi(t) \right) ,\\
231     %
232     \mathsf{A}(t + h) &\leftarrow \mathrm{rotate}
233     \left(h * {\bf j}(t + h / 2)
234     \overleftrightarrow{\mathsf{I}}^{-1} \right) ,\\
235     %
236     \chi\left(t + h / 2 \right) &\leftarrow \chi(t)
237     + \frac{h}{2 \tau_T^2} \left( \frac{T(t)}
238     {T_{\mathrm{target}}} - 1 \right) .
239     \end{align*}
240    
241     Here $\mathrm{rotate}(h * {\bf j}
242     \overleftrightarrow{\mathsf{I}}^{-1})$ is the same symplectic
243     Trotter factorization of the three rotation operations that was
244     discussed in the section on the DLM integrator. Note that this
245     operation modifies both the rotation matrix $\mathsf{A}$ and the
246     angular momentum ${\bf j}$. {\tt moveA} propagates velocities by a
247     half time step, and positional degrees of freedom by a full time
248     step. The new positions (and orientations) are then used to
249     calculate a new set of forces and torques in exactly the same way
250     they are calculated in the {\tt doForces} portion of the DLM
251     integrator.
252    
253     Once the forces and torques have been obtained at the new time step,
254     the temperature, velocities, and the extended system variable can be
255     advanced to the same time value.
256    
257     {\tt moveB:}
258     \begin{align*}
259     T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
260     \left\{{\bf j}(t + h)\right\}, \\
261     %
262     \chi\left(t + h \right) &\leftarrow \chi\left(t + h /
263     2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+h)}
264     {T_{\mathrm{target}}} - 1 \right), \\
265     %
266     {\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t
267     + h / 2 \right) + \frac{h}{2} \left(
268     \frac{{\bf f}(t + h)}{m} - {\bf v}(t + h)
269     \chi(t h)\right) ,\\
270     %
271     {\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t
272     + h / 2 \right) + \frac{h}{2}
273     \left( {\bf \tau}^b(t + h) - {\bf j}(t + h)
274     \chi(t + h) \right) .
275     \end{align*}
276    
277     Since ${\bf v}(t + h)$ and ${\bf j}(t + h)$ are required to
278     caclculate $T(t + h)$ as well as $\chi(t + h)$, they indirectly
279     depend on their own values at time $t + h$. {\tt moveB} is
280     therefore done in an iterative fashion until $\chi(t + h)$ becomes
281     self-consistent. The relative tolerance for the self-consistency
282     check defaults to a value of $\mbox{10}^{-6}$, but {\sc oopse} will
283     terminate the iteration after 4 loops even if the consistency check
284     has not been satisfied.
285    
286     The Nos\'e-Hoover algorithm is known to conserve a Hamiltonian for
287     the extended system that is, to within a constant, identical to the
288 tim 2801 Helmholtz free energy,\cite{Melchionna1993}
289 tim 2729 \begin{equation}
290     H_{\mathrm{NVT}} = V + K + f k_B T_{\mathrm{target}} \left(
291     \frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime)
292     dt^\prime \right).
293     \end{equation}
294     Poor choices of $h$ or $\tau_T$ can result in non-conservation of
295     $H_{\mathrm{NVT}}$, so the conserved quantity is maintained in the
296     last column of the {\tt .stat} file to allow checks on the quality
297     of the integration.
298    
299     \subsection{\label{methodSection:NPTi}Constant-pressure integration with
300     isotropic box deformations (NPTi)}
301    
302     To carry out isobaric-isothermal ensemble calculations {\sc oopse}
303     implements the Melchionna modifications to the
304 tim 2801 Nos\'e-Hoover-Andersen equations of motion,\cite{Melchionna1993}
305 tim 2729
306     \begin{eqnarray}
307     \dot{{\bf r}} & = & {\bf v} + \eta \left( {\bf r} - {\bf R}_0 \right), \\
308     \dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\eta + \chi) {\bf v}, \\
309     \dot{\mathsf{A}} & = & \mathsf{A} \cdot
310     \mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right),\\
311     \dot{{\bf j}} & = & {\bf j} \times \left(
312     \overleftrightarrow{I}^{-1} \cdot {\bf j} \right) - \mbox{
313     rot}\left(\mathsf{A}^{T} \cdot \frac{\partial
314     V}{\partial \mathsf{A}} \right) - \chi {\bf j}, \\
315     \dot{\chi} & = & \frac{1}{\tau_{T}^2} \left(
316     \frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\
317     \dot{\eta} & = & \frac{1}{\tau_{B}^2 f k_B T_{\mathrm{target}}} V
318     \left( P -
319     P_{\mathrm{target}} \right), \\
320     \dot{\mathcal{V}} & = & 3 \mathcal{V} \eta . \label{eq:melchionna1}
321     \end{eqnarray}
322    
323     $\chi$ and $\eta$ are the ``extra'' degrees of freedom in the
324     extended system. $\chi$ is a thermostat, and it has the same
325     function as it does in the Nos\'e-Hoover NVT integrator. $\eta$ is
326     a barostat which controls changes to the volume of the simulation
327     box. ${\bf R}_0$ is the location of the center of mass for the
328     entire system, and $\mathcal{V}$ is the volume of the simulation
329     box. At any time, the volume can be calculated from the determinant
330     of the matrix which describes the box shape:
331     \begin{equation}
332     \mathcal{V} = \det(\mathsf{H}).
333     \end{equation}
334    
335     The NPTi integrator requires an instantaneous pressure. This
336     quantity is calculated via the pressure tensor,
337     \begin{equation}
338     \overleftrightarrow{\mathsf{P}}(t) = \frac{1}{\mathcal{V}(t)} \left(
339     \sum_{i=1}^{N} m_i {\bf v}_i(t) \otimes {\bf v}_i(t) \right) +
340     \overleftrightarrow{\mathsf{W}}(t).
341     \end{equation}
342     The kinetic contribution to the pressure tensor utilizes the {\it
343     outer} product of the velocities denoted by the $\otimes$ symbol.
344     The stress tensor is calculated from another outer product of the
345     inter-atomic separation vectors (${\bf r}_{ij} = {\bf r}_j - {\bf
346     r}_i$) with the forces between the same two atoms,
347     \begin{equation}
348     \overleftrightarrow{\mathsf{W}}(t) = \sum_{i} \sum_{j>i} {\bf
349     r}_{ij}(t) \otimes {\bf f}_{ij}(t).
350     \end{equation}
351     The instantaneous pressure is then simply obtained from the trace of
352     the Pressure tensor,
353     \begin{equation}
354     P(t) = \frac{1}{3} \mathrm{Tr} \left(
355     \overleftrightarrow{\mathsf{P}}(t). \right)
356     \end{equation}
357    
358     In eq.(\ref{eq:melchionna1}), $\tau_B$ is the time constant for
359     relaxation of the pressure to the target value. To set values for
360     $\tau_B$ or $P_{\mathrm{target}}$ in a simulation, one would use the
361     {\tt tauBarostat} and {\tt targetPressure} keywords in the {\tt
362     .bass} file. The units for {\tt tauBarostat} are fs, and the units
363     for the {\tt targetPressure} are atmospheres. Like in the NVT
364     integrator, the integration of the equations of motion is carried
365     out in a velocity-Verlet style 2 part algorithm:
366    
367     {\tt moveA:}
368     \begin{align*}
369     T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\
370     %
371     P(t) &\leftarrow \left\{{\bf r}(t)\right\}, \left\{{\bf v}(t)\right\} ,\\
372     %
373     {\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t)
374     + \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - {\bf v}(t)
375     \left(\chi(t) + \eta(t) \right) \right), \\
376     %
377     {\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t)
378     + \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t)
379     \chi(t) \right), \\
380     %
381     \mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h *
382     {\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1}
383     \right) ,\\
384     %
385     \chi\left(t + h / 2 \right) &\leftarrow \chi(t) +
386     \frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}} - 1
387     \right) ,\\
388     %
389     \eta(t + h / 2) &\leftarrow \eta(t) + \frac{h
390     \mathcal{V}(t)}{2 N k_B T(t) \tau_B^2} \left( P(t)
391     - P_{\mathrm{target}} \right), \\
392     %
393     {\bf r}(t + h) &\leftarrow {\bf r}(t) + h
394     \left\{ {\bf v}\left(t + h / 2 \right)
395     + \eta(t + h / 2)\left[ {\bf r}(t + h)
396     - {\bf R}_0 \right] \right\} ,\\
397     %
398     \mathsf{H}(t + h) &\leftarrow e^{-h \eta(t + h / 2)}
399     \mathsf{H}(t).
400     \end{align*}
401    
402     Most of these equations are identical to their counterparts in the
403     NVT integrator, but the propagation of positions to time $t + h$
404     depends on the positions at the same time. {\sc oopse} carries out
405     this step iteratively (with a limit of 5 passes through the
406     iterative loop). Also, the simulation box $\mathsf{H}$ is scaled
407     uniformly for one full time step by an exponential factor that
408     depends on the value of $\eta$ at time $t + h / 2$. Reshaping the
409     box uniformly also scales the volume of the box by
410     \begin{equation}
411     \mathcal{V}(t + h) \leftarrow e^{ - 3 h \eta(t + h /2)}.
412     \mathcal{V}(t)
413     \end{equation}
414    
415     The {\tt doForces} step for the NPTi integrator is exactly the same
416     as in both the DLM and NVT integrators. Once the forces and torques
417     have been obtained at the new time step, the velocities can be
418     advanced to the same time value.
419    
420     {\tt moveB:}
421     \begin{align*}
422     T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
423     \left\{{\bf j}(t + h)\right\} ,\\
424     %
425     P(t + h) &\leftarrow \left\{{\bf r}(t + h)\right\},
426     \left\{{\bf v}(t + h)\right\}, \\
427     %
428     \chi\left(t + h \right) &\leftarrow \chi\left(t + h /
429     2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+h)}
430     {T_{\mathrm{target}}} - 1 \right), \\
431     %
432     \eta(t + h) &\leftarrow \eta(t + h / 2) +
433     \frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h)
434     \tau_B^2} \left( P(t + h) - P_{\mathrm{target}} \right), \\
435     %
436     {\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t
437     + h / 2 \right) + \frac{h}{2} \left(
438     \frac{{\bf f}(t + h)}{m} - {\bf v}(t + h)
439     (\chi(t + h) + \eta(t + h)) \right) ,\\
440     %
441     {\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t
442     + h / 2 \right) + \frac{h}{2} \left( {\bf
443     \tau}^b(t + h) - {\bf j}(t + h)
444     \chi(t + h) \right) .
445     \end{align*}
446    
447     Once again, since ${\bf v}(t + h)$ and ${\bf j}(t + h)$ are required
448     to caclculate $T(t + h)$, $P(t + h)$, $\chi(t + h)$, and $\eta(t +
449     h)$, they indirectly depend on their own values at time $t + h$.
450     {\tt moveB} is therefore done in an iterative fashion until $\chi(t
451     + h)$ and $\eta(t + h)$ become self-consistent. The relative
452     tolerance for the self-consistency check defaults to a value of
453     $\mbox{10}^{-6}$, but {\sc oopse} will terminate the iteration after
454     4 loops even if the consistency check has not been satisfied.
455    
456     The Melchionna modification of the Nos\'e-Hoover-Andersen algorithm
457     is known to conserve a Hamiltonian for the extended system that is,
458     to within a constant, identical to the Gibbs free energy,
459     \begin{equation}
460     H_{\mathrm{NPTi}} = V + K + f k_B T_{\mathrm{target}} \left(
461     \frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime)
462     dt^\prime \right) + P_{\mathrm{target}} \mathcal{V}(t).
463     \end{equation}
464     Poor choices of $\delta t$, $\tau_T$, or $\tau_B$ can result in
465     non-conservation of $H_{\mathrm{NPTi}}$, so the conserved quantity
466     is maintained in the last column of the {\tt .stat} file to allow
467     checks on the quality of the integration. It is also known that
468     this algorithm samples the equilibrium distribution for the enthalpy
469     (including contributions for the thermostat and barostat),
470     \begin{equation}
471     H_{\mathrm{NPTi}} = V + K + \frac{f k_B T_{\mathrm{target}}}{2}
472     \left( \chi^2 \tau_T^2 + \eta^2 \tau_B^2 \right) +
473     P_{\mathrm{target}} \mathcal{V}(t).
474     \end{equation}
475    
476     Bond constraints are applied at the end of both the {\tt moveA} and
477     {\tt moveB} portions of the algorithm. Details on the constraint
478     algorithms are given in section \ref{oopseSec:rattle}.
479    
480     \subsection{\label{methodSection:NPTf}Constant-pressure integration with a
481     flexible box (NPTf)}
482    
483     There is a relatively simple generalization of the
484     Nos\'e-Hoover-Andersen method to include changes in the simulation
485     box {\it shape} as well as in the volume of the box. This method
486     utilizes the full $3 \times 3$ pressure tensor and introduces a
487     tensor of extended variables ($\overleftrightarrow{\eta}$) to
488     control changes to the box shape. The equations of motion for this
489     method are
490     \begin{eqnarray}
491     \dot{{\bf r}} & = & {\bf v} + \overleftrightarrow{\eta} \cdot \left( {\bf r} - {\bf R}_0 \right), \\
492     \dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\overleftrightarrow{\eta} +
493     \chi \cdot \mathsf{1}) {\bf v}, \\
494     \dot{\mathsf{A}} & = & \mathsf{A} \cdot
495     \mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right) ,\\
496     \dot{{\bf j}} & = & {\bf j} \times \left(
497     \overleftrightarrow{I}^{-1} \cdot {\bf j} \right) - \mbox{
498     rot}\left(\mathsf{A}^{T} \cdot \frac{\partial
499     V}{\partial \mathsf{A}} \right) - \chi {\bf j} ,\\
500     \dot{\chi} & = & \frac{1}{\tau_{T}^2} \left(
501     \frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\
502     \dot{\overleftrightarrow{\eta}} & = & \frac{1}{\tau_{B}^2 f k_B
503     T_{\mathrm{target}}} V \left( \overleftrightarrow{\mathsf{P}} - P_{\mathrm{target}}\mathsf{1} \right) ,\\
504     \dot{\mathsf{H}} & = & \overleftrightarrow{\eta} \cdot \mathsf{H} .
505     \label{eq:melchionna2}
506     \end{eqnarray}
507    
508     Here, $\mathsf{1}$ is the unit matrix and
509     $\overleftrightarrow{\mathsf{P}}$ is the pressure tensor. Again,
510     the volume, $\mathcal{V} = \det \mathsf{H}$.
511    
512     The propagation of the equations of motion is nearly identical to
513     the NPTi integration:
514    
515     {\tt moveA:}
516     \begin{align*}
517     T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\
518     %
519     \overleftrightarrow{\mathsf{P}}(t) &\leftarrow \left\{{\bf
520     r}(t)\right\},
521     \left\{{\bf v}(t)\right\} ,\\
522     %
523     {\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t)
524     + \frac{h}{2} \left( \frac{{\bf f}(t)}{m} -
525     \left(\chi(t)\mathsf{1} + \overleftrightarrow{\eta}(t) \right) \cdot
526     {\bf v}(t) \right), \\
527     %
528     {\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t)
529     + \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t)
530     \chi(t) \right), \\
531     %
532     \mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h *
533     {\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1}
534     \right), \\
535     %
536     \chi\left(t + h / 2 \right) &\leftarrow \chi(t) +
537     \frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}}
538     - 1 \right), \\
539     %
540     \overleftrightarrow{\eta}(t + h / 2) &\leftarrow
541     \overleftrightarrow{\eta}(t) + \frac{h \mathcal{V}(t)}{2 N k_B
542     T(t) \tau_B^2} \left( \overleftrightarrow{\mathsf{P}}(t)
543     - P_{\mathrm{target}}\mathsf{1} \right), \\
544     %
545     {\bf r}(t + h) &\leftarrow {\bf r}(t) + h \left\{ {\bf v}
546     \left(t + h / 2 \right) + \overleftrightarrow{\eta}(t +
547     h / 2) \cdot \left[ {\bf r}(t + h)
548     - {\bf R}_0 \right] \right\}, \\
549     %
550     \mathsf{H}(t + h) &\leftarrow \mathsf{H}(t) \cdot e^{-h
551     \overleftrightarrow{\eta}(t + h / 2)} .
552     \end{align*}
553     {\sc oopse} uses a power series expansion truncated at second order
554     for the exponential operation which scales the simulation box.
555    
556     The {\tt moveB} portion of the algorithm is largely unchanged from
557     the NPTi integrator:
558    
559     {\tt moveB:}
560     \begin{align*}
561     T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
562     \left\{{\bf j}(t + h)\right\}, \\
563     %
564     \overleftrightarrow{\mathsf{P}}(t + h) &\leftarrow \left\{{\bf r}
565     (t + h)\right\}, \left\{{\bf v}(t
566     + h)\right\}, \left\{{\bf f}(t + h)\right\} ,\\
567     %
568     \chi\left(t + h \right) &\leftarrow \chi\left(t + h /
569     2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+
570     h)}{T_{\mathrm{target}}} - 1 \right), \\
571     %
572     \overleftrightarrow{\eta}(t + h) &\leftarrow
573     \overleftrightarrow{\eta}(t + h / 2) +
574     \frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h)
575     \tau_B^2} \left( \overleftrightarrow{P}(t + h)
576     - P_{\mathrm{target}}\mathsf{1} \right) ,\\
577     %
578     {\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t
579     + h / 2 \right) + \frac{h}{2} \left(
580     \frac{{\bf f}(t + h)}{m} -
581     (\chi(t + h)\mathsf{1} + \overleftrightarrow{\eta}(t
582     + h)) \right) \cdot {\bf v}(t + h), \\
583     %
584     {\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t
585     + h / 2 \right) + \frac{h}{2} \left( {\bf \tau}^b(t
586     + h) - {\bf j}(t + h) \chi(t + h) \right) .
587     \end{align*}
588    
589     The iterative schemes for both {\tt moveA} and {\tt moveB} are
590     identical to those described for the NPTi integrator.
591    
592     The NPTf integrator is known to conserve the following Hamiltonian:
593     \begin{equation}
594     H_{\mathrm{NPTf}} = V + K + f k_B T_{\mathrm{target}} \left(
595     \frac{\tau_{T}^2 \chi^2(t)}{2} + \int_{0}^{t} \chi(t^\prime)
596     dt^\prime \right) + P_{\mathrm{target}} \mathcal{V}(t) + \frac{f k_B
597     T_{\mathrm{target}}}{2}
598     \mathrm{Tr}\left[\overleftrightarrow{\eta}(t)\right]^2 \tau_B^2.
599     \end{equation}
600    
601     This integrator must be used with care, particularly in liquid
602     simulations. Liquids have very small restoring forces in the
603     off-diagonal directions, and the simulation box can very quickly
604     form elongated and sheared geometries which become smaller than the
605     electrostatic or Lennard-Jones cutoff radii. The NPTf integrator
606     finds most use in simulating crystals or liquid crystals which
607     assume non-orthorhombic geometries.
608    
609 tim 2739 \subsection{\label{methodSection:otherSpecialEnsembles}Other Special Ensembles}
610 tim 2729
611 tim 2776 \subsubsection{\label{methodSection:NPAT}NPAT Ensemble}
612 tim 2729
613 tim 2739 A comprehensive understanding of structure¨Cfunction relations of
614     biological membrane system ultimately relies on structure and
615     dynamics of lipid bilayer, which are strongly affected by the
616     interfacial interaction between lipid molecules and surrounding
617     media. One quantity to describe the interfacial interaction is so
618     called the average surface area per lipid. Constat area and constant
619     lateral pressure simulation can be achieved by extending the
620     standard NPT ensemble with a different pressure control strategy
621 tim 2798
622 tim 2729 \begin{equation}
623 tim 2799 \dot {\overleftrightarrow{\eta}} _{\alpha \beta}=\left\{\begin{array}{ll}
624 tim 2798 \frac{{V(P_{\alpha \beta } - P_{{\rm{target}}} )}}{{\tau_{\rm{B}}^{\rm{2}} fk_B T_{{\rm{target}}} }}
625 tim 2799 & \mbox{if $ \alpha = \beta = z$}\\
626 tim 2798 0 & \mbox{otherwise}\\
627     \end{array}
628     \right.
629 tim 2729 \end{equation}
630 tim 2798
631 tim 2739 Note that the iterative schemes for NPAT are identical to those
632     described for the NPTi integrator.
633 tim 2729
634 tim 2776 \subsubsection{\label{methodSection:NPrT}NP$\gamma$T Ensemble}
635 tim 2729
636 tim 2739 Theoretically, the surface tension $\gamma$ of a stress free
637     membrane system should be zero since its surface free energy $G$ is
638     minimum with respect to surface area $A$
639     \[
640     \gamma = \frac{{\partial G}}{{\partial A}}.
641     \]
642     However, a surface tension of zero is not appropriate for relatively
643     small patches of membrane. In order to eliminate the edge effect of
644 tim 2776 the membrane simulation, a special ensemble, NP$\gamma$T, is
645     proposed to maintain the lateral surface tension and normal
646     pressure. The equation of motion for cell size control tensor,
647 tim 2778 $\eta$, in $NP\gamma T$ is
648 tim 2729 \begin{equation}
649 tim 2799 \dot {\overleftrightarrow{\eta}} _{\alpha \beta}=\left\{\begin{array}{ll}
650 tim 2798 - A_{xy} (\gamma _\alpha - \gamma _{{\rm{target}}} ) & \mbox{$\alpha = \beta = x$ or $\alpha = \beta = y$}\\
651     \frac{{V(P_{\alpha \beta } - P_{{\rm{target}}} )}}{{\tau _{\rm{B}}^{\rm{2}} fk_B T_{{\rm{target}}}}} & \mbox{$\alpha = \beta = z$} \\
652     0 & \mbox{$\alpha \ne \beta$} \\
653 tim 2799 \end{array}
654 tim 2798 \right.
655 tim 2729 \end{equation}
656 tim 2739 where $ \gamma _{{\rm{target}}}$ is the external surface tension and
657     the instantaneous surface tensor $\gamma _\alpha$ is given by
658 tim 2729 \begin{equation}
659 tim 2800 \gamma _\alpha = - h_z( \overleftrightarrow{P} _{\alpha \alpha }
660     - P_{{\rm{target}}} )
661 tim 2739 \label{methodEquation:instantaneousSurfaceTensor}
662 tim 2729 \end{equation}
663    
664 tim 2739 There is one additional extended system integrator (NPTxyz), in
665     which each attempt to preserve the target pressure along the box
666     walls perpendicular to that particular axis. The lengths of the box
667     axes are allowed to fluctuate independently, but the angle between
668     the box axes does not change. It should be noted that the NPTxyz
669     integrator is a special case of $NP\gamma T$ if the surface tension
670     $\gamma$ is set to zero.
671 tim 2729
672 tim 2776 %\section{\label{methodSection:constraintMethod}Constraint Method}
673    
674     %\subsection{\label{methodSection:bondConstraint}Bond Constraint for Rigid Body}
675    
676     %\subsection{\label{methodSection:zcons}Z-constraint Method}
677    
678 tim 2685 \section{\label{methodSection:langevin}Integrators for Langevin Dynamics of Rigid Bodies}
679    
680 tim 2729 \subsection{\label{methodSection:temperature}Temperature Control}
681 tim 2685
682 tim 2729 \subsection{\label{methodSection:pressureControl}Pressure Control}
683    
684     \section{\label{methodSection:hydrodynamics}Hydrodynamics}
685    
686     %\section{\label{methodSection:coarseGrained}Coarse-Grained Modeling}
687    
688     %\section{\label{methodSection:moleculeScale}Molecular-Scale Modeling}