Unify handling of GMX_ENABLE_GPU_TIMING and GMX_DISABLE_GPU_TIMING
[alexxy/gromacs.git] / docs / user-guide / faq.rst
1 Answers to frequently asked questions (FAQs)
2 ============================================
3
4 .. _reference manual: `gmx-manual-parent-dir`_
5
6 .. Migrated from old website
7
8 .. toctree::
9    :maxdepth: 2
10    :hidden:
11
12 Questions regarding |Gromacs| installation
13 ------------------------------------------
14
15 #. Do I need to compile all utilities with MPI?
16
17    With one rarely-used exception (:ref:`pme_error <gmx pme_error>`), only
18    :ref:`mdrun <gmx mdrun>` is able to use the :ref:`MPI <mpi-support>`
19    parallelism. So you only need to use the ``-DGMX_MPI=on`` flag
20    when :ref:`configuring <configure-cmake>` for a build intended to run
21    the main simulation engine :ref:`mdrun <gmx mdrun>`. Generally that
22    is desirable when running on a multi-node cluster, and necessary
23    when using multi-simulation algorithms. Usually also installing a
24    build of GROMACS configured without MPI is convenient for users.
25
26
27 #. Should my version be compiled using double precision?
28
29    In general, |Gromacs| only needs to be build in its default mixed-precision mode.
30    For more details, see the discussion in Chapter 2 of the `reference manual`_.
31    Sometimes, usage may also depend on your target system, and should be decided
32    upon according to the :ref:`individual instructions <gmx-special-build>`.
33
34 Questions concerning system preparation and preprocessing
35 ---------------------------------------------------------
36
37 #. Where can I find a solvent :ref:`coordinate file <gmx-structure-files>` for use with :ref:`solvate <gmx solvate>`?
38
39    Suitable equilibrated boxes of solvent :ref:`structure files <gmx-structure-files>` can be found
40    in the ``$GMXDIR/share/gromacs/top`` directory. That location will be searched by default
41    by :ref:`solvate <gmx solvate>`, for example by using ``-cs spc216.gro`` as an argument.
42    Other solvent boxes can be prepared by the user as described
43    on the manual page for :ref:`solvate <gmx solvate>` and elsewhere.
44    Note that suitable topology files will be needed for the solvent boxes to be useful in
45    :ref:`grompp <gmx grompp>`. These are available for some force fields, and may be
46    found in the respective subfolder of ``$GMXDIR/share/gromacs/top``.
47
48 #. How to prevent :ref:`solvate <gmx solvate>` from placing waters in undesired places?
49
50    Water placement is generally well behaved when solvating proteins, but can be difficult when setting up
51    membrane or micelle simulations. In those cases, waters may be placed in between the
52    alkyl chains of the lipids, leading to problems later :ref:`during the simulation <blowing-up>`.
53    You can either remove those waters by hand (and do the accounting for molecule types in the
54    :ref:`topology <top>` file), or set up a local copy of the ``vdwradii.dat`` file from the ``$GMXLIB``
55    directory, specific for your project and located in your working directory. In it, you can
56    increase the vdW radius of the atoms, to suppress such interstitial insertions.
57    Recommended e.g. at a common `tutorial`_ is the use of 0.375 instead of 0.15.
58
59 .. _tutorial: http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin/gmx-tutorials/membrane_protein/03_solvate.html
60
61 #. How do I provide multiple definitions of bonds / dihedrals in a topology?
62
63    You can add additional bonded terms beyond those that are normally defined for a residue (e.g. when defining
64    a special ligand) by including additional copies of the respective lines under the
65    ``[ bonds ]``, ``[ pairs ]``, ``[ angles ]`` and ``[ dihedrals ]`` sections in the ``[ moleculetype ]``
66    section for your molecule, found either in the :ref:`itp` file
67    or the :ref:`topology <top>` file. This will **add** those extra terms to the potential energy evaluation,
68    but **will not** remove the previous ones. So be careful with duplicate entries. Also keep in mind that this **does not**
69    apply to duplicated entries for ``[ bondtypes ]``, ``[ angletypes ]``, or ``[ dihedraltypes ]``, in force-field
70    definition files, where duplicates overwrite the previous values.
71
72 #. Do I really need a :ref:`gro` file?
73
74    The :ref:`gro` file is used in |Gromacs| as a unified :ref:`structure file <gmx-structure-files>` format
75    that can be read by all utilities. The large majority of |Gromacs| routines can also use other file
76    types such as :ref:`pdb`, with the limitations that no velocities are available in :ref:`this case <gmx-need-for-gro>`.
77    If you need a text-based format with more digits of precision, the :ref:`g96` format is suitable and supported.
78
79 #. Do I always need to run :ref:`pdb2gmx <gmx pdb2gmx>` when I already produced an :ref:`itp` file elsewhere?
80
81    You don't need to prepare additional files if you already have all :ref:`itp` and :ref:`top` files prepared through other tools.
82
83    Examples for those are `CHARMM-GUI <http://www.charmm-gui.org/>`__, `ATB (Automated Topology Builder) <https://atb.uq.edu.au/>`__,
84    `pmx <http://pmx.mpibpc.mpg.de/instructions.html>`__. and `PRODRG <http://davapc1.bioch.dundee.ac.uk/cgi-bin/prodrg>`__.
85
86 #. How can I build in missing atoms?
87
88    |Gromacs| has no support for building coordinates of missing non-hydrogen atoms. If your system is missing some part,
89    you will have to add the missing pieces using external programs to avoid the :ref:`missing atom <gmx-atom-missing>`
90    error. This can be done using programs such as `Chimera <https://www.cgl.ucsf.edu/chimera/>`__ in combination
91    with `Modeller <https://salilab.org/modeller/>`__, `Swiss PDB Viewer <https://spdbv.vital-it.ch/>`__,
92    `Maestro <https://www.schrodinger.com/maestro>`__. **Do not run** a simulation that had missing atoms unless
93    you know exactly why it will be stable.
94
95 #. Why is the total charge of my system not an integer like it should be?
96
97    In :ref:`floating point <gmx-floating-point>` math, real numbers can not be displayed to arbitrary precision
98    (for more on this, see e.g. `Wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic>`__). This means
99    that very small differences to the final integer value will persist, and |Gromacs| will not lie to you and
100    round those values up or down. If your charge differs from the integer value by a larger amount, e.g. at least
101    0.01, this usually means that something went wrong during your system preparation
102
103 Questions regarding simulation methodology
104 ------------------------------------------
105
106 #.  Should I couple a handful of ions to their own temperature-coupling bath?
107
108     **No**. You need to consider the minimal size of your
109     temperature coupling groups, as explained in :ref:`gmx-thermostats` and more
110     specifically in :ref:`gmx-thermostats-dont`, as well as the implementation
111     of your chosen thermostat as described in the `reference manual`_.
112
113 #.  Why do my grompp restarts always start from time zero?
114
115     You can choose different values for :mdp:`tinit` and :mdp:`init-step`.
116
117     .. todo:: Add "Continuing simulations" content (label: gmx-cont-simulation) and link.
118
119         e.g. ``:ref:`Continuing simulations <gmx-cont-simulation>`.``
120
121 #.  Why can't I do conjugate gradient minimization with constraints?
122
123     Minimization with the conjugate gradient scheme can not be performed with constraints
124     as described in the `reference manual`_, and some additional information
125     on `Wikipedia <https://en.wikipedia.org/wiki/Conjugate_gradient_method>`__.
126
127 #.  How do I hold atoms in place in my energy minimization or simulation?
128
129     Groups may be frozen in place using ``freeze groups`` (see the `reference manual`_).
130     It is more common to use a set of position
131     restraints, to place penalties on movement of the atoms. Files that control this
132     kind of behaviour can be created using :ref:`genrestr <gmx genrestr>`.
133
134 #.  How do I extend a completed a simulation to longer times?
135
136     Please see the section on :ref:`managing long simulations`.
137     You can either prepare a new :ref:`mdp` file, or extend the simulation time
138     in the original :ref:`tpr` file using :ref:`convert-tpr <gmx convert-tpr>`.
139
140     .. todo:: #.  How do I complete a crashed simulation?
141
142        Need gmx-cont-crash doc target.
143
144        .. code-block:: none
145
146            This can be easily achieved using the checkpoint reading
147            :ref:`available <gmx-cont-crash>` in |Gromacs| versions newer than 4.
148
149     .. todo:: #.  How can I do a simulation at constant pH?
150
151        Need gmx-howto-cph doc target.
152
153         .. code-block:: none
154
155            This is a rather large topic, and you should at least read the short
156            :ref:`Constant pH How-To <gmx-howto-cph>` and all of the literature
157            included there to get an overview over the topic.
158
159 #.  How should I compute a single-point energy?
160
161     This is best achieved with the ``-rerun`` option to :ref:`mdrun <gmx mdrun>`.
162     See the :ref:`single-point energy` section.
163
164 Parameterization and Force Fields
165 ---------------------------------
166
167 #.  I want to simulate a molecule (protein, DNA, etc.) which complexes with
168     various transition metal ions, iron-sulfur clusters, or other exotic species.
169     Parameters for these exotic species aren't available in force field X.
170     What should I do?
171
172     First, you should consider how well :ref:`MD <gmx-md>` will actually describe your
173     system (e.g. see some of the `recent literature <https://dx.doi.org/10.1021%2Facs.chemrev.6b00440>`__).
174     Many species are infeasible to model without either atomic polarizability, or QM treatments.
175     Then you need to prepare your own set of parameters and add a new residue
176     to your :ref:`force field <gmx-force-field>` of choice. Then you will have to validate that
177     your system behaves in a physical way, before continuing your simulation studies. You could
178     also try to build a more simplified model that does not rely on the complicated additions,
179     as long as it still represents the correct *real* object in the laboratory.
180
181 #.  Should I take parameters from one force field and apply them inside another that is missing them?
182
183     **NO**. Molecules parametrized for a given
184     :ref:`force field <gmx-force-field>` will not behave in a physical manner when interacting with
185     other molecules that have been parametrized according to different standards. If your
186     required molecule is not included in the force field you need to use, you will
187     have to parametrize it yourself according to the methodology of this force field.
188
189 Analysis and Visualization
190 --------------------------
191
192 .. todo:: #.  How do I visualize a trajectory?
193
194    gmx-howto-visualize doc target:
195
196    .. code-block:: none
197
198        Use one of the number of different programs that can visualize
199        coordinate :ref:`files and trajectories <gmx-howto-visualize>`.
200
201 #.  Why am I seeing bonds being created when I watch the trajectory?
202
203     Most visualization softwares determine the bond status of atoms depending
204     on a set of predefined distances. So the bonding pattern created by them
205     might not be the one defined in your :ref:`topology <top>` file. What
206     matters is the information encoded in there. If the software has read
207     a :ref:`tpr <tpr>` file, then the information is in reliable agreement
208     with the topology you supplied to :ref:`grompp <gmx grompp>`.
209
210 #.  When visualizing a trajectory from a simulation using PBC, why are there holes or my peptide leaving the simulation box?
211
212     Those holes and molecules moving around are just a result of molecules
213     ranging over the :ref:`box boundaries and wrapping around <gmx-pbc>`,
214     and are not a reason for concern. You can fix the visualization using :ref:`trjconv <gmx trjconv>`
215     to prepare the structure for analysis.
216
217 #.  Why is my total simulation time not an integer like it should be?
218
219     As the simulation time is calculated using :ref:`floating point arithmetic <gmx-floating-point>`,
220     rounding errors can occur but are not of concern.