alexxy/gromacs.git
6 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Tue, 15 Aug 2017 13:26:34 +0000 (15:26 +0200)]
Merge branch release-5-1 into release-2016

Change-Id: Ib769849746a3e55f3e7ae4067f0b6f549e66bd2c

6 years agoFix value of Ewald shift
Mark Abraham [Thu, 20 Jul 2017 07:16:37 +0000 (09:16 +0200)]
Fix value of Ewald shift

In all the short-ranged kernel flavours, sh_ewald is subtracted from
rinv, which have inconsistent dimensions. Fortunately, rcutoff is
often close to 1, and the inconsistent shifts often cancel in
practice, and energy differences computed on neighbour lists of the
same size will have the error cancel. The difference doesn't even
show up in the regressiontests, but would if we had a unit test
of a single interaction.

Fixes #2215

Change-Id: Ia2ea57f3bd9d521879783b207353d9d6f4ccb4a8

6 years agoRemoved unused host-side allocation code
Mark Abraham [Sun, 6 Aug 2017 10:17:13 +0000 (12:17 +0200)]
Removed unused host-side allocation code

Even though the code is not called ever, compiling with gcc 6 and CUDA
9.0 triggers our static assertion preventing the inadvertent use of
smalloc on a C++ type with a constructor.

Fixes #2227

Change-Id: I2cb66e3f9e90cd809467f2c9b42c07b97e2b19ca

6 years agoFix orientation restraint reference
Berk Hess [Thu, 27 Jul 2017 20:09:30 +0000 (22:09 +0200)]
Fix orientation restraint reference

The resetting of the COM of the molecule with orientation restraints
for fitting to the reference structure was done with the COM of the
reference structure instead of the instantaneous structure. This does
not affect the restraining (unless ensemble averaging is used), only
the printed orientation tensor.

Fixes #2219.

Change-Id: I4984ee7f64780a5c3850feb4bfe4a624afd5cec7

6 years agoAdd check for nr of orientation restraints
Berk Hess [Wed, 26 Jul 2017 10:09:12 +0000 (12:09 +0200)]
Add check for nr of orientation restraints

Change-Id: I78be294cd1c73db1cdd296e636dfc2806fa90c75

6 years agoFix bugs with orientation restraints
Berk Hess [Tue, 25 Jul 2017 17:26:13 +0000 (19:26 +0200)]
Fix bugs with orientation restraints

The orientation restraint initialization got moved to before the
initialization of the domain decomposition, which made the check
for domain decomposition fail.
Also fixed orientation restraints not working with the whole system
as fitting group.

Change-Id: If5b4659fa90c5d8e9106d260b530b47c735acb0e
(cherry picked from commit fea8651dd1a71dccc7d407ef1a59f5440db3a9e6)

6 years agoAdded missing .mdp file documentation for the enforced rotation module
Carsten Kutzner [Thu, 6 Jul 2017 14:05:44 +0000 (16:05 +0200)]
Added missing .mdp file documentation for the enforced rotation module

Change-Id: I08398b0a53ef6154a6ac8005890e21f529659dd0
(cherry picked from commit 77fd72b9dc0af1432fb6ff8391f3842f699340d7)

6 years agoFix formatting of gmx msd Description
Vedran Miletić [Tue, 4 Jul 2017 14:49:11 +0000 (16:49 +0200)]
Fix formatting of gmx msd Description

When [tt] isn't followed by a space or a punctation symbol, Sphinx will
generate wrong HTML output (preformated text ending tag will not be
where it should be). The formulation provided here is also slightly
more readable.

Change-Id: I328921b0e724e8f997fd07615e84cc8d87e7153f

6 years agoFix specification for gcc-6
Mark Abraham [Wed, 28 Jun 2017 10:44:24 +0000 (12:44 +0200)]
Fix specification for gcc-6

We decided to refer to modern gcc versions in a way that makes clear
that we're aiming to test a suitable release from that major version,
not any particular one.

Refs #2161

Change-Id: Idd985d7e4e45b58aeb9bd4f711622a91017a18a4

6 years agoMinor improvements to test configs
Mark Abraham [Wed, 21 Jun 2017 12:37:09 +0000 (14:37 +0200)]
Minor improvements to test configs

No functional changes - this just improves the way we specify and
document intent.

Unless there's interaction effects being tested, only one
configuration should document that it is intended to test e.g. "thread
MPI with CUDA".

Made that specific for one such config, and removed the documentation
from a second config, even though it incidentally tests such code
(because it is currently the default).

Added a config that specifically tests thread-MPI (which it was
coincidentally already doing).

Clarified that the test config that covers the SIMD implementation of
search for pair lists to use on the GPU - which SIMD implementation of
the search is tested is merely coincidental, rather than a specific
choice.

Change-Id: Id1889753623f7808cd1bb2fb060ee2b2852dfd94

6 years agoFixed #2206 IMD interface malfunctions
Carsten Kutzner [Fri, 23 Jun 2017 11:28:49 +0000 (13:28 +0200)]
Fixed #2206 IMD interface malfunctions

Change-Id: Ia58586a281591cefea8a382a40e92e3e30b56b75

6 years agoRe-enable accidentally lost DD warning
Szilárd Páll [Mon, 19 Jun 2017 21:35:38 +0000 (23:35 +0200)]
Re-enable accidentally lost DD warning

After the message got refactored in 147de64 the dd_warn() call was left
out and therefore a DD warning message would get assembled but never
printed.

NOTE: skip when merging into master, the fix has been added together
with modernization (Change-Id I860f52cf)

Change-Id: Ieaeae3bae69e029b671bf18a3cce6b1d2aebcea9

