Mark Abraham [Tue, 15 Aug 2017 13:26:34 +0000 (15:26 +0200)]
Merge branch release-5-1 into release-2016
Change-Id: Ib769849746a3e55f3e7ae4067f0b6f549e66bd2c
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
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
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
Berk Hess [Wed, 26 Jul 2017 10:09:12 +0000 (12:09 +0200)]
Add check for nr of orientation restraints
Change-Id: I78be294cd1c73db1cdd296e636dfc2806fa90c75
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)
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)
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
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
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
Carsten Kutzner [Fri, 23 Jun 2017 11:28:49 +0000 (13:28 +0200)]
Fixed #2206 IMD interface malfunctions
Change-Id: Ia58586a281591cefea8a382a40e92e3e30b56b75
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
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
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
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
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
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
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
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
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
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
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
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
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
Mark Abraham [Thu, 25 May 2017 23:59:34 +0000 (01:59 +0200)]
Test invsixthroot function as intended
Change-Id: I33fab8d4b8e848eb5d0bebec8e0f60f213bfd77d
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
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
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)
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
Mark Abraham [Tue, 9 May 2017 19:52:15 +0000 (21:52 +0200)]
Fix formatting of MKL cmake docs
Change-Id: Ibd97e75b416e19fdf183abfe2381ddc2ffd8b490
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
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
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
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
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
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
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
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
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
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
Mark Abraham [Tue, 14 Mar 2017 13:08:55 +0000 (14:08 +0100)]
Bumped version to prepare for next patch release
Change-Id: Ic368ff6186fb35d86fc2e7dfb6c6513eb48235d5
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
Ake Sandgren [Thu, 9 Mar 2017 13:57:07 +0000 (14:57 +0100)]
Fix tune_pme detection of GPU support
Change-Id: I60540cefe912f9ae3f602f90fa962bcf62bc61b4
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
Teemu Murtola [Sat, 11 Mar 2017 12:25:40 +0000 (13:25 +0100)]
Update copyright year for gmx -version
Change-Id: Ic981569e7bf73457341ac8c804a4c32eb476dca2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Vedran Miletić [Fri, 9 Dec 2016 17:31:14 +0000 (18:31 +0100)]
Document running Clang static analyzer manually
Change-Id: Ic1a273e9f8fc489d03b59eef70ff71bb426ba720
Mark Abraham [Tue, 7 Feb 2017 13:22:22 +0000 (14:22 +0100)]
Bumped version to prepare for next patch release
Change-Id: I2a2ee89a0c8123ff870292b418d76afe2d542189
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
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
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
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
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
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
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
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
Mark Abraham [Tue, 31 Jan 2017 14:14:36 +0000 (15:14 +0100)]
Merge branch release-5-1 into release-2016
Change-Id: I5726f23a376f1be0052afdd917537f03f703760e
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
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
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
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
Berk Hess [Tue, 17 Jan 2017 13:43:43 +0000 (14:43 +0100)]
Correct assert on pme-order
Change-Id: I2468a90d5aa46c84ea78d183327d7245862737c3
Roland Schulz [Fri, 21 Oct 2016 19:25:32 +0000 (12:25 -0700)]
Supress ICC 16 on Windows false postives
Change-Id: I7ef020d12a7f0dbbb9e0ddf60bdc6b8a671652b4
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
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
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
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
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
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
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
M. Eric Irrgang [Wed, 14 Dec 2016 00:21:24 +0000 (19:21 -0500)]
Fix syntax in cmake status message
Change-Id: I9ab793fe7d11e979fbc1cbd5ab3ec8ed6189dbb8
Vedran Miletić [Mon, 12 Dec 2016 18:40:57 +0000 (19:40 +0100)]
Improve include sorter error reporting
Change-Id: I5fe5d1ad6a4001cff6ae8a2b109e831c5e3eb433
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
Mark Abraham [Tue, 13 Dec 2016 22:11:00 +0000 (09:11 +1100)]
Fix misleading parallelization docs for gmx wham
Change-Id: I5bbadc4fc9b9af6bcd2a6ea1a848eae262e4fd8c
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
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
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
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
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
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
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
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
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
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
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
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