alexxy/gromacs.git
6 years agoSupported quiet trajectory-handling I/O
Christoph Junghans [Sun, 13 Aug 2017 15:52:18 +0000 (09:52 -0600)]
Supported quiet trajectory-handling I/O

Permits GMX_TRAJECTORY_IO_VERBOSITY=0 to be set to keep frame-reading
code quiet, which is convenient for tools using libgromacs.

Change-Id: I873dcf229d9c20c8dd3b5097784236c2c2c478c1

6 years agoFixes for Solaris
Mark Abraham [Sun, 3 Sep 2017 13:59:12 +0000 (15:59 +0200)]
Fixes for Solaris

Suggested by Maureen Chew, of Oracle.

Change-Id: I5c3f868721944e7586b7001f3ffdf6ab17953526

6 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
Aleksei Iupinov [Mon, 4 Sep 2017 11:13:40 +0000 (13:13 +0200)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

6 years agoFix compiler flags for using MKL
Mark Abraham [Sun, 3 Sep 2017 13:48:10 +0000 (15:48 +0200)]
Fix compiler flags for using MKL

Change-Id: I860e43da8de3b563167ecee1f52e2017a0f27f7f

6 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Sun, 3 Sep 2017 14:51:20 +0000 (16:51 +0200)]
Merge branch release-5-1 into release-2016

Change-Id: I047ad1ab813b69582bdf5f4681549171724323f6

6 years agoFix flat-bottomed position restraints with multiple ranks
Mark Abraham [Fri, 25 Aug 2017 16:17:19 +0000 (18:17 +0200)]
Fix flat-bottomed position restraints with multiple ranks

Reallocation was never done for flat-bottomed restraints,
so the indexing could go out of range, leading to segfaults.

Fixes #2236

Change-Id: I866f96684fc5a2fef6391ed62a70abdaa1581a33

6 years agoFix compilation issues with ARM SIMD
Mark Abraham [Thu, 13 Jul 2017 11:23:52 +0000 (11:23 +0000)]
Fix compilation issues with ARM SIMD

ARM_NEON has never supported double precision SIMD, so disabled it
with GROMACS double-precision build.

The maskzR* functions used the wrong argument order in the debug-mode
pre-masking (and sometimes in a typo-ed syntax).

In the shift operators, the clang-based compilers (including the
armclang v6 compiler series) seem to check that the required immediate
integer argument is given before inlining the call to the operator
function. The inlining seems to permit gcc to recognize that the
callers always use an immediate. In theory, the new code might
generate code that runs a trifle slower, but we don't use it at the
moment and the cost might be negligible if other effects dominate
performance.

Change-Id: I61dd4d906f7d5b77bc4e851cfaaaff059e5a67fe

6 years agoImprove the "files not present" error message
Vedran Miletić [Mon, 14 Aug 2017 15:33:31 +0000 (17:33 +0200)]
Improve the "files not present" error message

It's possible to use -deffnm in restarts even if it wasn't used in
the initial simulation. This can lead to absurd situations such as:

Expected output files not present or named differently:
  pullx.xvg
  pullf.xvg

where pullx.xvg and pullf.xvg are present and named exactly as listed,
but GROMACS expects them to be named as -deffnm requested.

The improved error message suggest to the user to check for that
possibility.

Refs #942 (partial workaround)

Change-Id: I983a7a2be791a634b877b0cbadb34e56a1ee2f82

6 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
Aleksei Iupinov [Thu, 17 Aug 2017 10:23:49 +0000 (12:23 +0200)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

6 years agoMigrate some of the terminology pages
Vedran Miletić [Tue, 13 Jun 2017 16:38:51 +0000 (18:38 +0200)]
Migrate some of the terminology pages

Change-Id: I2671535659cc0e62aa44cd5056e3924180b6abba

6 years agoMigrate the documentation of the run-time errors
Vedran Miletić [Tue, 13 Jun 2017 16:38:31 +0000 (18:38 +0200)]
Migrate the documentation of the run-time errors

From the wiki, cleaned up and updated with new tool names.

Change-Id: Ia21e227b660d84b1b3f72f1f6e30cf29e5de9a23

6 years agoWorked around missing OpenMP implementation in orires.
David van der Spoel [Wed, 2 Aug 2017 07:15:50 +0000 (09:15 +0200)]
Worked around missing OpenMP implementation in orires.

The orientation restraint code is not aware of OpenMP threads
and uses some global information. By only running it on the
master node results are now independent of number of threads
used.

Fixes #2223

Change-Id: Ie86f4bd4e645fa71a58114950f6a297b5788e022

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 agoCUDA 9/Volta support for the nonbonded module
Jiri Kraus [Wed, 19 Jul 2017 15:51:45 +0000 (08:51 -0700)]
CUDA 9/Volta support for the nonbonded module

The Volta architecture introduces independent thread scheduling. This
new architectural feature breaks implicit warp synchronous programming
and requires new intrinsics for warp wide operations like shfl.

This change implements the necessary sync point for the Volta
architecture and replaces the deprecated warp-intrinsics with their
_sycn version.

Note that the current implementation is conservative and aims for Volta
compatibility only and the implementation is likely not optimal (for
details see nbnxn_cuda_kernel.cuh).

Change-Id: I38dd572992cf14ce5a7158d0bbc3086b54f18676

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 agoCorrected the PDF manual to reflect that all tools are called gmx <tool>
Carsten Kutzner [Thu, 10 Aug 2017 09:44:49 +0000 (11:44 +0200)]
Corrected the PDF manual to reflect that all tools are called gmx <tool>

There were still a few occurrences of the old-style g_tool naming,
this patch removes. Deliberately left g_membed as is, because there
was never a gmx membed but instead it got incorporated into mdrun.

Change-Id: I42d9d07f749be7358ed90dc7701249a1e696334b

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