6 years agoFixed a consistency check in make_edi for flooding
Carsten Kutzner [Thu, 15 Jun 2017 11:40:15 +0000 (13:40 +0200)]
Fixed a consistency check in make_edi for flooding

If one sets up a flooding .edi input file with gmx make_edi,
the code should check that one does not use of the last 6 eigenvectors
of the covariance matrix, which correspond to the rotational and
translational degrees of freedom.
The check that was in the code erroneously checked against the
number of eigenvalues neig that was stored in the .xvg file,
not against the total number of eigenvectors which depends on
the number of atoms nav used in gmx covar. Thus the original
check would always fail if the .xvg eigenvalue file contained
1-6 values only.

Change-Id: Ib293f6b69b80fbf014a7507431beaf1f939849ac

6 years agoDisable PME tuning with the group scheme
Berk Hess [Sat, 10 Jun 2017 09:00:14 +0000 (11:00 +0200)]
Disable PME tuning with the group scheme

PME tuning with the group cut-off scheme does not work, as it did not
set fr->bTwinRange. Thus interactions between charge-group pairs at
distances between rlist and rcoulomb are missing. The search cost
does go up, so the PME tuning does not produce very large cut-off's
and grid spacings. This limits the error, but also the chance of
detection.
The fr->bTwinrange bug is easily fixed, but also the cut-off for
the domain decomposition communication is set incorrectly.
Since the code paths of the deprecated group scheme are too much
effort to fix, we simply disable PME tuning with the group scheme.

PME tuning is now completely disabled with the group scheme, and
documented.

Fixes #2200.

Change-Id: I6d8ceeecf54f392e1e8d22a57bfc8646c9b7e722

6 years agoFix null pointer print in DD
Berk Hess [Mon, 12 Jun 2017 15:42:37 +0000 (17:42 +0200)]
Fix null pointer print in DD

Fixed a (rather harmless) print of a null pointer string during
DD initialization. This would only show up with mdrun -dlb yes.

Change-Id: I2ea16ce11a969d6102c6b6cac0d3853aa9dd4c86

6 years agoFix COM pull force with SD
Berk Hess [Thu, 8 Jun 2017 09:38:17 +0000 (11:38 +0200)]
Fix COM pull force with SD

The reported COM pull force when using the SD integrator was random
only. Now the pull force is summed over the systematic and random
SD update components.
A better solution is to not add the random force at all, but such
a change should not be done in a release branch.

Fixes #2201.

Change-Id: I10a56b30b952869396d170914bcbc0163299a1c8

6 years agoDocument floating-point arithmetic
Vedran Miletić [Tue, 6 Jun 2017 15:21:50 +0000 (17:21 +0200)]
Document floating-point arithmetic

From the wiki, expanded with the links to David Goldberg's legendary
paper and its appendix.

Change-Id: Idb18ff37d4e8495412847f06872af693283dd747

6 years agoExpand Performance section of the user guide
Vedran Miletić [Tue, 6 Jun 2017 15:21:21 +0000 (17:21 +0200)]
Expand Performance section of the user guide

Salvage and clean up the content from the wiki to expand the user
guide. Minor fixes to the rest of the Performance section.

Change-Id: I39aba257c4c761a3a1ef428c64424da6fa449158

6 years agoSuppress sm_2x deprecation warning with CUDA 8.0
Szilárd Páll [Thu, 1 Jun 2017 12:47:39 +0000 (14:47 +0200)]
Suppress sm_2x deprecation warning with CUDA 8.0

The nvcc that comes with CUDA is is very noisy about deprecation of
Fermi hardware which is not nice and it also interferes with our CI
collecting nvcc warnings.

Refs #2142

Change-Id: I67b53eaab5744b59599d489735f80684580b89e7

6 years agoAdd CUDA 8.0 + SIMD pre-submit test
Szilárd Páll [Thu, 1 Jun 2017 13:27:25 +0000 (15:27 +0200)]
Add CUDA 8.0 + SIMD pre-submit test

We've only tested gcc 4.8 + CUDA 7.5 because that was about the newest
setup supported at the time of the release. Shortly after CUDA 8.0 was
released and gcc 5 has been supported since. At the same time this
test also covers the SIMD code in the GPU path (i.e. search) that has
previously not been covered.

Change-Id: Idc8855deea931c5906f9eaa3d53e96bc282632db

7 years agoFix initial temperature reporting
Berk Hess [Fri, 2 Jun 2017 07:22:23 +0000 (09:22 +0200)]
Fix initial temperature reporting

When continuing a simulation from a checkpoint, mdrun could report
double the intial temperature when nstcalcenergy=1 of nsttcoupl=1.
Note that this only affected reporting, the actual velocities were
correct.
Now the initial temperature is no longer reported for continuation
runs, since at continuation there is no "initial" temperature.

Fixes #2199.

Change-Id: Ib165620f0b6228e96b412ce7b8fdb681d7701b68

7 years agoFix NVML error messages
Mark Abraham [Mon, 29 May 2017 17:18:10 +0000 (19:18 +0200)]
Fix NVML error messages

These should refer to the API calls that failed, e.g. when users lack
permissions to change clocks.

Change-Id: If92fbcecb874b4853e2b4085bee6cfca012ab62a

7 years agoUpdate FindNVML to fix #2061
Jiri Kraus [Tue, 23 May 2017 08:29:49 +0000 (10:29 +0200)]
Update FindNVML to fix #2061

Fixes FindNVML to reflect move of the NVML development files from the
GDK to the CUDA Toolkit with CUDA 8.

Change-Id: I1d99ebff1fa32ba1fd44a37dcb43158da733daed

