Fixed shift and switch modifiers, particularly for free-energy

When using tabulated interactions (historically with PME-Switch), the
previous free-energy kernels used tabulated interactions which gave
correct results. However, as we have moved to using the new
interaction modifiers, Ewald short-ranged interactions are computed
analytically. To extend the range over which we apply the soft-core
interaction, the free-energy kernels evaluated interactions by
subtracting the reciprocal-space component, and then applying the
free-energy evaluation to the Coulomb (1/r) short-range
interaction. This works fine for vanilla PME, but led to problems when
combined with a switch modifier, since we are switching a different
function compared to the non-free-energy kernels. This could lead to
large artefacts where the free energy was 100x off if we were applying
the cutoff to r while the switch was applied to the scaled soft-core
radius.

This patch modifies the free-energy kernel so that the vanilla, shift,
and exact-cutoff versions still use the compensation trick, while the
switch modifier always operates on the traditional short-range Ewald
functional form.

The (very small) Ewald shift has also been added when computing free
energy in combination with Ewald summation and potential-shift
modifiers. As the perturbation goes to zero, the interaction will also
approach the non-free-energy interactions. Tested to match the
non-free-energy kernel to with 1e-8 in the fully coupled state, it
conserves energy, and produces reasonable free energies for ethanol in
water.

This also modifies table-generation, table-usage, and
dispersion-correction code to use shift/switch forms (and correctly),
when that has been selected in the interaction modifiers. This
provides much more accurate results for our new shifted interactions.

Correct (unmodified) tables are now generated for 1-4 interactions
in a few corner cases in the presence of modifiers for non-bonded
interactions.

Code paths for using exact cutoffs now work correctly when
rcoulomb-switch != rvdw-switch, or if only one kind of switch is
active.

Free-energy calculations using a plain Coulomb interaction now
incorporate a potential shift if one exists.

The GMX_NB_GENERIC environment variable can now be used to specify the
use of the generic kernel even with shifts or switches active.

Fixes #1463.

Change-Id: Ia63a1ed7d6c9cdf9cd9e6209b6326a49043060ec
Added package version to tng_io CMakelists.txt

Without a package version (for tng_io), the CMake 3 beta
versions will issue warnings.

Fixes #1477.

Change-Id: I4a8f64f70e7372118eecfebb69b4a24cd18835cb
Modify single/double EPS to agree with ISO C

The previous Gromacs values were a factor 2 too tight. While
we're at it, we also added float modifiers to the single-precision
constants, increased the accuracy in the double max/min values,
and improved the least significant bit in one of the single-precision
values. The previous relative accuracies for the PME correction
analytical approximations where set fairly arbitrary by dividing a
tightly chose constant with GMX_REAL_EPS, and since this is now a
larger number the unit test tolerance for those corrections has been
increased slightly to avoid triggering false failures.

Fixes #1356.

Change-Id: If29d2ff4141d86fd019e0dbdbfb7737ead28c3d4
Fixed typo in description of conversion factors.

Change-Id: I5f9875ef94e8d5526f84c029f539fab642319a04
Fixed the output format of g_principal

Gromacs-4.6 and earlier versions had the output transposed. This
patch fixes it such that paxisN.dat contains the x/y/z components
of the N:th prinicipal axis. The default file output names have
been changed to paxisN.dat to increase the probability that users
who rely on old scripts will need to read the help text and find
the changed format.

Fixes #1441, related to #609.

Change-Id: Ic1ed9370145d3389ae8f43c2a419765dabf3a66f
Set make_ndx max name length and count to 1024

Limits were 30, which was a bit on the low side.
Fixes #1512

Change-Id: I62d5146fdac06b7b5b7f56925addeca561c83173
Install libraries in correct directories on multiarch systems.

NB: this patch may change the default install dirs on some systems,
and will _not_ overwrite previous installations. Thus make sure to
link to the correct library versions of e.g. libgromacs.

Fixes #591 and #623.

Change-Id: Ibd1d7d216236a0f5841ba9f0ac622a3f8f1a8718
Issue a warning for using gmx_rms -prev with large trajectories.

Refs #716.

Change-Id: I607d6a63259e0dd9de7c8c99e4917bbe9f37ff8e
Replaced gmx_hostname_num by gmx_physicalnode_id_hash

gmx_hostname_num was only used to distinguish physical nodes.
Since it only worked for hostnames with numbers, we replaced it
by a hash of the hostname.

Fixes #1513

Change-Id: I8e60757707386f43269afe0bb38e8500decefcd6
Process negative sigma correctly with combrule 2 or 3

The initial combination rule code (for sigma/epsilon)
did not take negative sigma rules into account, which
caused segfaults instead of the values reaching the code
in convparm.c that handles sigma<0 during conversion
to c6/c12 (where it is used to signal c6=0).

Fixes #1391.

Change-Id: I437f06d67c5ecfb58d236590288ad122bcdf2df0
Print in higher precision repl_ex timestep.

Fixes #1486.

Change-Id: Ibe5bcee18f761bea96e1b4a432774a4472a40f47
Avoid writing xvgr formatting with -xvg none

Several tools were writing xvgr formatting code directly
to output files, even when the users selects -xvg none as
a command line option.

Fixes #1407, #1479.

Change-Id: I1db10c2ad7455332e2a415a922885cddaec5efd1
Made repl_ex time step more readable

A recent change made the repl_ex time print %e, now it's %.5f,
as in the log file.

Refs #1486.

Change-Id: I2e669d91a61e6a696ce6d123c701fa8b773a3c2f
Mapped HIS1 to HSD in charmm27.

Fixes #1133.

Change-Id: I6c289af9b58c8e7cd66f36982bf118505aa38f7d
Decoupled repl_ex_nst from nstcalcenergy

The replica exchange frequency is automatically changed by mdrun
to a multiple of nstcalcenergy, which is annoying. It turns out that
it doesn't need to be a multiple, so this changing has been removed.
Fixes #1494

Change-Id: I00833f92fd468924f61879aff8b7c85fe79d3c2e
Always write output from genion

To facilitate scripting we now copy the input conformation
and write it to the output, even if no ions are to be added.

Refs #1458.

Change-Id: I3e467169e30bc7448758c2d506ca35f49b001b50
Removed undocumented -map and -mdata options from g_sham.

Both options and code were completely undocumented, and
nobody seemed interested in helping document them for the
last two years, so for now they are gone.

Fixes #812.

Change-Id: I4d60cf3d58da89d76a4461cdc2e75f031676d2c9
Make sure genrestr uses the disre_up2 parameter

Previously, a constant value of 1.0 was used instead of the
margin read from the command line.

Fixes #1357.

Change-Id: I65ef225159e7b6ef818c71d062b619e78fa7ea22
Made gmxcheck -rmsd work again with forces

Change-Id: I776b282b17ee7c6cc4e56130dd804aa0ea04bce6
Fixed perturbed wall interactions

With free-energy calculations, the B-state wall force and potential
were set to zero.
Fixes #1501

Change-Id: Ib53073c19fee19979ade96455b6505001187a2fa