Backport valgrind suppression

Was added to master by 106ca9e6 and is now also required by
Jenkins for 5.0. Unclear what triggered that it is required.

Change-Id: I272600716fc986fe77a03fb86da827ba40d17adf
Fixed typo in cmake warning.

Change-Id: Id096ed65567fa671dce40970948b6435d9c357a0
Removed spurious GLY dihedral in AMBER03.

Fixes #1632

Change-Id: I7302e42558454d546e14d7784077fb72c0dbfad7
Updated some .mdp file variables to use "-" instead of deprecated "_"

In the .mdp file, now a minus sign instead of an underline is
generally used. Some sections of the manual still listed .mdp
variable names in the old notation.

- three manual sections (pulling, enforced rotation and computational
  electrophysiology) now use "-" instead of "_" in .mdp file variable
  names
- updated output of rotation code to reflect this up-to-date notation
- no functional changes are in this patch

Change-Id: I7b00193d3e3d549ce8c9a728b307280c0bdd35ce
Fix DD bonded interaction range print

A recent fix caused the DD setup printing of the maximum bonded
distance to instead print the max of the bonded and the list buffer
to the log file. This was a printing issue only.
Refs #1607.

Change-Id: I685e2e5e07f2f1a0a39c5eef4264a77ddfcecb31
Corrected parameter for sorting on search grid

The nbnxn grid search sorting range parameter used the whole box
height instead of the local DD cell height with domain decomposition
along z. This could not cause errors, but the search used O(N^2) time
with more than 4 domains along z, instead of O(N).

Change-Id: I324df6b15635a5ecff7c8bfeb124fdb933e5f845
Start nvprof profiling at counter reset

When running in the NVIDIA profiler, to eliminate initial kernel
performance fluctuations, load balancing effects, as well as
initialization API calls from the traces, we now start the NVIDIA
profiler through the CUDA runtime API at the performance counter
resetting. This has an effect only if mdrun is started in nvprof with
profiling off.

Change-Id: Idfb3c86a96cb8b55cd874f641f4922b5517de6e3
Refactor position-evaluated selection keyword handling

Now the keywords themselves only return one value per position, not one
value per atom.  The expansion to atoms is instead done by the caller in
evaluate.cpp.  This makes it easier to reuse the methods for
implementing syntax like "z of ...", where the expansion is not
appropriate.

Also, add an additional unit test for code around this path.

Change-Id: Ida74244fe1c76eaf89c3d2e1ca9b6f6784b0476d
Add CUDA compiler support for CC 5.0

With CUDA 6.5 and later compute capability 5.0 devices are supported, so
we generate cubin and PTX for these too and remove PTX 3.5.
This change also removes explicit optimization for CC 2.1 where
sm_20 binary code runs equally fast as sm_21.

Change-Id: I5a277c235b873afb2d1b2b12b5db64b370f1bade
Allow increasing CUDA thread block size

This change parametrizes the CUDA kernel to allow increasing the number
of threads per block by processing multiple j-clusters concurrently on
additional pairs of warps. The change supports 1-, 2-, and 4-way
concurrent j-cluster processing resulting in 64, 128, and 256 threads
per block, respectively.
Due to register limitations, on current CUDA architectures the version
with 64 threads/block (equivalent with the original kernels) is fastest.
The latter configurations using 128 and 256 threads are 3-4% and 10-13%
slower on CC 3.5/5.2, respectively.

Change-Id: I7c12a826f9347f724827320184628d6b310c1424
Skeleton for a developer manual

Add a skeleton for a developer manual, mostly focusing on the used tools
for now.  Some existing content from Doxygen is linked from the new
pages, but subsequent changes will add more content (with initial focus
on explaining the formatting and documentation checking that Jenkins
does) and reformat the existing content to better fit in the new guide.

Additional sections can be added when a need is identified.

Change-Id: Id28daa9effe93fb66d03ef7b696b14ff2554e602
Describe doc-check in developer manual

Move existing documentation for the doc-check target into the developer
manual, and extend it to cover also the include sorter.  Add a separate
page that explains the include order enforced by the checker.
Various updates to make the description match better the current state
of affairs, with the module dependency graph embedded into the Doxygen
documentation.

Change-Id: I570e4f6af78453cffea89855f294a599f28dedd9
Added .travis.yml

* make use of travis-ci.org once a commit is pushed to github

Change-Id: I96673fb392a49d842ae6d959ce844e727def0d26
Set GMX_SIMD to MIC for Xeon Phi

The reason GMX_SIMD wasn't set the same wasy as it is for other architectures,
was that we wanted it to also work for offload. But for offload it is easy to
overwrite it for a compilation unit being offloaded. Setting it normally for
native mode makes it more consistent and lets the user disable SIMD.

Change-Id: Id660a6560278039673ce0a4feaea3261647f40e8
Rename doc-* targets to be less generic

Now that there are a lot of other documentation targets as well, rename
the targets that generate Doxygen documentation to doxygen-*.
Also, rename the doc-check target to source-check, since it has evolved
to more than just a Doxygen documentation checker.

There is some backwards-compatibility glue for Jenkins that expects to
execute the doc-check target with the old name, but otherwise this
change should only be visible to those few developers that may generate
the Doxygen documentation themselves or run the check-source target.

Change-Id: If69b4becc2bdc17899fa17ffd12ea1516133457b
Added warnings for ewald-geometry and surface-epsilon

ewald-geometry and surface-epsilon require the system dipole,
which will be incorrect when charge groups with net charge cross pbc.
grompp now checks and warns for this.
Refs #1645.

Change-Id: I02e317cbddb47256f942312ec53c5bab2b13be2a
When writing TNG the input must contain molecule data.

When using trjcat to write TNG the input must also be TNG since
no tpr file is used.

Fixes #1626

Change-Id: I060e0174f9a471e134a4a899f83afaf02f4fce00
Avoid NaN in rlist buffer calculation

With constraints on large masses and very low tolerance, the Verlet
buffer calculation could produce 1/0. This could lead to a somewhat
too smaller buffer.
Also added a missing scaling factor to the contribution of the third
derivative of the potential. This issue only caused a minor
overestimate for systems with constraints and without electrostatics.

Change-Id: I97e9d428a83f1b4954012ebd39bc49d397574f8c
Fixed twin-range + freeze + constraints

With twin-range cut-offs, atoms which are both frozen and constrained
would experience very large or NaN forces, leading to constraint
warnings and errors.
Fixes #1639.

Change-Id: I1871a87054fec1149c9ed75872451df79a8ac2d2
Move code to domdec module folder

It's not a module yet, but here's where it will be. Updated
suppressions for module cyclic dependency warnings for domdec and
mdlib.

Change-Id: Ibe449ec8078fb7f25c4e95ebae28bac74db4f577