7 years agoStandardize use of |Gromacs| in reST docs
Vedran Miletić [Wed, 24 May 2017 12:40:46 +0000 (14:40 +0200)]
Standardize use of |Gromacs| in reST docs

Where possible, replace all occurences of GROMACS with |Gromacs|.

Change-Id: I4835a148aefb2d8b088ca63b444bb1107520fc52

7 years agoTest invsixthroot function as intended
Mark Abraham [Thu, 25 May 2017 23:59:34 +0000 (01:59 +0200)]
Test invsixthroot function as intended

Change-Id: I33fab8d4b8e848eb5d0bebec8e0f60f213bfd77d

7 years agoUpdated use of gcc-5 specifiers
Mark Abraham [Mon, 15 May 2017 13:32:27 +0000 (15:32 +0200)]
Updated use of gcc-5 specifiers

Removed some TODOs that have been resolved by previous merge to
master.

Refs #2161

Change-Id: Ic4d47bcd282f9f973eca996168234a8b48948214

7 years agoFix LJPME + switch grompp error
Berk Hess [Mon, 15 May 2017 08:49:44 +0000 (10:49 +0200)]
Fix LJPME + switch grompp error

An error call was missing in grompp when LJPME was requested in
combination with a force or potential switch modifier.

Fixes #2174.

Change-Id: I92bc718869bf98b17efef1bab16c6457e07d0544

7 years agoClarifications to editconf help text.
Justin Lemkul [Thu, 11 May 2017 00:45:37 +0000 (20:45 -0400)]
Clarifications to editconf help text.

It is possible that users can confuse -c with -center so this
patch makes it clear that -center doesn't do anything unless the
user really wants to shift the center of the system away from the
middle of the box.

Fixes #2171

Change-Id: Icd9048b00219ff83eb0297046bb7dfd8e8d7de10
(cherry picked from commit 36138bbb4ddcf28080819b11e9302f2825f4ebab)

7 years agoFix bugs in double Simd4 implementations
Berk Hess [Tue, 9 May 2017 20:45:18 +0000 (22:45 +0200)]
Fix bugs in double Simd4 implementations

The double precision version of reduce() and dotProduct()
returned a float with AVX_128_FMA, AVX_512, MIC and IBM_QPX.
Only reduce() is used in double, in the PME force gather.
The same bugs were fixed before for AVX(2)_256.

Refs #2162.

Change-Id: If1a5f044fc70ba1e8d7928a61e4e2c3d170a3922

7 years agoFix formatting of MKL cmake docs
Mark Abraham [Tue, 9 May 2017 19:52:15 +0000 (21:52 +0200)]
Fix formatting of MKL cmake docs

Change-Id: Ibd97e75b416e19fdf183abfe2381ddc2ffd8b490

7 years agoFix bugs in double AVX(2)_256 Simd4
Berk Hess [Fri, 21 Apr 2017 13:59:37 +0000 (15:59 +0200)]
Fix bugs in double AVX(2)_256 Simd4

The double precision version of reduce() and dotProduct()
returned a float with AVX_256 and AVX2_256.
Only reduce() is used in double, in the PME force gather.

Fixes #2162.

Change-Id: Iaa44921215e726726b2da223f3677c8637bc65ae

7 years agoFix unused SIMD PME table kernel
Berk Hess [Wed, 22 Mar 2017 18:16:31 +0000 (19:16 +0100)]
Fix unused SIMD PME table kernel

The nbnxn 2xNN PME kernel with tabulated correction had incorrect
forces by a factor 1 to 2. This kernel flavor could only be selected
manually by setting an environment variable.

Change-Id: I9a0ab8b155000ed43abbea3a9a7a58f692a884ec

7 years agoFixed AVX-512F compiler flags
Erik Lindahl [Sat, 1 Apr 2017 08:14:03 +0000 (10:14 +0200)]
Fixed AVX-512F compiler flags

Avoid using the MIC code generation flags for
the Xeon code path.

Change-Id: Ife0d36b95dda53edcd62959bd513c7d74b263766

7 years agoPropose a post-submit matrix
Mark Abraham [Thu, 9 Mar 2017 17:49:12 +0000 (18:49 +0100)]
Propose a post-submit matrix

A recent bug would have been prevented if some testing of
separate PME ranks had been occuring.

Extended gromacs.py to permit regressiontests to run
with separate PME ranks, and/or designated numbers of
ranks, or GPU ids.

Quieted some newly exposed warnings.

Documented more of the reasoning behind matrix choices, to help us
maintain better. Noted various TODOs for better testing coverage.

Refs #2134

Change-Id: Ib9828ca769d7a446c61fb8bb7a68128a38991aba

7 years agoReally enable avx512 in fftw only for select compilers
Vedran Miletić [Mon, 3 Apr 2017 15:46:05 +0000 (17:46 +0200)]
Really enable avx512 in fftw only for select compilers

Commit aa905d6 attempted to enable avx512 on GCC 4.9 or newer and
Clang 3.9 or newer, but had elseif() in place of else() and resulted
in no SIMD being enabled.

This patch really enables avx512 on supported compilers, and takes
care of all compilers we officially support (MSVC, GCC, Clang, ICC).

Change-Id: Ia626b4cc6c82a2155d633f1482b99d3b2601fa3a

7 years agoFix memory access issues in gmx solvate
Teemu Murtola [Tue, 28 Mar 2017 17:16:38 +0000 (20:16 +0300)]
Fix memory access issues in gmx solvate

There were out-of-bounds access if
 1) the solvent configuration was given as a .pdb file, or
 2) there were more than one type of residue in the solvent (which
    triggered sorting).

