Update documention of Nose-Hoover output
[gromacs.git] / docs / manual / algorithms.tex
bloba12c7f3ffe164e33629a3ed2301b7cb3df17800d
2 % This file is part of the GROMACS molecular simulation package.
4 % Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
5 % Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
6 % and including many others, as listed in the AUTHORS file in the
7 % top-level source directory and at http://www.gromacs.org.
9 % GROMACS is free software; you can redistribute it and/or
10 % modify it under the terms of the GNU Lesser General Public License
11 % as published by the Free Software Foundation; either version 2.1
12 % of the License, or (at your option) any later version.
14 % GROMACS is distributed in the hope that it will be useful,
15 % but WITHOUT ANY WARRANTY; without even the implied warranty of
16 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 % Lesser General Public License for more details.
19 % You should have received a copy of the GNU Lesser General Public
20 % License along with GROMACS; if not, see
21 % http://www.gnu.org/licenses, or write to the Free Software Foundation,
22 % Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 % If you want to redistribute modifications to GROMACS, please
25 % consider that scientific software is very special. Version
26 % control is crucial - bugs must be traceable. We will be happy to
27 % consider code for inclusion in the official distribution, but
28 % derived work must not be called official GROMACS. Details are found
29 % in the README & COPYING files - if they are missing, get the
30 % official version at http://www.gromacs.org.
32 % To help us fund GROMACS development, we humbly ask that you cite
33 % the research papers on the package. Check out http://www.gromacs.org.
35 \newcommand{\nproc}{\mbox{$M$}}
36 \newcommand{\natom}{\mbox{$N$}}
37 \newcommand{\nx}{\mbox{$n_x$}}
38 \newcommand{\ny}{\mbox{$n_y$}}
39 \newcommand{\nz}{\mbox{$n_z$}}
40 \newcommand{\nsgrid}{NS grid}
41 \newcommand{\fftgrid}{FFT grid}
42 \newcommand{\dgrid}{\mbox{$\delta_{grid}$}}
43 \newcommand{\bfv}[1]{{\mbox{\boldmath{$#1$}}}}
44 % non-italicized boldface for math (e.g. matrices)
45 \newcommand{\bfm}[1]{{\bf #1}}
46 \newcommand{\dt}{\Delta t}
47 \newcommand{\rv}{\bfv{r}}
48 \newcommand{\vv}{\bfv{v}}
49 \newcommand{\F}{\bfv{F}}
50 \newcommand{\pb}{\bfv{p}}
51 \newcommand{\veps}{v_{\epsilon}}
52 \newcommand{\peps}{p_{\epsilon}}
53 \newcommand{\sinhx}[1]{\frac{\sinh{\left( #1\right)}}{#1}}
54 \chapter{Algorithms}
55 \label{ch:algorithms}
56 \section{Introduction}
57 In this chapter we first give describe some general concepts used in
58 {\gromacs}: {\em periodic boundary conditions} (\secref{pbc})
59 and the {\em group concept} (\secref{groupconcept}). The MD algorithm is
60 described in \secref{MD}: first a global form of the algorithm is
61 given, which is refined in subsequent subsections. The (simple) EM
62 (Energy Minimization) algorithm is described in \secref{EM}. Some
63 other algorithms for special purpose dynamics are described after
64 this.
66 %\ifthenelse{\equal{\gmxlite}{1}}{}{
67 %In the final \secref{par} of this chapter a few principles are
68 %given on which parallelization of {\gromacs} is based. The
69 %parallelization is hardly visible for the user and is therefore not
70 %treated in detail.
71 %} % Brace matches ifthenelse test for gmxlite
73 A few issues are of general interest. In all cases the {\em system}
74 must be defined, consisting of molecules. Molecules again consist of
75 particles with defined interaction functions. The detailed
76 description of the {\em topology} of the molecules and of the {\em force
77 field} and the calculation of forces is given in
78 \chref{ff}. In the present chapter we describe
79 other aspects of the algorithm, such as pair list generation, update of
80 velocities and positions, coupling to external temperature and
81 pressure, conservation of constraints.
82 \ifthenelse{\equal{\gmxlite}{1}}{}{
83 The {\em analysis} of the data generated by an MD simulation is treated in \chref{analysis}.
84 } % Brace matches ifthenelse test for gmxlite
86 \section{Periodic boundary conditions\index{periodic boundary conditions}}
87 \label{sec:pbc}
88 \begin{figure}
89 \centerline{\includegraphics[width=9cm]{plots/pbctric}}
90 \caption {Periodic boundary conditions in two dimensions.}
91 \label{fig:pbc}
92 \end{figure}
93 The classical way to minimize edge effects in a finite system is to
94 apply {\em periodic boundary conditions}. The atoms of the system to
95 be simulated are put into a space-filling box, which is surrounded by
96 translated copies of itself (\figref{pbc}). Thus there are no
97 boundaries of the system; the artifact caused by unwanted boundaries
98 in an isolated cluster is now replaced by the artifact of periodic
99 conditions. If the system is crystalline, such boundary conditions are
100 desired (although motions are naturally restricted to periodic motions
101 with wavelengths fitting into the box). If one wishes to simulate
102 non-periodic systems, such as liquids or solutions, the periodicity by
103 itself causes errors. The errors can be evaluated by comparing various
104 system sizes; they are expected to be less severe than the errors
105 resulting from an unnatural boundary with vacuum.
107 There are several possible shapes for space-filling unit cells. Some,
108 like the {\em \normindex{rhombic dodecahedron}} and the
109 {\em \normindex{truncated octahedron}}~\cite{Adams79} are closer to being a sphere
110 than a cube is, and are therefore better suited to the
111 study of an approximately spherical macromolecule in solution, since
112 fewer solvent molecules are required to fill the box given a minimum
113 distance between macromolecular images. At the same time, rhombic
114 dodecahedra and truncated octahedra are special cases of {\em triclinic}
115 unit cells\index{triclinic unit cell}; the most general space-filling unit cells
116 that comprise all possible space-filling shapes~\cite{Bekker95}.
117 For this reason, {\gromacs} is based on the triclinic unit cell.
119 {\gromacs} uses periodic boundary conditions, combined with the {\em
120 \normindex{minimum image convention}}: only one -- the nearest -- image of each
121 particle is considered for short-range non-bonded interaction terms.
122 For long-range electrostatic interactions this is not always accurate
123 enough, and {\gromacs} therefore also incorporates lattice sum methods
124 such as Ewald Sum, PME and PPPM.
126 {\gromacs} supports triclinic boxes of any shape.
127 The simulation box (unit cell) is defined by the 3 box vectors
128 ${\bf a}$,${\bf b}$ and ${\bf c}$.
129 The box vectors must satisfy the following conditions:
130 \beq
131 \label{eqn:box_rot}
132 a_y = a_z = b_z = 0
133 \eeq
134 \beq
135 \label{eqn:box_shift1}
136 a_x>0,~~~~b_y>0,~~~~c_z>0
137 \eeq
138 \beq
139 \label{eqn:box_shift2}
140 |b_x| \leq \frac{1}{2} \, a_x,~~~~
141 |c_x| \leq \frac{1}{2} \, a_x,~~~~
142 |c_y| \leq \frac{1}{2} \, b_y
143 \eeq
144 Equations \ref{eqn:box_rot} can always be satisfied by rotating the box.
145 Inequalities (\ref{eqn:box_shift1}) and (\ref{eqn:box_shift2}) can always be
146 satisfied by adding and subtracting box vectors.
148 Even when simulating using a triclinic box, {\gromacs} always keeps the
149 particles in a brick-shaped volume for efficiency,
150 as illustrated in \figref{pbc} for a 2-dimensional system.
151 Therefore, from the output trajectory it might seem that the simulation was
152 done in a rectangular box. The program {\tt trjconv} can be used to convert
153 the trajectory to a different unit-cell representation.
155 It is also possible to simulate without periodic boundary conditions,
156 but it is usually more efficient to simulate an isolated cluster of molecules
157 in a large periodic box, since fast grid searching can only be used
158 in a periodic system.
160 \begin{figure}
161 \centerline{
162 \includegraphics[width=5cm]{plots/rhododec}
163 ~~~~\includegraphics[width=5cm]{plots/truncoct}
165 \caption {A rhombic dodecahedron and truncated octahedron
166 (arbitrary orientations).}
167 \label{fig:boxshapes}
168 \end{figure}
170 \subsection{Some useful box types}
171 \begin{table}
172 \centerline{
173 \begin{tabular}{|c|c|c|ccc|ccc|}
174 \dline
175 box type & image & box & \multicolumn{3}{c|}{box vectors} & \multicolumn{3}{c|}{box vector angles} \\
176 & distance & volume & ~{\bf a}~ & {\bf b} & {\bf c} &
177 $\angle{\bf bc}$ & $\angle{\bf ac}$ & $\angle{\bf ab}$ \\
178 \dline
179 & & & $d$ & 0 & 0 & & & \\
180 cubic & $d$ & $d^3$ & 0 & $d$ & 0 & $90^\circ$ & $90^\circ$ & $90^\circ$ \\
181 & & & 0 & 0 & $d$ & & & \\
182 \hline
183 rhombic & & & $d$ & 0 & $\frac{1}{2}\,d$ & & & \\
184 dodecahedron & $d$ & $\frac{1}{2}\sqrt{2}\,d^3$ & 0 & $d$ & $\frac{1}{2}\,d$ & $60^\circ$ & $60^\circ$ & $90^\circ$ \\
185 (xy-square) & & $0.707\,d^3$ & 0 & 0 & $\frac{1}{2}\sqrt{2}\,d$ & & & \\
186 \hline
187 rhombic & & & $d$ & $\frac{1}{2}\,d$ & $\frac{1}{2}\,d$ & & & \\
188 dodecahedron & $d$ & $\frac{1}{2}\sqrt{2}\,d^3$ & 0 & $\frac{1}{2}\sqrt{3}\,d$ & $\frac{1}{6}\sqrt{3}\,d$ & $60^\circ$ & $60^\circ$ & $60^\circ$ \\
189 (xy-hexagon) & & $0.707\,d^3$ & 0 & 0 & $\frac{1}{3}\sqrt{6}\,d$ & & & \\
190 \hline
191 truncated & & & $d$ & $\frac{1}{3}\,d$ & $-\frac{1}{3}\,d$ & & &\\
192 octahedron & $d$ & $\frac{4}{9}\sqrt{3}\,d^3$ & 0 & $\frac{2}{3}\sqrt{2}\,d$ & $\frac{1}{3}\sqrt{2}\,d$ & $71.53^\circ$ & $109.47^\circ$ & $71.53^\circ$ \\
193 & & $0.770\,d^3$ & 0 & 0 & $\frac{1}{3}\sqrt{6}\,d$ & & & \\
194 \dline
195 \end{tabular}
197 \caption{The cubic box, the rhombic \normindex{dodecahedron} and the truncated
198 \normindex{octahedron}.}
199 \label{tab:boxtypes}
200 \end{table}
201 The three most useful box types for simulations of solvated systems
202 are described in \tabref{boxtypes}. The rhombic dodecahedron
203 (\figref{boxshapes}) is the smallest and most regular space-filling
204 unit cell. Each of the 12 image cells is at the same distance. The
205 volume is 71\% of the volume of a cube having the same image
206 distance. This saves about 29\% of CPU-time when simulating a
207 spherical or flexible molecule in solvent. There are two different
208 orientations of a rhombic dodecahedron that satisfy equations
209 \ref{eqn:box_rot}, \ref{eqn:box_shift1} and \ref{eqn:box_shift2}.
210 The program {\tt editconf} produces the orientation
211 which has a square intersection with the xy-plane. This orientation
212 was chosen because the first two box vectors coincide with the x and
213 y-axis, which is easier to comprehend. The other orientation can be
214 useful for simulations of membrane proteins. In this case the
215 cross-section with the xy-plane is a hexagon, which has an area which
216 is 14\% smaller than the area of a square with the same image
217 distance. The height of the box ($c_z$) should be changed to obtain
218 an optimal spacing. This box shape not only saves CPU time, it
219 also results in a more uniform arrangement of the proteins.
221 \subsection{Cut-off restrictions}
222 The \normindex{minimum image convention} implies that the cut-off radius used to
223 truncate non-bonded interactions may not exceed half the shortest box
224 vector:
225 \beq
226 \label{eqn:physicalrc}
227 R_c < \half \min(\|{\bf a}\|,\|{\bf b}\|,\|{\bf c}\|),
228 \eeq
229 because otherwise more than one image would be within the cut-off distance
230 of the force. When a macromolecule, such as a protein, is studied in
231 solution, this restriction alone is not sufficient: in principle, a single
232 solvent molecule should not be able
233 to `see' both sides of the macromolecule. This means that the length of
234 each box vector must exceed the length of the macromolecule in the
235 direction of that edge {\em plus} two times the cut-off radius $R_c$.
236 It is, however, common to compromise in this respect, and make the solvent
237 layer somewhat smaller in order to reduce the computational cost.
238 For efficiency reasons the cut-off with triclinic boxes is more restricted.
239 For grid search the extra restriction is weak:
240 \beq
241 \label{eqn:gridrc}
242 R_c < \min(a_x,b_y,c_z)
243 \eeq
244 For simple search the extra restriction is stronger:
245 \beq
246 \label{eqn:simplerc}
247 R_c < \half \min(a_x,b_y,c_z)
248 \eeq
250 Each unit cell (cubic, rectangular or triclinic)
251 is surrounded by 26 translated images. A
252 particular image can therefore always be identified by an index pointing to one
253 of 27 {\em translation vectors} and constructed by applying a
254 translation with the indexed vector (see \ssecref{forces}).
255 Restriction (\ref{eqn:gridrc}) ensures that only 26 images need to be
256 considered.
258 %\ifthenelse{\equal{\gmxlite}{1}}{}{
259 \section{The group concept}
260 \label{sec:groupconcept}\index{group}
261 The {\gromacs} MD and analysis programs use user-defined {\em groups} of
262 atoms to perform certain actions on. The maximum number of groups is
263 256, but each atom can only belong to six different groups, one
264 each of the following:
265 \begin{description}
266 \item[\swapindex{temperature-coupling}{group}]
267 The \normindex{temperature coupling} parameters (reference
268 temperature, time constant, number of degrees of freedom, see
269 \ssecref{update}) can be defined for each T-coupling group
270 separately. For example, in a solvated macromolecule the solvent (that
271 tends to generate more heating by force and integration errors) can be
272 coupled with a shorter time constant to a bath than is a macromolecule,
273 or a surface can be kept cooler than an adsorbing molecule. Many
274 different T-coupling groups may be defined. See also center of mass
275 groups below.
277 \item[\swapindex{freeze}{group}\index{frozen atoms}]
278 Atoms that belong to a freeze group are kept stationary in the
279 dynamics. This is useful during equilibration, {\eg} to avoid badly
280 placed solvent molecules giving unreasonable kicks to protein atoms,
281 although the same effect can also be obtained by putting a restraining
282 potential on the atoms that must be protected. The freeze option can
283 be used, if desired, on just one or two coordinates of an atom,
284 thereby freezing the atoms in a plane or on a line. When an atom is
285 partially frozen, constraints will still be able to move it, even in a
286 frozen direction. A fully frozen atom can not be moved by constraints.
287 Many freeze groups can be defined. Frozen coordinates are unaffected
288 by pressure scaling; in some cases this can produce unwanted results,
289 particularly when constraints are also used (in this case you will
290 get very large pressures). Accordingly, it is recommended to avoid
291 combining freeze groups with constraints and pressure coupling. For the
292 sake of equilibration it could suffice to start with freezing in a
293 constant volume simulation, and afterward use position restraints in
294 conjunction with constant pressure.
296 \item[\swapindex{accelerate}{group}]
297 On each atom in an ``accelerate group'' an acceleration
298 $\ve{a}^g$ is imposed. This is equivalent to an external
299 force. This feature makes it possible to drive the system into a
300 non-equilibrium state and enables the performance of
301 \swapindex{non-equilibrium}{MD} and hence to obtain transport properties.
303 \item[\swapindex{energy-monitor}{group}]
304 Mutual interactions between all energy-monitor groups are compiled
305 during the simulation. This is done separately for Lennard-Jones and
306 Coulomb terms. In principle up to 256 groups could be defined, but
307 that would lead to 256$\times$256 items! Better use this concept
308 sparingly.
310 All non-bonded interactions between pairs of energy-monitor groups can
311 be excluded\index{exclusions}
312 \ifthenelse{\equal{\gmxlite}{1}}
314 {(see details in the User Guide).}
315 Pairs of particles from excluded pairs of energy-monitor groups
316 are not put into the pair list.
317 This can result in a significant speedup
318 for simulations where interactions within or between parts of the system
319 are not required.
321 \item[\swapindex{center of mass}{group}\index{removing COM motion}]
322 In \gromacs\ the center of mass (COM) motion can be removed, for
323 either the complete system or for groups of atoms. The latter is
324 useful, {\eg} for systems where there is limited friction ({\eg} gas
325 systems) to prevent center of mass motion to occur. It makes sense to
326 use the same groups for temperature coupling and center of mass motion
327 removal.
329 \item[\swapindex{Compressed position output}{group}]
331 In order to further reduce the size of the compressed trajectory file
332 ({\tt .xtc{\index{XTC}}} or {\tt .tng{\index{TNG}}}), it is possible
333 to store only a subset of all particles. All x-compression groups that
334 are specified are saved, the rest are not. If no such groups are
335 specified, than all atoms are saved to the compressed trajectory file.
337 \end{description}
338 The use of groups in {\gromacs} tools is described in
339 \secref{usinggroups}.
340 %} % Brace matches ifthenelse test for gmxlite
342 \section{Molecular Dynamics}
343 \label{sec:MD}
344 \begin{figure}
345 \begin{center}
346 \addtolength{\fboxsep}{0.5cm}
347 \begin{shadowenv}[12cm]
348 {\large \bf THE GLOBAL MD ALGORITHM}
349 \rule{\textwidth}{2pt} \\
350 {\bf 1. Input initial conditions}\\[2ex]
351 Potential interaction $V$ as a function of atom positions\\
352 Positions $\ve{r}$ of all atoms in the system\\
353 Velocities $\ve{v}$ of all atoms in the system \\
354 $\Downarrow$\\
355 \rule{\textwidth}{1pt}\\
356 {\bf repeat 2,3,4} for the required number of steps:\\
357 \rule{\textwidth}{1pt}\\
358 {\bf 2. Compute forces} \\[1ex]
359 The force on any atom \\[1ex]
360 $\ve{F}_i = - \displaystyle\frac{\partial V}{\partial \ve{r}_i}$ \\[1ex]
361 is computed by calculating the force between non-bonded atom pairs: \\
362 $\ve{F}_i = \sum_j \ve{F}_{ij}$ \\
363 plus the forces due to bonded interactions (which may depend on 1, 2,
364 3, or 4 atoms), plus restraining and/or external forces. \\
365 The potential and kinetic energies and the pressure tensor may be computed. \\
366 $\Downarrow$\\
367 {\bf 3. Update configuration} \\[1ex]
368 The movement of the atoms is simulated by numerically solving Newton's
369 equations of motion \\[1ex]
370 $\displaystyle
371 \frac {\de^2\ve{r}_i}{\de t^2} = \frac{\ve{F}_i}{m_i} $ \\
372 or \\
373 $\displaystyle
374 \frac{\de\ve{r}_i}{\de t} = \ve{v}_i ; \;\;
375 \frac{\de\ve{v}_i}{\de t} = \frac{\ve{F}_i}{m_i} $ \\[1ex]
376 $\Downarrow$ \\
377 {\bf 4.} if required: {\bf Output step} \\
378 write positions, velocities, energies, temperature, pressure, etc. \\
379 \end{shadowenv}
380 \caption{The global MD algorithm}
381 \label{fig:global}
382 \end{center}
383 \end{figure}
384 A global flow scheme for MD is given in \figref{global}. Each
385 MD or EM run requires as input a set of initial coordinates and --
386 optionally -- initial velocities of all particles involved. This
387 chapter does not describe how these are obtained; for the setup of an
388 actual MD run check the online manual at {\wwwpage}.
390 \subsection{Initial conditions}
391 \subsubsection{Topology and force field}
392 The system topology, including a description of the force field, must
393 be read in.
394 \ifthenelse{\equal{\gmxlite}{1}}
396 {Force fields and topologies are described in \chref{ff}
397 and \ref{ch:top}, respectively.}
398 All this information is static; it is never modified during the run.
400 \subsubsection{Coordinates and velocities}
401 \begin{figure}
402 \centerline{\includegraphics[width=8cm]{plots/maxwell}}
403 \caption{A Maxwell-Boltzmann velocity distribution, generated from
404 random numbers.}
405 \label{fig:maxwell}
406 \end{figure}
408 Then, before a run starts, the box size and the coordinates and
409 velocities of all particles are required. The box size and shape is
410 determined by three vectors (nine numbers) $\ve{b}_1, \ve{b}_2, \ve{b}_3$,
411 which represent the three basis vectors of the periodic box.
413 If the run starts at $t=t_0$, the coordinates at $t=t_0$ must be
414 known. The {\em leap-frog algorithm}, the default algorithm used to
415 update the time step with $\Dt$ (see \ssecref{update}), also requires
416 that the velocities at $t=t_0 - \hDt$ are known. If velocities are not
417 available, the program can generate initial atomic velocities
418 $v_i, i=1\ldots 3N$ with a \index{Maxwell-Boltzmann distribution}
419 (\figref{maxwell}) at a given absolute temperature $T$:
420 \beq
421 p(v_i) = \sqrt{\frac{m_i}{2 \pi kT}}\exp\left(-\frac{m_i v_i^2}{2kT}\right)
422 \eeq
423 where $k$ is Boltzmann's constant (see \chref{defunits}).
424 To accomplish this, normally distributed random numbers are generated
425 by adding twelve random numbers $R_k$ in the range $0 \le R_k < 1$ and
426 subtracting 6.0 from their sum. The result is then multiplied by the
427 standard deviation of the velocity distribution $\sqrt{kT/m_i}$. Since
428 the resulting total energy will not correspond exactly to the required
429 temperature $T$, a correction is made: first the center-of-mass motion
430 is removed and then all velocities are scaled so that the total
431 energy corresponds exactly to $T$ (see \eqnref{E-T}).
432 % Why so complicated? What's wrong with Box-Mueller transforms?
434 \subsubsection{Center-of-mass motion\index{removing COM motion}}
435 The \swapindex{center-of-mass}{velocity} is normally set to zero at
436 every step; there is (usually) no net external force acting on the
437 system and the center-of-mass velocity should remain constant. In
438 practice, however, the update algorithm introduces a very slow change in
439 the center-of-mass velocity, and therefore in the total kinetic energy of
440 the system -- especially when temperature coupling is used. If such
441 changes are not quenched, an appreciable center-of-mass motion
442 can develop in long runs, and the temperature will be
443 significantly misinterpreted. Something similar may happen due to overall
444 rotational motion, but only when an isolated cluster is simulated. In
445 periodic systems with filled boxes, the overall rotational motion is
446 coupled to other degrees of freedom and does not cause such problems.
449 \subsection{Neighbor searching\swapindexquiet{neighbor}{searching}}
450 \label{subsec:ns}
451 As mentioned in \chref{ff}, internal forces are
452 either generated from fixed (static) lists, or from dynamic lists.
453 The latter consist of non-bonded interactions between any pair of particles.
454 When calculating the non-bonded forces, it is convenient to have all
455 particles in a rectangular box.
456 As shown in \figref{pbc}, it is possible to transform a
457 triclinic box into a rectangular box.
458 The output coordinates are always in a rectangular box, even when a
459 dodecahedron or triclinic box was used for the simulation.
460 Equation \ref{eqn:box_rot} ensures that we can reset particles
461 in a rectangular box by first shifting them with
462 box vector ${\bf c}$, then with ${\bf b}$ and finally with ${\bf a}$.
463 Equations \ref{eqn:box_shift2}, \ref{eqn:physicalrc} and \ref{eqn:gridrc}
464 ensure that we can find the 14 nearest triclinic images within
465 a linear combination that does not involve multiples of box vectors.
467 \subsubsection{Pair lists generation}
468 The non-bonded pair forces need to be calculated only for those pairs
469 $i,j$ for which the distance $r_{ij}$ between $i$ and the
470 \swapindex{nearest}{image}
471 of $j$ is less than a given cut-off radius $R_c$. Some of the particle
472 pairs that fulfill this criterion are excluded, when their interaction
473 is already fully accounted for by bonded interactions. {\gromacs}
474 employs a {\em pair list} that contains those particle pairs for which
475 non-bonded forces must be calculated. The pair list contains particles
476 $i$, a displacement vector for particle $i$, and all particles $j$ that
477 are within \verb'rlist' of this particular image of particle $i$. The
478 list is updated every \verb'nstlist' steps.
480 To make the \normindex{neighbor list}, all particles that are close
481 ({\ie} within the neighbor list cut-off) to a given particle must be found.
482 This searching, usually called neighbor search (NS) or pair search,
483 involves periodic boundary conditions and determining the {\em image}
484 (see \secref{pbc}). The search algorithm is $O(N)$, although a simpler
485 $O(N^2)$ algorithm is still available under some conditions.
487 \subsubsection{\normindex{Cut-off schemes}: group versus Verlet}
488 From version 4.6, {\gromacs} supports two different cut-off scheme
489 setups: the original one based on particle groups and one using a Verlet
490 buffer. There are some important differences that affect results,
491 performance and feature support. The group scheme can be made to work
492 (almost) like the Verlet scheme, but this will lead to a decrease in
493 performance. The group scheme is especially fast for water molecules,
494 which are abundant in many simulations, but on the most recent x86
495 processors, this advantage is negated by the better instruction-level
496 parallelism available in the Verlet-scheme implementation. The group
497 scheme is deprecated in version 5.0, and will be removed in a future
498 version. For practical details of choosing and setting up
499 cut-off schemes, please see the User Guide.
501 In the group scheme, a neighbor list is generated consisting of pairs
502 of groups of at least one particle. These groups were originally
503 \swapindex{charge}{group}s \ifthenelse{\equal{\gmxlite}{1}}{}{(see
504 \secref{chargegroup})}, but with a proper treatment of long-range
505 electrostatics, performance in unbuffered simulations is their only advantage. A pair of groups
506 is put into the neighbor list when their center of geometry is within
507 the cut-off distance. Interactions between all particle pairs (one from
508 each charge group) are calculated for a certain number of MD steps,
509 until the neighbor list is updated. This setup is efficient, as the
510 neighbor search only checks distance between charge-group pair, not
511 particle pairs (saves a factor of $3 \times 3 = 9$ with a three-particle water
512 model) and the non-bonded force kernels can be optimized for, say, a
513 water molecule ``group''. Without explicit buffering, this setup leads
514 to energy drift as some particle pairs which are within the cut-off don't
515 interact and some outside the cut-off do interact. This can be caused
517 \begin{itemize}
518 \item particles moving across the cut-off between neighbor search steps, and/or
519 \item for charge groups consisting of more than one particle, particle pairs
520 moving in/out of the cut-off when their charge group center of
521 geometry distance is outside/inside of the cut-off.
522 \end{itemize}
523 Explicitly adding a buffer to the neighbor list will remove such
524 artifacts, but this comes at a high computational cost. How severe the
525 artifacts are depends on the system, the properties in which you are
526 interested, and the cut-off setup.
528 The Verlet cut-off scheme uses a buffered pair list by default. It
529 also uses clusters of particles, but these are not static as in the group
530 scheme. Rather, the clusters are defined spatially and consist of 4 or
531 8 particles, which is convenient for stream computing, using e.g. SSE, AVX
532 or CUDA on GPUs. At neighbor search steps, a pair list is created
533 with a Verlet buffer, ie. the pair-list cut-off is larger than the
534 interaction cut-off. In the non-bonded kernels, interactions are only
535 computed when a particle pair is within the cut-off distance at that
536 particular time step. This ensures that as particles move between pair
537 search steps, forces between nearly all particles within the cut-off
538 distance are calculated. We say {\em nearly} all particles, because
539 {\gromacs} uses a fixed pair list update frequency for
540 efficiency. A particle-pair, whose distance was outside the cut-off,
541 could possibly move enough during this fixed number of
542 steps that its distance is now within the cut-off. This
543 small chance results in a small energy drift, and the size of the
544 chance depends on the temperature. When temperature
545 coupling is used, the buffer size can be determined automatically,
546 given a certain tolerance on the energy drift.
548 The Verlet cut-off scheme is implemented in a very efficient fashion
549 based on clusters of particles. The simplest example is a cluster size
550 of 4 particles. The pair list is then constructed based on cluster
551 pairs. The cluster-pair search is much faster searching based on
552 particle pairs, because $4 \times 4 = 16$ particle pairs are put in
553 the list at once. The non-bonded force calculation kernel can then
554 calculate many particle-pair interactions at once, which maps nicely
555 to SIMD or SIMT units on modern hardware, which can perform multiple
556 floating operations at once. These non-bonded kernels
557 are much faster than the kernels used in the group scheme for most
558 types of systems, particularly on newer hardware.
560 \ifthenelse{\equal{\gmxlite}{1}}{}{
561 \subsubsection{Energy drift and pair-list buffering}
562 For a canonical (NVT) ensemble, the average energy error caused by
563 diffusion of $j$ particles from outside the pair-list cut-off
564 $r_\ell$ to inside the interaction cut-off $r_c$ over the lifetime
565 of the list can be determined from the atomic
566 displacements and the shape of the potential at the cut-off.
567 %Since we are interested in the small drift regime, we will assume
568 %#that atoms will only move within the cut-off distance in the last step,
569 %$n_\mathrm{ps}-1$, of the pair list update interval $n_\mathrm{ps}$.
570 %Over this number of steps the displacment of an atom with mass $m$
571 The displacement distribution along one dimension for a freely moving
572 particle with mass $m$ over time $t$ at temperature $T$ is
573 a Gaussian $G(x)$
574 of zero mean and variance $\sigma^2 = t^2 k_B T/m$. For the distance
575 between two particles, the variance changes to $\sigma^2 = \sigma_{12}^2 =
576 t^2 k_B T(1/m_1+1/m_2)$. Note that in practice particles usually
577 interact with other particles over time $t$ and therefore the real
578 displacement distribution is much narrower. Given a non-bonded
579 interaction cut-off distance of $r_c$ and a pair-list cut-off
580 $r_\ell=r_c+r_b$ for $r_b$ the Verlet buffer size, we can then
581 write the average energy error after time $t$ for all missing pair
582 interactions between a single $i$ particle of type 1 surrounded
583 by all $j$ particles that are of type 2 with number density $\rho_2$,
584 when the inter-particle distance changes from $r_0$ to $r_t$, as:
585 \beq
586 \langle \Delta V \rangle =
587 \int_{0}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 V(r_t) G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0\, d r_t
588 \eeq
589 To evaluate this analytically, we need to make some approximations. First we replace $V(r_t)$ by a Taylor expansion around $r_c$, then we can move the lower bound of the integral over $r_0$ to $-\infty$ which will simplify the result:
590 \begin{eqnarray}
591 \langle \Delta V \rangle &\approx&
592 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[ V'(r_c) (r_t - r_c) +
593 \nonumber\\
595 \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
596 V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
597 \nonumber\\
599 \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
600 V'''(r_c)\frac{1}{6}(r_t - r_c)^3 +
601 \nonumber\\
603 \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
604 O \! \left((r_t - r_c)^4 \right)\Big] G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0 \, d r_t
605 \end{eqnarray}
606 Replacing the factor $r_0^2$ by $(r_\ell + \sigma)^2$, which results in a slight overestimate, allows us to calculate the integrals analytically:
607 \begin{eqnarray}
608 \langle \Delta V \rangle \!
609 &\approx&
610 4 \pi (r_\ell+\sigma)^2 \rho_2
611 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[ V'(r_c) (r_t - r_c) +
612 \nonumber\\
614 \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
615 V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
616 \nonumber\\
618 \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
619 V'''(r_c)\frac{1}{6}(r_t - r_c)^3 \Big] G\!\left(\frac{r_t-r_0}{\sigma}\right)
620 d r_0 \, d r_t\\
622 4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{
623 \frac{1}{2}V'(r_c)\left[r_b \sigma G\!\left(\frac{r_b}{\sigma}\right) - (r_b^2+\sigma^2)E\!\left(\frac{r_b}{\sigma}\right) \right] +
624 \nonumber\\
626 \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
627 \frac{1}{6}V''(r_c)\left[ \sigma(r_b^2+2\sigma^2) G\!\left(\frac{r_b}{\sigma}\right) - r_b(r_b^2+3\sigma^2 ) E\!\left(\frac{r_b}{\sigma}\right) \right] +
628 \nonumber\\
630 \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
631 \frac{1}{24}V'''(r_c)\bigg[ r_b\sigma(r_b^2+5\sigma^2) G\!\left(\frac{r_b}{\sigma}\right)
632 \nonumber\\
634 \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ \frac{1}{24}V'''(r_c)\bigg[ }
635 - (r_b^4+6r_b^2\sigma^2+3\sigma^4 ) E\!\left(\frac{r_b}{\sigma}\right) \bigg]
636 \bigg\}
637 \end{eqnarray}
639 where $G(x)$ is a Gaussian distribution with 0 mean and unit variance and
640 $E(x)=\frac{1}{2}\mathrm{erfc}(x/\sqrt{2})$. We always want to achieve
641 small energy error, so $\sigma$ will be small compared to both $r_c$
642 and $r_\ell$, thus the approximations in the equations above are good,
643 since the Gaussian distribution decays rapidly. The energy error needs
644 to be averaged over all particle pair types and weighted with the
645 particle counts. In {\gromacs} we don't allow cancellation of error
646 between pair types, so we average the absolute values. To obtain the
647 average energy error per unit time, it needs to be divided by the
648 neighbor-list life time $t = ({\tt nstlist} - 1)\times{\tt dt}$. The
649 function can not be inverted analytically, so we use bisection to
650 obtain the buffer size $r_b$ for a target drift. Again we note that
651 in practice the error we usually be much smaller than this estimate,
652 as in the condensed phase particle displacements will be much smaller
653 than for freely moving particles, which is the assumption used here.
655 When (bond) constraints are present, some particles will have fewer
656 degrees of freedom. This will reduce the energy errors. For simplicity,
657 we only consider one constraint per particle, the heaviest particle
658 in case a particle is involved in multiple constraints.
659 This simplification overestimates the displacement. The motion of
660 a constrained particle is a superposition of the 3D motion of the
661 center of mass of both particles and a 2D rotation around the center of mass.
662 The displacement in an arbitrary direction of a particle with 2 degrees
663 of freedom is not Gaussian, but rather follows the complementary error
664 function:
665 \beq
666 \frac{\sqrt{\pi}}{2\sqrt{2}\sigma}\,\mathrm{erfc}\left(\frac{|r|}{\sqrt{2}\,\sigma}\right)
667 \label{eqn:2D_disp}
668 \eeq
669 where $\sigma^2$ is again $t^2 k_B T/m$. This distribution can no
670 longer be integrated analytically to obtain the energy error. But we
671 can generate a tight upper bound using a scaled and shifted Gaussian
672 distribution (not shown). This Gaussian distribution can then be used
673 to calculate the energy error as described above. The rotation displacement
674 around the center of mass can not be more than the length of the arm.
675 To take this into account, we scale $\sigma$ in \eqnref{2D_disp} (details
676 not presented here) to obtain an overestimate of the real displacement.
677 This latter effect significantly reduces the buffer size for longer
678 neighborlist lifetimes in e.g. water, as constrained hydrogens are by far
679 the fastest particles, but they can not move further than 0.1 nm
680 from the heavy atom they are connected to.
683 There is one important implementation detail that reduces the energy
684 errors caused by the finite Verlet buffer list size. The derivation
685 above assumes a particle pair-list. However, the {\gromacs}
686 implementation uses a cluster pair-list for efficiency. The pair list
687 consists of pairs of clusters of 4 particles in most cases, also
688 called a $4 \times 4$ list, but the list can also be $4 \times 8$ (GPU
689 CUDA kernels and AVX 256-bit single precision kernels) or $4 \times 2$
690 (SSE double-precision kernels). This means that the pair-list is
691 effectively much larger than the corresponding $1 \times 1$ list. Thus
692 slightly beyond the pair-list cut-off there will still be a large
693 fraction of particle pairs present in the list. This fraction can be
694 determined in a simulation and accurately estimated under some
695 reasonable assumptions. The fraction decreases with increasing
696 pair-list range, meaning that a smaller buffer can be used. For
697 typical all-atom simulations with a cut-off of 0.9 nm this fraction is
698 around 0.9, which gives a reduction in the energy errors of a factor of
699 10. This reduction is taken into account during the automatic Verlet
700 buffer calculation and results in a smaller buffer size.
702 \begin{figure}
703 \centerline{\includegraphics[width=9cm]{plots/verlet-drift}}
704 \caption {Energy drift per atom for an SPC/E water system at 300K with
705 a time step of 2 fs and a pair-list update period of 10 steps
706 (pair-list life time: 18 fs). PME was used with {\tt ewald-rtol} set
707 to 10$^{-5}$; this parameter affects the shape of the potential at
708 the cut-off. Error estimates due to finite Verlet buffer size are
709 shown for a $1 \times 1$ atom pair list and $4 \times 4$ atom pair
710 list without and with (dashed line) cancellation of positive and
711 negative errors. Real energy drift is shown for simulations using
712 double- and mixed-precision settings. Rounding errors in the SETTLE
713 constraint algorithm from the use of single precision causes
714 the drift to become negative
715 at large buffer size. Note that at zero buffer size, the real drift
716 is small because positive (H-H) and negative (O-H) energy errors
717 cancel.}
718 \label{fig:verletdrift}
719 \end{figure}
721 In \figref{verletdrift} one can see that for small buffer sizes the drift
722 of the total energy is much smaller than the pair energy error tolerance,
723 due to cancellation of errors. For larger buffer size, the error estimate
724 is a factor of 6 higher than drift of the total energy, or alternatively
725 the buffer estimate is 0.024 nm too large. This is because the protons
726 don't move freely over 18 fs, but rather vibrate.
727 %At a buffer size of zero there is cancellation of
728 %drift due to repulsive (H-H) and attractive (O-H) interactions.
730 \subsubsection{Cut-off artifacts and switched interactions}
731 With the Verlet scheme, the pair potentials are shifted to be zero at
732 the cut-off, which makes the potential the integral of the force.
733 This is only possible in the group scheme if the shape of the potential
734 is such that its value is zero at the cut-off distance.
735 However, there can still be energy drift when the
736 forces are non-zero at the cut-off. This effect is extremely small and
737 often not noticeable, as other integration errors (e.g. from constraints)
738 may dominate. To
739 completely avoid cut-off artifacts, the non-bonded forces can be
740 switched exactly to zero at some distance smaller than the neighbor
741 list cut-off (there are several ways to do this in {\gromacs}, see
742 \secref{mod_nb_int}). One then has a buffer with the size equal to the
743 neighbor list cut-off less the longest interaction cut-off.
745 } % Brace matches ifthenelse test for gmxlite
747 \subsubsection{Simple search\swapindexquiet{simple}{search}}
748 Due to \eqnsref{box_rot}{simplerc}, the vector $\rvij$
749 connecting images within the cut-off $R_c$ can be found by constructing:
750 \bea
751 \ve{r}''' & = & \ve{r}_j-\ve{r}_i \\
752 \ve{r}'' & = & \ve{r}''' - {\bf c}*\verb'round'(r'''_z/c_z) \\
753 \ve{r}' & = & \ve{r}'' - {\bf b}*\verb'round'(r''_y/b_y) \\
754 \ve{r}_{ij} & = & \ve{r}' - {\bf a}*\verb'round'(r'_x/a_x)
755 \eea
756 When distances between two particles in a triclinic box are needed
757 that do not obey \eqnref{box_rot},
758 many shifts of combinations of box vectors need to be considered to find
759 the nearest image.
761 \ifthenelse{\equal{\gmxlite}{1}}{}{
763 \begin{figure}
764 \centerline{\includegraphics[width=8cm]{plots/nstric}}
765 \caption {Grid search in two dimensions. The arrows are the box vectors.}
766 \label{fig:grid}
767 \end{figure}
769 \subsubsection{Grid search\swapindexquiet{grid}{search}}
770 \label{sec:nsgrid}
771 The grid search is schematically depicted in \figref{grid}. All
772 particles are put on the {\nsgrid}, with the smallest spacing $\ge$
773 $R_c/2$ in each of the directions. In the direction of each box
774 vector, a particle $i$ has three images. For each direction the image
775 may be -1,0 or 1, corresponding to a translation over -1, 0 or +1 box
776 vector. We do not search the surrounding {\nsgrid} cells for neighbors
777 of $i$ and then calculate the image, but rather construct the images
778 first and then search neighbors corresponding to that image of $i$.
779 As \figref{grid} shows, some grid cells may be searched more than once
780 for different images of $i$. This is not a problem, since, due to the
781 minimum image convention, at most one image will ``see'' the
782 $j$-particle. For every particle, fewer than 125 (5$^3$) neighboring
783 cells are searched. Therefore, the algorithm scales linearly with the
784 number of particles. Although the prefactor is large, the scaling
785 behavior makes the algorithm far superior over the standard $O(N^2)$
786 algorithm when there are more than a few hundred particles. The
787 grid search is equally fast for rectangular and triclinic boxes. Thus
788 for most protein and peptide simulations the rhombic dodecahedron will
789 be the preferred box shape.
790 } % Brace matches ifthenelse test for gmxlite
792 \ifthenelse{\equal{\gmxlite}{1}}{}{
793 \subsubsection{Charge groups}
794 \label{sec:chargegroup}\swapindexquiet{charge}{group}%
795 Charge groups were originally introduced to reduce cut-off artifacts
796 of Coulomb interactions. When a plain cut-off is used, significant
797 jumps in the potential and forces arise when atoms with (partial) charges
798 move in and out of the cut-off radius. When all chemical moieties have
799 a net charge of zero, these jumps can be reduced by moving groups
800 of atoms with net charge zero, called charge groups, in and
801 out of the neighbor list. This reduces the cut-off effects from
802 the charge-charge level to the dipole-dipole level, which decay
803 much faster. With the advent of full range electrostatics methods,
804 such as particle-mesh Ewald (\secref{pme}), the use of charge groups is
805 no longer required for accuracy. It might even have a slight negative effect
806 on the accuracy or efficiency, depending on how the neighbor list is made
807 and the interactions are calculated.
809 But there is still an important reason for using ``charge groups'': efficiency with the group cut-off scheme.
810 Where applicable, neighbor searching is carried out on the basis of
811 charge groups which are defined in the molecular topology.
812 If the nearest image distance between the {\em
813 geometrical centers} of the atoms of two charge groups is less than
814 the cut-off radius, all atom pairs between the charge groups are
815 included in the pair list.
816 The neighbor searching for a water system, for instance,
817 is $3^2=9$ times faster when each molecule is treated as a charge group.
818 Also the highly optimized water force loops (see \secref{waterloops})
819 only work when all atoms in a water molecule form a single charge group.
820 Currently the name {\em neighbor-search group} would be more appropriate,
821 but the name charge group is retained for historical reasons.
822 When developing a new force field, the advice is to use charge groups
823 of 3 to 4 atoms for optimal performance. For all-atom force fields
824 this is relatively easy, as one can simply put hydrogen atoms, and in some
825 case oxygen atoms, in the same charge group as the heavy atom they
826 are connected to; for example: CH$_3$, CH$_2$, CH, NH$_2$, NH, OH, CO$_2$, CO.
828 With the Verlet cut-off scheme, charge groups are ignored.
830 } % Brace matches ifthenelse test for gmxlite
832 \subsection{Compute forces}
833 \label{subsec:forces}
835 \subsubsection{Potential energy}
836 When forces are computed, the \swapindex{potential}{energy} of each
837 interaction term is computed as well. The total potential energy is
838 summed for various contributions, such as Lennard-Jones, Coulomb, and
839 bonded terms. It is also possible to compute these contributions for
840 {\em energy-monitor groups} of atoms that are separately defined (see
841 \secref{groupconcept}).
843 \subsubsection{Kinetic energy and temperature}
844 The \normindex{temperature} is given by the total
845 \swapindex{kinetic}{energy} of the $N$-particle system:
846 \beq
847 E_{kin} = \half \sum_{i=1}^N m_i v_i^2
848 \eeq
849 From this the absolute temperature $T$ can be computed using:
850 \beq
851 \half N_{\mathrm{df}} kT = E_{\mathrm{kin}}
852 \label{eqn:E-T}
853 \eeq
854 where $k$ is Boltzmann's constant and $N_{df}$ is the number of
855 degrees of freedom which can be computed from:
856 \beq
857 N_{\mathrm{df}} ~=~ 3 N - N_c - N_{\mathrm{com}}
858 \eeq
859 Here $N_c$ is the number of {\em \normindex{constraints}} imposed on the system.
860 When performing molecular dynamics $N_{\mathrm{com}}=3$ additional degrees of
861 freedom must be removed, because the three
862 center-of-mass velocities are constants of the motion, which are usually
863 set to zero. When simulating in vacuo, the rotation around the center of mass
864 can also be removed, in this case $N_{\mathrm{com}}=6$.
865 When more than one temperature-coupling group\index{temperature-coupling group} is used, the number of degrees
866 of freedom for group $i$ is:
867 \beq
868 N^i_{\mathrm{df}} ~=~ (3 N^i - N^i_c) \frac{3 N - N_c - N_{\mathrm{com}}}{3 N - N_c}
869 \eeq
871 The kinetic energy can also be written as a tensor, which is necessary
872 for pressure calculation in a triclinic system, or systems where shear
873 forces are imposed:
874 \beq
875 {\bf E}_{\mathrm{kin}} = \half \sum_i^N m_i \vvi \otimes \vvi
876 \eeq
878 \subsubsection{Pressure and virial}
879 The \normindex{pressure}
880 tensor {\bf P} is calculated from the difference between
881 kinetic energy $E_{\mathrm{kin}}$ and the \normindex{virial} ${\bf \Xi}$:
882 \beq
883 {\bf P} = \frac{2}{V} ({\bf E}_{\mathrm{kin}}-{\bf \Xi})
884 \label{eqn:P}
885 \eeq
886 where $V$ is the volume of the computational box.
887 The scalar pressure $P$, which can be used for pressure coupling in the case
888 of isotropic systems, is computed as:
889 \beq
890 P = {\rm trace}({\bf P})/3
891 \eeq
893 The virial ${\bf \Xi}$ tensor is defined as:
894 \beq
895 {\bf \Xi} = -\half \sum_{i<j} \rvij \otimes \Fvij
896 \label{eqn:Xi}
897 \eeq
899 \ifthenelse{\equal{\gmxlite}{1}}{}{
900 The {\gromacs} implementation of the virial computation is described
901 in \secref{virial}.
902 } % Brace matches ifthenelse test for gmxlite
905 \subsection{The \swapindex{leap-frog}{integrator}}
906 \label{subsec:update}
907 \begin{figure}
908 \centerline{\includegraphics[width=8cm]{plots/leapfrog}}
909 \caption[The Leap-Frog integration method.]{The Leap-Frog integration method. The algorithm is called Leap-Frog because $\ve{r}$ and $\ve{v}$ are leaping
910 like frogs over each other's backs.}
911 \label{fig:leapfrog}
912 \end{figure}
914 The default MD integrator in {\gromacs} is the so-called {\em leap-frog}
915 algorithm~\cite{Hockney74} for the integration of the equations of
916 motion. When extremely accurate integration with temperature
917 and/or pressure coupling is required, the velocity Verlet integrators
918 are also present and may be preferable (see \ssecref{vverlet}). The leap-frog
919 algorithm uses positions $\ve{r}$ at time $t$ and
920 velocities $\ve{v}$ at time $t-\hDt$; it updates positions and
921 velocities using the forces
922 $\ve{F}(t)$ determined by the positions at time $t$ using these relations:
923 \bea
924 \label{eqn:leapfrogv}
925 \ve{v}(t+\hDt) &~=~& \ve{v}(t-\hDt)+\frac{\Dt}{m}\ve{F}(t) \\
926 \ve{r}(t+\Dt) &~=~& \ve{r}(t)+\Dt\ve{v}(t+\hDt)
927 \eea
928 The algorithm is visualized in \figref{leapfrog}.
929 It produces trajectories that are identical to the Verlet~\cite{Verlet67} algorithm,
930 whose position-update relation is
931 \beq
932 \ve{r}(t+\Dt)~=~2\ve{r}(t) - \ve{r}(t-\Dt) + \frac{1}{m}\ve{F}(t)\Dt^2+O(\Dt^4)
933 \eeq
934 The algorithm is of third order in $\ve{r}$ and is time-reversible.
935 See ref.~\cite{Berendsen86b} for the merits of this algorithm and comparison
936 with other time integration algorithms.
938 The \swapindex{equations of}{motion} are modified for temperature
939 coupling and pressure coupling, and extended to include the
940 conservation of constraints, all of which are described below.
942 \subsection{The \swapindex{velocity Verlet}{integrator}}
943 \label{subsec:vverlet}
944 The velocity Verlet algorithm~\cite{Swope82} is also implemented in
945 {\gromacs}, though it is not yet fully integrated with all sets of
946 options. In velocity Verlet, positions $\ve{r}$ and velocities
947 $\ve{v}$ at time $t$ are used to integrate the equations of motion;
948 velocities at the previous half step are not required. \bea
949 \label{eqn:velocityverlet1}
950 \ve{v}(t+\hDt) &~=~& \ve{v}(t)+\frac{\Dt}{2m}\ve{F}(t) \\
951 \ve{r}(t+\Dt) &~=~& \ve{r}(t)+\Dt\,\ve{v}(t+\hDt) \\
952 \ve{v}(t+\Dt) &~=~& \ve{v}(t+\hDt)+\frac{\Dt}{2m}\ve{F}(t+\Dt)
953 \eea
954 or, equivalently,
955 \bea
956 \label{eqn:velocityverlet2}
957 \ve{r}(t+\Dt) &~=~& \ve{r}(t)+ \Dt\,\ve{v} + \frac{\Dt^2}{2m}\ve{F}(t) \\
958 \ve{v}(t+\Dt) &~=~& \ve{v}(t)+ \frac{\Dt}{2m}\left[\ve{F}(t) + \ve{F}(t+\Dt)\right]
959 \eea
960 With no temperature or pressure coupling, and with {\em corresponding}
961 starting points, leap-frog and velocity Verlet will generate identical
962 trajectories, as can easily be verified by hand from the equations
963 above. Given a single starting file with the {\em same} starting
964 point $\ve{x}(0)$ and $\ve{v}(0)$, leap-frog and velocity Verlet will
965 {\em not} give identical trajectories, as leap-frog will interpret the
966 velocities as corresponding to $t=-\hDt$, while velocity Verlet will
967 interpret them as corresponding to the timepoint $t=0$.
969 \subsection{Understanding reversible integrators: The Trotter decomposition}
970 To further understand the relationship between velocity Verlet and
971 leap-frog integration, we introduce the reversible Trotter formulation
972 of dynamics, which is also useful to understanding implementations of
973 thermostats and barostats in {\gromacs}.
975 A system of coupled, first-order differential equations can be evolved
976 from time $t = 0$ to time $t$ by applying the evolution operator
977 \bea
978 \Gamma(t) &=& \exp(iLt) \Gamma(0) \nonumber \\
979 iL &=& \dot{\Gamma}\cdot \nabla_{\Gamma},
980 \eea
981 where $L$ is the Liouville operator, and $\Gamma$ is the
982 multidimensional vector of independent variables (positions and
983 velocities).
984 A short-time approximation to the true operator, accurate at time $\Dt
985 = t/P$, is applied $P$ times in succession to evolve the system as
986 \beq
987 \Gamma(t) = \prod_{i=1}^P \exp(iL\Dt) \Gamma(0)
988 \eeq
989 For NVE dynamics, the Liouville operator is
990 \bea
991 iL = \sum_{i=1}^{N} \vv_i \cdot \nabla_{\rv_i} + \sum_{i=1}^N \frac{1}{m_i}\F(r_i) \cdot \nabla_{\vv_i}.
992 \eea
993 This can be split into two additive operators
994 \bea
995 iL_1 &=& \sum_{i=1}^N \frac{1}{m_i}\F(r_i) \cdot \nabla_{\vv_i} \nonumber \\
996 iL_2 &=& \sum_{i=1}^{N} \vv_i \cdot \nabla_{\rv_i}
997 \eea
998 Then a short-time, symmetric, and thus reversible approximation of the true dynamics will be
999 \bea
1000 \exp(iL\Dt) = \exp(iL_2\hDt) \exp(iL_1\Dt) \exp(iL_2\hDt) + \mathcal{O}(\Dt^3).
1001 \label{eq:NVE_Trotter}
1002 \eea
1003 This corresponds to velocity Verlet integration. The first
1004 exponential term over $\hDt$ corresponds to a velocity half-step, the
1005 second exponential term over $\Dt$ corresponds to a full velocity
1006 step, and the last exponential term over $\hDt$ is the final velocity
1007 half step. For future times $t = n\Dt$, this becomes
1008 \bea
1009 \exp(iLn\Dt) &\approx& \left(\exp(iL_2\hDt) \exp(iL_1\Dt) \exp(iL_2\hDt)\right)^n \nonumber \\
1010 &\approx& \exp(iL_2\hDt) \bigg(\exp(iL_1\Dt) \exp(iL_2\Dt)\bigg)^{n-1} \nonumber \\
1011 & & \;\;\;\; \exp(iL_1\Dt) \exp(iL_2\hDt)
1012 \eea
1013 This formalism allows us to easily see the difference between the
1014 different flavors of Verlet integrators. The leap-frog integrator can
1015 be seen as starting with Eq.~\ref{eq:NVE_Trotter} with the
1016 $\exp\left(iL_1 \dt\right)$ term, instead of the half-step velocity
1017 term, yielding
1018 \bea
1019 \exp(iLn\dt) &=& \exp\left(iL_1 \dt\right) \exp\left(iL_2 \Dt \right) + \mathcal{O}(\Dt^3).
1020 \eea
1021 Here, the full step in velocity is between $t-\hDt$ and $t+\hDt$,
1022 since it is a combination of the velocity half steps in velocity
1023 Verlet. For future times $t = n\Dt$, this becomes
1024 \bea
1025 \exp(iLn\dt) &\approx& \bigg(\exp\left(iL_1 \dt\right) \exp\left(iL_2 \Dt \right) \bigg)^{n}.
1026 \eea
1027 Although at first this does not appear symmetric, as long as the full velocity
1028 step is between $t-\hDt$ and $t+\hDt$, then this is simply a way of
1029 starting velocity Verlet at a different place in the cycle.
1031 Even though the trajectory and thus potential energies are identical
1032 between leap-frog and velocity Verlet, the kinetic energy and
1033 temperature will not necessarily be the same. Standard velocity
1034 Verlet uses the velocities at the $t$ to calculate the kinetic energy
1035 and thus the temperature only at time $t$; the kinetic energy is then a sum over all particles
1036 \bea
1037 KE_{\mathrm{full}}(t) &=& \sum_i \left(\frac{1}{2m_i}\ve{v}_i(t)\right)^2 \nonumber\\
1038 &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\ve{v}_i(t-\hDt)+\frac{1}{2}\ve{v}_i(t+\hDt)\right)^2,
1039 \eea
1040 with the square on the {\em outside} of the average. Standard
1041 leap-frog calculates the kinetic energy at time $t$ based on the
1042 average kinetic energies at the timesteps $t+\hDt$ and $t-\hDt$, or
1043 the sum over all particles
1044 \bea
1045 KE_{\mathrm{average}}(t) &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\ve{v}_i(t-\hDt)^2+\frac{1}{2}\ve{v}_i(t+\hDt)^2\right),
1046 \eea
1047 where the square is {\em inside} the average.
1049 A non-standard variant of velocity Verlet which averages the kinetic
1050 energies $KE(t+\hDt)$ and $KE(t-\hDt)$, exactly like leap-frog, is also
1051 now implemented in {\gromacs} (as {\tt .mdp} file option {\tt md-vv-avek}). Without
1052 temperature and pressure coupling, velocity Verlet with
1053 half-step-averaged kinetic energies and leap-frog will be identical up
1054 to numerical precision. For temperature- and pressure-control schemes,
1055 however, velocity Verlet with half-step-averaged kinetic energies and
1056 leap-frog will be different, as will be discussed in the section in
1057 thermostats and barostats.
1059 The half-step-averaged kinetic energy and temperature are slightly more
1060 accurate for a given step size; the difference in average kinetic
1061 energies using the half-step-averaged kinetic energies ({\em md} and
1062 {\em md-vv-avek}) will be closer to the kinetic energy obtained in the
1063 limit of small step size than will the full-step kinetic energy (using
1064 {\em md-vv}). For NVE simulations, this difference is usually not
1065 significant, since the positions and velocities of the particles are
1066 still identical; it makes a difference in the way the the temperature
1067 of the simulations are {\em interpreted}, but {\em not} in the
1068 trajectories that are produced. Although the kinetic energy is more
1069 accurate with the half-step-averaged method, meaning that it changes
1070 less as the timestep gets large, it is also more noisy. The RMS deviation
1071 of the total energy of the system (sum of kinetic plus
1072 potential) in the half-step-averaged kinetic energy case will be
1073 higher (about twice as high in most cases) than the full-step kinetic
1074 energy. The drift will still be the same, however, as again, the
1075 trajectories are identical.
1077 For NVT simulations, however, there {\em will} be a difference, as
1078 discussed in the section on temperature control, since the velocities
1079 of the particles are adjusted such that kinetic energies of the
1080 simulations, which can be calculated either way, reach the
1081 distribution corresponding to the set temperature. In this case, the
1082 three methods will not give identical results.
1084 Because the velocity and position are both defined at the same time
1085 $t$ the velocity Verlet integrator can be used for some methods,
1086 especially rigorously correct pressure control methods, that are not
1087 actually possible with leap-frog. The integration itself takes
1088 negligibly more time than leap-frog, but twice as many communication
1089 calls are currently required. In most cases, and especially for large
1090 systems where communication speed is important for parallelization and
1091 differences between thermodynamic ensembles vanish in the $1/N$ limit,
1092 and when only NVT ensembles are required, leap-frog will likely be the
1093 preferred integrator. For pressure control simulations where the fine
1094 details of the thermodynamics are important, only velocity Verlet
1095 allows the true ensemble to be calculated. In either case, simulation
1096 with double precision may be required to get fine details of
1097 thermodynamics correct.
1099 \subsection{Multiple time stepping}
1100 Several other simulation packages uses multiple time stepping for
1101 bonds and/or the PME mesh forces. In {\gromacs} we have not implemented
1102 this (yet), since we use a different philosophy. Bonds can be constrained
1103 (which is also a more sound approximation of a physical quantum
1104 oscillator), which allows the smallest time step to be increased
1105 to the larger one. This not only halves the number of force calculations,
1106 but also the update calculations. For even larger time steps, angle vibrations
1107 involving hydrogen atoms can be removed using virtual interaction
1108 \ifthenelse{\equal{\gmxlite}{1}}
1109 {sites,}
1110 {sites (see \secref{rmfast}),}
1111 which brings the shortest time step up to
1112 PME mesh update frequency of a multiple time stepping scheme.
1114 \subsection{Temperature coupling\index{temperature coupling}}
1115 While direct use of molecular dynamics gives rise to the NVE (constant
1116 number, constant volume, constant energy ensemble), most quantities
1117 that we wish to calculate are actually from a constant temperature
1118 (NVT) ensemble, also called the canonical ensemble. {\gromacs} can use
1119 the {\em weak-coupling} scheme of Berendsen~\cite{Berendsen84},
1120 stochastic randomization through the Andersen
1121 thermostat~\cite{Andersen80}, the extended ensemble Nos{\'e}-Hoover
1122 scheme~\cite{Nose84,Hoover85}, or a velocity-rescaling
1123 scheme~\cite{Bussi2007a} to simulate constant temperature, with
1124 advantages of each of the schemes laid out below.
1126 There are several other reasons why it might be necessary to control
1127 the temperature of the system (drift during equilibration, drift as a
1128 result of force truncation and integration errors, heating due to
1129 external or frictional forces), but this is not entirely correct to do
1130 from a thermodynamic standpoint, and in some cases only masks the
1131 symptoms (increase in temperature of the system) rather than the
1132 underlying problem (deviations from correct physics in the dynamics).
1133 For larger systems, errors in ensemble averages and structural
1134 properties incurred by using temperature control to remove slow drifts
1135 in temperature appear to be negligible, but no completely
1136 comprehensive comparisons have been carried out, and some caution must
1137 be taking in interpreting the results.
1139 \subsubsection{Berendsen temperature coupling\pawsindexquiet{Berendsen}{temperature coupling}\index{weak coupling}}
1140 The Berendsen algorithm mimics weak coupling with first-order
1141 kinetics to an external heat bath with given temperature $T_0$.
1142 See ref.~\cite{Berendsen91} for a comparison with the
1143 Nos{\'e}-Hoover scheme. The effect of this algorithm is
1144 that a deviation of the system temperature from $T_0$ is slowly
1145 corrected according to:
1146 \beq
1147 \frac{\de T}{\de t} = \frac{T_0-T}{\tau}
1148 \label{eqn:Tcoupling}
1149 \eeq
1150 which means that a temperature deviation decays exponentially with a
1151 time constant $\tau$.
1152 This method of coupling has the advantage that the strength of the
1153 coupling can be varied and adapted to the user requirement: for
1154 equilibration purposes the coupling time can be taken quite short
1155 ({\eg} 0.01 ps), but for reliable equilibrium runs it can be taken much
1156 longer ({\eg} 0.5 ps) in which case it hardly influences the
1157 conservative dynamics.
1159 The Berendsen thermostat suppresses the fluctuations of the kinetic
1160 energy. This means that one does not generate a proper canonical
1161 ensemble, so rigorously, the sampling will be incorrect. This
1162 error scales with $1/N$, so for very large systems most ensemble
1163 averages will not be affected significantly, except for the
1164 distribution of the kinetic energy itself. However, fluctuation
1165 properties, such as the heat capacity, will be affected. A similar
1166 thermostat which does produce a correct ensemble is the velocity
1167 rescaling thermostat~\cite{Bussi2007a} described below.
1169 The heat flow into or out of the system is affected by scaling the
1170 velocities of each particle every step, or every $n_\mathrm{TC}$ steps,
1171 with a time-dependent factor $\lambda$, given by:
1172 \beq
1173 \lambda = \left[ 1 + \frac{n_\mathrm{TC} \Delta t}{\tau_T}
1174 \left\{\frac{T_0}{T(t - \hDt)} - 1 \right\} \right]^{1/2}
1175 \label{eqn:lambda}
1176 \eeq
1177 The parameter $\tau_T$ is close, but not exactly equal, to the time constant
1178 $\tau$ of the temperature coupling (\eqnref{Tcoupling}):
1179 \beq
1180 \tau = 2 C_V \tau_T / N_{df} k
1181 \eeq
1182 where $C_V$ is the total heat capacity of the system, $k$ is Boltzmann's
1183 constant, and $N_{df}$ is the total number of degrees of freedom. The
1184 reason that $\tau \neq \tau_T$ is that the kinetic energy change
1185 caused by scaling the velocities is partly redistributed between
1186 kinetic and potential energy and hence the change in temperature is
1187 less than the scaling energy. In practice, the ratio $\tau / \tau_T$
1188 ranges from 1 (gas) to 2 (harmonic solid) to 3 (water). When we use
1189 the term ``temperature coupling time constant,'' we mean the parameter
1190 \normindex{$\tau_T$}.
1191 {\bf Note} that in practice the scaling factor $\lambda$ is limited to
1192 the range of 0.8 $<= \lambda <=$ 1.25, to avoid scaling by very large
1193 numbers which may crash the simulation. In normal use,
1194 $\lambda$ will always be much closer to 1.0.
1196 \subsubsection{Velocity-rescaling temperature coupling\pawsindexquiet{velocity-rescaling}{temperature coupling}}
1197 The velocity-rescaling thermostat~\cite{Bussi2007a} is essentially a Berendsen
1198 thermostat (see above) with an additional stochastic term that ensures
1199 a correct kinetic energy distribution by modifying it according to
1200 \beq
1201 \de K = (K_0 - K) \frac{\de t}{\tau_T} + 2 \sqrt{\frac{K K_0}{N_f}} \frac{\de W}{\sqrt{\tau_T}},
1202 \label{eqn:vrescale}
1203 \eeq
1204 where $K$ is the kinetic energy, $N_f$ the number of degrees of freedom and $\de W$ a Wiener process.
1205 There are no additional parameters, except for a random seed.
1206 This thermostat produces a correct canonical ensemble and still has
1207 the advantage of the Berendsen thermostat: first order decay of
1208 temperature deviations and no oscillations.
1209 When an $NVT$ ensemble is used, the conserved energy quantity
1210 is written to the energy and log file.
1212 \subsubsection{\normindex{Andersen thermostat}}
1213 One simple way to maintain a thermostatted ensemble is to take an
1214 $NVE$ integrator and periodically re-select the velocities of the
1215 particles from a Maxwell-Boltzmann distribution.~\cite{Andersen80}
1216 This can either be done by randomizing all the velocities
1217 simultaneously (massive collision) every $\tau_T/\Dt$ steps ({\tt andersen-massive}), or by
1218 randomizing every particle with some small probability every timestep ({\tt andersen}),
1219 equal to $\Dt/\tau$, where in both cases $\Dt$ is the timestep and
1220 $\tau_T$ is a characteristic coupling time scale.
1221 Because of the way constraints operate, all particles in the same
1222 constraint group must be randomized simultaneously. Because of
1223 parallelization issues, the {\tt andersen} version cannot currently (5.0) be
1224 used in systems with constraints. {\tt andersen-massive} can be used regardless of constraints.
1225 This thermostat is also currently only possible with velocity Verlet algorithms,
1226 because it operates directly on the velocities at each timestep.
1228 This algorithm completely avoids some of the ergodicity issues of other thermostatting
1229 algorithms, as energy cannot flow back and forth between energetically
1230 decoupled components of the system as in velocity scaling motions.
1231 However, it can slow down the kinetics of system by randomizing
1232 correlated motions of the system, including slowing sampling when
1233 $\tau_T$ is at moderate levels (less than 10 ps). This algorithm
1234 should therefore generally not be used when examining kinetics or
1235 transport properties of the system.~\cite{Basconi2013}
1237 % \ifthenelse{\equal{\gmxlite}{1}}{}{
1238 \subsubsection{Nos{\'e}-Hoover temperature coupling\index{Nose-Hoover temperature coupling@Nos{\'e}-Hoover temperature coupling|see{temperature coupling, Nos{\'e}-Hoover}}{\index{temperature coupling Nose-Hoover@temperature coupling Nos{\'e}-Hoover}}\index{extended ensemble}}
1240 The Berendsen weak-coupling algorithm is
1241 extremely efficient for relaxing a system to the target temperature,
1242 but once the system has reached equilibrium it might be more
1243 important to probe a correct canonical ensemble. This is unfortunately
1244 not the case for the weak-coupling scheme.
1246 To enable canonical ensemble simulations, {\gromacs} also supports the
1247 extended-ensemble approach first proposed by Nos{\'e}~\cite{Nose84}
1248 and later modified by Hoover~\cite{Hoover85}. The system Hamiltonian is
1249 extended by introducing a thermal reservoir and a friction term in the
1250 equations of motion. The friction force is proportional to the
1251 product of each particle's velocity and a friction parameter, $\xi$.
1252 This friction parameter (or ``heat bath'' variable) is a fully
1253 dynamic quantity with its own momentum ($p_{\xi}$) and equation of
1254 motion; the time derivative is calculated from the difference between
1255 the current kinetic energy and the reference temperature.
1257 In this formulation, the particles' equations of motion in
1258 \figref{global} are replaced by:
1259 \beq
1260 \frac {\de^2\ve{r}_i}{\de t^2} = \frac{\ve{F}_i}{m_i} -
1261 \frac{p_{\xi}}{Q}\frac{\de \ve{r}_i}{\de t} ,
1262 \label{eqn:NH-eqn-of-motion}
1263 \eeq where the equation of motion for the heat bath parameter $\xi$ is:
1264 \beq \frac {\de p_{\xi}}{\de t} = \left( T - T_0 \right). \eeq The
1265 reference temperature is denoted $T_0$, while $T$ is the current
1266 instantaneous temperature of the system. The strength of the coupling
1267 is determined by the constant $Q$ (usually called the ``mass parameter''
1268 of the reservoir) in combination with the reference
1269 temperature.~\footnote{Note that some derivations, an alternative
1270 notation $\xi_{\mathrm{alt}} = v_{\xi} = p_{\xi}/Q$ is used.}
1272 The conserved quantity for the Nos{\'e}-Hoover equations of motion is not
1273 the total energy, but rather
1274 \bea
1275 H = \sum_{i=1}^{N} \frac{\pb_i}{2m_i} + U\left(\rv_1,\rv_2,\ldots,\rv_N\right) +\frac{p_{\xi}^2}{2Q} + N_fkT\xi,
1276 \eea
1277 where $N_f$ is the total number of degrees of freedom.
1279 In our opinion, the mass parameter is a somewhat awkward way of
1280 describing coupling strength, especially due to its dependence on
1281 reference temperature (and some implementations even include the
1282 number of degrees of freedom in your system when defining $Q$). To
1283 maintain the coupling strength, one would have to change $Q$ in
1284 proportion to the change in reference temperature. For this reason, we
1285 prefer to let the {\gromacs} user work instead with the period
1286 $\tau_T$ of the oscillations of kinetic energy between the system and
1287 the reservoir instead. It is directly related to $Q$ and $T_0$ via:
1288 \beq
1289 Q = \frac {\tau_T^2 T_0}{4 \pi^2}.
1290 \eeq
1291 This provides a much more intuitive way of selecting the
1292 Nos{\'e}-Hoover coupling strength (similar to the weak-coupling
1293 relaxation), and in addition $\tau_T$ is independent of system size
1294 and reference temperature.
1296 It is however important to keep the difference between the
1297 weak-coupling scheme and the Nos{\'e}-Hoover algorithm in mind:
1298 Using weak coupling you get a
1299 strongly damped {\em exponential relaxation},
1300 while the Nos{\'e}-Hoover approach
1301 produces an {\em oscillatory relaxation}.
1302 The actual time it takes to relax with Nos{\'e}-Hoover coupling is
1303 several times larger than the period of the
1304 oscillations that you select. These oscillations (in contrast
1305 to exponential relaxation) also means that
1306 the time constant normally should be 4--5 times larger
1307 than the relaxation time used with weak coupling, but your
1308 mileage may vary.
1310 Nos{\'e}-Hoover dynamics in simple systems such as collections of
1311 harmonic oscillators, can be {\em nonergodic}, meaning that only a
1312 subsection of phase space is ever sampled, even if the simulations
1313 were to run for infinitely long. For this reason, the Nos{\'e}-Hoover
1314 chain approach was developed, where each of the Nos{\'e}-Hoover
1315 thermostats has its own Nos{\'e}-Hoover thermostat controlling its
1316 temperature. In the limit of an infinite chain of thermostats, the
1317 dynamics are guaranteed to be ergodic. Using just a few chains can
1318 greatly improve the ergodicity, but recent research has shown that the
1319 system will still be nonergodic, and it is still not entirely clear
1320 what the practical effect of this~\cite{Cooke2008}. Currently, the
1321 default number of chains is 10, but this can be controlled by the
1322 user. In the case of chains, the equations are modified in the
1323 following way to include a chain of thermostatting
1324 particles~\cite{Martyna1992}:
1326 \bea
1327 \frac {\de^2\ve{r}_i}{\de t^2} &~=~& \frac{\ve{F}_i}{m_i} - \frac{p_{{\xi}_1}}{Q_1} \frac{\de \ve{r}_i}{\de t} \nonumber \\
1328 \frac {\de p_{{\xi}_1}}{\de t} &~=~& \left( T - T_0 \right) - p_{{\xi}_1} \frac{p_{{\xi}_2}}{Q_2} \nonumber \\
1329 \frac {\de p_{{\xi}_{i=2\ldots N}}}{\de t} &~=~& \left(\frac{p_{\xi_{i-1}}^2}{Q_{i-1}} -kT\right) - p_{\xi_i} \frac{p_{\xi_{i+1}}}{Q_{i+1}} \nonumber \\
1330 \frac {\de p_{\xi_N}}{\de t} &~=~& \left(\frac{p_{\xi_{N-1}}^2}{Q_{N-1}}-kT\right)
1331 \label{eqn:NH-chain-eqn-of-motion}
1332 \eea
1333 The conserved quantity for Nos{\'e}-Hoover chains is
1334 \bea
1335 H = \sum_{i=1}^{N} \frac{\pb_i}{2m_i} + U\left(\rv_1,\rv_2,\ldots,\rv_N\right) +\sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{k=2}^M \xi_k
1336 \eea
1337 The values and velocities of the Nos{\'e}-Hoover thermostat variables
1338 are generally not included in the output, as they take up a fair
1339 amount of space and are generally not important for analysis of
1340 simulations, but by setting an mdp option the values of all
1341 the positions and velocities of all Nos{\'e}-Hoover particles in the
1342 chain are written to the {\tt .edr} file. Leap-frog simulations
1343 currently can only have Nos{\'e}-Hoover chain lengths of 1,
1344 but this will likely be updated in later version.
1346 As described in the integrator section, for temperature coupling, the
1347 temperature that the algorithm attempts to match to the reference
1348 temperature is calculated differently in velocity Verlet and leap-frog
1349 dynamics. Velocity Verlet ({\em md-vv}) uses the full-step kinetic
1350 energy, while leap-frog and {\em md-vv-avek} use the half-step-averaged
1351 kinetic energy.
1353 We can examine the Trotter decomposition again to better understand
1354 the differences between these constant-temperature integrators. In
1355 the case of Nos{\'e}-Hoover dynamics (for simplicity, using a chain
1356 with $N=1$, with more details in Ref.~\cite{Martyna1996}), we split
1357 the Liouville operator as
1358 \beq
1359 iL = iL_1 + iL_2 + iL_{\mathrm{NHC}},
1360 \eeq
1361 where
1362 \bea
1363 iL_1 &=& \sum_{i=1}^N \left[\frac{\pb_i}{m_i}\right]\cdot \frac{\partial}{\partial \rv_i} \nonumber \\
1364 iL_2 &=& \sum_{i=1}^N \F_i\cdot \frac{\partial}{\partial \pb_i} \nonumber \\
1365 iL_{\mathrm{NHC}} &=& \sum_{i=1}^N-\frac{p_{\xi}}{Q}\vv_i\cdot \nabla_{\vv_i} +\frac{p_{\xi}}{Q}\frac{\partial }{\partial \xi} + \left( T - T_0 \right)\frac{\partial }{\partial p_{\xi}}
1366 \eea
1367 For standard velocity Verlet with Nos{\'e}-Hoover temperature control, this becomes
1368 \bea
1369 \exp(iL\dt) &=& \exp\left(iL_{\mathrm{NHC}}\dt/2\right) \exp\left(iL_2 \dt/2\right) \nonumber \\
1370 &&\exp\left(iL_1 \dt\right) \exp\left(iL_2 \dt/2\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right) + \mathcal{O}(\Dt^3).
1371 \eea
1372 For half-step-averaged temperature control using {\em md-vv-avek},
1373 this decomposition will not work, since we do not have the full step
1374 temperature until after the second velocity step. However, we can
1375 construct an alternate decomposition that is still reversible, by
1376 switching the place of the NHC and velocity portions of the
1377 decomposition:
1378 \bea
1379 \exp(iL\dt) &=& \exp\left(iL_2 \dt/2\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right)\exp\left(iL_1 \dt\right)\nonumber \\
1380 &&\exp\left(iL_{\mathrm{NHC}}\dt/2\right) \exp\left(iL_2 \dt/2\right)+ \mathcal{O}(\Dt^3)
1381 \label{eq:half_step_NHC_integrator}
1382 \eea
1383 This formalism allows us to easily see the difference between the
1384 different flavors of velocity Verlet integrator. The leap-frog
1385 integrator can be seen as starting with
1386 Eq.~\ref{eq:half_step_NHC_integrator} just before the $\exp\left(iL_1
1387 \dt\right)$ term, yielding:
1388 \bea
1389 \exp(iL\dt) &=& \exp\left(iL_1 \dt\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right) \nonumber \\
1390 &&\exp\left(iL_2 \dt\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right) + \mathcal{O}(\Dt^3)
1391 \eea
1392 and then using some algebra tricks to solve for some quantities are
1393 required before they are actually calculated~\cite{Holian95}.
1397 \subsubsection{Group temperature coupling}\index{temperature-coupling group}%
1398 In {\gromacs} temperature coupling can be performed on groups of
1399 atoms, typically a protein and solvent. The reason such algorithms
1400 were introduced is that energy exchange between different components
1401 is not perfect, due to different effects including cut-offs etc. If
1402 now the whole system is coupled to one heat bath, water (which
1403 experiences the largest cut-off noise) will tend to heat up and the
1404 protein will cool down. Typically 100 K differences can be obtained.
1405 With the use of proper electrostatic methods (PME) these difference
1406 are much smaller but still not negligible. The parameters for
1407 temperature coupling in groups are given in the {\tt mdp} file.
1408 Recent investigation has shown that small temperature differences
1409 between protein and water may actually be an artifact of the way
1410 temperature is calculated when there are finite timesteps, and very
1411 large differences in temperature are likely a sign of something else
1412 seriously going wrong with the system, and should be investigated
1413 carefully~\cite{Eastwood2010}.
1415 One special case should be mentioned: it is possible to temperature-couple only
1416 part of the system, leaving other parts without temperature
1417 coupling. This is done by specifying ${-1}$ for the time constant
1418 $\tau_T$ for the group that should not be thermostatted. If only
1419 part of the system is thermostatted, the system will still eventually
1420 converge to an NVT system. In fact, one suggestion for minimizing
1421 errors in the temperature caused by discretized timesteps is that if
1422 constraints on the water are used, then only the water degrees of
1423 freedom should be thermostatted, not protein degrees of freedom, as
1424 the higher frequency modes in the protein can cause larger deviations
1425 from the ``true'' temperature, the temperature obtained with small
1426 timesteps~\cite{Eastwood2010}.
1428 \subsection{Pressure coupling\index{pressure coupling}}
1429 In the same spirit as the temperature coupling, the system can also be
1430 coupled to a ``pressure bath.'' {\gromacs} supports both the Berendsen
1431 algorithm~\cite{Berendsen84} that scales coordinates and box vectors
1432 every step, the extended-ensemble Parrinello-Rahman approach~\cite{Parrinello81,Nose83}, and for
1433 the velocity Verlet variants, the Martyna-Tuckerman-Tobias-Klein
1434 (MTTK) implementation of pressure
1435 control~\cite{Martyna1996}. Parrinello-Rahman and Berendsen can be
1436 combined with any of the temperature coupling methods above. MTTK can
1437 only be used with Nos{\'e}-Hoover temperature control. From 5.1 afterwards,
1438 it can only used when the system does not have constraints.
1440 \subsubsection{Berendsen pressure coupling\pawsindexquiet{Berendsen}{pressure coupling}\index{weak coupling}}
1441 \label{sec:berendsen_pressure_coupling}
1442 The Berendsen algorithm rescales the
1443 coordinates and box vectors every step, or every $n_\mathrm{PC}$ steps,
1444 with a matrix {\boldmath $\mu$},
1445 which has the effect of a first-order kinetic relaxation of the pressure
1446 towards a given reference pressure ${\bf P}_0$ according to
1447 \beq
1448 \frac{\de {\bf P}}{\de t} = \frac{{\bf P}_0-{\bf P}}{\tau_p}.
1449 \eeq
1450 The scaling matrix {\boldmath $\mu$} is given by
1451 \beq
1452 \mu_{ij}
1453 = \delta_{ij} - \frac{n_\mathrm{PC}\Delta t}{3\, \tau_p} \beta_{ij} \{P_{0ij} - P_{ij}(t) \}.
1454 \label{eqn:mu}
1455 \eeq
1456 \index{isothermal compressibility}
1457 \index{compressibility}
1458 Here, {\boldmath $\beta$} is the isothermal compressibility of the system.
1459 In most cases this will be a diagonal matrix, with equal elements on the
1460 diagonal, the value of which is generally not known.
1461 It suffices to take a rough estimate because the value of {\boldmath $\beta$}
1462 only influences the non-critical time constant of the
1463 pressure relaxation without affecting the average pressure itself.
1464 For water at 1 atm and 300 K
1465 $\beta = 4.6 \times 10^{-10}$ Pa$^{-1} = 4.6 \times 10^{-5}$ bar$^{-1}$,
1466 which is $7.6 \times 10^{-4}$ MD units (see \chref{defunits}).
1467 Most other liquids have similar values.
1468 When scaling completely anisotropically, the system has to be rotated in
1469 order to obey \eqnref{box_rot}.
1470 This rotation is approximated in first order in the scaling, which is usually
1471 less than $10^{-4}$. The actual scaling matrix {\boldmath $\mu'$} is
1472 \beq
1473 \mbox{\boldmath $\mu'$} =
1474 \left(\begin{array}{ccc}
1475 \mu_{xx} & \mu_{xy} + \mu_{yx} & \mu_{xz} + \mu_{zx} \\
1476 0 & \mu_{yy} & \mu_{yz} + \mu_{zy} \\
1477 0 & 0 & \mu_{zz}
1478 \end{array}\right).
1479 \eeq
1480 The velocities are neither scaled nor rotated.
1482 In {\gromacs}, the Berendsen scaling can also be done isotropically,
1483 which means that instead of $\ve{P}$ a diagonal matrix with elements of size
1484 trace$(\ve{P})/3$ is used. For systems with interfaces, semi-isotropic
1485 scaling can be useful.
1486 In this case, the $x/y$-directions are scaled isotropically and the $z$
1487 direction is scaled independently. The compressibility in the $x/y$ or
1488 $z$-direction can be set to zero, to scale only in the other direction(s).
1490 If you allow full anisotropic deformations and use constraints you
1491 might have to scale more slowly or decrease your timestep to avoid
1492 errors from the constraint algorithms. It is important to note that
1493 although the Berendsen pressure control algorithm yields a simulation
1494 with the correct average pressure, it does not yield the exact NPT
1495 ensemble, and it is not yet clear exactly what errors this approximation
1496 may yield.
1498 % \ifthenelse{\equal{\gmxlite}{1}}{}{
1499 \subsubsection{Parrinello-Rahman pressure coupling\pawsindexquiet{Parrinello-Rahman}{pressure coupling}}
1501 In cases where the fluctuations in pressure or volume are important
1502 {\em per se} ({\eg} to calculate thermodynamic properties), especially
1503 for small systems, it may be a problem that the exact ensemble is not
1504 well defined for the weak-coupling scheme, and that it does not
1505 simulate the true NPT ensemble.
1507 {\gromacs} also supports constant-pressure simulations using the
1508 Parrinello-Rahman approach~\cite{Parrinello81,Nose83}, which is similar
1509 to the Nos{\'e}-Hoover temperature coupling, and in theory gives the
1510 true NPT ensemble. With the Parrinello-Rahman barostat, the box
1511 vectors as represented by the matrix \ve{b} obey the matrix equation
1512 of motion\footnote{The box matrix representation \ve{b} in {\gromacs}
1513 corresponds to the transpose of the box matrix representation \ve{h}
1514 in the paper by Nos{\'e} and Klein. Because of this, some of our
1515 equations will look slightly different.}
1516 \beq
1517 \frac{\de \ve{b}^2}{\de t^2}= V \ve{W}^{-1} \ve{b}'^{-1} \left( \ve{P} - \ve{P}_{ref}\right).
1518 \eeq
1520 The volume of the box is denoted $V$, and $\ve{W}$ is a matrix parameter that determines
1521 the strength of the coupling. The matrices \ve{P} and \ve{P}$_{ref}$ are the
1522 current and reference pressures, respectively.
1524 The equations of motion for the particles are also changed, just as
1525 for the Nos{\'e}-Hoover coupling. In most cases you would combine the
1526 Parrinello-Rahman barostat with the Nos{\'e}-Hoover
1527 thermostat, but to keep it simple we only show the Parrinello-Rahman
1528 modification here:
1530 \bea \frac {\de^2\ve{r}_i}{\de t^2} & = & \frac{\ve{F}_i}{m_i} -
1531 \ve{M} \frac{\de \ve{r}_i}{\de t} , \\ \ve{M} & = & \ve{b}^{-1} \left[
1532 \ve{b} \frac{\de \ve{b}'}{\de t} + \frac{\de \ve{b}}{\de t} \ve{b}'
1533 \right] \ve{b}'^{-1}. \eea The (inverse) mass parameter matrix
1534 $\ve{W}^{-1}$ determines the strength of the coupling, and how the box
1535 can be deformed. The box restriction (\ref{eqn:box_rot}) will be
1536 fulfilled automatically if the corresponding elements of $\ve{W}^{-1}$
1537 are zero. Since the coupling strength also depends on the size of your
1538 box, we prefer to calculate it automatically in {\gromacs}. You only
1539 have to provide the approximate isothermal compressibilities
1540 {\boldmath $\beta$} and the pressure time constant $\tau_p$ in the
1541 input file ($L$ is the largest box matrix element): \beq \left(
1542 \ve{W}^{-1} \right)_{ij} = \frac{4 \pi^2 \beta_{ij}}{3 \tau_p^2 L}.
1543 \eeq Just as for the Nos{\'e}-Hoover thermostat, you should realize
1544 that the Parrinello-Rahman time constant is {\em not} equivalent to
1545 the relaxation time used in the Berendsen pressure coupling algorithm.
1546 In most cases you will need to use a 4--5 times larger time constant
1547 with Parrinello-Rahman coupling. If your pressure is very far from
1548 equilibrium, the Parrinello-Rahman coupling may result in very large
1549 box oscillations that could even crash your run. In that case you
1550 would have to increase the time constant, or (better) use the weak-coupling
1551 scheme to reach the target pressure, and then switch to
1552 Parrinello-Rahman coupling once the system is in equilibrium.
1553 Additionally, using the leap-frog algorithm, the pressure at time $t$
1554 is not available until after the time step has completed, and so the
1555 pressure from the previous step must be used, which makes the algorithm
1556 not directly reversible, and may not be appropriate for high precision
1557 thermodynamic calculations.
1559 \subsubsection{Surface-tension coupling\pawsindexquiet{surface-tension}{pressure coupling}}
1560 When a periodic system consists of more than one phase, separated by
1561 surfaces which are parallel to the $xy$-plane,
1562 the surface tension and the $z$-component of the pressure can be coupled
1563 to a pressure bath. Presently, this only works with the Berendsen
1564 pressure coupling algorithm in {\gromacs}.
1565 The average surface tension $\gamma(t)$ can be calculated from
1566 the difference between the normal and the lateral pressure
1567 \bea
1568 \gamma(t) & = &
1569 \frac{1}{n} \int_0^{L_z}
1570 \left\{ P_{zz}(z,t) - \frac{P_{xx}(z,t) + P_{yy}(z,t)}{2} \right\} \mbox{d}z \\
1571 & = &
1572 \frac{L_z}{n} \left\{ P_{zz}(t) - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\},
1573 \eea
1574 where $L_z$ is the height of the box and $n$ is the number of surfaces.
1575 The pressure in the z-direction is corrected by scaling the height of
1576 the box with $\mu_{zz}$
1577 \beq
1578 \Delta P_{zz} = \frac{\Delta t}{\tau_p} \{ P_{0zz} - P_{zz}(t) \}
1579 \eeq
1580 \beq
1581 \mu_{zz} = 1 + \beta_{zz} \Delta P_{zz}
1582 \eeq
1583 This is similar to normal pressure coupling, except that the factor
1584 of $1/3$ is missing.
1585 The pressure correction in the $z$-direction is then used to get the
1586 correct convergence for the surface tension to the reference value $\gamma_0$.
1587 The correction factor for the box length in the $x$/$y$-direction is
1588 \beq
1589 \mu_{x/y} = 1 + \frac{\Delta t}{2\,\tau_p} \beta_{x/y}
1590 \left( \frac{n \gamma_0}{\mu_{zz} L_z}
1591 - \left\{ P_{zz}(t)+\Delta P_{zz} - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\}
1592 \right)
1593 \eeq
1594 The value of $\beta_{zz}$ is more critical than with normal pressure
1595 coupling. Normally an incorrect compressibility will just scale $\tau_p$,
1596 but with surface tension coupling it affects the convergence of the surface
1597 tension.
1598 When $\beta_{zz}$ is set to zero (constant box height), $\Delta P_{zz}$ is also set
1599 to zero, which is necessary for obtaining the correct surface tension.
1601 \subsubsection{MTTK pressure control algorithms}
1603 As mentioned in the previous section, one weakness of leap-frog
1604 integration is in constant pressure simulations, since the pressure
1605 requires a calculation of both the virial and the kinetic energy at
1606 the full time step; for leap-frog, this information is not available
1607 until {\em after} the full timestep. Velocity Verlet does allow the
1608 calculation, at the cost of an extra round of global communication,
1609 and can compute, mod any integration errors, the true NPT ensemble.
1611 The full equations, combining both pressure coupling and temperature
1612 coupling, are taken from Martyna {\em et al.}~\cite{Martyna1996} and
1613 Tuckerman~\cite{Tuckerman2006} and are referred to here as MTTK
1614 equations (Martyna-Tuckerman-Tobias-Klein). We introduce for
1615 convenience $\epsilon = (1/3)\ln (V/V_0)$, where $V_0$ is a reference
1616 volume. The momentum of $\epsilon$ is $\veps = p_{\epsilon}/W =
1617 \dot{\epsilon} = \dot{V}/3V$, and define $\alpha = 1 + 3/N_{dof}$ (see
1618 Ref~\cite{Tuckerman2006})
1620 The isobaric equations are
1621 \bea
1622 \dot{\rv}_i &=& \frac{\pb_i}{m_i} + \frac{\peps}{W} \rv_i \nonumber \\
1623 \frac{\dot{\pb}_i}{m_i} &=& \frac{1}{m_i}\F_i - \alpha\frac{\peps}{W} \frac{\pb_i}{m_i} \nonumber \\
1624 \dot{\epsilon} &=& \frac{\peps}{W} \nonumber \\
1625 \frac{\dot{\peps}}{W} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left(\sum_{n=1}^N\frac{\pb_i^2}{m_i}\right),\\
1626 \eea
1627 where
1628 \bea
1629 P_{\mathrm{int}} &=& P_{\mathrm{kin}} -P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{\pb_i^2}{2m_i} - \rv_i \cdot \F_i\
1630 \right)\right].
1631 \eea
1632 The terms including $\alpha$ are required to make phase space
1633 incompressible~\cite{Tuckerman2006}. The $\epsilon$ acceleration term
1634 can be rewritten as
1635 \bea
1636 \frac{\dot{\peps}}{W} &=& \frac{3V}{W}\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)
1637 \eea
1638 In terms of velocities, these equations become
1639 \bea
1640 \dot{\rv}_i &=& \vv_i + \veps \rv_i \nonumber \\
1641 \dot{\vv}_i &=& \frac{1}{m_i}\F_i - \alpha\veps \vv_i \nonumber \\
1642 \dot{\epsilon} &=& \veps \nonumber \\
1643 \dot{\veps} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left( \sum_{n=1}^N \frac{1}{2} m_i \vv_i^2\right)\nonumber \\
1644 P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{1}{2} m_i\vv_i^2 - \rv_i \cdot \F_i\right)\right]
1645 \eea
1646 For these equations, the conserved quantity is
1647 \bea
1648 H = \sum_{i=1}^{N} \frac{\pb_i^2}{2m_i} + U\left(\rv_1,\rv_2,\ldots,\rv_N\right) + \frac{p_\epsilon}{2W} + PV
1649 \eea
1650 The next step is to add temperature control. Adding Nos{\'e}-Hoover
1651 chains, including to the barostat degree of freedom, where we use
1652 $\eta$ for the barostat Nos{\'e}-Hoover variables, and $Q^{\prime}$
1653 for the coupling constants of the thermostats of the barostats, we get
1654 \bea
1655 \dot{\rv}_i &=& \frac{\pb_i}{m_i} + \frac{\peps}{W} \rv_i \nonumber \\
1656 \frac{\dot{\pb}_i}{m_i} &=& \frac{1}{m_i}\F_i - \alpha\frac{\peps}{W} \frac{\pb_i}{m_i} - \frac{p_{\xi_1}}{Q_1}\frac{\pb_i}{m_i}\nonumber \\
1657 \dot{\epsilon} &=& \frac{\peps}{W} \nonumber \\
1658 \frac{\dot{\peps}}{W} &=& \frac{3V}{W}(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P) -\frac{p_{\eta_1}}{Q^{\prime}_1}\peps \nonumber \\
1659 \dot{\xi}_k &=& \frac{p_{\xi_k}}{Q_k} \nonumber \\
1660 \dot{\eta}_k &=& \frac{p_{\eta_k}}{Q^{\prime}_k} \nonumber \\
1661 \dot{p}_{\xi_k} &=& G_k - \frac{p_{\xi_{k+1}}}{Q_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
1662 \dot{p}_{\eta_k} &=& G^\prime_k - \frac{p_{\eta_{k+1}}}{Q^\prime_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
1663 \dot{p}_{\xi_M} &=& G_M \nonumber \\
1664 \dot{p}_{\eta_M} &=& G^\prime_M, \nonumber \\
1665 \eea
1666 where
1667 \bea
1668 P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{\pb_i^2}{2m_i} - \rv_i \cdot \F_i\right)\right] \nonumber \\
1669 G_1 &=& \sum_{i=1}^N \frac{\pb^2_i}{m_i} - N_f kT \nonumber \\
1670 G_k &=& \frac{p^2_{\xi_{k-1}}}{2Q_{k-1}} - kT \;\; k = 2,\ldots,M \nonumber \\
1671 G^\prime_1 &=& \frac{\peps^2}{2W} - kT \nonumber \\
1672 G^\prime_k &=& \frac{p^2_{\eta_{k-1}}}{2Q^\prime_{k-1}} - kT \;\; k = 2,\ldots,M
1673 \eea
1674 The conserved quantity is now
1675 \bea
1676 H = \sum_{i=1}^{N} \frac{\pb_i}{2m_i} + U\left(\rv_1,\rv_2,\ldots,\rv_N\right) + \frac{p^2_\epsilon}{2W} + PV + \nonumber \\
1677 \sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q_k} +\sum_{k=1}^M\frac{p^2_{\eta_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{i=2}^M \xi_k + kT\sum_{k=1}^M \eta_k
1678 \eea
1679 Returning to the Trotter decomposition formalism, for pressure control and temperature control~\cite{Martyna1996} we get:
1680 \bea
1681 iL = iL_1 + iL_2 + iL_{\epsilon,1} + iL_{\epsilon,2} + iL_{\mathrm{NHC-baro}} + iL_{\mathrm{NHC}}
1682 \eea
1683 where ``NHC-baro'' corresponds to the Nos{\`e}-Hoover chain of the barostat,
1684 and NHC corresponds to the NHC of the particles,
1685 \bea
1686 iL_1 &=& \sum_{i=1}^N \left[\frac{\pb_i}{m_i} + \frac{\peps}{W}\rv_i\right]\cdot \frac{\partial}{\partial \rv_i} \\
1687 iL_2 &=& \sum_{i=1}^N \F_i - \alpha \frac{\peps}{W}\pb_i \cdot \frac{\partial}{\partial \pb_i} \\
1688 iL_{\epsilon,1} &=& \frac{p_\epsilon}{W} \frac{\partial}{\partial \epsilon}\\
1689 iL_{\epsilon,2} &=& G_{\epsilon} \frac{\partial}{\partial p_\epsilon}
1690 \eea
1691 and where
1692 \bea
1693 G_{\epsilon} = 3V\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)
1694 \eea
1695 Using the Trotter decomposition, we get
1696 \bea
1697 \exp(iL\dt) &=& \exp\left(iL_{\mathrm{NHC-baro}}\dt/2\right)\exp\left(iL_{\mathrm{NHC}}\dt/2\right) \nonumber \nonumber \\
1698 &&\exp\left(iL_{\epsilon,2}\dt/2\right) \exp\left(iL_2 \dt/2\right) \nonumber \nonumber \\
1699 &&\exp\left(iL_{\epsilon,1}\dt\right) \exp\left(iL_1 \dt\right) \nonumber \nonumber \\
1700 &&\exp\left(iL_2 \dt/2\right) \exp\left(iL_{\epsilon,2}\dt/2\right) \nonumber \nonumber \\
1701 &&\exp\left(iL_{\mathrm{NHC}}\dt/2\right)\exp\left(iL_{\mathrm{NHC-baro}}\dt/2\right) + \mathcal{O}(\dt^3)
1702 \eea
1703 The action of $\exp\left(iL_1 \dt\right)$ comes from the solution of
1704 the the differential equation
1705 $\dot{\rv}_i = \vv_i + \veps \rv_i$
1706 with $\vv_i = \pb_i/m_i$ and $\veps$ constant with initial condition
1707 $\rv_i(0)$, evaluate at $t=\Delta t$. This yields the evolution
1708 \beq
1709 \rv_i(\dt) = \rv_i(0)e^{\veps \dt} + \Delta t \vv_i(0) e^{\veps \dt/2} \sinhx{\veps \dt/2}.
1710 \eeq
1711 The action of $\exp\left(iL_2 \dt/2\right)$ comes from the solution
1712 of the differential equation $\dot{\vv}_i = \frac{\F_i}{m_i} -
1713 \alpha\veps\vv_i$, yielding
1714 \beq
1715 \vv_i(\dt/2) = \vv_i(0)e^{-\alpha\veps \dt/2} + \frac{\Delta t}{2m_i}\F_i(0) e^{-\alpha\veps \dt/4}\sinhx{\alpha\veps \dt/4}.
1716 \eeq
1717 {\em md-vv-avek} uses the full step kinetic energies for determining the pressure with the pressure control,
1718 but the half-step-averaged kinetic energy for the temperatures, which can be written as a Trotter decomposition as
1719 \bea
1720 \exp(iL\dt) &=& \exp\left(iL_{\mathrm{NHC-baro}}\dt/2\right)\nonumber \exp\left(iL_{\epsilon,2}\dt/2\right) \exp\left(iL_2 \dt/2\right) \nonumber \\
1721 &&\exp\left(iL_{\mathrm{NHC}}\dt/2\right) \exp\left(iL_{\epsilon,1}\dt\right) \exp\left(iL_1 \dt\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right) \nonumber \\
1722 &&\exp\left(iL_2 \dt/2\right) \exp\left(iL_{\epsilon,2}\dt/2\right) \exp\left(iL_{\mathrm{NHC-baro}}\dt/2\right) + \mathcal{O}(\dt^3)
1723 \eea
1725 With constraints, the equations become significantly more complicated,
1726 in that each of these equations need to be solved iteratively for the
1727 constraint forces. Before {\gromacs} 5.1, these iterative
1728 constraints were solved as described in~\cite{Yu2010}. From {\gromacs}
1729 5.1 onward, MTTK with constraints has been removed because of
1730 numerical stability issues with the iterations.
1732 \subsubsection{Infrequent evaluation of temperature and pressure coupling}
1734 Temperature and pressure control require global communication to
1735 compute the kinetic energy and virial, which can become costly if
1736 performed every step for large systems. We can rearrange the Trotter
1737 decomposition to give alternate symplectic, reversible integrator with
1738 the coupling steps every $n$ steps instead of every steps. These new
1739 integrators will diverge if the coupling time step is too large, as
1740 the auxiliary variable integrations will not converge. However, in
1741 most cases, long coupling times are more appropriate, as they disturb
1742 the dynamics less~\cite{Martyna1996}.
1744 Standard velocity Verlet with Nos{\'e}-Hoover temperature control has a Trotter expansion
1745 \bea
1746 \exp(iL\dt) &\approx& \exp\left(iL_{\mathrm{NHC}}\dt/2\right) \exp\left(iL_2 \dt/2\right) \nonumber \\
1747 &&\exp\left(iL_1 \dt\right) \exp\left(iL_2 \dt/2\right) \exp\left(iL_{\mathrm{NHC}}\dt/2\right).
1748 \eea
1749 If the Nos{\'e}-Hoover chain is sufficiently slow with respect to the motions of the system, we can
1750 write an alternate integrator over $n$ steps for velocity Verlet as
1751 \bea
1752 \exp(iL\dt) &\approx& (\exp\left(iL_{\mathrm{NHC}}(n\dt/2)\right)\left[\exp\left(iL_2 \dt/2\right)\right. \nonumber \\
1753 &&\left.\exp\left(iL_1 \dt\right) \exp\left(iL_2 \dt/2\right)\right]^n \exp\left(iL_{\mathrm{NHC}}(n\dt/2)\right).
1754 \eea
1755 For pressure control, this becomes
1756 \bea
1757 \exp(iL\dt) &\approx& \exp\left(iL_{\mathrm{NHC-baro}}(n\dt/2)\right)\exp\left(iL_{\mathrm{NHC}}(n\dt/2)\right) \nonumber \nonumber \\
1758 &&\exp\left(iL_{\epsilon,2}(n\dt/2)\right) \left[\exp\left(iL_2 \dt/2\right)\right. \nonumber \nonumber \\
1759 &&\exp\left(iL_{\epsilon,1}\dt\right) \exp\left(iL_1 \dt\right) \nonumber \nonumber \\
1760 &&\left.\exp\left(iL_2 \dt/2\right)\right]^n \exp\left(iL_{\epsilon,2}(n\dt/2)\right) \nonumber \nonumber \\
1761 &&\exp\left(iL_{\mathrm{NHC}}(n\dt/2)\right)\exp\left(iL_{\mathrm{NHC-baro}}(n\dt/2)\right),
1762 \eea
1763 where the box volume integration occurs every step, but the auxiliary variable
1764 integrations happen every $n$ steps.
1766 % } % Brace matches ifthenelse test for gmxlite
1769 \subsection{The complete update algorithm}
1770 \begin{figure}
1771 \begin{center}
1772 \addtolength{\fboxsep}{0.5cm}
1773 \begin{shadowenv}[12cm]
1774 {\large \bf THE UPDATE ALGORITHM}
1775 \rule{\textwidth}{2pt} \\
1776 Given:\\
1777 Positions $\ve{r}$ of all atoms at time $t$ \\
1778 Velocities $\ve{v}$ of all atoms at time $t-\hDt$ \\
1779 Accelerations $\ve{F}/m$ on all atoms at time $t$.\\
1780 (Forces are computed disregarding any constraints)\\
1781 Total kinetic energy and virial at $t-\Dt$\\
1782 $\Downarrow$ \\
1783 {\bf 1.} Compute the scaling factors $\lambda$ and $\mu$\\
1784 according to \eqnsref{lambda}{mu}\\
1785 $\Downarrow$ \\
1786 {\bf 2.} Update and scale velocities: $\ve{v}' = \lambda (\ve{v} +
1787 \ve{a} \Delta t)$ \\
1788 $\Downarrow$ \\
1789 {\bf 3.} Compute new unconstrained coordinates: $\ve{r}' = \ve{r} + \ve{v}'
1790 \Delta t$ \\
1791 $\Downarrow$ \\
1792 {\bf 4.} Apply constraint algorithm to coordinates: constrain($\ve{r}^{'} \rightarrow \ve{r}'';
1793 \, \ve{r}$) \\
1794 $\Downarrow$ \\
1795 {\bf 5.} Correct velocities for constraints: $\ve{v} = (\ve{r}'' -
1796 \ve{r}) / \Delta t$ \\
1797 $\Downarrow$ \\
1798 {\bf 6.} Scale coordinates and box: $\ve{r} = \mu \ve{r}''; \ve{b} =
1799 \mu \ve{b}$ \\
1800 \end{shadowenv}
1801 \caption{The MD update algorithm with the leap-frog integrator}
1802 \label{fig:complete-update}
1803 \end{center}
1804 \end{figure}
1805 The complete algorithm for the update of velocities and coordinates is
1806 given using leap-frog in \figref{complete-update}. The SHAKE algorithm of step
1807 4 is explained below.
1809 {\gromacs} has a provision to ``freeze'' (prevent motion of) selected
1810 particles\index{frozen atoms}, which must be defined as a ``\swapindex{freeze}{group}.'' This is implemented
1811 using a {\em freeze factor $\ve{f}_g$}, which is a vector, and differs for each
1812 freeze group (see \secref{groupconcept}). This vector contains only
1813 zero (freeze) or one (don't freeze).
1814 When we take this freeze factor and the external acceleration $\ve{a}_h$ into
1815 account the update algorithm for the velocities becomes
1816 \beq
1817 \ve{v}(t+\hdt)~=~\ve{f}_g * \lambda * \left[ \ve{v}(t-\hdt) +\frac{\ve{F}(t)}{m}\Delta t + \ve{a}_h \Delta t \right],
1818 \eeq
1819 where $g$ and $h$ are group indices which differ per atom.
1821 \subsection{Output step}
1822 The most important output of the MD run is the {\em
1823 \swapindex{trajectory}{file}}, which contains particle coordinates
1824 and (optionally) velocities at regular intervals.
1825 The trajectory file contains frames that could include positions,
1826 velocities and/or forces, as well as information about the dimensions
1827 of the simulation volume, integration step, integration time, etc. The
1828 interpretation of the time varies with the integrator chosen, as
1829 described above. For Velocity Verlet integrators, velocities labeled
1830 at time $t$ are for that time. For other integrators (e.g. leap-frog,
1831 stochastic dynamics), the velocities labeled at time $t$ are for time
1832 $t - \hDt$.
1834 Since the trajectory
1835 files are lengthy, one should not save every step! To retain all
1836 information it suffices to write a frame every 15 steps, since at
1837 least 30 steps are made per period of the highest frequency in the
1838 system, and Shannon's \normindex{sampling} theorem states that two samples per
1839 period of the highest frequency in a band-limited signal contain all
1840 available information. But that still gives very long files! So, if
1841 the highest frequencies are not of interest, 10 or 20 samples per ps
1842 may suffice. Be aware of the distortion of high-frequency motions by
1843 the {\em stroboscopic effect}, called {\em aliasing}: higher frequencies
1844 are mirrored with respect to the sampling frequency and appear as
1845 lower frequencies.
1847 {\gromacs} can also write reduced-precision coordinates for a subset of
1848 the simulation system to a special compressed trajectory file
1849 format. All the other tools can read and write this format. See
1850 the User Guide for details on how to set up your {\tt .mdp} file
1851 to have {\tt mdrun} use this feature.
1853 % \ifthenelse{\equal{\gmxlite}{1}}{}{
1854 \section{Shell molecular dynamics}
1855 {\gromacs} can simulate \normindex{polarizability} using the
1856 \normindex{shell model} of Dick and Overhauser~\cite{Dick58}. In such models
1857 a shell particle representing the electronic degrees of freedom is
1858 attached to a nucleus by a spring. The potential energy is minimized with
1859 respect to the shell position at every step of the simulation (see below).
1860 Successful applications of shell models in {\gromacs} have been published
1861 for $N_2$~\cite{Jordan95} and water~\cite{Maaren2001a}.
1863 \subsection{Optimization of the shell positions}
1864 The force \ve{F}$_S$ on a shell particle $S$ can be decomposed into two
1865 components
1866 \begin{equation}
1867 \ve{F}_S ~=~ \ve{F}_{bond} + \ve{F}_{nb}
1868 \end{equation}
1869 where \ve{F}$_{bond}$ denotes the component representing the
1870 polarization energy, usually represented by a harmonic potential and
1871 \ve{F}$_{nb}$ is the sum of Coulomb and van der Waals interactions. If we
1872 assume that \ve{F}$_{nb}$ is almost constant we can analytically derive the
1873 optimal position of the shell, i.e. where \ve{F}$_S$ = 0. If we have the
1874 shell S connected to atom A we have
1875 \begin{equation}
1876 \ve{F}_{bond} ~=~ k_b \left( \ve{x}_S - \ve{x}_A\right).
1877 \end{equation}
1878 In an iterative solver, we have positions \ve{x}$_S(n)$ where $n$ is
1879 the iteration count. We now have at iteration $n$
1880 \begin{equation}
1881 \ve{F}_{nb} ~=~ \ve{F}_S - k_b \left( \ve{x}_S(n) - \ve{x}_A\right)
1882 \end{equation}
1883 and the optimal position for the shells $x_S(n+1)$ thus follows from
1884 \begin{equation}
1885 \ve{F}_S - k_b \left( \ve{x}_S(n) - \ve{x}_A\right) + k_b \left( \ve{x}_S(n+1) - \ve{x}_A\right) = 0
1886 \end{equation}
1887 if we write
1888 \begin{equation}
1889 \Delta \ve{x}_S = \ve{x}_S(n+1) - \ve{x}_S(n)
1890 \end{equation}
1891 we finally obtain
1892 \begin{equation}
1893 \Delta \ve{x}_S = \ve{F}_S/k_b
1894 \end{equation}
1895 which then yields the algorithm to compute the next trial in the optimization
1896 of shell positions
1897 \begin{equation}
1898 \ve{x}_S(n+1) ~=~ \ve{x}_S(n) + \ve{F}_S/k_b.
1899 \end{equation}
1900 % } % Brace matches ifthenelse test for gmxlite
1902 \section{Constraint algorithms\index{constraint algorithms}}
1903 Constraints can be imposed in {\gromacs} using LINCS (default) or
1904 the traditional SHAKE method.
1906 \subsection{\normindex{SHAKE}}
1907 \label{subsec:SHAKE}
1908 The SHAKE~\cite{Ryckaert77} algorithm changes a set of unconstrained
1909 coordinates $\ve{r}^{'}$ to a set of coordinates $\ve{r}''$ that
1910 fulfill a list of distance constraints, using a set $\ve{r}$
1911 reference, as
1912 \beq
1913 {\rm SHAKE}(\ve{r}^{'} \rightarrow \ve{r}'';\, \ve{r})
1914 \eeq
1915 This action is consistent with solving a set of Lagrange multipliers
1916 in the constrained equations of motion. SHAKE needs a {\em relative tolerance};
1917 it will continue until all constraints are satisfied within
1918 that relative tolerance. An error message is
1919 given if SHAKE cannot reset the coordinates because the deviation is
1920 too large, or if a given number of iterations is surpassed.
1922 Assume the equations of motion must fulfill $K$ holonomic constraints,
1923 expressed as
1924 \beq
1925 \sigma_k(\ve{r}_1 \ldots \ve{r}_N) = 0; \;\; k=1 \ldots K.
1926 \eeq
1927 For example, $(\ve{r}_1 - \ve{r}_2)^2 - b^2 = 0$.
1928 Then the forces are defined as
1929 \beq
1930 - \frac{\partial}{\partial \ve{r}_i} \left( V + \sum_{k=1}^K \lambda_k
1931 \sigma_k \right),
1932 \eeq
1933 where $\lambda_k$ are Lagrange multipliers which must be solved to
1934 fulfill the constraint equations. The second part of this sum
1935 determines the {\em constraint forces} $\ve{G}_i$, defined by
1936 \beq
1937 \ve{G}_i = -\sum_{k=1}^K \lambda_k \frac{\partial \sigma_k}{\partial
1938 \ve{r}_i}
1939 \eeq
1940 The displacement due to the constraint forces in the leap-frog or
1941 Verlet algorithm is equal to $(\ve{G}_i/m_i)(\Dt)^2$. Solving the
1942 Lagrange multipliers (and hence the displacements) requires the
1943 solution of a set of coupled equations of the second degree. These are
1944 solved iteratively by SHAKE.
1945 % \ifthenelse{\equal{\gmxlite}{1}}{}{
1946 \label{subsec:SETTLE}
1947 For the special case of rigid water molecules, that often make up more
1948 than 80\% of the simulation system we have implemented the
1949 \normindex{SETTLE}
1950 algorithm~\cite{Miyamoto92} (\secref{constraints}).
1952 For velocity Verlet, an additional round of constraining must be
1953 done, to constrain the velocities of the second velocity half step,
1954 removing any component of the velocity parallel to the bond vector.
1955 This step is called RATTLE, and is covered in more detail in the
1956 original Andersen paper~\cite{Andersen1983a}.
1958 % } % Brace matches ifthenelse test for gmxlite
1963 \newcommand{\fs}[1]{\begin{equation} \label{eqn:#1}}
1964 \newcommand{\fe}{\end{equation}}
1965 \newcommand{\p}{\partial}
1966 \newcommand{\Bm}{\ve{B}}
1967 \newcommand{\M}{\ve{M}}
1968 \newcommand{\iM}{\M^{-1}}
1969 \newcommand{\Tm}{\ve{T}}
1970 \newcommand{\Sm}{\ve{S}}
1971 \newcommand{\fo}{\ve{f}}
1972 \newcommand{\con}{\ve{g}}
1973 \newcommand{\lenc}{\ve{d}}
1975 % \ifthenelse{\equal{\gmxlite}{1}}{}{
1976 \subsection{\normindex{LINCS}}
1977 \label{subsec:lincs}
1979 \subsubsection{The LINCS algorithm}
1980 LINCS is an algorithm that resets bonds to their correct lengths
1981 after an unconstrained update~\cite{Hess97}.
1982 The method is non-iterative, as it always uses two steps.
1983 Although LINCS is based on matrices, no matrix-matrix multiplications are
1984 needed. The method is more stable and faster than SHAKE,
1985 but it can only be used with bond constraints and
1986 isolated angle constraints, such as the proton angle in OH.
1987 Because of its stability, LINCS is especially useful for Brownian dynamics.
1988 LINCS has two parameters, which are explained in the subsection parameters.
1989 The parallel version of LINCS, P-LINCS, is described
1990 in subsection \ssecref{plincs}.
1992 \subsubsection{The LINCS formulas}
1993 We consider a system of $N$ particles, with positions given by a
1994 $3N$ vector $\ve{r}(t)$.
1995 For molecular dynamics the equations of motion are given by Newton's Law
1996 \fs{c1}
1997 {\de^2 \ve{r} \over \de t^2} = \iM \ve{F},
1999 where $\ve{F}$ is the $3N$ force vector
2000 and $\M$ is a $3N \times 3N$ diagonal matrix,
2001 containing the masses of the particles.
2002 The system is constrained by $K$ time-independent constraint equations
2003 \fs{c2}
2004 g_i(\ve{r}) = | \ve{r}_{i_1}-\ve{r}_{i_2} | - d_i = 0 ~~~~~~i=1,\ldots,K.
2007 In a numerical integration scheme, LINCS is applied after an
2008 unconstrained update, just like SHAKE. The algorithm works in two
2009 steps (see figure \figref{lincs}). In the first step, the projections
2010 of the new bonds on the old bonds are set to zero. In the second step,
2011 a correction is applied for the lengthening of the bonds due to
2012 rotation. The numerics for the first step and the second step are very
2013 similar. A complete derivation of the algorithm can be found in
2014 \cite{Hess97}. Only a short description of the first step is given
2015 here.
2017 \begin{figure}
2018 \centerline{\includegraphics[height=50mm]{plots/lincs}}
2019 \caption[The three position updates needed for one time step.]{The
2020 three position updates needed for one time step. The dashed line is
2021 the old bond of length $d$, the solid lines are the new bonds. $l=d
2022 \cos \theta$ and $p=(2 d^2 - l^2)^{1 \over 2}$.}
2023 \label{fig:lincs}
2024 \end{figure}
2026 A new notation is introduced for the gradient matrix of the constraint
2027 equations which appears on the right hand side of this equation:
2028 \fs{c3}
2029 B_{hi} = {\p g_h \over \p r_i}
2031 Notice that $\Bm$ is a $K \times 3N$ matrix, it contains the directions
2032 of the constraints.
2033 The following equation shows how the new constrained coordinates
2034 $\ve{r}_{n+1}$ are related to the unconstrained coordinates
2035 $\ve{r}_{n+1}^{unc}$ by
2036 \fs{m0}
2037 \begin{array}{c}
2038 \ve{r}_{n+1}=(\ve{I}-\Tm_n \ve{B}_n) \ve{r}_{n+1}^{unc} + \Tm_n \lenc=
2039 \\[2mm]
2040 \ve{r}_{n+1}^{unc} -
2041 \iM \Bm_n (\Bm_n \iM \Bm_n^T)^{-1} (\Bm_n \ve{r}_{n+1}^{unc} - \lenc)
2042 \end{array}
2044 where $\Tm = \iM \Bm^T (\Bm \iM \Bm^T)^{-1}$.
2045 The derivation of this equation from \eqnsref{c1}{c2} can be found
2046 in \cite{Hess97}.
2048 This first step does not set the real bond lengths to the prescribed lengths,
2049 but the projection of the new bonds onto the old directions of the bonds.
2050 To correct for the rotation of bond $i$, the projection of the
2051 bond, $p_i$, on the old direction is set to
2052 \fs{m1a}
2053 p_i=\sqrt{2 d_i^2 - l_i^2},
2055 where $l_i$ is the bond length after the first projection.
2056 The corrected positions are
2057 \fs{m1b}
2058 \ve{r}_{n+1}^*=(\ve{I}-\Tm_n \Bm_n)\ve{r}_{n+1} + \Tm_n \ve{p}.
2060 This correction for rotational effects is actually an iterative process,
2061 but during MD only one iteration is applied.
2062 The relative constraint deviation after this procedure will be less than
2063 0.0001 for every constraint.
2064 In energy minimization, this might not be accurate enough, so the number
2065 of iterations is equal to the order of the expansion (see below).
2067 Half of the CPU time goes to inverting the constraint coupling
2068 matrix $\Bm_n \iM \Bm_n^T$, which has to be done every time step.
2069 This $K \times K$ matrix
2070 has $1/m_{i_1} + 1/m_{i_2}$ on the diagonal.
2071 The off-diagonal elements are only non-zero when two bonds are connected,
2072 then the element is
2073 $\cos \phi /m_c$, where $m_c$ is
2074 the mass of the atom connecting the
2075 two bonds and $\phi$ is the angle between the bonds.
2077 The matrix $\Tm$ is inverted through a power expansion.
2078 A $K \times K$ matrix $\ve{S}$ is
2079 introduced which is the inverse square root of
2080 the diagonal of $\Bm_n \iM \Bm_n^T$.
2081 This matrix is used to convert the diagonal elements
2082 of the coupling matrix to one:
2083 \fs{m2}
2084 \begin{array}{c}
2085 (\Bm_n \iM \Bm_n^T)^{-1}
2086 = \Sm \Sm^{-1} (\Bm_n \iM \Bm_n^T)^{-1} \Sm^{-1} \Sm \\[2mm]
2087 = \Sm (\Sm \Bm_n \iM \Bm_n^T \Sm)^{-1} \Sm =
2088 \Sm (\ve{I} - \ve{A}_n)^{-1} \Sm
2089 \end{array}
2091 The matrix $\ve{A}_n$ is symmetric and sparse and has zeros on the diagonal.
2092 Thus a simple trick can be used to calculate the inverse:
2093 \fs{m3}
2094 (\ve{I}-\ve{A}_n)^{-1}=
2095 \ve{I} + \ve{A}_n + \ve{A}_n^2 + \ve{A}_n^3 + \ldots
2098 This inversion method is only valid if the absolute values of all the
2099 eigenvalues of $\ve{A}_n$ are smaller than one.
2100 In molecules with only bond constraints, the connectivity is so low
2101 that this will always be true, even if ring structures are present.
2102 Problems can arise in angle-constrained molecules.
2103 By constraining angles with additional distance constraints,
2104 multiple small ring structures are introduced.
2105 This gives a high connectivity, leading to large eigenvalues.
2106 Therefore LINCS should NOT be used with coupled angle-constraints.
2108 For molecules with all bonds constrained the eigenvalues of $A$
2109 are around 0.4. This means that with each additional order
2110 in the expansion \eqnref{m3} the deviations decrease by a factor 0.4.
2111 But for relatively isolated triangles of constraints the largest
2112 eigenvalue is around 0.7.
2113 Such triangles can occur when removing hydrogen angle vibrations
2114 with an additional angle constraint in alcohol groups
2115 or when constraining water molecules with LINCS, for instance
2116 with flexible constraints.
2117 The constraints in such triangles converge twice as slow as
2118 the other constraints. Therefore, starting with {\gromacs} 4,
2119 additional terms are added to the expansion for such triangles
2120 \fs{m3_ang}
2121 (\ve{I}-\ve{A}_n)^{-1} \approx
2122 \ve{I} + \ve{A}_n + \ldots + \ve{A}_n^{N_i} +
2123 \left(\ve{A}^*_n + \ldots + {\ve{A}_n^*}^{N_i} \right) \ve{A}_n^{N_i}
2125 where $N_i$ is the normal order of the expansion and
2126 $\ve{A}^*$ only contains the elements of $\ve{A}$ that couple
2127 constraints within rigid triangles, all other elements are zero.
2128 In this manner, the accuracy of angle constraints comes close
2129 to that of the other constraints, while the series of matrix vector
2130 multiplications required for determining the expansion
2131 only needs to be extended for a few constraint couplings.
2132 This procedure is described in the P-LINCS paper\cite{Hess2008a}.
2134 \subsubsection{The LINCS Parameters}
2135 The accuracy of LINCS depends on the number of matrices used
2136 in the expansion \eqnref{m3}. For MD calculations a fourth order
2137 expansion is enough. For Brownian dynamics with
2138 large time steps an eighth order expansion may be necessary.
2139 The order is a parameter in the {\tt *.mdp} file.
2140 The implementation of LINCS is done in such a way that the
2141 algorithm will never crash. Even when it is impossible to
2142 to reset the constraints LINCS will generate a conformation
2143 which fulfills the constraints as well as possible.
2144 However, LINCS will generate a warning when in one step a bond
2145 rotates over more than a predefined angle.
2146 This angle is set by the user in the {\tt *.mdp} file.
2148 % } % Brace matches ifthenelse test for gmxlite
2151 \section{Simulated Annealing}
2152 \label{sec:SA}
2153 The well known \swapindex{simulated}{annealing}
2154 (SA) protocol is supported in {\gromacs}, and you can even couple multiple
2155 groups of atoms separately with an arbitrary number of reference temperatures
2156 that change during the simulation. The annealing is implemented by simply
2157 changing the current reference temperature for each group in the temperature
2158 coupling, so the actual relaxation and coupling properties depends on the
2159 type of thermostat you use and how hard you are coupling it. Since we are
2160 changing the reference temperature it is important to remember that the system
2161 will NOT instantaneously reach this value - you need to allow for the inherent
2162 relaxation time in the coupling algorithm too. If you are changing the
2163 annealing reference temperature faster than the temperature relaxation you
2164 will probably end up with a crash when the difference becomes too large.
2166 The annealing protocol is specified as a series of corresponding times and
2167 reference temperatures for each group, and you can also choose whether you only
2168 want a single sequence (after which the temperature will be coupled to the
2169 last reference value), or if the annealing should be periodic and restart at
2170 the first reference point once the sequence is completed. You can mix and
2171 match both types of annealing and non-annealed groups in your simulation.
2173 \newcommand{\vrond}{\stackrel{\circ}{\ve{r}}}
2174 \newcommand{\rond}{\stackrel{\circ}{r}}
2175 \newcommand{\ruis}{\ve{r}^G}
2177 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2178 \section{Stochastic Dynamics\swapindexquiet{stochastic}{dynamics}}
2179 \label{sec:SD}
2180 Stochastic or velocity \swapindex{Langevin}{dynamics} adds a friction
2181 and a noise term to Newton's equations of motion, as
2182 \beq
2183 \label{SDeq}
2184 m_i {\de^2 \ve{r}_i \over \de t^2} =
2185 - m_i \gamma_i {\de \ve{r}_i \over \de t} + \ve{F}_i(\ve{r}) + \vrond_i,
2186 \eeq
2187 where $\gamma_i$ is the friction constant $[1/\mbox{ps}]$ and
2188 $\vrond_i\!\!(t)$ is a noise process with
2189 $\langle \rond_i\!\!(t) \rond_j\!\!(t+s) \rangle =
2190 2 m_i \gamma_i k_B T \delta(s) \delta_{ij}$.
2191 When $1/\gamma_i$ is large compared to the time scales present in the system,
2192 one could see stochastic dynamics as molecular dynamics with stochastic
2193 temperature-coupling. The advantage compared to MD with Berendsen
2194 temperature-coupling is that in case of SD the generated ensemble is known.
2195 For simulating a system in vacuum there is the additional advantage that there is no
2196 accumulation of errors for the overall translational and rotational
2197 degrees of freedom.
2198 When $1/\gamma_i$ is small compared to the time scales present in the system,
2199 the dynamics will be completely different from MD, but the sampling is
2200 still correct.
2202 In {\gromacs} there is one simple and efficient implementation. Its
2203 accuracy is equivalent to the normal MD leap-frog and
2204 Velocity Verlet integrator. It is nearly identical to the common way of discretizing the Langevin equation, but the friction and velocity term are applied in an impulse fashion~\cite{Goga2012}.
2205 It can be described as:
2206 \bea
2207 \label{eqn:sd_int1}
2208 \ve{v}' &~=~& \ve{v}(t-\hDt) + \frac{1}{m}\ve{F}(t)\Dt \\
2209 \Delta\ve{v} &~=~& -\alpha \, \ve{v}'(t+\hDt) + \sqrt{\frac{k_B T}{m}(1 - \alpha^2)} \, \ruis_i \\
2210 \ve{r}(t+\Dt) &~=~& \ve{r}(t)+\left(\ve{v}' +\frac{1}{2}\Delta \ve{v}\right)\Dt \label{eqn:sd1_x_upd}\\
2211 \ve{v}(t+\hDt) &~=~& \ve{v}' + \Delta \ve{v} \\
2212 \alpha &~=~& 1 - e^{-\gamma \Dt}
2213 \eea
2214 where $\ruis_i$ is Gaussian distributed noise with $\mu = 0$, $\sigma = 1$.
2215 The velocity is first updated a full time step without friction and noise to get $\ve{v}'$, identical to the normal update in leap-frog. The friction and noise are then applied as an impulse at step $t+\Dt$. The advantage of this scheme is that the velocity-dependent terms act at the full time step, which makes the correct integration of forces that depend on both coordinates and velocities, such as constraints and dissipative particle dynamics (DPD, not implented yet), straightforward. With constraints, the coordinate update \eqnref{sd1_x_upd} is split into a normal leap-frog update and a $\Delta \ve{v}$. After both of these updates the constraints are applied to coordinates and velocities.
2217 When using SD as a thermostat, an appropriate value for $\gamma$ is e.g. 0.5 ps$^{-1}$,
2218 since this results in a friction that is lower than the internal friction
2219 of water, while it still provides efficient thermostatting.
2222 \section{Brownian Dynamics\swapindexquiet{Brownian}{dynamics}}
2223 \label{sec:BD}
2224 In the limit of high friction, stochastic dynamics reduces to
2225 Brownian dynamics, also called position Langevin dynamics.
2226 This applies to over-damped systems,
2227 {\ie} systems in which the inertia effects are negligible.
2228 The equation is
2229 \beq
2230 {\de \ve{r}_i \over \de t} = \frac{1}{\gamma_i} \ve{F}_i(\ve{r}) + \vrond_i
2231 \eeq
2232 where $\gamma_i$ is the friction coefficient $[\mbox{amu/ps}]$ and
2233 $\vrond_i\!\!(t)$ is a noise process with
2234 $\langle \rond_i\!\!(t) \rond_j\!\!(t+s) \rangle =
2235 2 \delta(s) \delta_{ij} k_B T / \gamma_i$.
2236 In {\gromacs} the equations are integrated with a simple, explicit scheme
2237 \beq
2238 \ve{r}_i(t+\Delta t) = \ve{r}_i(t) +
2239 {\Delta t \over \gamma_i} \ve{F}_i(\ve{r}(t))
2240 + \sqrt{2 k_B T {\Delta t \over \gamma_i}}\, \ruis_i,
2241 \eeq
2242 where $\ruis_i$ is Gaussian distributed noise with $\mu = 0$, $\sigma = 1$.
2243 The friction coefficients $\gamma_i$ can be chosen the same for all
2244 particles or as $\gamma_i = m_i\,\gamma_i$, where the friction constants
2245 $\gamma_i$ can be different for different groups of atoms.
2246 Because the system is assumed to be over-damped, large timesteps
2247 can be used. LINCS should be used for the constraints since SHAKE
2248 will not converge for large atomic displacements.
2249 BD is an option of the {\tt mdrun} program.
2250 % } % Brace matches ifthenelse test for gmxlite
2252 \section{Energy Minimization}
2253 \label{sec:EM}\index{energy minimization}%
2254 Energy minimization in {\gromacs} can be done using steepest descent,
2255 conjugate gradients, or l-bfgs (limited-memory
2256 Broyden-Fletcher-Goldfarb-Shanno quasi-Newtonian minimizer...we
2257 prefer the abbreviation). EM is just an option of the {\tt mdrun}
2258 program.
2260 \subsection{Steepest Descent\index{steepest descent}}
2261 Although steepest descent is certainly not the most efficient
2262 algorithm for searching, it is robust and easy to implement.
2264 We define the vector $\ve{r}$ as the vector of all $3N$ coordinates.
2265 Initially a maximum displacement $h_0$ ({\eg} 0.01 nm) must be given.
2267 First the forces $\ve{F}$ and potential energy are calculated.
2268 New positions are calculated by
2269 \beq
2270 \ve{r}_{n+1} = \ve{r}_n + \frac{\ve{F}_n}{\max (|\ve{F}_n|)} h_n,
2271 \eeq
2272 where $h_n$ is the maximum displacement and $\ve{F}_n$ is the force,
2273 or the negative gradient of the potential $V$. The notation $\max
2274 (|\ve{F}_n|)$ means the largest scalar force on any atom.
2275 The forces and energy are again computed for the new positions \\
2276 If ($V_{n+1} < V_n$) the new positions are accepted and $h_{n+1} = 1.2
2277 h_n$. \\
2278 If ($V_{n+1} \geq V_n$) the new positions are rejected and $h_n = 0.2 h_n$.
2280 The algorithm stops when either a user-specified number of force
2281 evaluations has been performed ({\eg} 100), or when the maximum of the absolute
2282 values of the force (gradient) components is smaller than a specified
2283 value $\epsilon$.
2284 Since force truncation produces some noise in the
2285 energy evaluation, the stopping criterion should not be made too tight
2286 to avoid endless iterations. A reasonable value for $\epsilon$ can be
2287 estimated from the root mean square force $f$ a harmonic oscillator would exhibit at a
2288 temperature $T$. This value is
2289 \beq
2290 f = 2 \pi \nu \sqrt{ 2mkT},
2291 \eeq
2292 where $\nu$ is the oscillator frequency, $m$ the (reduced) mass, and
2293 $k$ Boltzmann's constant. For a weak oscillator with a wave number of
2294 100 cm$^{-1}$ and a mass of 10 atomic units, at a temperature of 1 K,
2295 $f=7.7$ kJ~mol$^{-1}$~nm$^{-1}$. A value for $\epsilon$ between 1 and
2296 10 is acceptable.
2298 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2299 \subsection{Conjugate Gradient\index{conjugate gradient}}
2300 Conjugate gradient is slower than steepest descent in the early stages
2301 of the minimization, but becomes more efficient closer to the energy
2302 minimum. The parameters and stop criterion are the same as for
2303 steepest descent. In {\gromacs} conjugate gradient can not be used
2304 with constraints, including the SETTLE algorithm for
2305 water~\cite{Miyamoto92}, as this has not been implemented. If water is
2306 present it must be of a flexible model, which can be specified in the
2307 {\tt *.mdp} file by {\tt define = -DFLEXIBLE}.
2309 This is not really a restriction, since the accuracy of conjugate
2310 gradient is only required for minimization prior to a normal-mode
2311 analysis, which cannot be performed with constraints. For most other
2312 purposes steepest descent is efficient enough.
2313 % } % Brace matches ifthenelse test for gmxlite
2315 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2316 \subsection{\normindex{L-BFGS}}
2317 The original BFGS algorithm works by successively creating better
2318 approximations of the inverse Hessian matrix, and moving the system to
2319 the currently estimated minimum. The memory requirements for this are
2320 proportional to the square of the number of particles, so it is not
2321 practical for large systems like biomolecules. Instead, we use the
2322 L-BFGS algorithm of Nocedal~\cite{Byrd95a,Zhu97a}, which approximates
2323 the inverse Hessian by a fixed number of corrections from previous
2324 steps. This sliding-window technique is almost as efficient as the
2325 original method, but the memory requirements are much lower -
2326 proportional to the number of particles multiplied with the correction
2327 steps. In practice we have found it to converge faster than conjugate
2328 gradients, but due to the correction steps it is not yet parallelized.
2329 It is also noteworthy that switched or shifted interactions usually
2330 improve the convergence, since sharp cut-offs mean the potential
2331 function at the current coordinates is slightly different from the
2332 previous steps used to build the inverse Hessian approximation.
2333 % } % Brace matches ifthenelse test for gmxlite
2335 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2336 \section{Normal-Mode Analysis\index{normal-mode analysis}\index{NMA}}
2337 Normal-mode analysis~\cite{Levitt83,Go83,BBrooks83b}
2338 can be performed using {\gromacs}, by diagonalization of the mass-weighted
2339 \normindex{Hessian} $H$:
2340 \bea
2341 R^T M^{-1/2} H M^{-1/2} R &=& \mbox{diag}(\lambda_1,\ldots,\lambda_{3N})
2343 \lambda_i &=& (2 \pi \omega_i)^2
2344 \eea
2345 where $M$ contains the atomic masses, $R$ is a matrix that contains
2346 the eigenvectors as columns, $\lambda_i$ are the eigenvalues
2347 and $\omega_i$ are the corresponding frequencies.
2349 First the Hessian matrix, which is a $3N \times 3N$ matrix where $N$
2350 is the number of atoms, needs to be calculated:
2351 \bea
2352 H_{ij} &=& \frac{\partial^2 V}{\partial x_i \partial x_j}
2353 \eea
2354 where $x_i$ and $x_j$ denote the atomic x, y or z coordinates.
2355 In practice, this equation is not used, but the Hessian is
2356 calculated numerically from the force as:
2357 \bea
2358 H_{ij} &=& -
2359 \frac{f_i({\bf x}+h{\bf e}_j) - f_i({\bf x}-h{\bf e}_j)}{2h}
2361 f_i &=& - \frac{\partial V}{\partial x_i}
2362 \eea
2363 where ${\bf e}_j$ is the unit vector in direction $j$.
2364 It should be noted that
2365 for a usual normal-mode calculation, it is necessary to completely minimize
2366 the energy prior to computation of the Hessian.
2367 The tolerance required depends on the type of system,
2368 but a rough indication is 0.001 kJ mol$^{-1}$.
2369 Minimization should be done with conjugate gradients or L-BFGS in double precision.
2371 A number of {\gromacs} programs are involved in these
2372 calculations. First, the energy should be minimized using {\tt mdrun}.
2373 Then, {\tt mdrun} computes the Hessian. {\bf Note} that for generating
2374 the run input file, one should use the minimized conformation from
2375 the full precision trajectory file, as the structure file is not
2376 accurate enough.
2377 {\tt \normindex{gmx nmeig}} does the diagonalization and
2378 the sorting of the normal modes according to their frequencies.
2379 Both {\tt mdrun} and {\tt gmx nmeig} should be run in double precision.
2380 The normal modes can be analyzed with the program {\tt gmx anaeig}.
2381 Ensembles of structures at any temperature and for any subset of
2382 normal modes can be generated with {\tt \normindex{gmx nmens}}.
2383 An overview of normal-mode analysis and the related principal component
2384 analysis (see \secref{covanal}) can be found in~\cite{Hayward95b}.
2385 % } % Brace matches ifthenelse test for gmxlite
2387 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2389 \section{Free energy calculations\index{free energy calculations}}
2390 \label{sec:fecalc}
2391 \subsection{Slow-growth methods\index{slow-growth methods}}
2392 Free energy calculations can be performed
2393 in {\gromacs} using a number of methods, including ``slow-growth.'' An example problem
2394 might be calculating the difference in free energy of binding of an inhibitor {\bf I}
2395 to an enzyme {\bf E} and to a mutated enzyme {\bf E$^{\prime}$}. It
2396 is not feasible with computer simulations to perform a docking
2397 calculation for such a large complex, or even releasing the inhibitor from
2398 the enzyme in a reasonable amount of computer time with reasonable accuracy.
2399 However, if we consider the free energy cycle in~\figref{free}A
2400 we can write:
2401 \beq
2402 \Delta G_1 - \Delta G_2 = \Delta G_3 - \Delta G_4
2403 \label{eqn:ddg}
2404 \eeq
2405 If we are interested in the left-hand term we can equally well compute
2406 the right-hand term.
2407 \begin{figure}
2408 \centerline{\includegraphics[width=6cm,angle=270]{plots/free1}\hspace{2cm}\includegraphics[width=6cm,angle=270]{plots/free2}}
2409 \caption[Free energy cycles.]{Free energy cycles. {\bf A:} to
2410 calculate $\Delta G_{12}$, the free energy difference between the
2411 binding of inhibitor {\bf I} to enzymes {\bf E} respectively {\bf
2412 E$^{\prime}$}. {\bf B:} to calculate $\Delta G_{12}$, the free energy
2413 difference for binding of inhibitors {\bf I} respectively {\bf I$^{\prime}$} to
2414 enzyme {\bf E}.}
2415 \label{fig:free}
2416 \end{figure}
2418 If we want to compute the difference in free energy of binding of two
2419 inhibitors {\bf I} and {\bf I$^{\prime}$} to an enzyme {\bf E} (\figref{free}B)
2420 we can again use \eqnref{ddg} to compute the desired property.
2422 \newcommand{\sA}{^{\mathrm{A}}}
2423 \newcommand{\sB}{^{\mathrm{B}}}
2424 Free energy differences between two molecular species can
2425 be calculated in {\gromacs} using the ``slow-growth'' method.
2426 Such free energy differences between different molecular species are
2427 physically meaningless, but they can be used to obtain meaningful
2428 quantities employing a thermodynamic cycle.
2429 The method requires a simulation during which the Hamiltonian of the
2430 system changes slowly from that describing one system (A) to that
2431 describing the other system (B). The change must be so slow that the
2432 system remains in equilibrium during the process; if that requirement
2433 is fulfilled, the change is reversible and a slow-growth simulation from B to A
2434 will yield the same results (but with a different sign) as a slow-growth
2435 simulation from A to B. This is a useful check, but the user should be
2436 aware of the danger that equality of forward and backward growth results does
2437 not guarantee correctness of the results.
2439 The required modification of the Hamiltonian $H$ is realized by making
2440 $H$ a function of a \textit{coupling parameter} $\lambda:
2441 H=H(p,q;\lambda)$ in such a way that $\lambda=0$ describes system A
2442 and $\lambda=1$ describes system B:
2443 \beq
2444 H(p,q;0)=H\sA (p,q);~~~~ H(p,q;1)=H\sB (p,q).
2445 \eeq
2446 In {\gromacs}, the functional form of the $\lambda$-dependence is
2447 different for the various force-field contributions and is described
2448 in section \secref{feia}.
2450 The Helmholtz free energy $A$ is related to the
2451 partition function $Q$ of an $N,V,T$ ensemble, which is assumed to be
2452 the equilibrium ensemble generated by a MD simulation at constant
2453 volume and temperature. The generally more useful Gibbs free energy
2454 $G$ is related to the partition function $\Delta$ of an $N,p,T$
2455 ensemble, which is assumed to be the equilibrium ensemble generated by
2456 a MD simulation at constant pressure and temperature:
2457 \bea
2458 A(\lambda) &=& -k_BT \ln Q \\
2459 Q &=& c \int\!\!\int \exp[-\beta H(p,q;\lambda)]\,dp\,dq \\
2460 G(\lambda) &=& -k_BT \ln \Delta \\
2461 \Delta &=& c \int\!\!\int\!\!\int \exp[-\beta H(p,q;\lambda) -\beta
2462 pV]\,dp\,dq\,dV \\
2463 G &=& A + pV,
2464 \eea
2465 where $\beta = 1/(k_BT)$ and $c = (N! h^{3N})^{-1}$.
2466 These integrals over phase space cannot be evaluated from a
2467 simulation, but it is possible to evaluate the derivative with
2468 respect to $\lambda$ as an ensemble average:
2469 \beq
2470 \frac{dA}{d\lambda} = \frac{\int\!\!\int (\partial H/ \partial
2471 \lambda) \exp[-\beta H(p,q;\lambda)]\,dp\,dq}{\int\!\!\int \exp[-\beta
2472 H(p,q;\lambda)]\,dp\,dq} =
2473 \left\langle \frac{\partial H}{\partial \lambda} \right\rangle_{NVT;\lambda},
2474 \eeq
2475 with a similar relation for $dG/d\lambda$ in the $N,p,T$
2476 ensemble. The difference in free energy between A and B can be found
2477 by integrating the derivative over $\lambda$:
2478 \bea
2479 A\sB(V,T)-A\sA(V,T) &=& \int_0^1 \left\langle \frac{\partial
2480 H}{\partial \lambda} \right\rangle_{NVT;\lambda} \,d\lambda
2481 \label{eq:delA} \\
2482 G\sB(p,T)-G\sA(p,T) &=& \int_0^1 \left\langle \frac{\partial
2483 H}{\partial \lambda} \right\rangle_{NpT;\lambda} \,d\lambda.
2484 \label{eq:delG}
2485 \eea
2486 If one wishes to evaluate $G\sB(p,T)-G\sA(p,T)$,
2487 the natural choice is a constant-pressure simulation. However, this
2488 quantity can also be obtained from a slow-growth simulation at
2489 constant volume, starting with system A at pressure $p$ and volume $V$
2490 and ending with system B at pressure $p_B$, by applying the following
2491 small (but, in principle, exact) correction:
2492 \beq
2493 G\sB(p)-G\sA(p) =
2494 A\sB(V)-A\sA(V) - \int_p^{p\sB}[V\sB(p')-V]\,dp'
2495 \eeq
2496 Here we omitted the constant $T$ from the notation. This correction is
2497 roughly equal to $-\frac{1}{2} (p\sB-p)\Delta V=(\Delta V)^2/(2
2498 \kappa V)$, where $\Delta V$ is the volume change at $p$ and $\kappa$
2499 is the isothermal compressibility. This is usually
2500 small; for example, the growth of a water molecule from nothing
2501 in a bath of 1000 water molecules at constant volume would produce an
2502 additional pressure of as much as 22 bar, but a correction to the
2503 Helmholtz free energy of just -1 kJ mol$^{-1}$. %-20 J/mol.
2505 In Cartesian coordinates, the kinetic energy term in the Hamiltonian
2506 depends only on the momenta, and can be separately integrated and, in
2507 fact, removed from the equations. When masses do not change, there is
2508 no contribution from the kinetic energy at all; otherwise the
2509 integrated contribution to the free energy is $-\frac{3}{2} k_BT \ln
2510 (m\sB/m\sA)$. {\bf Note} that this is only true in the absence of constraints.
2512 \subsection{Thermodynamic integration\index{thermodynamic integration}\index{BAR}\index{Bennett's acceptance ratio}}
2513 {\gromacs} offers the possibility to integrate eq.~\ref{eq:delA} or
2514 eq. \ref{eq:delG} in one simulation over the full range from A to
2515 B. However, if the change is large and insufficient sampling can be
2516 expected, the user may prefer to determine the value of $\langle
2517 dG/d\lambda \rangle$ accurately at a number of well-chosen
2518 intermediate values of $\lambda$. This can easily be done by setting
2519 the stepsize {\tt delta_lambda} to zero. Each simulation can be
2520 equilibrated first, and a proper error estimate can be made for each
2521 value of $dG/d\lambda$ from the fluctuation of $\partial H/\partial
2522 \lambda$. The total free energy change is then determined afterward
2523 by an appropriate numerical integration procedure.
2525 {\gromacs} now also supports the use of Bennett's Acceptance Ratio~\cite{Bennett1976}
2526 for calculating values of $\Delta$G for transformations from state A to state B using
2527 the program {\tt \normindex{gmx bar}}. The same data can also be used to calculate free
2528 energies using MBAR~\cite{Shirts2008}, though the analysis currently requires external tools from
2529 the external {\tt pymbar} package, at https://SimTK.org/home/pymbar.
2531 The $\lambda$-dependence for the force-field contributions is
2532 described in detail in section \secref{feia}.
2533 % } % Brace matches ifthenelse test for gmxlite
2535 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2536 \section{Replica exchange\index{replica exchange}}
2537 Replica exchange molecular dynamics (\normindex{REMD})
2538 is a method that can be used to speed up
2539 the sampling of any type of simulation, especially if
2540 conformations are separated by relatively high energy barriers.
2541 It involves simulating multiple replicas of the same system
2542 at different temperatures and randomly exchanging the complete state
2543 of two replicas at regular intervals with the probability:
2544 \beq
2545 P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
2546 \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2)
2547 \right] \right)
2548 \eeq
2549 where $T_1$ and $T_2$ are the reference temperatures and $U_1$ and $U_2$
2550 are the instantaneous potential energies of replicas 1 and 2 respectively.
2551 After exchange the velocities are scaled by $(T_1/T_2)^{\pm0.5}$
2552 and a neighbor search is performed the next step.
2553 This combines the fast sampling and frequent barrier-crossing
2554 of the highest temperature with correct Boltzmann sampling at
2555 all the different temperatures~\cite{Hukushima96a,Sugita99}.
2556 We only attempt exchanges for neighboring temperatures as the probability
2557 decreases very rapidly with the temperature difference.
2558 One should not attempt exchanges for all possible pairs in one step.
2559 If, for instance, replicas 1 and 2 would exchange, the chance of
2560 exchange for replicas 2 and 3 not only depends on the energies of
2561 replicas 2 and 3, but also on the energy of replica 1.
2562 In {\gromacs} this is solved by attempting exchange for all ``odd''
2563 pairs on ``odd'' attempts and for all ``even'' pairs on ``even'' attempts.
2564 If we have four replicas: 0, 1, 2 and 3, ordered in temperature
2565 and we attempt exchange every 1000 steps, pairs 0-1 and 2-3
2566 will be tried at steps 1000, 3000 etc. and pair 1-2 at steps 2000, 4000 etc.
2568 How should one choose the temperatures?
2569 The energy difference can be written as:
2570 \beq
2571 U_1 - U_2 = N_{df} \frac{c}{2} k_B (T_1 - T_2)
2572 \eeq
2573 where $N_{df}$ is the total number of degrees of freedom of one replica
2574 and $c$ is 1 for harmonic potentials and around 2 for protein/water systems.
2575 If $T_2 = (1+\epsilon) T_1$ the probability becomes:
2576 \beq
2577 P(1 \leftrightarrow 2)
2578 = \exp\left( -\frac{\epsilon^2 c\,N_{df}}{2 (1+\epsilon)} \right)
2579 \approx \exp\left(-\epsilon^2 \frac{c}{2} N_{df} \right)
2580 \eeq
2581 Thus for a probability of $e^{-2}\approx 0.135$
2582 one obtains $\epsilon \approx 2/\sqrt{c\,N_{df}}$.
2583 With all bonds constrained one has $N_{df} \approx 2\, N_{atoms}$
2584 and thus for $c$ = 2 one should choose $\epsilon$ as $1/\sqrt{N_{atoms}}$.
2585 However there is one problem when using pressure coupling. The density at
2586 higher temperatures will decrease, leading to higher energy~\cite{Seibert2005a},
2587 which should be taken into account. The {\gromacs} website features a
2588 so-called ``REMD calculator,'' that lets you type in the temperature range and
2589 the number of atoms, and based on that proposes a set of temperatures.
2591 An extension to the REMD for the isobaric-isothermal ensemble was
2592 proposed by Okabe {\em et al.}~\cite{Okabe2001a}. In this work the
2593 exchange probability is modified to:
2594 \beq
2595 P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
2596 \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2) +
2597 \left(\frac{P_1}{k_B T_1} - \frac{P_2}{k_B T_2}\right)\left(V_1-V_2\right)
2598 \right] \right)
2599 \eeq
2600 where $P_1$ and $P_2$ are the respective reference pressures and $V_1$ and
2601 $V_2$ are the respective instantaneous volumes in the simulations.
2602 In most cases the differences in volume are so small that the second
2603 term is negligible. It only plays a role when the difference between
2604 $P_1$ and $P_2$ is large or in phase transitions.
2606 Hamiltonian replica exchange is also supported in {\gromacs}. In
2607 Hamiltonian replica exchange, each replica has a different
2608 Hamiltonian, defined by the free energy pathway specified for the simulation. The
2609 exchange probability to maintain the correct ensemble probabilities is:
2610 \beq P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
2611 \left(\frac{1}{k_B T} - \frac{1}{k_B T}\right)((U_1(x_2) - U_1(x_1)) + (U_2(x_1) - U_2(x_2)))
2612 \right]
2613 \right)
2614 \eeq
2615 The separate Hamiltonians are defined by the free energy functionality
2616 of {\gromacs}, with swaps made between the different values of
2617 $\lambda$ defined in the mdp file.
2619 Hamiltonian and temperature replica exchange can also be performed
2620 simultaneously, using the acceptance criteria:
2621 \beq
2622 P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
2623 \left(\frac{1}{k_B T} - \right)(\frac{U_1(x_2) - U_1(x_1)}{k_B T_1} + \frac{U_2(x_1) - U_2(x_2)}{k_B T_2})
2624 \right] \right)
2625 \eeq
2627 Gibbs sampling replica exchange has also been implemented in
2628 {\gromacs}~\cite{Chodera2011}. In Gibbs sampling replica exchange, all
2629 possible pairs are tested for exchange, allowing swaps between
2630 replicas that are not neighbors.
2632 Gibbs sampling replica exchange requires no additional potential
2633 energy calculations. However there is an additional communication
2634 cost in Gibbs sampling replica exchange, as for some permutations,
2635 more than one round of swaps must take place. In some cases, this
2636 extra communication cost might affect the efficiency.
2638 All replica exchange variants are options of the {\tt mdrun}
2639 program. It will only work when MPI is installed, due to the inherent
2640 parallelism in the algorithm. For efficiency each replica can run on a
2641 separate rank. See the manual page of {\tt mdrun} on how to use these
2642 multinode features.
2644 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2646 \section{Essential Dynamics sampling\index{essential dynamics}\index{principal component analysis}\seeindexquiet{PCA}{covariance analysis}}
2647 The results from Essential Dynamics (see \secref{covanal})
2648 of a protein can be used to guide MD simulations. The idea is that
2649 from an initial MD simulation (or from other sources) a definition of
2650 the collective fluctuations with largest amplitude is obtained. The
2651 position along one or more of these collective modes can be
2652 constrained in a (second) MD simulation in a number of ways for
2653 several purposes. For example, the position along a certain mode may
2654 be kept fixed to monitor the average force (free-energy gradient) on
2655 that coordinate in that position. Another application is to enhance
2656 sampling efficiency with respect to usual MD
2657 \cite{Degroot96a,Degroot96b}. In this case, the system is encouraged
2658 to sample its available configuration space more systematically than
2659 in a diffusion-like path that proteins usually take.
2661 Another possibility to enhance sampling is \normindex{flooding}.
2662 Here a flooding potential is added to certain
2663 (collective) degrees of freedom to expel the system out
2664 of a region of phase space \cite{Lange2006a}.
2666 The procedure for essential dynamics sampling or flooding is as follows.
2667 First, the eigenvectors and eigenvalues need to be determined
2668 using covariance analysis ({\tt gmx covar})
2669 or normal-mode analysis ({\tt gmx nmeig}).
2670 Then, this information is fed into {\tt make_edi},
2671 which has many options for selecting vectors and setting parameters,
2672 see {\tt gmx make_edi -h}.
2673 The generated {\tt edi} input file is then passed to {\tt mdrun}.
2675 % } % Brace matches ifthenelse test for gmxlite
2677 % \ifthenelse{\equal{\gmxlite}{1}}{}{
2678 \section{\normindex{Expanded Ensemble}}
2680 In an expanded ensemble simulation~\cite{Lyubartsev1992}, both the coordinates and the
2681 thermodynamic ensemble are treated as configuration variables that can
2682 be sampled over. The probability of any given state can be written as:
2683 \beq
2684 P(\vec{x},k) \propto \exp\left(-\beta_k U_k + g_k\right),
2685 \eeq
2686 where $\beta_k = \frac{1}{k_B T_k}$ is the $\beta$ corresponding to the $k$th
2687 thermodynamic state, and $g_k$ is a user-specified weight factor corresponding
2688 to the $k$th state. This space is therefore a {\em mixed}, {\em generalized}, or {\em
2689 expanded} ensemble which samples from multiple thermodynamic
2690 ensembles simultaneously. $g_k$ is chosen to give a specific weighting
2691 of each subensemble in the expanded ensemble, and can either be fixed,
2692 or determined by an iterative procedure. The set of $g_k$ is
2693 frequently chosen to give each thermodynamic ensemble equal
2694 probability, in which case $g_k$ is equal to the free energy in
2695 non-dimensional units, but they can be set to arbitrary values as
2696 desired. Several different algorithms can be used to equilibrate
2697 these weights, described in the mdp option listings.
2698 % } % Brace matches ifthenelse test for gmxlite
2700 In {\gromacs}, this space is sampled by alternating sampling in the $k$
2701 and $\vec{x}$ directions. Sampling in the $\vec{x}$ direction is done
2702 by standard molecular dynamics sampling; sampling between the
2703 different thermodynamics states is done by Monte Carlo, with several
2704 different Monte Carlo moves supported. The $k$ states can be defined
2705 by different temperatures, or choices of the free energy $\lambda$
2706 variable, or both. Expanded ensemble simulations thus represent a
2707 serialization of the replica exchange formalism, allowing a single
2708 simulation to explore many thermodynamic states.
2712 \section{Parallelization\index{parallelization}}
2713 The CPU time required for a simulation can be reduced by running the simulation
2714 in parallel over more than one core.
2715 Ideally, one would want to have linear scaling: running on $N$ cores
2716 makes the simulation $N$ times faster. In practice this can only be
2717 achieved for a small number of cores. The scaling will depend
2718 a lot on the algorithms used. Also, different algorithms can have different
2719 restrictions on the interaction ranges between atoms.
2721 \section{Domain decomposition\index{domain decomposition}}
2722 Since most interactions in molecular simulations are local,
2723 domain decomposition is a natural way to decompose the system.
2724 In domain decomposition, a spatial domain is assigned to each rank,
2725 which will then integrate the equations of motion for the particles
2726 that currently reside in its local domain. With domain decomposition,
2727 there are two choices that have to be made: the division of the unit cell
2728 into domains and the assignment of the forces to domains.
2729 Most molecular simulation packages use the half-shell method for assigning
2730 the forces. But there are two methods that always require less communication:
2731 the eighth shell~\cite{Liem1991} and the midpoint~\cite{Shaw2006} method.
2732 {\gromacs} currently uses the eighth shell method, but for certain systems
2733 or hardware architectures it might be advantageous to use the midpoint
2734 method. Therefore, we might implement the midpoint method in the future.
2735 Most of the details of the domain decomposition can be found
2736 in the {\gromacs} 4 paper~\cite{Hess2008b}.
2738 \subsection{Coordinate and force communication}
2739 In the most general case of a triclinic unit cell,
2740 the space in divided with a 1-, 2-, or 3-D grid in parallelepipeds
2741 that we call domain decomposition cells.
2742 Each cell is assigned to a particle-particle rank.
2743 The system is partitioned over the ranks at the beginning
2744 of each MD step in which neighbor searching is performed.
2745 Since the neighbor searching is based on charge groups, charge groups
2746 are also the units for the domain decomposition.
2747 Charge groups are assigned to the cell where their center of geometry resides.
2748 Before the forces can be calculated, the coordinates from some
2749 neighboring cells need to be communicated,
2750 and after the forces are calculated, the forces need to be communicated
2751 in the other direction.
2752 The communication and force assignment is based on zones that
2753 can cover one or multiple cells.
2754 An example of a zone setup is shown in \figref{ddcells}.
2756 \begin{figure}
2757 \centerline{\includegraphics[width=6cm]{plots/dd-cells}}
2758 \caption{
2759 A non-staggered domain decomposition grid of 3$\times$2$\times$2 cells.
2760 Coordinates in zones 1 to 7 are communicated to the corner cell
2761 that has its home particles in zone 0.
2762 $r_c$ is the cut-off radius.
2763 \label{fig:ddcells}
2765 \end{figure}
2767 The coordinates are communicated by moving data along the ``negative''
2768 direction in $x$, $y$ or $z$ to the next neighbor. This can be done in one
2769 or multiple pulses. In \figref{ddcells} two pulses in $x$ are required,
2770 then one in $y$ and then one in $z$. The forces are communicated by
2771 reversing this procedure. See the {\gromacs} 4 paper~\cite{Hess2008b}
2772 for details on determining which non-bonded and bonded forces
2773 should be calculated on which rank.
2775 \subsection{Dynamic load balancing\swapindexquiet{dynamic}{load balancing}}
2776 When different ranks have a different computational load
2777 (load imbalance), all ranks will have to wait for the one
2778 that takes the most time. One would like to avoid such a situation.
2779 Load imbalance can occur due to four reasons:
2780 \begin{itemize}
2781 \item inhomogeneous particle distribution
2782 \item inhomogeneous interaction cost distribution (charged/uncharged,
2783 water/non-water due to {\gromacs} water innerloops)
2784 \item statistical fluctuation (only with small particle numbers)
2785 \item differences in communication time, due to network topology and/or other jobs on the machine interfering with our communication
2786 \end{itemize}
2787 So we need a dynamic load balancing algorithm
2788 where the volume of each domain decomposition cell
2789 can be adjusted {\em independently}.
2790 To achieve this, the 2- or 3-D domain decomposition grids need to be
2791 staggered. \figref{ddtric} shows the most general case in 2-D.
2792 Due to the staggering, one might require two distance checks
2793 for deciding if a charge group needs to be communicated:
2794 a non-bonded distance and a bonded distance check.
2796 \begin{figure}
2797 \centerline{\includegraphics[width=7cm]{plots/dd-tric}}
2798 \caption{
2799 The zones to communicate to the rank of zone 0,
2800 see the text for details. $r_c$ and $r_b$ are the non-bonded
2801 and bonded cut-off radii respectively, $d$ is an example
2802 of a distance between following, staggered boundaries of cells.
2803 \label{fig:ddtric}
2805 \end{figure}
2807 By default, {\tt mdrun} automatically turns on the dynamic load
2808 balancing during a simulation when the total performance loss
2809 due to the force calculation imbalance is 2\% or more.
2810 {\bf Note} that the reported force load imbalance numbers might be higher,
2811 since the force calculation is only part of work that needs to be done
2812 during an integration step.
2813 The load imbalance is reported in the log file at log output steps
2814 and when the {\tt -v} option is used also on screen.
2815 The average load imbalance and the total performance loss
2816 due to load imbalance are reported at the end of the log file.
2818 There is one important parameter for the dynamic load balancing,
2819 which is the minimum allowed scaling. By default, each dimension
2820 of the domain decomposition cell can scale down by at least
2821 a factor of 0.8. For 3-D domain decomposition this allows cells
2822 to change their volume by about a factor of 0.5, which should allow
2823 for compensation of a load imbalance of 100\%.
2824 The minimum allowed scaling can be changed with the {\tt -dds}
2825 option of {\tt mdrun}.
2827 The load imbalance is measured by timing a single region of the MD step
2828 on each MPI rank. This region can not include MPI communication, as
2829 timing of MPI calls does not allow separating wait due to imbalance
2830 from actual communication.
2831 The domain volumes are then scaled, with under-relaxation, inversely
2832 proportional with the measured time. This procedure will decrease the
2833 load imbalance when the change in load in the measured region correlates
2834 with the change in domain volume and the load outside
2835 the measured region does not depend strongly on the domain volume.
2836 In CPU-only simulations, the load is measured between the coordinate
2837 and the force communication. In hybrid CPU-GPU simulations we overlap
2838 communication on the CPU with calculation on the GPU. Therefore we
2839 measure from the last communication before the force calculation to
2840 when the CPU or GPU is finished, whichever is last.
2841 When not using PME ranks, we subtract the time in PME from the CPU time,
2842 as this includes MPI calls and the PME load is independent of domain size.
2843 This generally works well, unless the non-bonded load is low and there is
2844 imbalance in the bonded interactions. Then two issues can arise.
2845 Dynamic load balancing can increase the imbalance in update and constraints
2846 and with PME the coordinate and force redistribution time can go up
2847 significantly. Although dynamic load balancing
2848 can significantly improve performance in cases where there is imbalance in
2849 the bonded interactions on the CPU, there are many situations in which
2850 some domains continue decreasing in size and the load imbalance increases
2851 and/or PME coordinate and force redistribution cost increases significantly.
2852 As of version 2016.1, {\tt mdrun} disables the dynamic load balancing when
2853 measurement indicates that it deteriorates performance. This means that in most
2854 cases the user will get good performance with the default, automated
2855 dynamic load balancing setting.
2857 \subsection{Constraints in parallel\index{constraints}}
2858 \label{subsec:plincs}
2859 Since with domain decomposition parts of molecules can reside
2860 on different ranks, bond constraints can cross cell boundaries.
2861 Therefore a parallel constraint algorithm is required.
2862 {\gromacs} uses the \normindex{P-LINCS} algorithm~\cite{Hess2008a},
2863 which is the parallel version of the \normindex{LINCS} algorithm~\cite{Hess97}
2864 % \ifthenelse{\equal{\gmxlite}{1}}
2866 {(see \ssecref{lincs}).}
2867 The P-LINCS procedure is illustrated in \figref{plincs}.
2868 When molecules cross the cell boundaries, atoms in such molecules
2869 up to ({\tt lincs_order + 1}) bonds away are communicated over the cell boundaries.
2870 Then, the normal LINCS algorithm can be applied to the local bonds
2871 plus the communicated ones. After this procedure, the local bonds
2872 are correctly constrained, even though the extra communicated ones are not.
2873 One coordinate communication step is required for the initial LINCS step
2874 and one for each iteration. Forces do not need to be communicated.
2876 \begin{figure}
2877 \centerline{\includegraphics[width=6cm]{plots/par-lincs2}}
2878 \caption{
2879 Example of the parallel setup of P-LINCS with one molecule
2880 split over three domain decomposition cells, using a matrix
2881 expansion order of 3.
2882 The top part shows which atom coordinates need to be communicated
2883 to which cells. The bottom parts show the local constraints (solid)
2884 and the non-local constraints (dashed) for each of the three cells.
2885 \label{fig:plincs}
2887 \end{figure}
2889 \subsection{Interaction ranges}
2890 Domain decomposition takes advantage of the locality of interactions.
2891 This means that there will be limitations on the range of interactions.
2892 By default, {\tt mdrun} tries to find the optimal balance between
2893 interaction range and efficiency. But it can happen that a simulation
2894 stops with an error message about missing interactions,
2895 or that a simulation might run slightly faster with shorter
2896 interaction ranges. A list of interaction ranges
2897 and their default values is given in \tabref{dd_ranges}.
2899 \begin{table}
2900 \centerline{
2901 \begin{tabular}{|c|c|ll|}
2902 \dline
2903 interaction & range & option & default \\
2904 \dline
2905 non-bonded & $r_c$ = max($r_{\mathrm{list}}$,$r_{\mathrm{VdW}}$,$r_{\mathrm{Coul}}$) & {\tt mdp} file & \\
2906 two-body bonded & max($r_{\mathrm{mb}}$,$r_c$) & {\tt mdrun -rdd} & starting conf. + 10\% \\
2907 multi-body bonded & $r_{\mathrm{mb}}$ & {\tt mdrun -rdd} & starting conf. + 10\% \\
2908 constraints & $r_{\mathrm{con}}$ & {\tt mdrun -rcon} & est. from bond lengths \\
2909 virtual sites & $r_{\mathrm{con}}$ & {\tt mdrun -rcon} & 0 \\
2910 \dline
2911 \end{tabular}
2913 \caption{The interaction ranges with domain decomposition.}
2914 \label{tab:dd_ranges}
2915 \end{table}
2917 In most cases the defaults of {\tt mdrun} should not cause the simulation
2918 to stop with an error message of missing interactions.
2919 The range for the bonded interactions is determined from the distance
2920 between bonded charge-groups in the starting configuration, with 10\% added
2921 for headroom. For the constraints, the value of $r_{\mathrm{con}}$ is determined by
2922 taking the maximum distance that ({\tt lincs_order + 1}) bonds can cover
2923 when they all connect at angles of 120 degrees.
2924 The actual constraint communication is not limited by $r_{\mathrm{con}}$,
2925 but by the minimum cell size $L_C$, which has the following lower limit:
2926 \beq
2927 L_C \geq \max(r_{\mathrm{mb}},r_{\mathrm{con}})
2928 \eeq
2929 Without dynamic load balancing the system is actually allowed to scale
2930 beyond this limit when pressure scaling is used.
2931 {\bf Note} that for triclinic boxes, $L_C$ is not simply the box diagonal
2932 component divided by the number of cells in that direction,
2933 rather it is the shortest distance between the triclinic cells borders.
2934 For rhombic dodecahedra this is a factor of $\sqrt{3/2}$ shorter
2935 along $x$ and $y$.
2937 When $r_{\mathrm{mb}} > r_c$, {\tt mdrun} employs a smart algorithm to reduce
2938 the communication. Simply communicating all charge groups within
2939 $r_{\mathrm{mb}}$ would increase the amount of communication enormously.
2940 Therefore only charge-groups that are connected by bonded interactions
2941 to charge groups which are not locally present are communicated.
2942 This leads to little extra communication, but also to a slightly
2943 increased cost for the domain decomposition setup.
2944 In some cases, {\eg} coarse-grained simulations with a very short cut-off,
2945 one might want to set $r_{\mathrm{mb}}$ by hand to reduce this cost.
2947 \subsection{Multiple-Program, Multiple-Data PME parallelization\index{PME}}
2948 \label{subsec:mpmd_pme}
2949 Electrostatics interactions are long-range, therefore special
2950 algorithms are used to avoid summation over many atom pairs.
2951 In {\gromacs} this is usually
2952 % \ifthenelse{\equal{\gmxlite}{1}}
2954 {PME (\secref{pme}).}
2955 Since with PME all particles interact with each other, global communication
2956 is required. This will usually be the limiting factor for
2957 scaling with domain decomposition.
2958 To reduce the effect of this problem, we have come up with
2959 a Multiple-Program, Multiple-Data approach~\cite{Hess2008b}.
2960 Here, some ranks are selected to do only the PME mesh calculation,
2961 while the other ranks, called particle-particle (PP) ranks,
2962 do all the rest of the work.
2963 For rectangular boxes the optimal PP to PME rank ratio is usually 3:1,
2964 for rhombic dodecahedra usually 2:1.
2965 When the number of PME ranks is reduced by a factor of 4, the number
2966 of communication calls is reduced by about a factor of 16.
2967 Or put differently, we can now scale to 4 times more ranks.
2968 In addition, for modern 4 or 8 core machines in a network,
2969 the effective network bandwidth for PME is quadrupled,
2970 since only a quarter of the cores will be using the network connection
2971 on each machine during the PME calculations.
2973 \begin{figure}
2974 \centerline{\includegraphics[width=12cm]{plots/mpmd-pme}}
2975 \caption{
2976 Example of 8 ranks without (left) and with (right) MPMD.
2977 The PME communication (red arrows) is much higher on the left
2978 than on the right. For MPMD additional PP - PME coordinate
2979 and force communication (blue arrows) is required,
2980 but the total communication complexity is lower.
2981 \label{fig:mpmd_pme}
2983 \end{figure}
2985 {\tt mdrun} will by default interleave the PP and PME ranks.
2986 If the ranks are not number consecutively inside the machines,
2987 one might want to use {\tt mdrun -ddorder pp_pme}.
2988 For machines with a real 3-D torus and proper communication software
2989 that assigns the ranks accordingly one should use
2990 {\tt mdrun -ddorder cartesian}.
2992 To optimize the performance one should usually set up the cut-offs
2993 and the PME grid such that the PME load is 25 to 33\% of the total
2994 calculation load. {\tt grompp} will print an estimate for this load
2995 at the end and also {\tt mdrun} calculates the same estimate
2996 to determine the optimal number of PME ranks to use.
2997 For high parallelization it might be worthwhile to optimize
2998 the PME load with the {\tt mdp} settings and/or the number
2999 of PME ranks with the {\tt -npme} option of {\tt mdrun}.
3000 For changing the electrostatics settings it is useful to know
3001 the accuracy of the electrostatics remains nearly constant
3002 when the Coulomb cut-off and the PME grid spacing are scaled
3003 by the same factor.
3004 {\bf Note} that it is usually better to overestimate than to underestimate
3005 the number of PME ranks, since the number of PME ranks is smaller
3006 than the number of PP ranks, which leads to less total waiting time.
3008 The PME domain decomposition can be 1-D or 2-D along the $x$ and/or
3009 $y$ axis. 2-D decomposition is also known as \normindex{pencil decomposition} because of
3010 the shape of the domains at high parallelization.
3011 1-D decomposition along the $y$ axis can only be used when
3012 the PP decomposition has only 1 domain along $x$. 2-D PME decomposition
3013 has to have the number of domains along $x$ equal to the number of
3014 the PP decomposition. {\tt mdrun} automatically chooses 1-D or 2-D
3015 PME decomposition (when possible with the total given number of ranks),
3016 based on the minimum amount of communication for the coordinate redistribution
3017 in PME plus the communication for the grid overlap and transposes.
3018 To avoid superfluous communication of coordinates and forces
3019 between the PP and PME ranks, the number of DD cells in the $x$
3020 direction should ideally be the same or a multiple of the number
3021 of PME ranks. By default, {\tt mdrun} takes care of this issue.
3023 \subsection{Domain decomposition flow chart}
3024 In \figref{dd_flow} a flow chart is shown for domain decomposition
3025 with all possible communication for different algorithms.
3026 For simpler simulations, the same flow chart applies,
3027 without the algorithms and communication for
3028 the algorithms that are not used.
3030 \begin{figure}
3031 \centerline{\includegraphics[width=12cm]{plots/flowchart}}
3032 \caption{
3033 Flow chart showing the algorithms and communication (arrows)
3034 for a standard MD simulation with virtual sites, constraints
3035 and separate PME-mesh ranks.
3036 \label{fig:dd_flow}
3038 \end{figure}
3041 \section{Implicit solvation\index{implicit solvation}\index{Generalized Born methods}}
3042 \label{sec:gbsa}
3043 Implicit solvent models provide an efficient way of representing
3044 the electrostatic effects of solvent molecules, while saving a
3045 large piece of the computations involved in an accurate, aqueous
3046 description of the surrounding water in molecular dynamics simulations.
3047 Implicit solvation models offer several advantages compared with
3048 explicit solvation, including eliminating the need for the equilibration of water
3049 around the solute, and the absence of viscosity, which allows the protein
3050 to more quickly explore conformational space.
3052 Implicit solvent calculations in {\gromacs} can be done using the
3053 generalized Born-formalism, and the Still~\cite{Still97}, HCT~\cite{Truhlar96},
3054 and OBC~\cite{Case04} models are available for calculating the Born radii.
3056 Here, the free energy $G_{\mathrm{solv}}$ of solvation is the sum of three terms,
3057 a solvent-solvent cavity term ($G_{\mathrm{cav}}$), a solute-solvent van der
3058 Waals term ($G_{\mathrm{vdw}}$), and finally a solvent-solute electrostatics
3059 polarization term ($G_{\mathrm{pol}}$).
3061 The sum of $G_{\mathrm{cav}}$ and $G_{\mathrm{vdw}}$ corresponds to the (non-polar)
3062 free energy of solvation for a molecule from which all charges
3063 have been removed, and is commonly called $G_{\mathrm{np}}$,
3064 calculated from the total solvent accessible surface area
3065 multiplied with a surface tension.
3066 The total expression for the solvation free energy then becomes:
3068 \beq
3069 G_{\mathrm{solv}} = G_{\mathrm{np}} + G_{\mathrm{pol}}
3070 \label{eqn:gb_solv}
3071 \eeq
3073 Under the generalized Born model, $G_{\mathrm{pol}}$ is calculated from the generalized Born equation~\cite{Still97}:
3075 \beq
3076 G_{\mathrm{pol}} = \left(1-\frac{1}{\epsilon}\right) \sum_{i=1}^n \sum_{j>i}^n \frac {q_i q_j}{\sqrt{r^2_{ij} + b_i b_j \exp\left(\frac{-r^2_{ij}}{4 b_i b_j}\right)}}
3077 \label{eqn:gb_still}
3078 \eeq
3080 In {\gromacs}, we have introduced the substitution~\cite{Larsson10}:
3082 \beq
3083 c_i=\frac{1}{\sqrt{b_i}}
3084 \label{eqn:gb_subst}
3085 \eeq
3087 which makes it possible to introduce a cheap transformation to a new
3088 variable $x$ when evaluating each interaction, such that:
3090 \beq
3091 x=\frac{r_{ij}}{\sqrt{b_i b_j }} = r_{ij} c_i c_j
3092 \label{eqn:gb_subst2}
3093 \eeq
3095 In the end, the full re-formulation of~\ref{eqn:gb_still} becomes:
3097 \beq
3098 G_{\mathrm{pol}} = \left(1-\frac{1}{\epsilon}\right) \sum_{i=1}^n \sum_{j>i}^n \frac{q_i q_j}{\sqrt{b_i b_j}} ~\xi (x) = \left(1-\frac{1}{\epsilon}\right) \sum_{i=1}^n q_i c_i \sum_{j>i}^n q_j c_j~\xi (x)
3099 \label{eqn:gb_final}
3100 \eeq
3102 The non-polar part ($G_{\mathrm{np}}$) of Equation~\ref{eqn:gb_solv} is calculated
3103 directly from the Born radius of each atom using a simple ACE type
3104 approximation by Schaefer {\em et al.}~\cite{Karplus98}, including a
3105 simple loop over all atoms.
3106 This requires only one extra solvation parameter, independent of atom type,
3107 but differing slightly between the three Born radii models.
3109 % LocalWords: GROningen MAchine BIOSON Groningen GROMACS Berendsen der Spoel
3110 % LocalWords: Drunen Comp Phys Comm ROck NS FFT pbc EM ifthenelse gmxlite ff
3111 % LocalWords: octahedra triclinic Ewald PME PPPM trjconv xy solvated
3112 % LocalWords: boxtypes boxshapes editconf Lennard COM XTC TNG kT defunits
3113 % LocalWords: Boltzmann's Mueller nb int mdrun chargegroup simplerc prefactor
3114 % LocalWords: pme waterloops CH NH CO df com virial integrator Verlet vverlet
3115 % LocalWords: integrators ref timepoint timestep timesteps mdp md vv avek NVE
3116 % LocalWords: NVT off's leapfrogv lll LR rmfast SPC fs Nos physicality ps GMX
3117 % LocalWords: Tcoupling nonergodic thermostatting NOSEHOOVER algorithmes ij yx
3118 % LocalWords: Parrinello Rahman rescales atm anisotropically ccc xz zx yy yz
3119 % LocalWords: zy zz se barostat compressibilities MTTK NPT Martyna al isobaric
3120 % LocalWords: Tuckerman vir PV fkT iLt iL Liouville NHC Eq baro mu trj mol bc
3121 % LocalWords: freezegroup Shannon's polarizability Overhauser barostats iLn KE
3122 % LocalWords: negligibly thermostatted Tobias rhombic maxwell et xtc tng TC rlist
3123 % LocalWords: waals LINCS holonomic plincs lincs unc ang SA Langevin SD amu BD
3124 % LocalWords: bfgs Broyden Goldfarb Shanno mkT kJ DFLEXIBLE Nocedal diag nmeig
3125 % LocalWords: diagonalization anaeig nmens covanal ddg feia BT dp dq pV dV dA
3126 % LocalWords: NpT eq stepsize REMD constrainted website Okabe MPI covar edi dd
3127 % LocalWords: progman NMR ddcells innerloops ddtric tric dds rdd conf rcon est
3128 % LocalWords: mb PP MPMD ddorder pp cartesian grompp npme parallelizable edr
3129 % LocalWords: macromolecule nstlist vacuo parallelization dof indices MBAR AVX
3130 % LocalWords: TOL numerics parallelized eigenvectors dG parallelepipeds VdW np
3131 % LocalWords: Coul multi solvation HCT OBC solv cav vdw Schaefer symplectic dt
3132 % LocalWords: pymbar multinode subensemble Monte solute subst groupconcept GPU
3133 % LocalWords: dodecahedron octahedron dodecahedra equilibration usinggroups nm
3134 % LocalWords: topologies rlistlong CUDA GPUs rcoulomb SIMD BlueGene FPUs erfc
3135 % LocalWords: cutoffschemesupport unbuffered bondeds OpenMP ewald rtol
3136 % LocalWords: verletdrift peptide RMS rescaling ergodicity ergodic discretized
3137 % LocalWords: isothermal compressibility isotropically anisotropic iteratively
3138 % LocalWords: incompressible integrations translational biomolecules NMA PCA
3139 % LocalWords: Bennett's equilibrated Hamiltonians covariance equilibrate
3140 % LocalWords: inhomogeneous conformational online other's th