From 4347a4cde77eecd5b62f6df12a6db6cd9f9cea24 Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Fri, 13 Jun 2014 15:53:11 +0200 Subject: [PATCH] Manual fixes * updates for cut-off schemes * used more Roman fonts for abbreviations that are not algebraic * fixed layout and bounding boxes of figures * removed references to removed GROMACS-87 force fields * changed formatting of column of [moleculetype] parameter-listing table because we now have some interactions with really long names (and some consequent changes to how footnotes and labels have to work) * removed out-of-date appendix B section on Modifying GROMACS * fixed aspects of CHARMM description, including adding the second reference for nucleic acids, and adding a link to the CHARMM36 port Change-Id: Icb8c0a6087af282a653bb528d71f77e1bb04fae1 --- manual/algorithms.tex | 154 ++++++++++++++++------------ manual/forcefield.tex | 71 ++++++------- manual/implement.tex | 21 +--- manual/monster.bib | 15 +++ manual/plots/angle.eps | 211 ++++++++++++++++++++++++++++---------- manual/plots/dih.eps | 195 ++++++++++++++++++++++++----------- manual/plots/f-angle.eps | 83 +++++++++------ manual/plots/fbposres.eps | 105 +++++++++++-------- manual/topology.tex | 11 +- 9 files changed, 552 insertions(+), 314 deletions(-) diff --git a/manual/algorithms.tex b/manual/algorithms.tex index 51e925ba83..7439c6bccd 100644 --- a/manual/algorithms.tex +++ b/manual/algorithms.tex @@ -263,7 +263,7 @@ atoms to perform certain actions on. The maximum number of groups is 256, but each atom can only belong to six different groups, one each of the following: \begin{description} -\item[temperature-coupling group \swapindex{temperature-coupling}{group}] +\item[\swapindex{temperature-coupling}{group}] The \normindex{temperature coupling} parameters (reference temperature, time constant, number of degrees of freedom, see \ssecref{update}) can be defined for each T-coupling group @@ -362,7 +362,7 @@ is computed by calculating the force between non-bonded atom pairs: \\ $\ve{F}_i = \sum_j \ve{F}_{ij}$ \\ plus the forces due to bonded interactions (which may depend on 1, 2, 3, or 4 atoms), plus restraining and/or external forces. \\ -The potential and kinetic energies and the pressure tensor are computed. \\ +The potential and kinetic energies and the pressure tensor may be computed. \\ $\Downarrow$\\ {\bf 3. Update configuration} \\[1ex] The movement of the atoms is simulated by numerically solving Newton's @@ -496,7 +496,11 @@ buffer. There are some important differences that affect results, performance and feature support. The group scheme can be made to work (almost) like the Verlet scheme, but this will lead to a decrease in performance. The group scheme is especially fast for water molecules, -which are abundant in many simulations. +which are abundant in many simulations, but on the most recent x86 +processors, this advantage is negated by the better instruction-level +parallelism available in the Verlet-scheme implementation. The group +scheme is deprecated in version 5.0, and will be removed in a future +version. In the group scheme, a neighbor list is generated consisting of pairs of groups of at least one atom. These groups were originally @@ -529,22 +533,23 @@ The Verlet cut-off scheme uses a buffered pair list by default. It also uses clusters of atoms, but these are not static as in the group scheme. Rather, the clusters are defined spatially and consist of 4 or 8 atoms, which is convenient for stream computing, using e.g. SSE, AVX -or CUDA on GPUs. At neighbor search steps, an atom pair list (or -cluster pair list, but that's an implementation detail) is created -with a Verlet buffer. Thus the pair-list cut-off is larger than the +or CUDA on GPUs. At neighbor search steps, a pair list is created +with a Verlet buffer, ie. the pair-list cut-off is larger than the interaction cut-off. In the non-bonded force kernels, forces are only added when an atom pair is within the cut-off distance at that particular time step. This ensures that as atoms move between pair search steps, forces between nearly all atoms within the cut-off distance are calculated. We say {\em nearly} all atoms, because {\gromacs} uses a fixed pair list update frequency for -efficiency. There is a small chance that an atom pair distance is -decreased to within the cut-off in this fixed number of steps. This -small chance results in a small energy drift. When temperature +efficiency. An atom-pair, whose distance was outside the cut-off, +could possibly move enough during this fixed number of +steps that its distance is now within the cut-off. This +small chance results in a small energy drift, and the size of the +chance depends on the temperature. When temperature coupling is used, the buffer size can be determined automatically, -given a certain limit on the energy drift. +given a certain tolerance on the energy drift. -The Verlet scheme specific settings in the {\tt mdp} file are: +The {\tt mdp} file settings specific to the Verlet scheme are: \begin{verbatim} cutoff-scheme = Verlet verlet-buffer-tolerance = 0.005 @@ -554,11 +559,15 @@ by default set to 0.005 kJ/mol/ps pair energy error per atom. Note that errors in pair energies cancel and the effect on the total energy drift is usually at least an order of magnitude smaller than the tolerance. Furthermore, the drift of the total energy is affected by many other -factors, the constraint contribution is often the dominating one. -For constant energy (NVE) simulations, this drift should be set to -1 -and a buffer has to be set manually by specifying {\tt rlist} $>$ {\tt - rcoulomb}. The simplest way to get a reasonable buffer size is to -use an NVT {\tt mdp} file with the target temperature set to what you +factors; often, the contribution from the constraint algorithm dominates. + +For constant-energy (NVE) simulations, the buffer size will be +inferred from the temperature that corresponds to the velocities +(either those generated, if applicable, or those found in the input +configuration). Alternatively, the tolerance can be set to -1 and a +buffer set manually by specifying {\tt rlist} $>$ {\tt max(rcoulomb, + rvdw)}. The simplest way to get a reasonable buffer size is to use +an NVT {\tt mdp} file with the target temperature set to what you expect in your NVE simulation, and transfer the buffer size printed by {\tt grompp} to your NVE {\tt mdp} file. @@ -572,10 +581,10 @@ calculate all 16 particle-pair interactions at once, which maps nicely to SIMD units which can perform multiple floating operations at once (e.g. SSE, AVX, CUDA on GPUs, BlueGene FPUs). These non-bonded kernels are much faster than the kernels used in the group scheme for most -types of systems, except for water molecules when not using a buffered -pair list. This latter case is quite common for (bio-)molecular -simulations, so for greatest speed, it is worth comparing the -performance of both schemes. +types of systems, except for water molecules on processors with short +SIMD widths when not using a buffered pair list. This latter case is +common for (bio-)molecular simulations, so for greatest speed, it is +worth comparing the performance of both schemes. As the Verlet cut-off scheme was introduced in version 4.6, not all features of the group scheme are supported yet. The Verlet scheme @@ -589,18 +598,20 @@ given in \tabref{cutoffschemesupport}. \dline Non-bonded interaction feature & group & Verlet \\ \dline -unbuffered cut-off scheme & $\surd$ & \\ +unbuffered cut-off scheme & $\surd$ & not by default \\ exact cut-off & shift/switch & $\surd$ \\ shifted interactions & force+energy & energy \\ -switched forces & $\surd$ & \\ +switched potential & $\surd$ & $\surd$ \\ +switched forces & $\surd$ & $\surd$ \\ non-periodic systems & $\surd$ & Z + walls \\ implicit solvent & $\surd$ & \\ -free energy perturbed non-bondeds & $\surd$ & \\ +free energy perturbed non-bondeds & $\surd$ & $\surd$ \\ group energy contributions & $\surd$ & CPU (not on GPU) \\ energy group exclusions & $\surd$ & \\ AdResS multi-scale & $\surd$ & \\ OpenMP multi-threading & only PME & $\surd$ \\ native GPU support & & $\surd$ \\ +Lennard-Jones PME & $\surd$ & $\surd$ \\ \dline \end{tabular} } @@ -611,7 +622,7 @@ native GPU support & & $\surd$ \\ \ifthenelse{\equal{\gmxlite}{1}}{}{ \subsubsection{Energy drift and pair-list buffering} -For a canonical ensemble, the average energy error caused by the +For a canonical (NVT) ensemble, the average energy error caused by the finite Verlet buffer size can be determined from the atomic displacements and the shape of the potential at the cut-off. %Since we are interested in the small drift regime, we will assume @@ -753,17 +764,21 @@ don't move freely over 18 fs, but rather vibrate. \subsubsection{Cut-off artifacts and switched interactions} With the Verlet scheme, the pair potentials are shifted to be zero at -the cut-off, such that the potential is the integral of the force. -Note that in the group scheme this is not possible, because no exact -cut-off distance is used. There can still be energy drift from -non-zero forces at the cut-off. This effect is extremely small and -often not noticeable, as other integration errors may dominate. To +the cut-off, which makes the potential the integral of the force. +This is only possible in the group scheme if the shape of the potential +is such that its value is zero at the cut-off distance. +However, there can still be energy drift when the +forces are non-zero at the cut-off. This effect is extremely small and +often not noticeable, as other integration errors (e.g. from constraints) +may dominate. To completely avoid cut-off artifacts, the non-bonded forces can be switched exactly to zero at some distance smaller than the neighbor list cut-off (there are several ways to do this in {\gromacs}, see \secref{mod_nb_int}). One then has a buffer with the size equal to the -neighbor list cut-off less the longest interaction cut-off. With the -group cut-off scheme, one can then also choose to let {\tt mdrun} only +neighbor list cut-off less the longest interaction cut-off. + +With the +group cut-off scheme, one can also choose to let {\tt mdrun} only update the neighbor list when required. That is when one or more particles have moved more than half the buffer size from the center of geometry of the \swapindex{charge}{group} to which they belong (see @@ -773,8 +788,9 @@ This option guarantees that there are no cut-off artifacts. {\bf cost, since the neighbor list update frequency will be determined by just one or two particles moving slightly beyond the half buffer length (which not even necessarily implies that the neighbor list is -invalid), while 99.99\% of the particles are fine. } % Brace matches -ifthenelse test for gmxlite +invalid), while 99.99\% of the particles are fine. + +} % Brace matches ifthenelse test for gmxlite \subsubsection{Simple search\swapindexquiet{simple}{search}} Due to \eqnsref{box_rot}{simplerc}, the vector $\rvij$ @@ -833,12 +849,12 @@ of atoms with net charge zero, called charge groups, in and out of the neighbor list. This reduces the cut-off effects from the charge-charge level to the dipole-dipole level, which decay much faster. With the advent of full range electrostatics methods, -such as particle mesh Ewald (\secref{pme}), the use of charge groups is +such as particle-mesh Ewald (\secref{pme}), the use of charge groups is no longer required for accuracy. It might even have a slight negative effect on the accuracy or efficiency, depending on how the neighbor list is made and the interactions are calculated. -But there is still an important reason for using ``charge groups'': efficiency. +But there is still an important reason for using ``charge groups'': efficiency with the group cut-off scheme. Where applicable, neighbor searching is carried out on the basis of charge groups which are defined in the molecular topology. If the nearest image distance between the {\em @@ -856,6 +872,9 @@ of 3 to 4 atoms for optimal performance. For all-atom force fields this is relatively easy, as one can simply put hydrogen atoms, and in some case oxygen atoms, in the same charge group as the heavy atom they are connected to; for example: CH$_3$, CH$_2$, CH, NH$_2$, NH, OH, CO$_2$, CO. + +With the Verlet cut-off scheme, charge groups are ignored. + } % Brace matches ifthenelse test for gmxlite \subsection{Compute forces} @@ -877,39 +896,39 @@ E_{kin} = \half \sum_{i=1}^N m_i v_i^2 \eeq From this the absolute temperature $T$ can be computed using: \beq -\half N_{df} kT = E_{kin} +\half N_{\mathrm{df}} kT = E_{\mathrm{kin}} \label{eqn:E-T} \eeq where $k$ is Boltzmann's constant and $N_{df}$ is the number of degrees of freedom which can be computed from: \beq -N_{df} ~=~ 3 N - N_c - N_{com} +N_{\mathrm{df}} ~=~ 3 N - N_c - N_{\mathrm{com}} \eeq Here $N_c$ is the number of {\em \normindex{constraints}} imposed on the system. -When performing molecular dynamics $N_{com}=3$ additional degrees of +When performing molecular dynamics $N_{\mathrm{com}}=3$ additional degrees of freedom must be removed, because the three center-of-mass velocities are constants of the motion, which are usually set to zero. When simulating in vacuo, the rotation around the center of mass -can also be removed, in this case $N_{com}=6$. +can also be removed, in this case $N_{\mathrm{com}}=6$. When more than one temperature-coupling group\index{temperature-coupling group} is used, the number of degrees of freedom for group $i$ is: \beq -N^i_{df} ~=~ (3 N^i - N^i_c) \frac{3 N - N_c - N_{com}}{3 N - N_c} +N^i_{\mathrm{df}} ~=~ (3 N^i - N^i_c) \frac{3 N - N_c - N_{\mathrm{com}}}{3 N - N_c} \eeq The kinetic energy can also be written as a tensor, which is necessary for pressure calculation in a triclinic system, or systems where shear forces are imposed: \beq -{\bf E}_{kin} = \half \sum_i^N m_i \vvi \otimes \vvi +{\bf E}_{\mathrm{kin}} = \half \sum_i^N m_i \vvi \otimes \vvi \eeq \subsubsection{Pressure and virial} The \normindex{pressure} tensor {\bf P} is calculated from the difference between -kinetic energy $E_{kin}$ and the \normindex{virial} ${\bf \Xi}$: +kinetic energy $E_{\mathrm{kin}}$ and the \normindex{virial} ${\bf \Xi}$: \beq -{\bf P} = \frac{2}{V} ({\bf E}_{kin}-{\bf \Xi}) +{\bf P} = \frac{2}{V} ({\bf E}_{\mathrm{kin}}-{\bf \Xi}) \label{eqn:P} \eeq where $V$ is the volume of the computational box. @@ -2910,7 +2929,8 @@ of the domain decomposition cell can scale down by at least a factor of 0.8. For 3-D domain decomposition this allows cells to change their volume by about a factor of 0.5, which should allow for compensation of a load imbalance of 100\%. -The required scaling can be changed with the {\tt -dds} option of {\tt mdrun}. +The minimum allowed scaling can be changed with the {\tt -dds} +option of {\tt mdrun}. \subsection{Constraints in parallel\index{constraints}} \label{subsec:plincs} @@ -2960,11 +2980,11 @@ and their default values is given in \tabref{dd_ranges}. \dline interaction & range & option & default \\ \dline -non-bonded & $r_c$ = max($r_{list}$,$r_{VdW}$,$r_{Coul}$) & {\tt mdp} file & \\ -two-body bonded & max($r_{mb}$,$r_c$) & {\tt mdrun -rdd} & starting conf. + 10\% \\ -multi-body bonded & $r_{mb}$ & {\tt mdrun -rdd} & starting conf. + 10\% \\ -constraints & $r_{con}$ & {\tt mdrun -rcon} & est. from bond lengths \\ -virtual sites & $r_{con}$ & {\tt mdrun -rcon} & 0 \\ +non-bonded & $r_c$ = max($r_{\mathrm{list}}$,$r_{\mathrm{VdW}}$,$r_{\mathrm{Coul}}$) & {\tt mdp} file & \\ +two-body bonded & max($r_{\mathrm{mb}}$,$r_c$) & {\tt mdrun -rdd} & starting conf. + 10\% \\ +multi-body bonded & $r_{\mathrm{mb}}$ & {\tt mdrun -rdd} & starting conf. + 10\% \\ +constraints & $r_{\mathrm{con}}$ & {\tt mdrun -rcon} & est. from bond lengths \\ +virtual sites & $r_{\mathrm{con}}$ & {\tt mdrun -rcon} & 0 \\ \dline \end{tabular} } @@ -2976,13 +2996,13 @@ In most cases the defaults of {\tt mdrun} should not cause the simulation to stop with an error message of missing interactions. The range for the bonded interactions is determined from the distance between bonded charge-groups in the starting configuration, with 10\% added -for headroom. For the constraints, the value of $r_{con}$ is determined by +for headroom. For the constraints, the value of $r_{\mathrm{con}}$ is determined by taking the maximum distance that ({\tt lincs_order + 1}) bonds can cover when they all connect at angles of 120 degrees. -The actual constraint communication is not limited by $r_{con}$, +The actual constraint communication is not limited by $r_{\mathrm{con}}$, but by the minimum cell size $L_C$, which has the following lower limit: \beq -L_C \geq \max(r_{mb},r_{con}) +L_C \geq \max(r_{\mathrm{mb}},r_{\mathrm{con}}) \eeq Without dynamic load balancing the system is actually allowed to scale beyond this limit when pressure scaling is used. @@ -2992,15 +3012,15 @@ rather it is the shortest distance between the triclinic cells borders. For rhombic dodecahedra this is a factor of $\sqrt{3/2}$ shorter along $x$ and $y$. -When $r_{mb} > r_c$, {\tt mdrun} employs a smart algorithm to reduce +When $r_{\mathrm{mb}} > r_c$, {\tt mdrun} employs a smart algorithm to reduce the communication. Simply communicating all charge groups within -$r_{mb}$ would increase the amount of communication enormously. +$r_{\mathrm{mb}}$ would increase the amount of communication enormously. Therefore only charge-groups that are connected by bonded interactions to charge groups which are not locally present are communicated. This leads to little extra communication, but also to a slightly increased cost for the domain decomposition setup. In some cases, {\eg} coarse-grained simulations with a very short cut-off, -one might want to set $r_{mb}$ by hand to reduce this cost. +one might want to set $r_{\mathrm{mb}}$ by hand to reduce this cost. \subsection{Multiple-Program, Multiple-Data PME parallelization\index{PME}} \label{subsec:mpmd_pme} @@ -3111,27 +3131,27 @@ Implicit solvent calculations in {\gromacs} can be done using the generalized Born-formalism, and the Still~\cite{Still97}, HCT~\cite{Truhlar96}, and OBC~\cite{Case04} models are available for calculating the Born radii. -Here, the free energy $G_{solv}$ of solvation is the sum of three terms, -a solvent-solvent cavity term ($G_{cav}$), a solute-solvent van der -Waals term ($G_{vdw}$), and finally a solvent-solute electrostatics -polarization term ($G_{pol}$). +Here, the free energy $G_{\mathrm{solv}}$ of solvation is the sum of three terms, +a solvent-solvent cavity term ($G_{\mathrm{cav}}$), a solute-solvent van der +Waals term ($G_{\mathrm{vdw}}$), and finally a solvent-solute electrostatics +polarization term ($G_{\mathrm{pol}}$). -The sum of $G_{cav}$ and $G_{vdw}$ corresponds to the (non-polar) -free energy of solvation for a molecule from which all charges -have been removed, and is commonly called $G_{np}$, +The sum of $G_{\mathrm{cav}}$ and $G_{\mathrm{vdw}}$ corresponds to the (non-polar) +free energy of solvation for a molecule from which all charges +have been removed, and is commonly called $G_{\mathrm{np}}$, calculated from the total solvent accessible surface area multiplied with a surface tension. The total expression for the solvation free energy then becomes: \beq -G_{solv} = G_{np} + G_{pol} +G_{\mathrm{solv}} = G_{\mathrm{np}} + G_{\mathrm{pol}} \label{eqn:gb_solv} \eeq -Under the generalized Born model, $G_{pol}$ is calculated from the generalized Born equation~\cite{Still97}: +Under the generalized Born model, $G_{\mathrm{pol}}$ is calculated from the generalized Born equation~\cite{Still97}: \beq -G_{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)}} +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)}} \label{eqn:gb_still} \eeq @@ -3153,11 +3173,11 @@ x=\frac{r_{ij}}{\sqrt{b_i b_j }} = r_{ij} c_i c_j In the end, the full re-formulation of~\ref{eqn:gb_still} becomes: \beq -G_{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) +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) \label{eqn:gb_final} \eeq -The non-polar part ($G_{np}$) of Equation~\ref{eqn:gb_solv} is calculated +The non-polar part ($G_{\mathrm{np}}$) of Equation~\ref{eqn:gb_solv} is calculated directly from the Born radius of each atom using a simple ACE type approximation by Schaefer {\em et al.}~\cite{Karplus98}, including a simple loop over all atoms. diff --git a/manual/forcefield.tex b/manual/forcefield.tex index 205bc9c11d..ad6b965919 100644 --- a/manual/forcefield.tex +++ b/manual/forcefield.tex @@ -349,7 +349,7 @@ The modified Coulomb potential function is: See also \figref{shift}. \begin{figure} -\centerline{\includegraphics[angle=270,width=10cm]{plots/shiftf}} +\centerline{\includegraphics[width=10cm]{plots/shiftf}} \caption[The Coulomb Force, Shifted Force and Shift Function $S(r)$,.]{The Coulomb Force, Shifted Force and Shift Function $S(r)$, using r$_1$ = 2 and r$_c$ = 4.} @@ -390,7 +390,7 @@ The \swapindex{bond}{stretching} between two covalently bonded atoms $i$ and $j$ is represented by a harmonic potential: \begin{figure} -\centerline{\raisebox{4cm}{\includegraphics[angle=270,width=5cm]{plots/bstretch}}\includegraphics[width=7cm]{plots/f-bond}} +\centerline{\raisebox{2cm}{\includegraphics[width=5cm]{plots/bstretch}}\includegraphics[width=7cm]{plots/f-bond}} \caption[Bond stretching.]{Principle of bond stretching (left), and the bond stretching potential (right).} \label{fig:bstretch1} @@ -417,9 +417,9 @@ The corresponding force is: \ve{F}_i(\rvij) = k^b_{ij}(\rij^2-b_{ij}^2)~\rvij \eeq The force constants for this form of the potential are related to the usual -harmonic force constant $k^{b,harm}$ (\secref{bondpot}) as +harmonic force constant $k^{b,\mathrm{harm}}$ (\secref{bondpot}) as \beq -2 k^b b_{ij}^2 = k^{b,harm} +2 k^b b_{ij}^2 = k^{b,\mathrm{harm}} \eeq The force constants are mostly derived from the harmonic ones used in \gromosv{87}~\cite{biomos}. Although this form is computationally more @@ -534,7 +534,7 @@ The bond-\swapindex{angle}{vibration} between a triplet of atoms $i$ - $j$ - $k$ is also represented by a harmonic potential on the angle $\tijk$ \begin{figure} -\centerline{\raisebox{4cm}{\includegraphics[angle=270,width=5cm]{plots/angle}}\includegraphics[width=7cm]{plots/f-angle}} +\centerline{\raisebox{1cm}{\includegraphics[width=5cm]{plots/angle}}\includegraphics[width=7cm]{plots/f-angle}} \caption[Angle vibration.]{Principle of angle vibration (left) and the bond angle potential (right).} \label{fig:angle} @@ -576,10 +576,10 @@ where \eeq The corresponding force can be derived by partial differentiation with respect to the atomic positions. The force constants in this function are related -to the force constants in the harmonic form $k^{\theta,harm}$ +to the force constants in the harmonic form $k^{\theta,\mathrm{harm}}$ (\ssecref{harmonicangle}) by: \beq -k^{\theta} \sin^2(\tijk^0) = k^{\theta,harm} +k^{\theta} \sin^2(\tijk^0) = k^{\theta,\mathrm{harm}} \eeq In the \gromosv{96} manual there is a much more complicated conversion formula which is temperature dependent. The formulas are equivalent at 0 K @@ -708,8 +708,8 @@ aromatic rings) planar, or to prevent molecules from flipping over to their \normindex{mirror image}s, see \figref{imp}. \begin {figure} -\centerline{\includegraphics[angle=270,width=4cm]{plots/ring-imp}\hspace{1cm} -\includegraphics[angle=270,width=3cm]{plots/subst-im}\hspace{1cm}\includegraphics[angle=270,width=3cm]{plots/tetra-im}} +\centerline{\includegraphics[width=4cm]{plots/ring-imp}\hspace{1cm} +\includegraphics[width=3cm]{plots/subst-im}\hspace{1cm}\includegraphics[width=3cm]{plots/tetra-im}} \caption[Improper dihedral angles.]{Principle of improper dihedral angles. Out of plane bending for rings (left), substituents of rings (middle), out of tetrahedral (right). The improper dihedral @@ -772,7 +772,7 @@ when multiple parameters are defined for the same atomtypes in the {\tt [ dihedraltypes ]} section. \begin{figure} -\centerline{\raisebox{4.5cm}{\includegraphics[angle=270,width=5cm]{plots/dih}}\includegraphics[width=7cm]{plots/f-dih}} +\centerline{\raisebox{1cm}{\includegraphics[width=5cm]{plots/dih}}\includegraphics[width=7cm]{plots/f-dih}} \caption[Proper dihedral angle.]{Principle of proper dihedral angle (left, in {\em trans} form) and the dihedral angle potential (right).} \label{fig:pdihf} @@ -1377,7 +1377,7 @@ definition in your topology file, like in the following example: \begin{verbatim} [ distance_restraints ] -; ai aj type index type' low up1 up2 fac +; ai aj type index type' low up1 up2 fac 10 16 1 0 1 0.0 0.3 0.4 1.0 10 28 1 1 1 0.0 0.3 0.4 1.0 10 46 1 1 1 0.0 0.3 0.4 1.0 @@ -1912,7 +1912,7 @@ When soft core potentials are selected (by setting {\tt sc-alpha} \textgreater sequentially, then the Coulombic interaction is turned off linearly, rather than using soft core interactions, which should be less statistically noisy in most cases. This behavior can be overwritten -by using the mdp option {\tt sc-coul} to 'yes'. Additionally, the +by using the mdp option {\tt sc-coul} to {\tt yes}. Additionally, the soft-core interaction potential is only applied when either the A or B state has zero interaction potential. If both A and B states have nonzero interaction potential, default linear scaling described above @@ -1933,7 +1933,7 @@ r_A &=& \left(\alpha \sigma_A^{48} \LAM^p + r^{48} \right)^\frac{1}{48} r_B &=& \left(\alpha \sigma_B^{48} \LL^p + r^{48} \right)^\frac{1}{48} \eea This ``1-1-48'' path is also implemented in {\gromacs}. Note that for this path the soft core $\alpha$ -should satisfy $0.001 < \alpha < 0.003$,rather than $\alpha \approx +should satisfy $0.001 < \alpha < 0.003$, rather than $\alpha \approx 0.5$. %} % Brace matches ifthenelse test for gmxlite @@ -1956,7 +1956,7 @@ of atom {\bf i}; atoms {\bf i+1} and {\bf i+2} are called {\em \normindex{exclusions}} of atom {\bf i}. \begin{figure} -\centerline{\includegraphics[angle=270,width=8cm]{plots/chain}} +\centerline{\includegraphics[width=8cm]{plots/chain}} \caption{Atoms along an alkane chain.} \label{fig:chain} \end{figure} @@ -1985,14 +1985,16 @@ in most cases, acceptable, except when applying the cut-off implies the creation of charges, in which case you should consider using the lattice sum methods provided by {\gromacs}. -Consider a water molecule interacting with another atom. When we would apply -the cut-off on an atom-atom basis we might include the atom-oxygen +Consider a water molecule interacting with another atom. If we would apply +a plain cut-off on an atom-atom basis we might include the atom-oxygen interaction (with a charge of $-0.82$) without the compensating charge of the protons, and as a result, induce a large dipole moment over the system. Therefore, we have to keep groups of atoms with total charge -0 together. These groups are called {\em charge groups}. +0 together. These groups are called {\em charge groups}. Note that with +a proper treatment of long-range electrostatics (e.g. particle-mesh Ewald +(\secref{pme}), keeping charge groups together is not required. -\subsection{Treatment of Cut-offs\index{cut-off}} +\subsection{Treatment of Cut-offs in the group scheme\index{cut-off}} \newcommand{\rs}{$r_{short}$} \newcommand{\rl}{$r_{long}$} {\gromacs} is quite flexible in treating cut-offs, which implies @@ -2369,11 +2371,11 @@ crystals~\cite{Ewald21}. The idea is to convert the single slowly-converging sum \eqnref{totalcoulomb} into two quickly-converging terms and a constant term: \begin{eqnarray} -V &=& V_{dir} + V_{rec} + V_{0} \\[0.5ex] -V_{dir} &=& \frac{f}{2} \sum_{i,j}^{N} +V &=& V_{\mathrm{dir}} + V_{\mathrm{rec}} + V_{0} \\[0.5ex] +V_{\mathrm{dir}} &=& \frac{f}{2} \sum_{i,j}^{N} \sum_{n_x}\sum_{n_y} \sum_{n_{z}*} q_i q_j \frac{\mbox{erfc}(\beta {r}_{ij,{\bf n}} )}{{r}_{ij,{\bf n}}} \\[0.5ex] -V_{rec} &=& \frac{f}{2 \pi V} \sum_{i,j}^{N} q_i q_j +V_{\mathrm{rec}} &=& \frac{f}{2 \pi V} \sum_{i,j}^{N} q_i q_j \sum_{m_x}\sum_{m_y} \sum_{m_{z}*} \frac{\exp{\left( -(\pi {\bf m}/\beta)^2 + 2 \pi i {\bf m} \cdot ({\bf r}_i - {\bf r}_j)\right)}}{{\bf m}^2} \\[0.5ex] @@ -2665,11 +2667,11 @@ non-homogeneous outside of the cut-off distance, we can instead use the Particle-mesh Ewald method as discussed for electrostatics above. In this case the modified Ewald equations become \begin{eqnarray} -V &=& V_{dir} + V_{rec} + V_{0} \\[0.5ex] -V_{dir} &=& -\frac{1}{2} \sum_{i,j}^{N} +V &=& V_{\mathrm{dir}} + V_{\mathrm{rec}} + V_{0} \\[0.5ex] +V_{\mathrm{dir}} &=& -\frac{1}{2} \sum_{i,j}^{N} \sum_{n_x}\sum_{n_y} \sum_{n_{z}*} \frac{C_{ij}^{(6)}g(\beta {r}_{ij,{\bf n}})}{{r_{ij,{\bf n}}}^6} \\[0.5ex] -V_{rec} &=& \frac{{\pi}^{\frac{3}{2}} \beta^{3}}{2V} \sum_{m_x}\sum_{m_y}\sum_{m_{z}*} +V_{\mathrm{rec}} &=& \frac{{\pi}^{\frac{3}{2}} \beta^{3}}{2V} \sum_{m_x}\sum_{m_y}\sum_{m_{z}*} f(\pi |{\mathbf m}|/\beta) \times \sum_{i,j}^{N} C_{ij}^{(6)} {\mathrm{exp}}\left[-2\pi i {\bf m}\cdot({\bf r_i}-{\bf r_j})\right] \\[0.5ex] V_{0} &=& -\frac{\beta^{6}}{12}\sum_{i}^{N} C_{ii}^{(6)}, \end{eqnarray} @@ -2777,21 +2779,6 @@ select we recommend \gromosv{96} for united-atom setups and OPLS-AA/L for all-atom parameters. That said, we describe the available options in some detail. -\subsection{GROMOS87\index{GROMOS87 force field}} -The \gromosv{87} suite of programs and corresponding force -field~\cite{biomos} formed the basis for the development of {\gromacs} -in the early 1990s. The original GROMOS87 force field is not -available in {\gromacs}. In previous versions ($<$ 3.3.2) there used -to be the so-called ``{\gromacs} force field,'' which was based on -\gromosv{87}~\cite{biomos}\index{GROMOS87}, with a small modification -concerning the interaction between water oxygens and carbon -atoms~\cite{Buuren93b,Mark94}, as well as 10 extra atom -types~\cite{Jorgensen83,Buuren93a,Buuren93b,Mark94,Liu95}. - -Since version 5.0 this force field has been ``deprecated''. Should -you have a justifiable reason to use this force field please -use eariler versions of {\gromacs}. - \subsubsection{All-hydrogen force field} The \gromosv{87}-based all-hydrogen force field is almost identical to the normal \gromosv{87} force field, since the extra hydrogens have no @@ -2868,7 +2855,7 @@ of the blocks. {\bf Note} that all {\gromacs} programs can read compressed \subsection{AMBER\index{AMBER force field}} -As of version 4.5, {\gromacs} provides native support for the following AMBER force fields: +{\gromacs} provides native support for the following AMBER force fields: \begin{itemize} \item AMBER94~\cite{Cornell1995} @@ -2883,10 +2870,12 @@ As of version 4.5, {\gromacs} provides native support for the following AMBER fo \subsection{CHARMM\index{CHARMM force field}} \label{subsec:charmmff} -As of version 4.5, {\gromacs} supports the CHARMM27 force field for proteins~\cite{mackerell04, mackerell98}, lipids~\cite{feller00} and nucleic acids~\cite{foloppe00}. The protein parameters (and to some extent the lipid and nucleic acid parameters) were thoroughly tested -- both by comparing potential energies between the port and the standard parameter set in the CHARMM molecular simulation package, as well by how the protein force field behaves together with {\gromacs}-specific techniques such as virtual sites (enabling long time steps) and a fast implicit solvent recently implemented~\cite{Larsson10} -- and the details and results are presented in the paper by Bjelkmar et al.~\cite{Bjelkmar10}. The nucleic acid parameters, as well as the ones for HEME, were converted and tested by Michel Cuendet. +{\gromacs} supports the CHARMM force field for proteins~\cite{mackerell04, mackerell98}, lipids~\cite{feller00} and nucleic acids~\cite{foloppe00,Mac2000}. The protein parameters (and to some extent the lipid and nucleic acid parameters) were thoroughly tested -- both by comparing potential energies between the port and the standard parameter set in the CHARMM molecular simulation package, as well by how the protein force field behaves together with {\gromacs}-specific techniques such as virtual sites (enabling long time steps) and a fast implicit solvent recently implemented~\cite{Larsson10} -- and the details and results are presented in the paper by Bjelkmar et al.~\cite{Bjelkmar10}. The nucleic acid parameters, as well as the ones for HEME, were converted and tested by Michel Cuendet. When selecting the CHARMM force field in {\tt \normindex{pdb2gmx}} the default option is to use \normindex{CMAP} (for torsional correction map). To exclude CMAP, use {\tt -nocmap}. The basic form of the CMAP term implemented in {\gromacs} is a function of the $\phi$ and $\psi$ backbone torsion angles. This term is defined in the {\tt .rtp} file by a {\tt [ cmap ]} statement at the end of each residue supporting CMAP. The following five atom names define the two torsional angles. Atoms 1-4 define $\phi$, and atoms 2-5 define $\psi$. The corresponding atom types are then matched to the correct CMAP type in the {\tt cmap.itp} file that contains the correction maps. +A port of the CHARMM36 force field for use with GROMACS is also available at \url{http://mackerell.umaryland.edu/charmm_ff.shtml#gromacs}. + \subsection{Coarse-grained force-fields} \index{force-field, coarse-grained} \label{sec:cg-forcefields} diff --git a/manual/implement.tex b/manual/implement.tex index db6ecd24fc..2d70c6b625 100644 --- a/manual/implement.tex +++ b/manual/implement.tex @@ -1,7 +1,7 @@ % % This file is part of the GROMACS molecular simulation package. % -% Copyright (c) 2013, by the GROMACS development team, led by +% Copyright (c) 2013,2014, by the GROMACS development team, led by % Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, % and including many others, as listed in the AUTHORS file in the % top-level source directory and at http://www.gromacs.org. @@ -570,25 +570,6 @@ to the maximum accuracy. It is clear that only one iteration extra (in double precision) is needed for a double-precision result. -\section{Modifying GROMACS} -The following files have to be edited in case you want to add a bonded -potential of any type. -\begin{enumerate} -\item {\tt include/bondf.h} -\item {\tt include/types/idef.h} -\item {\tt include/types/nrnb.h} -\item {\tt include/types/enums.h} -\item {\tt include/grompp.h} -\item {\tt src/kernel/topdirs.c} -\item {\tt src/gmxlib/tpxio.c} -\item {\tt src/gmxlib/bondfree.c} -\item {\tt src/gmxlib/ifunc.c} -\item {\tt src/gmxlib/nrnb.c} -\item {\tt src/kernel/convparm.c} -\item {\tt src/kernel/topdirs.c} -\item {\tt src/kernel/topio.c} -\end{enumerate} - % LocalWords: Virial virial triclinic intra mol mshift shiftvec sqrt SPC lj yf % LocalWords: coul Fortran SGI AMD Raphson IEEE taylor epsr accy ieee yx fpdef % LocalWords: lsb nr inversef src formulae GROMACS diff --git a/manual/monster.bib b/manual/monster.bib index ab67fd6ad5..3c14898f4b 100644 --- a/manual/monster.bib +++ b/manual/monster.bib @@ -8676,3 +8676,18 @@ number = {7}, pages = {2887--2899}, year = 2013 } + +@article {Mac2000, +author = {MacKerell, Alexander D. and Banavali, Nilesh K.}, +title = {All-atom empirical force field for nucleic acids: {II.} Application to molecular dynamics simulations of {DNA} and {RNA} in solution}, +journal = BTjcc, +volume = {21}, +number = {2}, +publisher = {John Wiley & Sons, Inc.}, +issn = {1096-987X}, +url = {http://dx.doi.org/10.1002/(SICI)1096-987X(20000130)21:2<105::AID-JCC3>3.0.CO;2-P}, +doi = {10.1002/(SICI)1096-987X(20000130)21:2<105::AID-JCC3>3.0.CO;2-P}, +pages = {105--120}, +keywords = {CHARMM, force field, molecular dynamics, parametrization, DNA, RNA}, +year = {2000}, +} diff --git a/manual/plots/angle.eps b/manual/plots/angle.eps index 6122e911bf..e9f4771760 100644 --- a/manual/plots/angle.eps +++ b/manual/plots/angle.eps @@ -1,32 +1,81 @@ -%!PS-Adobe-2.0 EPSF -%%Title: /tmp/xfig-fig008452 -%%Creator: fig2dev -%%CreationDate: Thu Mar 9 17:17:56 1995 -%%For: spoel@rugmd17 (David van der Spoel,Room 17.14,4327) -%%BoundingBox: 0 0 99 180 -%%Pages: 0 +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: angle.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Fri Jun 13 15:51:52 2014 +%%BoundingBox: 0 0 191 105 +%Magnification: 1.0000 %%EndComments -/$F2psDict 200 dict def +%%BeginProlog +/$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def /l {lineto} bind def /m {moveto} bind def -/s {stroke} bind def +/rm {rmoveto} bind def /n {newpath} bind def -/gs {gsave} bind def -/gr {grestore} bind def -/clp {closepath} bind def -/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul -4 -2 roll mul setrgbcolor} bind def -/col-1 {} def -/col0 {0 0 0 setrgbcolor} bind def -/col1 {0 0 1 setrgbcolor} bind def -/col2 {0 1 0 setrgbcolor} bind def -/col3 {0 1 1 setrgbcolor} bind def -/col4 {1 0 0 setrgbcolor} bind def -/col5 {1 0 1 setrgbcolor} bind def -/col6 {1 1 0 setrgbcolor} bind def -/col7 {1 1 1 setrgbcolor} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def @@ -35,51 +84,103 @@ $F2psDict /mtrx matrix put /y exch def /x exch def /savematrix mtrx currentmatrix def - x y translate xrad yrad scale 0 0 1 startangle endangle arc + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath savematrix setmatrix } def - end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog +/pageheader { +save +newpath 0 105 moveto 0 0 lineto 191 0 lineto 191 105 lineto closepath clip newpath +-55.9 170.5 translate +1 -1 scale $F2psBegin -0 setlinecap 0 setlinejoin --63.0 -54.0 translate 90 rotate 0.900 -0.900 scale -0.500 setlinewidth -n 178.680 130.760 m 179.000 139.000 l 174.840 131.880 l gs 2 setlinejoin col-1 s gr -n 143.160 131.880 m 139.000 139.000 l 139.320 130.760 l gs 2 setlinejoin col-1 s gr -n 159.000 144.833 20.833 -163.741 -16.259 arc +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 0 +% Arc +7.500 slw +0 slc +gs clippath +2607 1994 m 2680 2127 l 2733 2098 l 2660 1965 l 2660 1965 l 2692 2085 l 2607 1994 l cp +2139 1965 m 2066 2098 l 2119 2127 l 2192 1994 l 2192 1994 l 2108 2085 l 2139 1965 l cp +eoclip +n 2400.0 2187.5 312.5 -163.7407 -16.2593 arc gs col-1 s gr + gr + +% arrowhead +0 slj +n 2139 1965 m 2108 2085 l 2192 1994 l col-1 s +% arrowhead +n 2607 1994 m 2692 2085 l 2660 1965 l col-1 s % Ellipse -n 239 79 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr +n 3600 1200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Ellipse -n 79 79 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr +n 1200 1200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Ellipse -n 159 169 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr -2.000 setlinewidth +n 2400 2550 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Polyline -n 84 84 m 154 169 l gs col-1 s gr +30.000 slw +n 1275 1275 m + 2325 2550 l gs col-1 s gr % Polyline -n 164 169 m 234 84 l gs col-1 s gr -0.500 setlinewidth +n 2475 2550 m + 3525 1275 l gs col-1 s gr % Polyline -n 79 79 m 59 99 l gs col-1 s gr -n 66.071 94.757 m 59.000 99.000 l 63.243 91.929 l gs 2 setlinejoin col-1 s gr +7.500 slw +gs clippath +975 1381 m 868 1489 l 910 1531 l 1018 1424 l 1018 1424 l 912 1488 l 975 1381 l cp +eoclip +n 1200 1200 m + 900 1500 l gs col-1 s gr gr + +% arrowhead +n 975 1381 m 912 1488 l 1018 1424 l col-1 s % Polyline -n 239 79 m 259 99 l gs col-1 s gr -n 254.757 91.929 m 259.000 99.000 l 251.929 94.757 l gs 2 setlinejoin col-1 s gr +gs clippath +3781 1424 m 3889 1531 l 3931 1489 l 3824 1381 l 3824 1381 l 3888 1488 l 3781 1424 l cp +eoclip +n 3600 1200 m + 3900 1500 l gs col-1 s gr gr + +% arrowhead +n 3781 1424 m 3888 1488 l 3824 1381 l col-1 s % Polyline -n 159 169 m 159 139 l gs col-1 s gr -n 157.000 147.000 m 159.000 139.000 l 161.000 147.000 l gs 2 setlinejoin col-1 s gr -/Symbol findfont 18.00 scalefont setfont -149 109 m -gs 1 -1 scale (q) col-1 show gr -/Helvetica findfont 16.00 scalefont setfont -159 114 m -gs 1 -1 scale (0) col-1 show gr -$F2psEnd +gs clippath +2430 2237 m 2430 2085 l 2370 2085 l 2370 2237 l 2370 2237 l 2400 2117 l 2430 2237 l cp +eoclip +n 2400 2550 m + 2400 2100 l gs col-1 s gr gr + +% arrowhead +n 2430 2237 m 2400 2117 l 2370 2237 l col-1 s +/Symbol ff 285.75 scf sf +2250 1650 m +gs 1 -1 sc (q) col-1 sh gr +/Helvetica ff 254.00 scf sf +2400 1725 m +gs 1 -1 sc (0) col-1 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/manual/plots/dih.eps b/manual/plots/dih.eps index 119e0dfaff..b8d6be93aa 100644 --- a/manual/plots/dih.eps +++ b/manual/plots/dih.eps @@ -1,32 +1,81 @@ -%!PS-Adobe-2.0 EPSF -%%Title: /tmp/xfig-fig028754 -%%Creator: fig2dev -%%CreationDate: Mon Nov 21 16:29:31 1994 -%%For: spoel@rugmd17 (David van der Spoel,Room 17.14,4327) -%%BoundingBox: 0 0 146 224 -%%Pages: 0 +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: dih.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Fri Jun 13 15:56:50 2014 +%%BoundingBox: 0 0 237 150 +%Magnification: 1.0000 %%EndComments -/$F2psDict 200 dict def +%%BeginProlog +/$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def /l {lineto} bind def /m {moveto} bind def -/s {stroke} bind def +/rm {rmoveto} bind def /n {newpath} bind def -/gs {gsave} bind def -/gr {grestore} bind def -/clp {closepath} bind def -/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul -4 -2 roll mul setrgbcolor} bind def -/col-1 {} def -/col0 {0 0 0 setrgbcolor} bind def -/col1 {0 0 1 setrgbcolor} bind def -/col2 {0 1 0 setrgbcolor} bind def -/col3 {0 1 1 setrgbcolor} bind def -/col4 {1 0 0 setrgbcolor} bind def -/col5 {1 0 1 setrgbcolor} bind def -/col6 {1 1 0 setrgbcolor} bind def -/col7 {1 1 1 setrgbcolor} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def @@ -35,55 +84,85 @@ $F2psDict /mtrx matrix put /y exch def /x exch def /savematrix mtrx currentmatrix def - x y translate xrad yrad scale 0 0 1 startangle endangle arc + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath savematrix setmatrix } def - end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog +/pageheader { +save +newpath 0 150 moveto 0 0 lineto 237 0 lineto 237 150 lineto closepath clip newpath +-65.6 170.5 translate +1 -1 scale $F2psBegin -0 setlinecap 0 setlinejoin --16.0 -63.0 translate 90 rotate 0.900 -0.900 scale -1.000 setlinewidth -n 173.167 99.000 20.833 73.741 -73.741 arcn +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 0 +% Arc +15.000 slw +0 slc +n 2612.5 1500.0 312.5 73.7407 -73.7407 arcn gs col-1 s gr -0.500 setlinewidth + % Ellipse -n 79 169 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr +7.500 slw +n 1200 2550 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Ellipse -n 119 99 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr +n 1800 1500 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Ellipse -n 239 99 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr +n 3600 1500 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Ellipse -n 299 39 10 10 0 360 DrawEllipse gs 0.00 setgray fill gr -gs col-1 s gr -1.000 setlinewidth +n 4500 600 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr + % Polyline -n 114 109 m 79 169 l gs col-1 s gr +0 slj +15.000 slw +n 1725 1650 m + 1200 2550 l gs col-1 s gr % Polyline -n 129 99 m 229 99 l gs col-1 s gr +n 1950 1500 m + 3450 1500 l gs col-1 s gr % Polyline -n 249 94 m 294 49 l gs col-1 s gr +n 3750 1425 m + 4425 750 l gs col-1 s gr % Polyline -n 179 79 m 189 79 l gs col-1 s gr +n 2700 1200 m + 2850 1200 l gs col-1 s gr % Polyline -n 179 79 m 184 84 l gs col-1 s gr -/Helvetica-Bold findfont 14.00 scalefont setfont -139 89 m -gs 1 -1 scale (j) col-1 show gr -/Helvetica-Bold findfont 14.00 scalefont setfont -259 114 m -gs 1 -1 scale (k) col-1 show gr -/Helvetica-Bold findfont 14.00 scalefont setfont -314 34 m -gs 1 -1 scale (l) col-1 show gr -/Helvetica-Bold findfont 14.00 scalefont setfont -94 174 m -gs 1 -1 scale (i) col-1 show gr -$F2psEnd +n 2700 1200 m + 2775 1275 l gs col-1 s gr +/Helvetica-Bold ff 222.25 scf sf +2100 1350 m +gs 1 -1 sc (j) col-1 sh gr +/Helvetica-Bold ff 222.25 scf sf +3900 1725 m +gs 1 -1 sc (k) col-1 sh gr +/Helvetica-Bold ff 222.25 scf sf +4725 525 m +gs 1 -1 sc (l) col-1 sh gr +/Helvetica-Bold ff 222.25 scf sf +1425 2625 m +gs 1 -1 sc (i) col-1 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/manual/plots/f-angle.eps b/manual/plots/f-angle.eps index c237ec2f60..aa43a8a884 100644 --- a/manual/plots/f-angle.eps +++ b/manual/plots/f-angle.eps @@ -1,15 +1,27 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: (atend) +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 23 19 566 779 +%%HiResBoundingBox: 23.000000 19.000000 566.000000 779.000000 %%LanguageLevel: 2 -%%Creator: Grace-5.1.14 -%%CreationDate: Thu Mar 30 17:18:42 2006 +%%Creator: Grace-5.1.23 +%%CreationDate: Fri Jun 13 15:46:08 2014 %%DocumentData: Clean8Bit -%%Orientation: Portrait -%%Title: f_angle.xvg -%%For: spoel -%%DocumentNeededResources: (atend) +%%PageOrder: Ascend +%%Title: manual/plots/f-angle.xvg +%%For: marklocal %%EndComments +% EPSF created by ps2eps 1.68 %%BeginProlog +save +countdictstack +mark +newpath +/showpage {} def +/setpagedevice {pop} def +%%EndProlog +%%Page 1 1 +%%BeginProlog +/PAGE_OFFSET_X 0 def +/PAGE_OFFSET_Y 0 def /m {moveto} def /l {lineto} def /s {stroke} def @@ -45,6 +57,9 @@ /Color13 {0.4039 0.0275 0.2824} def /Color14 {0.2510 0.8784 0.8157} def /Color15 {0.0000 0.5451 0.0000} def +/Color16 {0.7529 0.7529 0.7529} def +/Color17 {0.5059 0.5059 0.5059} def +/Color18 {0.2588 0.2588 0.2588} def /PTRN { /pat_bits exch def << @@ -391,8 +406,12 @@ ellipsedict /mtrx matrix put ] def %%EndProlog %%BeginSetup -612.00 612.00 scale %%EndSetup +%%Page: 1 1 +PAGE_OFFSET_X PAGE_OFFSET_Y translate +612.00 612.00 scale +90 rotate +0.0 -1.0 translate n 0.0000 0.0000 m 0.0000 1.0000 l @@ -696,40 +715,40 @@ dup length dict begin /Encoding DefEncoding def currentdict end -/Font4 exch definefont pop -/Font4 FFSF +/Font16 exch definefont pop +/Font16 FFSF 0.1220 0.1157 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (100) show GR -/Font4 FFSF +/Font16 FFSF 0.3957 0.1157 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (110) show GR -/Font4 FFSF +/Font16 FFSF 0.6695 0.1157 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (120) show GR -/Font4 FFSF +/Font16 FFSF 0.9433 0.1157 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (130) show GR -/Font4 FFSF +/Font16 FFSF 1.2171 0.1157 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (140) show GR /Symbol findfont -/Font12 exch definefont pop -/Font12 FFSF +/Font37 exch definefont pop +/Font37 FFSF 0.6876 0.0763 m GS [0.0414 0.0000 0.0000 0.0414 0 0] CC @@ -831,67 +850,67 @@ n 1.2451 0.9500 m 1.2251 0.9500 l s -/Font4 FFSF +/Font16 FFSF 0.1224 0.1382 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (0) show GR -/Font4 FFSF +/Font16 FFSF 0.1031 0.2982 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (10) show GR -/Font4 FFSF +/Font16 FFSF 0.1031 0.4582 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (20) show GR -/Font4 FFSF +/Font16 FFSF 0.1031 0.6182 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (30) show GR -/Font4 FFSF +/Font16 FFSF 0.1031 0.7782 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (40) show GR -/Font4 FFSF +/Font16 FFSF 0.1031 0.9382 m GS [0.0344 0.0000 0.0000 0.0344 0 0] CC (50) show GR -/Font4 FFSF +/Font16 FFSF 0.0762 0.4263 m GS [0.0000 0.0414 -0.0414 0.0000 0 0] CC (V) show GR -/Font12 FFSF +/Font37 FFSF 0.0927 0.4537 m GS [0.0000 0.0293 -0.0293 0.0000 0 0] CC (q) show GR -/Font4 FFSF +/Font16 FFSF 0.0762 0.4690 m GS [0.0000 0.0414 -0.0414 0.0000 0 0] CC ( \(kJ mole) show GR -/Font4 FFSF +/Font16 FFSF 0.0513 0.6373 m GS [0.0000 0.0293 -0.0293 0.0000 0 0] CC (-1) show GR -/Font4 FFSF +/Font16 FFSF 0.0762 0.6631 m GS [0.0000 0.0414 -0.0414 0.0000 0 0] CC @@ -905,8 +924,14 @@ n 0.1500 0.1500 l c s +showpage +%%PageTrailer %%Trailer -%%BoundingBox: 17 45 781 591 %%DocumentNeededResources: font Helvetica %%+ font Symbol +%%Trailer +cleartomark +countdictstack +exch sub { end } repeat +restore %%EOF diff --git a/manual/plots/fbposres.eps b/manual/plots/fbposres.eps index e576b2226f..449b24b46b 100644 --- a/manual/plots/fbposres.eps +++ b/manual/plots/fbposres.eps @@ -1,15 +1,27 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: (atend) +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 179 53 432 703 +%%HiResBoundingBox: 179.000000 53.500000 431.500000 702.500000 %%LanguageLevel: 2 -%%Creator: Grace-5.1.22 -%%CreationDate: Fri Mar 9 09:37:59 2012 +%%Creator: Grace-5.1.23 +%%CreationDate: Fri Jun 13 16:01:20 2014 %%DocumentData: Clean8Bit -%%Orientation: Portrait -%%Title: fbposres.xvg -%%For: jhub -%%DocumentNeededResources: (atend) +%%PageOrder: Ascend +%%Title: manual/plots/fbposres.xvg +%%For: marklocal %%EndComments +% EPSF created by ps2eps 1.68 %%BeginProlog +save +countdictstack +mark +newpath +/showpage {} def +/setpagedevice {pop} def +%%EndProlog +%%Page 1 1 +%%BeginProlog +/PAGE_OFFSET_X 0 def +/PAGE_OFFSET_Y 0 def /m {moveto} def /l {lineto} def /s {stroke} def @@ -52,6 +64,9 @@ /Color20 {0.5882 0.5882 1.0000} def /Color21 {0.0000 0.6275 0.0000} def /Color22 {0.0000 0.7059 0.0000} def +/Color23 {0.7529 0.7529 0.7529} def +/Color24 {0.5059 0.5059 0.5059} def +/Color25 {0.2588 0.2588 0.2588} def /PTRN { /pat_bits exch def << @@ -399,7 +414,11 @@ ellipsedict /mtrx matrix put %%EndProlog %%BeginSetup %%EndSetup +%%Page: 1 1 +PAGE_OFFSET_X PAGE_OFFSET_Y translate 612.00 612.00 scale +90 rotate +0.0 -1.0 translate n 0.0000 0.0000 m 0.0000 1.0000 l @@ -596,38 +615,38 @@ dup length dict begin /Encoding DefEncoding def currentdict end -/Font4 exch definefont pop -/Font4 FFSF +/Font16 exch definefont pop +/Font16 FFSF 0.1427 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (-1) show GR -/Font4 FFSF +/Font16 FFSF 0.2453 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (-0.5) show GR -/Font4 FFSF +/Font16 FFSF 0.3706 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0) show GR -/Font4 FFSF +/Font16 FFSF 0.4746 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0.5) show GR -/Font4 FFSF +/Font16 FFSF 0.5981 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (1) show GR -/Font4 FFSF +/Font16 FFSF 0.3499 0.2994 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC @@ -737,44 +756,44 @@ n 0.6019 0.7000 m 0.5819 0.7000 l s -/Font4 FFSF +/Font16 FFSF 0.1294 0.3746 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0) show GR -/Font4 FFSF +/Font16 FFSF 0.1176 0.4382 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (10) show GR -/Font4 FFSF +/Font16 FFSF 0.1176 0.5018 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (20) show GR -/Font4 FFSF +/Font16 FFSF 0.1176 0.5655 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (30) show GR -/Font4 FFSF +/Font16 FFSF 0.1176 0.6291 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (40) show GR -/Font4 FFSF +/Font16 FFSF 0.1176 0.6927 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (50) show GR -/Font4 FFSF -0.1033 0.4691 m +/Font16 FFSF +0.1029 0.4691 m GS [0.0000 0.0210 -0.0210 0.0000 0 0] CC (V\(r\) [kJ/mol]) show @@ -969,37 +988,37 @@ n 1.1441 0.7000 m 1.1441 0.6800 l s -/Font4 FFSF +/Font16 FFSF 0.6850 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (-1) show GR -/Font4 FFSF +/Font16 FFSF 0.7876 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (-0.5) show GR -/Font4 FFSF +/Font16 FFSF 0.9129 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0) show GR -/Font4 FFSF +/Font16 FFSF 1.0168 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0.5) show GR -/Font4 FFSF +/Font16 FFSF 1.1404 0.3251 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (1) show GR -/Font4 FFSF +/Font16 FFSF 0.8921 0.2994 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC @@ -1109,37 +1128,37 @@ n 1.1441 0.7000 m 1.1241 0.7000 l s -/Font4 FFSF +/Font16 FFSF 0.6717 0.3746 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (0) show GR -/Font4 FFSF +/Font16 FFSF 0.6599 0.4382 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (10) show GR -/Font4 FFSF +/Font16 FFSF 0.6599 0.5018 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (20) show GR -/Font4 FFSF +/Font16 FFSF 0.6599 0.5655 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (30) show GR -/Font4 FFSF +/Font16 FFSF 0.6599 0.6291 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC (40) show GR -/Font4 FFSF +/Font16 FFSF 0.6599 0.6927 m GS [0.0210 0.0000 0.0000 0.0210 0 0] CC @@ -1167,31 +1186,37 @@ n 0.4669 0.4449 l 0.4569 0.4499 l s -/Font4 FFSF +/Font16 FFSF 0.3407 0.4816 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (2 r) show GR -/Font4 FFSF +/Font16 FFSF 0.3732 0.4704 m GS [0.0198 0.0000 0.0000 0.0198 0 0] CC (fb) show GR -/Font4 FFSF +/Font16 FFSF 0.2169 0.6348 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (A) show GR -/Font4 FFSF +/Font16 FFSF 0.7475 0.6324 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (B) show GR +showpage +%%PageTrailer %%Trailer -%%BoundingBox: 52 179 704 435 %%DocumentNeededResources: font Helvetica +%%Trailer +cleartomark +countdictstack +exch sub { end } repeat +restore %%EOF diff --git a/manual/topology.tex b/manual/topology.tex index c5638116b5..35e4e821ce 100644 --- a/manual/topology.tex +++ b/manual/topology.tex @@ -1190,7 +1190,7 @@ in \tabref{topfile2}} \\ \newcommand{\ttss}{\tt \scriptsize} \begin{landscape} -\begin{longtable}{|l|lcc>{\raggedright}p{2.5in}cc|} +\begin{longtable}{|p{1.8in}|lcc>{\raggedright}p{2.5in}cc|} \caption{Details of {\tt [~moleculetype~]} directives}\\ \dline Name of interaction & Topology file directive & num. & func. & Order of parameters and their units & use in & Cross- \\ @@ -1199,8 +1199,11 @@ Name of interaction & Topology file directive & num. & fu \endhead \dline \endfoot -\label{tab:topfile2}\footnotetext[1]{The required number of atom indices for this directive}\footnotetext[2]{The index to use to select this function type}\footnotetext[3]{Indicates which of the parameters for this interaction can be interpolated during free energy calculations}\footnotetext[4]{This interaction type will be used by {{\tts grompp}} for generating exclusions}\footnotetext[5]{This interaction type can be converted to constraints by {{\tts grompp}}}\footnotetext[7]{The combination rule determines the type of LJ parameters, see~\ssecref{nbpar}}\footnotetext[6]{No connection, and so no exclusions, are generated for this interaction}bond - & {\tts bonds}\fnm{4},\fnm{5} & 2 & 1 & $b_0$ (nm); $k_b$ (\kJmolnm{-2}) & all & \ssecref{harmonicbond} \\ +% The footnotetext fields only work inside the body, and not from a +% column with ``p'' formatting'! +bond & {\tts bonds}\fnm{4},\fnm{5} & 2 & 1 & $b_0$ (nm); $k_b$ (\kJmolnm{-2}) & all & \ssecref{harmonicbond} +\label{tab:topfile2} \footnotetext[1]{The required number of atom indices for this directive}\footnotetext[2]{The index to use to select this function type}\footnotetext[3]{Indicates which of the parameters for this interaction can be interpolated during free energy calculations}\footnotetext[4]{This interaction type will be used by {{\tts grompp}} for generating exclusions}\footnotetext[5]{This interaction type can be converted to constraints by {{\tts grompp}}}\footnotetext[7]{The combination rule determines the type of LJ parameters, see~\ssecref{nbpar}}\footnotetext[6]{No connection, and so no exclusions, are generated for this interaction} +\\ G96 bond & {\tts bonds}\fnm{4},\fnm{5} & 2 & 2 & $b_0$ (nm); $k_b$ (\kJmolnm{-4}) & all & \ssecref{G96bond} \\ Morse & {\tts bonds}\fnm{4},\fnm{5} & 2 & 3 & $b_0$ (nm); $D$ (\kJmol); $\beta$ (nm$^{-1}$) & all & \ssecref{Morsebond} \\ cubic bond & {\tts bonds}\fnm{4},\fnm{5} & 2 & 4 & $b_0$ (nm); $C_{i=2,3}$ (\kJmolnm{-i}) & & \ssecref{cubicbond} \\ @@ -1863,7 +1866,7 @@ tensor, not a vector. \label{subsec:fffiles} Many force fields are available by default. Force fields are detected by the presence of {\tt .ff} directories -in the {\gromacs} {\tt /share/top} sub-directory and/or the working directory. +in the {\tt \$GMXLIB/share/gromacs/top} sub-directory and/or the working directory. The information regarding the location of the force field files is printed by {\tt pdb2gmx} so you can easily keep track of which version of a force field is being called, in case you have made modifications in one location or another. -- 2.22.0