Also fix a memory leak in the sorting routine.

Should fix crashes mentioned in #2148.

Change-Id: If08a7bea989803dc5641f53478004e830268750d

7 years agoFix parameter description for dihedral_restraints
Mark Abraham [Tue, 21 Mar 2017 10:14:15 +0000 (11:14 +0100)]
Fix parameter description for dihedral_restraints

The force-constant parameter for dihedral_restraints was not
documented in the table of interaction types.

Refs #2144

Change-Id: Iac28e88e966f1c2b7a8fe533e97abe94173470eb

7 years agoAdd section to user guide for managing simulations
Mark Abraham [Sat, 18 Mar 2017 00:24:58 +0000 (01:24 +0100)]
Add section to user guide for managing simulations

Reworked wiki documentation on extending simulations, doing restarts
and reproducibility.

Documented mdp option simulation-part.

Change-Id: I3bbae8f25cb5e2fef6163bb073f90bd48af4a0a7

7 years agoFix string handling for gcc 7
Mark Abraham [Thu, 16 Mar 2017 14:29:48 +0000 (15:29 +0100)]
Fix string handling for gcc 7

Pre-release gcc 7 warns about potential buffer overflows, so we may as
well fix them.

Change-Id: Ia154faf13b84473f073e5d553c7c275c19cbccec

7 years agoReplace instance of group by coord in pull mdp docs
Berk Hess [Thu, 16 Mar 2017 11:45:00 +0000 (12:45 +0100)]
Replace instance of group by coord in pull mdp docs

Change-Id: I8d778f93c445b74764596f33f5cbfc39ee2ff1f4

7 years agoBumped version to prepare for next patch release
Mark Abraham [Tue, 14 Mar 2017 13:08:55 +0000 (14:08 +0100)]
Bumped version to prepare for next patch release

Change-Id: Ic368ff6186fb35d86fc2e7dfb6c6513eb48235d5

7 years agoVersion 2016.3
Mark Abraham [Mon, 13 Mar 2017 17:11:56 +0000 (18:11 +0100)]
Version 2016.3

Bumped regressiontests hash and minor soversion as usual.

Change-Id: I9cd923d17fd9de1a873d316fdac168d986326d8c

7 years agoFix tune_pme detection of GPU support
Ake Sandgren [Thu, 9 Mar 2017 13:57:07 +0000 (14:57 +0100)]
Fix tune_pme detection of GPU support

Change-Id: I60540cefe912f9ae3f602f90fa962bcf62bc61b4

7 years agoFix spacing in tune_pme call to thread-mpi mdrun
Ake Sandgren [Thu, 9 Mar 2017 13:54:43 +0000 (14:54 +0100)]
Fix spacing in tune_pme call to thread-mpi mdrun

Change-Id: I6443ec513a1e4f92d1dc4b65b5ffd4826f93bc24

7 years agoUpdate copyright year for gmx -version
Teemu Murtola [Sat, 11 Mar 2017 12:25:40 +0000 (13:25 +0100)]
Update copyright year for gmx -version

Change-Id: Ic981569e7bf73457341ac8c804a4c32eb476dca2

7 years agoFix mdrun hanging upon exit with sep PME ranks
Szilárd Páll [Tue, 7 Mar 2017 02:49:52 +0000 (03:49 +0100)]
Fix mdrun hanging upon exit with sep PME ranks

Commit 1d2d95e introduced a check and early return to skip printing perf
stats when no valid wallcycle data was collected (due to missed reset).
However, as the validity of wallcycle data does not get checked/recorded
on separate PME ranks, mdrun deadlocks before exit in collective comm
that PME ranks never enter.

This change fixes the hang by refactoring the printing code to use a
boolean rather than an early return. This means the normal code path
is unaffected in all cases (only the simulation master can ever write
reports), and the case where it is invalid to write a report
(premature termination) works correctly because all ranks communicate
the data for the report that is never written (and efficiency is not
of concern in this case).

Fixes #2131

Change-Id: If8b0813444d0b00a1a9a4a21d30fc8655c52752a

7 years agoFix minor issues in gmx traj -av -af
Mark Abraham [Tue, 7 Mar 2017 12:16:19 +0000 (13:16 +0100)]
Fix minor issues in gmx traj -av -af

Made the description of the xvg y-axis more useful. Also works for
option -af.

Refs #2133

Change-Id: If3796ddbd9841fc442b765afab9ad249954f9316

7 years agoRemoves rogue printing to xvg file in gmx mindist
David van der Spoel [Fri, 3 Mar 2017 06:46:05 +0000 (07:46 +0100)]
Removes rogue printing to xvg file in gmx mindist

-xvg none is now adhered to, and printing is preceded by
a comment.

Fixes #2129

Change-Id: Idf7135c7e74ea17747e0f5cacc9298a619e6c90d

7 years agoFixes for xl compilers 13.1.5 on Power8
Mark Abraham [Fri, 27 Jan 2017 17:57:10 +0000 (18:57 +0100)]
Fixes for xl compilers 13.1.5 on Power8

Applied Erik's recent fix also for the atan2SinglePrecisionAccuracy
test.

Refs #2102

Change-Id: I230dac8084be2d0693cb616b5a5951b0ae4b71a6

7 years agoDocument that we now support AMD GCN on Mesa/LLVM
Vedran Miletić [Thu, 2 Mar 2017 14:36:52 +0000 (15:36 +0100)]
Document that we now support AMD GCN on Mesa/LLVM

AMD GPUs using Mesa 17.0+ and LLVM 4.0+ run GROMACS using OpenCL.

Change-Id: I899c4f1c0581fdb3ea635c1f19f37b66c5dc3411

