1. Get the latest version of your C and C++ compilers.
2. Check that you have CMake version |CMAKE_MINIMUM_REQUIRED_VERSION| or later.
3. Get and unpack the latest version of the |Gromacs| tarball.
-4. Make a separate build directory and change to it.
+4. Make a separate build directory and change to it.
5. Run ``cmake`` with the path to the source as an argument
6. Run ``make``, ``make check``, and ``make install``
7. Source ``GMXRC`` to get access to |Gromacs|
* ``-DCMAKE_PREFIX_PATH=xxx`` to add a non-standard location for CMake to `search for libraries, headers or programs`_
* ``-DCMAKE_INSTALL_PREFIX=xxx`` to install |Gromacs| to a `non-standard location`_ (default ``/usr/local/gromacs``)
* ``-DBUILD_SHARED_LIBS=off`` to turn off the building of shared libraries to help with `static linking`_
-* ``-DGMX_FFT_LIBRARY=xxx`` to select whether to use ``fftw``, ``mkl`` or ``fftpack`` libraries for `FFT support`_
+* ``-DGMX_FFT_LIBRARY=xxx`` to select whether to use ``fftw3``, ``mkl`` or ``fftpack`` libraries for `FFT support`_
* ``-DCMAKE_BUILD_TYPE=Debug`` to build |Gromacs| in debug mode
Building older versions
transforms, and a software library to perform these is always
required. We recommend FFTW_ (version 3 or higher only) or Intel
MKL_. The choice of library can be set with ``cmake
--DGMX_FFT_LIBRARY=<name>``, where ``<name>`` is one of ``fftw``,
+-DGMX_FFT_LIBRARY=<name>``, where ``<name>`` is one of ``fftw3``,
``mkl``, or ``fftpack``. FFTPACK is bundled with |Gromacs| as a
fallback, and is acceptable if simulation performance is not a
priority. When choosing MKL, |Gromacs| will also use MKL for BLAS and
source already.
* zlib is used by TNG for compressing some kinds of trajectory data
* Building the |Gromacs| documentation is optional, and requires
- ImageMagick, pdflatex, bibtex, doxygen, python 2.7, sphinx
+ ImageMagick, pdflatex, bibtex, doxygen, python 2.7, sphinx
|EXPECTED_SPHINX_VERSION|, and pygments.
* The |Gromacs| utility programs often write data files in formats
suitable for the Grace plotting tool, but it is straightforward to
use these files in other plotting programs, too.
-
+
Doing a build of |Gromacs|
--------------------------
every single possible architecture, which in rare cases (say, Tegra systems)
can result in the default build not being able to use some GPUs.
If this happens, or if you want to remove some architectures to reduce
-binary size and build time, you can alter the target CUDA architectures.
+binary size and build time, you can alter the target CUDA architectures.
This can be done either with the ``GMX_CUDA_TARGET_SM`` or
``GMX_CUDA_TARGET_COMPUTE`` CMake variables, which take a semicolon delimited
string with the two digit suffixes of CUDA (virtual) architectures names, for
It will detect what kind of shell you are running and set up your
environment for using |Gromacs|. You may wish to arrange for your
login scripts to do this automatically; please search the web for
-instructions on how to do this for your shell.
+instructions on how to do this for your shell.
Many of the |Gromacs| programs rely on data installed in the
``share/gromacs`` subdirectory of the installation directory. By
----------------------------
The Verlet scheme is enabled by default with option :mdp:`cutoff-scheme`.
-The value of [.mdp] option :mdp:`verlet-buffer-tolerance` will add a
+The value of :ref:`mdp` option :mdp:`verlet-buffer-tolerance` will add a
pair-list buffer whose size is tuned for the given energy drift (in
kJ/mol/ns per particle). The effective drift is usually much lower, as
:ref:`gmx grompp` assumes constant particle velocities. (Note that in single
the larger of :mdp:`rcoulomb` and :mdp:`rvdw`. The simplest way to get a
reasonable buffer size is to use an NVT mdp file with the target
temperature set to what you expect in your NVE simulation, and
-transfer the buffer size printed by :ref:`gmx grompp` to your NVE [.mdp] file.
+transfer the buffer size printed by :ref:`gmx grompp` to your NVE :ref:`mdp` file.
When a GPU is used, nstlist is automatically increased by :ref:`gmx mdrun`,
usually to 20 or more; rlist is increased along to stay below the
------------------------------------------
#. Do I need to compile all utilities with MPI?
-
+
With one rarely-used exception (:ref:`pme_error <gmx pme_error>`), only the
:ref:`mdrun <gmx mdrun>` binary is able to use the :ref:`MPI <mpi-support>`
parallelism. So you only need to use the ``-DGMX_MPI=on`` flag
#. Where can I find a solvent :ref:`coordinate file <gmx-structure-files>` for use with :ref:`solvate <gmx solvate>`?
- Suitable equilibrated boxes of solvent :ref:`structure files <gmx-structure-files>` can be found
+ Suitable equilibrated boxes of solvent :ref:`structure files <gmx-structure-files>` can be found
in the ``$GMXDIR/share/gromacs/top`` directory. That location will be searched by default
by :ref:`solvate <gmx solvate>`, for example by using ``-cs spc216.gro`` as an argument.
Other solvent boxes can be prepared by the user as described
You don't need to prepare additional files if you already have all :ref:`itp` and :ref:`top` files prepared through other tools.
- Examples for those are `CHARMM-GUI <http://www.charmm-gui.org/>`__, `ATB (Automated Topology Builder <https://atb.uq.edu.au/>`__,
+ Examples for those are `CHARMM-GUI <http://www.charmm-gui.org/>`__, `ATB (Automated Topology Builder) <https://atb.uq.edu.au/>`__,
`pmx <http://pmx.mpibpc.mpg.de/instructions.html>`__. and `PRODRG <http://davapc1.bioch.dundee.ac.uk/cgi-bin/prodrg>`__.
#. How can I build in missing atoms?
#. How do I extend a completed a simulation to longer times?
- Please see the section on `managing long simulations`.
+ Please see the section on :ref:`managing long simulations`.
You can either prepare a new :ref:`mdp` file, or extend the simulation time
- in the original :ref:`tpr` file using :ref:`convert-tpr`<gmx convert-tpr>`.
+ in the original :ref:`tpr` file using :ref:`convert-tpr <gmx convert-tpr>`.
.. TODO #. How do I complete a crashed simulation?
Parameters for these exotic species aren't available in force field X.
What should I do?
- First, you should consider on how well :ref:`MD <gmx-md>` will actually describe your
+ First, you should consider how well :ref:`MD <gmx-md>` will actually describe your
system (e.g. see some of the `recent literature <https://dx.doi.org/10.1021%2Facs.chemrev.6b00440>`__).
Many species are infeasible to model without either atomic polarizability, or QM treatments.
Then you need to prepare your own set of parameters and add a new residue
**NO**. Molecules parametrized for a given
:ref:`force field <gmx-force-field>` will not behave in a physical manner when interacting with
other molecules that have been parametrized according to different standards. If your
- required molecule is not included in the force field you need to use, you will
+ required molecule is not included in the force field you need to use, you will
have to parametrize it yourself according to the methodology of this force field.
Analysis and Visualization
#. Why am I seeing bonds being created when I watch the trajectory?
- Most visualization software determines the bond status of atoms depending
+ Most visualization softwares determine the bond status of atoms depending
on a set of predefined distances. So the bonding pattern created by them
might not be the one defined in your :ref:`topology <top>` file. What
matters is the information encoded in there. If the software has read
As the simulation time is calculated using :ref:`floating point arithmetic <gmx-floating-point>`,
rounding errors can occur but are not of concern.
-
-
CHARMM
^^^^^^
-`CHARMM`_ (Chemistry at HARvard Macromolecular Mechanics) is a both a set of force fields and
+`CHARMM`_ (Chemistry at HARvard Macromolecular Mechanics) is a both a set of force fields and
a software package for :ref:`molecular dynamics <gmx-md>` simulations and analysis. Includes united atom
(CHARMM19) and all atom (CHARMM22, CHARMM27, CHARMM36) :ref:`force fields <gmx-force-field>`. The CHARMM27 force field
has been ported to GROMACS and is officially supported as of version 4.5. CHARMM36 force field files can be
glasses and liquid crystals, to polymers and crystals and solutions of biomolecules.
|Gromacs| supports the GROMOS force fields, with all parameters provided in the distribution
-for 43a1, 43a2, 45a3, 53a5, 53a6 and 54a7. The GROMOS force fields are `united atom force fields <gmx-force-field>`,
-i.e. without explicit aliphatic (non-polar) hydrogens.
+for 43a1, 43a2, 45a3, 53a5, 53a6 and 54a7. The GROMOS force fields are
+:ref:`united atom force fields <gmx-force-field>`, i.e. without explicit aliphatic (non-polar) hydrogens.
* GROMOS 53a6 - in GROMACS format (J. Comput. Chem. 2004 vol. 25 (13): 1656-1676).
* GROMOS 53a5 - in GROMACS format (J. Comput. Chem. 2004 vol. 25 (13): 1656-1676).
The standard implementations for those force fields are the *BOSS* and *MCPRO*
programs developed by the `Jorgensen group <http://zarbi.chem.yale.edu/software.html>`__
-As there is no central web-page to point to, the user is advised to consult the
+As there is no central web-page to point to, the user is advised to consult the
original literature for the `united atom (OPLS-UA) <https://doi.org/10.1021%2Fja00214a001>`__
and `all atom (OPLS-AA) <https://doi.org/10.1021%2Fja9621760>`__ force fields, as well as the
Jorgensen group `page <http://zarbi.chem.yale.edu/>`__
file systems on clusters can be configured in more or less conservative
ways, and this can lead :ref:`gmx mdrun` to be told that a checkpoint
file has been written to disk when actually it is still in memory
-somewhere and vulnerable to a power failure or disk that fills or
+somewhere and vulnerable to a power failure or disk that fills or
fails in the meantime. The UNIX tool rsync can be a useful way to
periodically copy your simulation output to a remote storage location,
which works safely even while the simulation is underway. Keeping a copy
The time can also be extended using the ``-until`` and ``-nsteps``
options. Note that the original :ref:`mdp` file may have generated
velocities, but that is a one-time operation within :ref:`gmx grompp`
-that is never performed again by any other tool.
+that is never performed again by any other tool.
Changing mdp options for a restart
----------------------------------
The important question is whether it is a problem if simulations are
not completely reproducible. The answer is yes and no. Reproducibility
is a cornerstone of science in general, and hence it is important.
-The `Central Limit Theorem <https://en.wikipedia.org/wiki/Central_limit_theorem>`
+The `Central Limit Theorem <https://en.wikipedia.org/wiki/Central_limit_theorem>`_
tells us that in the case of infinitely long
simulations, all observables converge to their equilibrium
values. Molecular simulations in |Gromacs| adhere to this theorem, and
.. mdp-value:: no
only print the distance for each pull coordinate
-
+
.. mdp-value:: yes
print the distance and Cartesian components selected in
Groups that are to be frozen (*i.e.* their X, Y, and/or Z position
will not be updated; *e.g.* ``Lipid SOL``). :mdp:`freezedim`
specifies for which dimension the freezing applies. To avoid
- spurious contibrutions to the virial and pressure due to large
+ spurious contributions to the virial and pressure due to large
forces between completely frozen atoms you need to use energy group
exclusions, this also saves computing time. Note that coordinates
of frozen atoms are not scaled by pressure-coupling algorithms.
E(t) = E0 exp ( -(t-t0)^2/(2 sigma^2) ) cos(omega (t-t0))
For example, the four parameters for direction x are set in the
- three fields of :mdp:`electric-field-x` (and similar for y and z)
+ three fields of :mdp:`electric-field-x` (and similar for y and z)
like
electric-field-x = E0 omega t0 sigma
----------------------------------------
Normally, the length of an MD simulation is best managed through the
-[.mdp] option [nsteps](#nsteps), however there are situations where
-more control is useful. `gmx mdrun -nsteps 100` overrides the [.mdp] file
-and executes 100 steps. `gmx mdrun -maxh 2.5` will terminate the
+:ref:`mdp` option :mdp:`nsteps`, however there are situations where
+more control is useful. :samp:`gmx mdrun -nsteps 100` overrides the :ref:`mdp`
+file and executes 100 steps. :samp:`gmx mdrun -maxh 2.5` will terminate the
simulation shortly before 2.5 hours elapse, which can be useful when
running under cluster queues (as long as the queuing system does not
ever suspend the simulation).
-----------------------------------------------
This is a module to help embed a membrane protein into an equilibrated
-lipid bilayer at a position and orientation specified by the user.
+lipid bilayer at a position and orientation specified by the user.
-This method was initially described as a ProtSqueeze technique
-(`Yesylevskyy S.O., J Chem Inf Model 47(5) (2007) 1986-94`_) and
-later implemented in |Gromacs| as g_membed tool (`Wolf et al, J Comp Chem 31 (2010) 2169-2174`_).
-Currently the functionality of g_membed is available in mdrun if
+This method was initially described as a ProtSqueeze technique
+(`Yesylevskyy S.O., J Chem Inf Model 47(5) (2007) 1986-94`_) and
+later implemented in |Gromacs| as g_membed tool (`Wolf et al, J Comp Chem 31 (2010) 2169-2174`_).
+Currently the functionality of g_membed is available in mdrun if
``-membed`` option is specified (see below).
.. _Yesylevskyy S.O., J Chem Inf Model 47(5) (2007) 1986-94: https://dx.doi.org/10.1021/ci600553y
``-gcom``
During the simulation :ref:`gmx mdrun` must communicate between all ranks to
compute quantities such as kinetic energy. By default, this
- happens whenever plausible, and is influenced by a lot of :ref:`[.mdp]
- options. <mdp-general>` The period between communication phases
+ happens whenever plausible, and is influenced by a lot of
+ :ref:`mdp options. <mdp-general>` The period between communication phases
must be a multiple of :mdp:`nstlist`, and defaults to
the minimum of :mdp:`nstcalcenergy` and :mdp:`nstlist`.
``mdrun -gcom`` sets the number of steps that must elapse between
* reduce the scope of the number of atoms selected for analysis.
* reduce the length of trajectory file being processed.
-* in some cases confusion between Ångström and nm may lead to users wanting to generate a
+* in some cases confusion between Ångström and nm may lead to users generating a
:ref:`pdb2gmx <gmx pdb2gmx>` water box that is |10to3| times larger than what they think it is (e.g. :ref:`gmx solvate`).
* use a computer with more memory.
* install more memory in the computer.
.. |10to3| replace:: 10\ :sup:`3`
-The user should bear in mind that the cost in time and/or memory for various activities will
+The user should bear in mind that the cost in time and/or memory for various activities will
scale with the number of atoms/groups/residues *N* or the simulation length *T* as order N,
NlogN, or |Nsquared| (or maybe worse!) and the same for *T*, depending on the type of activity.
If it takes a long time, have a think about what you are doing, and the underlying algorithm
(see the `Reference manual`_, man page, or use the -h flag for the utility), and
see if there's something sensible you can do that has better scaling properties.
-.. _Reference manual: `gmx-manual-parent-dir`_
+.. _Reference manual: `gmx-manual-parent-dir`_
.. |Nsquared| replace:: N\ :sup:`2`
.. _pdb2gmx-errors:
This means that within the :ref:`coordinate file<gmx-structure-files>` fed to :ref:`pdb2gmx<gmx pdb2gmx>`, the X
chain has been split, possibly by the incorrect insertion of one molecule within another.
The solution is simple: move the inserted molecule to a location within the file so that it is not splitting another molecule.
-This message may also mean that the same chain identifier has been used for two
+This message may also mean that the same chain identifier has been used for two
separate chains. In that case, rename the second chain to a unique identifier.
.. _gmx-atom-missing:
WARNING: atom X is missing in residue XXX Y in the pdb file
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Related to the long bonds/missing atoms error above, this error is usually quite
-obvious in its meaning. That is, :ref:`pdb2gmx<gmx pdb2gmx>` expects certain atoms within
+Related to the long bonds/missing atoms error above, this error is usually quite
+obvious in its meaning. That is, :ref:`pdb2gmx<gmx pdb2gmx>` expects certain atoms within
the given residue, based on the entries in the force field :ref:`rtp` file.
There are several cases to which this error applies:
what is expected by the :ref:`rtp` entry. In this case, use ``-ignh`` to
allow :ref:`pdb2gmx<gmx pdb2gmx>` to add the correct hydrogens for you,
or re-name the problematic atoms.
-* A terminal residue (usually the N-terminus) is missing H atoms; this usually suggests
+* A terminal residue (usually the N-terminus) is missing H atoms; this usually suggests
that the proper ``-ter`` option has not been supplied or chosen properly. In the case of
the :ref:`AMBER force fields<gmx-amber-ff>`, nomenclature is typically the problem.
N-terminal and C-terminal residues must be prefixed by N and C, respectively.
Contrary to what the error message says, the use of the option ``-missing``
is almost always inappropriate. The ``-missing`` option should only be used to
-generate specialized topologies for amino acid-like molecules to take
+generate specialized topologies for amino acid-like molecules to take
advantage of :ref:`rtp` entries. If you find yourself using ``-missing``
in order to generate a topology for a protein or nucleic acid,
don't; the topology produced is likely physically unrealistic.
block(s) in your structure. In most cases, the problem arises from a naming mismatch,
so simply re-name the atoms in your :ref:`coordinate file <gmx-structure-files>` appropriately.
In other cases, you may be supplying a structure that has residues that do not conform
-to the expectations of the `force field <gmx-force-field>`, in which case you should
+to the expectations of the :ref:`force field <gmx-force-field>`, in which case you should
investigate why such a difference is occurring and make a decision based on what you
-find - use a different `force field <gmx-force-field>`, manually edit the structure, etc.
+find - use a different :ref:`force field <gmx-force-field>`, manually edit the structure, etc.
No force fields found (files with name 'forcefield.itp' in subdirectories ending on '.ff')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Errors in :ref:`grompp <gmx grompp>`
------------------------------------
-Found a second defaults directive file
+Found a second defaults directive file
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is caused by the ``[defaults]`` directive appearing more than once in the :ref:`topology <top>` or
Further, the atom index of each ``[position_restraint]`` must be relative to the
``[moleculetype]``, not relative to the system (because the parsing has not reached
-``[molecules]`` yet, there is no such concept as "system"). So you cannot use the output
+``[molecules]`` yet, there is no such concept as "system"). So you cannot use the output
of a tool like :ref:`genrestr <gmx genrestr>` blindly (as ``genrestr -h`` warns).
System has non-zero total charge
:ref:`rounding errors <gmx-floating-point>` and not a major problem.
Note for PME users: It is possible to use a uniform neutralizing background
-charge in PME to compensate for a system with a net background charge.
+charge in PME to compensate for a system with a net background charge.
This may however, especially for non-homogeneous systems, lead to unwanted artifacts, as
shown in `Hub, J. S., de Groot, B. L., Grubmüller, H. & Groenhof, G. Quantifying
artifacts in Ewald simulations of inhomogeneous systems with a net charge.
[ file spc.itp, line 32 ]
Atom index (1) in bonds out of bounds (1-0).
This probably means that you have inserted topology
- section "settles" in a part belonging to a different
+ section "settles" in a part belonging to a different
molecule than you intended to. in that case move the
"settles" section to the right molecule.
program reads through the :ref:`topology <top>`, mapping the supplied parameters to the atoms in
the :ref:`coordinate <gmx-structure-files>` file. If there is a mismatch, this error is generated.
To remedy the problem, make sure that the contents of your ``[ molecules ]`` directive
-matches the exact order of the atoms in the coordinate file.
+matches the exact order of the atoms in the coordinate file.
In some cases, the error is harmless. For example, when running simulations with the
`MARTINI force field <http://cgmartini.nl/>`_, the workflow relies on :ref:`grompp <gmx grompp>` to apply the
LINCS/SETTLE/SHAKE warnings
^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Sometimes, when running dynamics, :ref:`mdrun <gmx mdrun>` may suddenly stop (perhaps after writing
+Sometimes, when running dynamics, :ref:`mdrun <gmx mdrun>` may suddenly stop (perhaps after writing
several :ref:`pdb` files) after a series of warnings about the constraint algorithms
(e.g. LINCS, SETTLE or SHAKE) are written to the :ref:`log` file. These algorithms often
used to constrain bond lengths and/or angles. When a system is :ref:`blowing up <blowing-up>`
* Your simulation might simply be (very) :ref:`slow <gmx-performance>`, and since output is buffered, it can take quite
some time for output to appear in the respective files. If you are trying to fix some problems
and you want to get output as fast as possible, you can set the environment variable ``GMX_LOG_BUFFER`` to 0.
-* Something might be going wrong in your simulation, causing e.g. not-a-numbers (NAN) to be
- generated (these are the result of e.g. division by zero). Subsequent calculations
- with NAN's will generate floating point exceptions which slow everything down by orders of
+* Something might be going wrong in your simulation, causing e.g. not-a-numbers (NAN) to be
+ generated (these are the result of e.g. division by zero). Subsequent calculations
+ with NAN's will generate floating point exceptions which slow everything down by orders of
magnitude.
* You might have all ``nst*`` parameters (see your :ref:`mdp` file) set to 0, this will suppress most output.
* Your disk might be full. Eventually this will lead to :ref:`mdrun <gmx mdrun>` crashing, but