Noting that and why gmxdump -s -sys is broken

Not worth fixing. You could pass a boolean from gmxdump
into the set_posres_params to avoid executing the
problematic line, but that would hit a lot of
other code paths that also call gmx_mtop_to_t_topology.

Refs #635

Change-Id: I308e59287dc578b95ea67c313867df3e75047fa4
Fixing trjconv -sub

The process of making code thread safe broke this.

Change-Id: Ie6617c00e52b09ea0eade2dcb0ae998e8ebf3cc4
Updated code checks with distance restraints

Ensemble-averaged distance restraints require -multi, and it is
also reasonable to do REMD with distance restraints, which also
requires -multi. So checks for the ensemble-averaging case need
to be more sensitive to their context.

In fact, ensemble-averaging is probably functional only with PD and
one processor per system, since that was probably all that was
available when it was built.

Fixes #613, refs #1117

Change-Id: Ia6f1bb4eb82eab3c7c249638cd3a5a5d1f707132
Merge "Noting that and why gmxdump -s -sys is broken" into release-4-5-patches
Merge "Fixing trjconv -sub" into release-4-5-patches
Added fatal error for constraints + L-BFGS minimizer

Refs #1053

Change-Id: I0fd609918927883fc9ec20d0599a48e396d81d94
Velocity-verlet integrators and v-rescale are broken

Added fatal error and suggestion to upgrade GROMACS version.

Fixes #1000

Change-Id: I22653fafdfd0fb2f1fa772fbd95bc55fcf072d8c
Merge "Added fatal error for constraints + L-BFGS minimizer" into release-4-5-patches
fixes issues with pressure control and infrequent evaluation

Fixes a bug when pressure control in md-vv when nstcalcenergy is not a
multiple of nstpcouple or nsttcouple. This bug results in boxes slowly
expanding to unphysical sizes because the virial is
neglected in the second half of the md-vv calculation.

Also discovered that as part of the bug, global energies were being communicated
where they did not need to be when nstpcouple and nsttcouple are > 1 in the case
of md-vv, so redid some of the iteration counting and global communication to fix
this all together. In the process, this simplified some of the interation counting.

Change-Id: I3f77ba361fc88e03ccdfdde1b0be388ea46a8683
Quiet stderr output, particularly for multi-simulations

* removed printing of DD info to stderr
* printed multi-simulation information only once in places where
  repetition is clearly redundant (Some repetition remains,
  but only from each simulation master.)
* add option to not print result of multi-simulation check
  if it passed, so that we don't have to print things to
  stderr/stdout just because the .log file is not yet open
* printing of diagnostics about the number of MPI
  processes present when mdrun starts only goes (once) to
  each debug file, and not to stderr
* reduced printing of diagnostics about the number of OpenMP
  threads; now goes to stderr only on SIMMASTER, or
  once to each debug file
* clarified errors and informational messages about selecting
  the number of OpenMP threads

Fixes #1078, refs #1083

Change-Id: If782259bcd62ddd9be325393930080b70c5cfb4e
split off pick_nbnxn_resource from nbnxn_pick_nbnxn

Fixes #1049

Change-Id: Iadf46f40676551b9b58d0d3da5bdca0f94d4a3fb
Fixed GB interactions for release-4-6

Release-4-6 was not using the correct GB kernels,
but the non-GB electrostatics cutoff kernel. In addition,
the accelerated kernels unrolled more than a factor 2 had
a bug that caused a small error in the forces. Both these
issues have been fixed, and the GB results now match
release-4.5.
Note: The GB _radius_ calculations are still only done
in C, but the accelerated options will be re-enabled in
a pending patch (separated for clarity).
Fixes #1096.

Change-Id: I40151b9a9f1920006bfe9a39a8719698a824bfac

fix

Change-Id: I45630252d6a9c05a7f3695a7e6d07dcd13e0a25c
Don't cache ${FFTW}_HAVE_(SIMD|AVX)

The error message was incorrect if the library was changed. E.g.
if the library wasn't found on the first try and then (e.g. with
CMAKE_PREFIX_PATH) was found on the 2nd try. Could have been
resolved by using FORCE when setting variables, but that would
have defeated the purpose of allowing the user to overwrite
the value for future versions which might be misidentified.
Any solution which lets the user to overwrite but still works
correctly if the library changes would be difficult. Given that
it is only for displaying a warning message, it is not worth
making it much more complicated.

Change-Id: I0b6c5a204ee0114ef9de9337491a14457917f9d7
Made g_tune_pme work correctly again with thread-MPI mdrun

Up to now, g_tune_pme would put the -nt switch on the mdrun command
line to ask for thread-MPI processes. Due to changes in mdrun, this
now leads to the fact that all runs with separate PME nodes exit
because the number of MPI threads must be explicitly specified with
the -ntmpi switch. Now the g_tune_pme -nt option is renamed to -ntmpi.
The remaining changes are only minor code cleanup / formatting things
plus getting rid of unused variables.

Change-Id: I7518799ef593d78d1cce1496852f0241e6d01755
made PME load balancing + DD DLB more efficient

The DD dynamic load balancing is now limited, such that the fastest
timed PME load balancing cut-off setting can always be used.
Fixes #1089

Change-Id: I3216dfd5a8b2b0676eee5519e08cf36e06047251
fixed nbnxn hybrid mode with OpenMP

Fixes #1100

Change-Id: I2f3c95f698852ab496a648a04555c0e9ecb57463
clean up fortran name mangling

* centralize name mangling for easy change
* mangling is set to GNU's default mangling
* don't expose internal blas/lapack/arpack headers

Change-Id: I5a2a6298808cbb43e6aea0f06397ee0f0102685f
don't use polling with new driver

With the 304.xx (API v5.0) drivers the cudaStreamSynchronize overhead
has been substantially reduced, so with these there is no need to switch
to polling. Additionally, with GPUs oversubscribed the polling has been
shown to be unstable, so this case is now detected and switch to polling
is not done.

Also corrected some warning/note printing layout.

Change-Id: I32a7ecda42de31f825a6341c81f04ca0b97c0d4a
Fix confusing gmx_header_config.h include

Easy to forget gmx_header_config.h because
historically only config.h is needed and
in master only config.h is needed, too.
Hid a bug in gmx_cpuid.c which didn't
do anything on Windows because the proper
define wasn't set.

Also fixes the compiler warnings in gmx_cpuid.c

Change-Id: I0ad9ca77bfe05551bdde82ab4e92b180c1e5963b
Finally move OpenMM to contrib

I've paid lip service to attempting to leave the build functional.
There's a few places GMX_OPENMM still has to appear in the main code,
because of how CMake works and how badly GROMACS libraries work. I'm
prepared to fix obvious major issues anyone spots. I'm proposing not
to do any testing of whether the build works, since the 4.5 build is
still available. If later on someone wants both OpenMM and some
feature in 4.6 they can ask then for help fixing the damage here.

Fixes #1079, for certain values of "fixes" :-)

Change-Id: Ic27b8c3bdc1255cc3edb01bcfa11f47d6a03b44d