7 years agoEnable avx512 in fftw only if compiler supports it
Vedran Miletić [Wed, 1 Mar 2017 14:52:25 +0000 (15:52 +0100)]
Enable avx512 in fftw only if compiler supports it

Enabling avx512 requires GCC 4.9 or newer or Clang 3.9 or newer. Since
we support compilers older than those, we can not afford to enable
avx512 in own fftw unconditionally.

Change-Id: I17dba4e16f3d3566c1f5188497d0467d1d2665a0

7 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
Gerrit Code Review [Tue, 28 Feb 2017 13:13:33 +0000 (14:13 +0100)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

7 years agoFixes bug in gmx solvate with -shell that yielded 0 SOL.
David van der Spoel [Fri, 10 Feb 2017 06:43:44 +0000 (07:43 +0100)]
Fixes bug in gmx solvate with -shell that yielded 0 SOL.

In the transition from genbox to the new solvate.cpp some
incorrect logic was introduced.

Added test for -shell.

Implemented test for conf files that check the title and
number of atoms. In principle this could be extended to
other structure files.

Fixes #2119

Change-Id: I88feef55f33c7076b9c27a9831ee04d890333b76

7 years agoFix for an incorrect check that nstlog !=0
Michael Shirts [Wed, 22 Feb 2017 03:28:20 +0000 (20:28 -0700)]
Fix for an incorrect check that nstlog !=0

The original version was accidentally reversed, causing it to
fail when nstlog =/= 0. Wasn't noticed because of lack of a test.
(I can add a test if told where to put it).

Change-Id: I46afd608c4ea729df35128fe6f8bac4a0808364b

7 years agoFix compile of GMX_SIMD=None with ICC
Roland Schulz [Thu, 23 Feb 2017 07:13:24 +0000 (23:13 -0800)]
Fix compile of GMX_SIMD=None with ICC

ICC defines invsqrt in math.h

Change-Id: Ic7107189cb5fb422192f986ebed53f2c2993ff35

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Wed, 15 Feb 2017 02:46:23 +0000 (03:46 +0100)]
Merge branch release-5-1 into release-2016

There's an awkward clash with a bug fix from release-5-1 from
subsequent cleanup in release-2016 while it was still
master. Fortunately, the code path for bExchanged only happens when
!bTrotter, and all the other code paths require bTrotter (which has
several sub cases), so those two groups of code commute. (And the
implementation of checking what the inputrec requires has changed
between branches only in name.)

Change-Id: I2382dad5c484452d023524884c025e77c2a624c4

7 years agoFix handling of previous virials
Mark Abraham [Thu, 9 Feb 2017 16:58:59 +0000 (17:58 +0100)]
Fix handling of previous virials

These quantities get written to checkpoint files only for the Trotter
pressure-coupling integrators that need them, but they were being
copied in do_md for all Trotter integrators. This meant that an
appending restart of md-vv plus nose-hoover plus no pressure coupling
truncated off a correct edr frame and wrote one with zero virial and
wrong pressure. And in the same case, a no-append restart writes a
duplicate frame that does not agree with the one written before
termination.

Fixed by copying them only when they are useful to copy, so that in
the problem case, the correctly computed post-restart virial is not
wiped with zeroes from state fields that were never read from the
checkpoint. Cases that use the previous-virial values are not
affected.

Refs #1793

Change-Id: I84908122aefbe8658f423eaf4e5bd4ae25a93d24

7 years agoCorrected output of gmx do_dssp -sc
Mark Abraham [Fri, 10 Feb 2017 13:19:31 +0000 (14:19 +0100)]
Corrected output of gmx do_dssp -sc

This code has always written a probability, and not a percentage, so
fixed the label. It still fits within the expected 8-character field.

Fixes #2120

Change-Id: Ic3256a3942b2f2375e9f4c0771bbe3afe682acf4

7 years agoWork around false xlc-13.1.5 bug in SIMD test
Erik Lindahl [Thu, 9 Feb 2017 14:45:51 +0000 (15:45 +0100)]
Work around false xlc-13.1.5 bug in SIMD test

atan2(0,0) should return 0.0, which the Gromacs simd implementation
does. However, since at least one compiler produces -nan for the
standard library version it's better to compare with the known
correct value rather than calling std:atan2(0,0).

Refs #2102.

Change-Id: I60449e9f16fb1ab79486927a3e9993da0cce937f

7 years agoRemove docs for unimplemented trjconv -clustercenter
Mark Abraham [Wed, 8 Feb 2017 09:52:29 +0000 (10:52 +0100)]
Remove docs for unimplemented trjconv -clustercenter

2d8b8dd16d8 introduced a partial implementation, which was removed in
73b83321 because it introduced variables that were unused. However,
the matching documentation was not removed then.

Fixes #2114

Change-Id: Iedddf99b0254b772ffaebfcb27bec862493d920d

7 years agoDocument running Clang static analyzer manually
Vedran Miletić [Fri, 9 Dec 2016 17:31:14 +0000 (18:31 +0100)]
Document running Clang static analyzer manually

Change-Id: Ic1a273e9f8fc489d03b59eef70ff71bb426ba720

7 years agoBumped version to prepare for next patch release
Mark Abraham [Tue, 7 Feb 2017 13:22:22 +0000 (14:22 +0100)]
Bumped version to prepare for next patch release

Change-Id: I2a2ee89a0c8123ff870292b418d76afe2d542189

7 years agoIntroduced system preparation section to user guide
Mark Abraham [Fri, 20 Jan 2017 10:43:43 +0000 (11:43 +0100)]
Introduced system preparation section to user guide

