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