This gives us somewhere we could document the use and limitations of
vdwradii.dat better.

Enchanced documentation of solvate and insert-molecules, similarly.

Refs #2094

Change-Id: I019948472dfc308c1acd74d4fce271ba4d481ead

7 years agoVersion 2016.2
Mark Abraham [Sun, 5 Feb 2017 20:11:24 +0000 (21:11 +0100)]
Version 2016.2

Bumped regressiontests hash and minor soversion as usual.

Change-Id: Ib005dda4f70e40c79d5911f53c08b1d358fe2948

7 years agoAdd mdp option check with decoupled modes
Berk Hess [Wed, 9 Nov 2016 21:25:53 +0000 (22:25 +0100)]
Add mdp option check with decoupled modes

When atoms involved in an angle with constrained bonds have very
different masses, there can be very weakly coupled dynamics modes.
Default mdp settings are often not sufficiently accurate to obtain
equipartitioning. This change adds a grompp check for this issue.

Part of #2071.

Change-Id: I64323154c38abe23b8d38d9d539d2a713a5c35e0

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Sun, 5 Feb 2017 20:03:24 +0000 (21:03 +0100)]
Merge branch release-5-1 into release-2016

Resolved conflict in gmx_order in favour of newly
corrected code from release-5-1 branch.

Change-Id: I7ed58873c0629bd33e18dd887d63b6ee8af7e32b

7 years agoFixes SEGV in gmx order.
David van der Spoel [Wed, 1 Feb 2017 19:06:25 +0000 (20:06 +0100)]
Fixes SEGV in gmx order.

gmx order used a cumbersome floating point method to compute
an index in a histogram leading to index -1. The present code
is simpler and robust, in fact the old code was likely wrong.

Fixes #2104

Change-Id: Ic3c15917eebe6c4964cd5cb053dfa4f05781cb73

7 years agoClarify use of tau-p and pcoupltype
Mark Abraham [Fri, 5 Feb 2016 17:40:28 +0000 (18:40 +0100)]
Clarify use of tau-p and pcoupltype

grompp used to permit "tau-p = 5 5" which is misleading. The recent
fix for #1893 leads to the user receiving a grompp warning, so this
improves the docs to make clear that pressure coupling is not
implemented like temperature coupling (where different time constants
might be used).

Refs #1893

Change-Id: I8328b30a12689795c7af2d12dfc94db11b78a03a

7 years agoReally fix array of complex in cross_corr
Berk Hess [Thu, 2 Feb 2017 20:54:00 +0000 (21:54 +0100)]
Really fix array of complex in cross_corr

A recent fix in cross_corr did not fix  a double precision FFT call
in single precision.

Fixes #2109.

Change-Id: Iefe11508b9e8c5dd255851063ab1e7bd95abe196

7 years agoFix array of complex in cross_corr
Berk Hess [Tue, 31 Jan 2017 15:03:35 +0000 (16:03 +0100)]
Fix array of complex in cross_corr

An array of complex number was created as an array of pointers and
then passed to gmx_fft_1d. This does not work.

Fixes #2109.

Change-Id: If28cf6d3b586615ee4857a89d937f7083287d209

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Tue, 31 Jan 2017 14:14:36 +0000 (15:14 +0100)]
Merge branch release-5-1 into release-2016

Change-Id: I5726f23a376f1be0052afdd917537f03f703760e

7 years agoFix multi-domain reruns
Mark Abraham [Fri, 27 Jan 2017 15:58:09 +0000 (16:58 +0100)]
Fix multi-domain reruns

3da127 broke multi-domain rerun by failing to consider the
logic within rerun_parallel_comm.

Fixes #2105

Change-Id: I3b38a248a4fba5b3d46f0275add75948ef7a9c53

7 years agoDon't print invalid performance data
Mark Abraham [Fri, 20 Jan 2017 15:08:24 +0000 (16:08 +0100)]
Don't print invalid performance data

If mdrun finished before a scheduled reset of the timing information
(e.g. from mdrun -resetstep or mdrun -resethway), then misleading
timing information should not be reported.

Fixes #2041

Change-Id: I4bd4383c924a342c01e9a3f06b521da128f96a35

7 years agoFixed gmx rmsf -q -oq.
Mark Abraham [Sun, 22 Jan 2017 13:56:19 +0000 (14:56 +0100)]
Fixed gmx rmsf -q -oq.

xref was used instead of pdbx in that case, which led to a PDB file
containing B-factors to have the coordinates based on those from the
-s file, rather than -q file. The tool description (and the other
logic) suggests that using -q should be the behaviour, in particular
because the contents of xref were then unused. gmx rmsf -oq was
otherwise fine.

Also fixed where xref was being abused as a temporary vector, which
asks for more such trouble, so improved that (without changing
functionality).

Noted TODO that npdbatoms might not match top.atoms.nr leading to
possible segfaults.

Change-Id: Id2c14fa5ca93c2a8de87f9bfa144a6db38fcc97f

7 years agoDisallow overwriting of dihedral type 9
Berk Hess [Fri, 9 Dec 2016 10:19:26 +0000 (11:19 +0100)]
Disallow overwriting of dihedral type 9

It is no longer allowed to repeat blocks of parameter of multiple
lines for dihedrals of type 9. It is also no longer allowed to
override parameters or dihedrals of type 9. Both are too complex
to properly check. It is still allowed to repeat parameters blocks
consisting of a single line.
Repeating a block with the same parameters would lead to incorrect
dihedral potentials and forces.

Fixed bug in arrayref.h interfaces.

Fixes #2077.

Change-Id: I802c6714a9700744df4e6b5ea96e41aa82793388

7 years agoCorrect assert on pme-order
Berk Hess [Tue, 17 Jan 2017 13:43:43 +0000 (14:43 +0100)]
Correct assert on pme-order

Change-Id: I2468a90d5aa46c84ea78d183327d7245862737c3

7 years agoSupress ICC 16 on Windows false postives
Roland Schulz [Fri, 21 Oct 2016 19:25:32 +0000 (12:25 -0700)]
Supress ICC 16 on Windows false postives

Change-Id: I7ef020d12a7f0dbbb9e0ddf60bdc6b8a671652b4

7 years agoFix flat-bottom position restraints + DD + OpenMP
Berk Hess [Tue, 3 Jan 2017 13:32:47 +0000 (14:32 +0100)]
Fix flat-bottom position restraints + DD + OpenMP

When using flat-bottom position restraints with DD and OpenMP
a (re)allocation was missing, causing a segv.

Fixes #2095.

Change-Id: I03af546a0b8d03a3d384d86a2582a67584e72d46

7 years agoFix compilation with CMAKE_CXX_FLAGS="-Wall -Werror"
Aleksei Iupinov [Thu, 5 Jan 2017 14:32:29 +0000 (15:32 +0100)]
Fix compilation with CMAKE_CXX_FLAGS="-Wall -Werror"

Refs #2073

Change-Id: I9223b13e8abd251d56378052ace4fb4e9169a2aa

7 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
Gerrit Code Review [Thu, 5 Jan 2017 02:13:19 +0000 (03:13 +0100)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

7 years agoStop trying to use objdump --reloc on Mac
Mark Abraham [Tue, 20 Dec 2016 11:57:54 +0000 (22:57 +1100)]
Stop trying to use objdump --reloc on Mac

Recent Xcode objdump does not support --reloc.

The warning that is based on the output of running objdump was only
implemented to work on Linux-like things, so should not spam the cmake
output on other platforms.

Change-Id: I8fae927e9f4d31de3510269c0d30bd1f10e825e6

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Tue, 3 Jan 2017 16:18:42 +0000 (17:18 +0100)]
Merge branch release-5-1 into release-2016

Skipped 9e6144061f4f as instructed by its commit message.

Change-Id: Ie275096b0e99723b56747f46f5ca667d9f84b5f0

7 years agoCorrected documentation about eigenvalue handling
Mark Abraham [Tue, 20 Dec 2016 05:17:34 +0000 (16:17 +1100)]
Corrected documentation about eigenvalue handling

Some file format docs were out of step with the implementation in
eigio.cpp.

The behaviour of gmx anaeig -eig -eig2 was not properly documented.

Change-Id: I55c4a0ab640f026e6e8a424203d54379e634a5b6

7 years agoImprove build system for plugin support
Mark Abraham [Thu, 24 Nov 2016 12:30:20 +0000 (13:30 +0100)]
Improve build system for plugin support

The mdrun-only and prefer-static-libs builds set the default for
BUILD_SHARED_LIBS to off, which silently disabled plugin support.

Converted GMX_LOAD_PLUGINS to tri-state ON/OFF/AUTO so that if the
preconditions for support are not met we can have suitable behaviour
in each case. We now write to the status line only when something
relevant changes, and issue a usefully descriptive fatal error only
when the user's request cannot be satisfied.

Renamed and reimplemented VMD_QUIETLY as EMIT_STATUS_MESSAGES.

Moved the reorganized code to its own source file.

Refs #2082

Change-Id: I0ad2d8423abbc8d8cb409e74325f2b00831644ea

7 years agoFix syntax in cmake status message
M. Eric Irrgang [Wed, 14 Dec 2016 00:21:24 +0000 (19:21 -0500)]
Fix syntax in cmake status message

Change-Id: I9ab793fe7d11e979fbc1cbd5ab3ec8ed6189dbb8

7 years agoImprove include sorter error reporting
Vedran Miletić [Mon, 12 Dec 2016 18:40:57 +0000 (19:40 +0100)]
Improve include sorter error reporting

Change-Id: I5fe5d1ad6a4001cff6ae8a2b109e831c5e3eb433

7 years agoHandle warninp correctly in xpm2ps and membed
Mark Abraham [Mon, 12 Dec 2016 03:28:35 +0000 (14:28 +1100)]
Handle warninp correctly in xpm2ps and membed

The code should not (over)write the output file before checking for
errors. For membed, it is useful to require the user to fix issues in
their input file before we unilaterally over-write it.

Called done_warning where it was omitted, which in the case of membed
meant that errors were not fatal when they should be.

Change-Id: I3c87f6bd99691b12d66906df3cc9980373429439

7 years agoFix misleading parallelization docs for gmx wham
Mark Abraham [Tue, 13 Dec 2016 22:11:00 +0000 (09:11 +1100)]
Fix misleading parallelization docs for gmx wham

Change-Id: I5bbadc4fc9b9af6bcd2a6ea1a848eae262e4fd8c

7 years agoAdd bonded #thread runtime check
Berk Hess [Thu, 8 Dec 2016 11:20:23 +0000 (12:20 +0100)]
Add bonded #thread runtime check

Replaced a debug assertion on the number of OpenMP threads not being
larger than GMX_OPENMP_MAX_THREADS by fatal error.
But since the listed forces reduction is actually not required with
listed forces, these are now conditional and mdrun can run with more
than GMX_OPENMP_MAX_THREADS threads.

Fixes #2085.

Change-Id: I7a6049d727924cd0b4df10a3525f9e7aec49c3dc

7 years agoBuild scripts for improved release workflow
Teemu Murtola [Thu, 1 Dec 2016 19:18:53 +0000 (21:18 +0200)]
Build scripts for improved release workflow

Add build scripts to support extracting version info from
gmxVersionInfo.cmake, and to update the regressiontests MD5.

Part of #2066

Change-Id: I916439c1be26823b4e366aea4e7fcded6de21659

7 years agoFix logic of TRR reading
Mark Abraham [Thu, 8 Dec 2016 16:47:09 +0000 (03:47 +1100)]
Fix logic of TRR reading

Commit f7d4d019 introduced a bug where TRR reading reaching the end of
the file was indistinguishable from a reading error or a magic-number
error. This is now fixed, restoring the end-of-file behaviour that
existed before f7d4d019, while retaining the wrong-magic-number
behaviour that it introduced.

Refs #1926

Change-Id: Ic8540846c481f022bc6ae7b774794792c8c7a523

7 years agoTurn off hwloc support when static lib found
Szilárd Páll [Wed, 2 Nov 2016 23:52:32 +0000 (00:52 +0100)]
Turn off hwloc support when static lib found

Hwloc dependencies are not resolved at CMake time when static
libwloc.a is detected and in most of these cases link-time
errors will prevent building GROMACS. As it is hard for a user to know
how to solve such cryptic errors and hwloc is not a required dependency,
we turn off hwloc support when a static lib is detected. The user can
override this on the cmake command line.

Refs #1919

Change-Id: Ic3917e2e59ee4c291b78ee47150e513ae77ced85

7 years agoFix possible memory error with long selections
Teemu Murtola [Sat, 3 Dec 2016 08:50:56 +0000 (10:50 +0200)]
Fix possible memory error with long selections

If a selection was more than 1000 characters long and there was a
whitespace exactly at the 1000 point, a buffer overflow could occur.
Replaced the buffer with std::string, simplifying the code
significantly.  Update the generated code to use a newer flex, which
also removes the need for some suppressions.

Should fix #2086.

Change-Id: I56513bcf5ee99f05ce144461740d0f868be10186

7 years agoMake editconf B-factor attachment more useful in practice
Vedran Miletić [Fri, 16 Sep 2016 13:19:39 +0000 (15:19 +0200)]
Make editconf B-factor attachment more useful in practice

B-factor values will be added to residues unless an index is larger
than the number of residues or an option is specified. Protein residue
indices can start from any number and, in case they start from a large
number, there is no way to add B-factor values to residues.

This patch changes it to add B-factor values to residues unless the
number of B-factor values is larger than the number of residues.

Change-Id: Ifa67d6d6b5dc0f31e5b0d270ce255aece5ac7247

7 years agoFix use of position variables with plus/merge
Teemu Murtola [Mon, 5 Dec 2016 19:26:27 +0000 (21:26 +0200)]
Fix use of position variables with plus/merge

If a selection contained a position variable (e.g., 'com of ...') that
was used more than once, and at least one of those uses was with
plus/merge, there were out-of-bounds memory writes.  This was caused by
the internal position structure not getting fully initialized.
Incomplete initialization happens in all contexts with such variables,
but only plus/merge (and possibly permute) actually use the values that
remained uninitialized, which caused them to incorrectly compute the
amount of memory required to store the result.

Fixes part of #2086.

Change-Id: I016e796db268a11d557309935c02cbd1bc79a83c

7 years agoFix memory handling in gmx dump of TNG files
Mark Abraham [Mon, 5 Dec 2016 22:54:01 +0000 (23:54 +0100)]
Fix memory handling in gmx dump of TNG files

Calling code in dump.cpp did not free the memory used in each loop
over different TNG data blocks. This is also more efficiently and
simply done with srenew, along with a final sfree.

Change-Id: I0fbfdc9acf3bc5f498ec3ec9b15da1c59bf4c271

7 years agoRemove undue narrowing of integer in TNG reading
Mark Abraham [Mon, 5 Dec 2016 13:25:54 +0000 (14:25 +0100)]
Remove undue narrowing of integer in TNG reading

This compromised the reading of TNG trajectories with sufficiently
large numbers of frames. Both types are 64-bit integers so we should
just do the obvious thing.

Change-Id: Id8dcaacc35231c6b4737d9924f70da3ac29e7408

7 years agoFix minor trjconv bug
Mark Abraham [Thu, 1 Dec 2016 00:24:48 +0000 (01:24 +0100)]
Fix minor trjconv bug

gmx trjconv -novel -f in.pdb -o out.pdb did not work as was probably
intended, because ftpin had an excessive large scope plus a default
value, and was only set by the -vel path (which fortunately is the
default).

Minimized scope of ftp while I was there.

Change-Id: I6b7dadc109834384f6cfb19f61258fa30d52ef80

7 years agoAdditional selection help
Teemu Murtola [Sat, 26 Nov 2016 05:07:00 +0000 (07:07 +0200)]
Additional selection help

- Explain resindex and resnr keywords in selection help.
- Explain how selection-enabled tools treat -s and -f input files.

Fixes #2083

Change-Id: I93e38c46a2bdb35f057688cf29fb3392712c2443

7 years agoCorrect kernel launch bounds for CUDA sm_60
Szilárd Páll [Mon, 26 Sep 2016 22:10:48 +0000 (00:10 +0200)]
Correct kernel launch bounds for CUDA sm_60

The GP100 architecture has half the SM size (64 ALUs) compared to 5.x
hence 64 threads/block already achieves maximum occupancy and the
incorrectly tweaked launch configuration is not optimal. This change
reverts the incorrectly increased block size in cc4214a.

NOTE: cherry-pick of b04a53c, skip when merging.

Change-Id: I5f269e609a5a095b93a44f43a6e67a0de40a38c7