alexxy/gromacs.git
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

7 years agoIncreased the default reset step to 1500 in gmx tune_pme
Carsten Kutzner [Tue, 27 Sep 2016 09:31:39 +0000 (11:31 +0200)]
Increased the default reset step to 1500 in gmx tune_pme

Commit 785aad1a introduced a gmx_fatal() in mdrun for cases where
cycle counters are reset when PME tuning is still active. In
almost all cases, tuning takes longer than 100 steps (which was
the default at which gmx tune_pme would request mdrun to reset its
counters). This leads to gmx tune_pme reporting that all the
runs failed. Note that the small default of 100 steps was from times
where there was only DLB to account for, but not PME tuning.

With the increased default, this should happen only very rarely.

For future versions it would be nicer to implement a "-benchmarksteps"
command line parameter for mdrun which resets counters exactly after
PME tuning is finished and then performs a requested number of
benchmark MD steps. Refs #1781

Change-Id: Icbcce1ecc8a23d35302c04c9a6be13c06b1be8c8

7 years agoFixed typo in membed.cpp
Carsten Kutzner [Tue, 15 Nov 2016 14:13:41 +0000 (15:13 +0100)]
Fixed typo in membed.cpp

Fixes #2076

Change-Id: Idcebb45ee85b478d7863ac55eb5cef62a2109bb8

7 years agocmake: fix build with GMX_EXTERNAL_TNG=ON
Christoph Junghans [Thu, 3 Nov 2016 18:12:17 +0000 (12:12 -0600)]
cmake: fix build with GMX_EXTERNAL_TNG=ON

tng_set_source_properties is not defined in case of GMX_EXTERNAL_TNG=ON
due to the fact that BuildTNG.cmake never gets included. Also this
call isn't really needed tng doesn't get compile when external anyway.

Change-Id: Id3c7e0da55ce9ef8cf43d2aecaa187e965bf6ad2

7 years agoFix x86 conditional
Dan Horák [Tue, 8 Nov 2016 10:38:42 +0000 (11:38 +0100)]
Fix x86 conditional

The CpuInfoTest.SupportLevel testcase fails on s390x because wrong
condition in src/gromacs/hardware/tests/cpuinfo.cpp is used. Fixed
this by setting GMX_TARGET_X86 to 0 or 1 in all cases, both for
GROMACS CMake detection and GROMACS build.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1390149

Refs #2072

Change-Id: Id50fd65c6228a25f2bb2eca684d680a2b34d2263

7 years agoFix time label print in gmx vanhove
Berk Hess [Tue, 1 Nov 2016 11:05:07 +0000 (12:05 +0100)]
Fix time label print in gmx vanhove

Change-Id: Ibf668e46622c2739ae44f950d1bbfadbbb67b276

7 years agoBumped version to prepare for next patch release
Mark Abraham [Fri, 28 Oct 2016 21:18:02 +0000 (23:18 +0200)]
Bumped version to prepare for next patch release

Change-Id: I5f72d87d3b0ed4c06edade7188471ea12ed31046

7 years agoVersion 2016.1
Mark Abraham [Tue, 25 Oct 2016 09:35:54 +0000 (11:35 +0200)]
Version 2016.1

Bumped regressiontests hash and minor soversion as usual.

Change-Id: I339d70a29553be8662a2a5d3ebb1a11d8361af34

7 years agoDLB can now turn off, when slower
Berk Hess [Tue, 11 Oct 2016 20:08:02 +0000 (22:08 +0200)]
DLB can now turn off, when slower

Under certain conditions, especially with (shared) GPUs, DLB can
decrease the performance. We now measure the cycles per step before
turning on DLB. When the running average of cycles per step with DLB
gets above the average without DLB, we turn off DLB. We then measure
again without DLB. DLB can then turn on again. If we turn on DLB of
DLB multiple times in close succesion and we measure performance loss,
we keep DLB off for the remainder of the run. This procedure ensures
that the performance will never deteriorate due to DLB.
Updated and expanded the DLB section in the manual.

Change-Id: I6e0291c1a41adf6da94fae46d36e0fcb95585a02

7 years agoGPU-related additions to the install/user guide
Szilárd Páll [Tue, 25 Oct 2016 17:33:30 +0000 (19:33 +0200)]
GPU-related additions to the install/user guide

Additions:
- clarification of OpenCL compile- and run-time dependencies;
- rewrote info about OpenCL-enabled run requirements / peculiarities;
- added section on reducing overheads in GPU runs (related to both
  CUDA and OpenCL).

Change-Id: I310ab5605b46b4ed90db87d4ce022005c9b26419

7 years agoFix DLB timing with CUDA and OpenCL
Berk Hess [Tue, 4 Oct 2016 07:39:37 +0000 (09:39 +0200)]
Fix DLB timing with CUDA and OpenCL

With OpenCL the time for the local non-bonded to finish on the GPU
was ignored in the dynamic load balancing. This change lets OpenCL
take the same code path as CUDA.
Also the cycle wait limit of 50 Kcycles was far too small for both
CUDA and OpenCL. It now 2 Mcyles, based on measurements.
Note that with OpenCL we should have access to accurate host and
device timing (unlike with CUDA), but we will not use that in
a release branch.

Change-Id: I5b401fdeae7ab0b426a33baf01a3dbeb7d0d924e

7 years agoMake -cl-fast-relaxed-math default
Szilárd Páll [Tue, 25 Oct 2016 23:29:01 +0000 (01:29 +0200)]
Make -cl-fast-relaxed-math default

The change makes fastmath default and changes the previous env-var
trigger to GMX_OCL_DISABLE_FASTMATH to allow disabling it for testing.
It is known to be faster on all supported platforms (and we use it in
CUDA too) and it has been planned to be enabled for the r'16 release.

Change-Id: I8d196c9a14785ff43aae144ed95c3cb29241c83b

7 years agoAdd GMX_DISABLE_GPU_TIMING env var
Szilárd Páll [Tue, 25 Oct 2016 22:52:37 +0000 (00:52 +0200)]
Add GMX_DISABLE_GPU_TIMING env var

It disables timing for both CUDA and OpenCL so on the long run
it can replace both.

Change-Id: I3556d87c135eba2e24935e77a0d608b72219b284

7 years agoUpdate install guide
Mark Abraham [Fri, 21 Oct 2016 21:12:04 +0000 (23:12 +0200)]
Update install guide

Some recent traffic on gmx-users suggested some
improvements.

Change-Id: Iaaf116ebf582755a466048aed1cd30bc123dc817

7 years agoFix SIMD suggestion for VMX
Mark Abraham [Tue, 18 Oct 2016 15:16:02 +0000 (17:16 +0200)]
Fix SIMD suggestion for VMX

Change-Id: Iebf55611512bf02d2a1a5780a1d6c05ce4b16023

7 years agoSet maxwarn to INT_MAX if GMX_MAXCONSTRWARN < 0
James W. Barnett [Tue, 11 Oct 2016 13:09:55 +0000 (08:09 -0500)]
Set maxwarn to INT_MAX if GMX_MAXCONSTRWARN < 0

maxwarn is set to the value of the environmental variable
GMX_MAXCONSTRWARN, and we tell users to set that variable to -1 to have
no maximum. This condition was not being checked, so when set to -1 just
1 SETTLE warning was enough to halt the program. This commit fixes
that behavior by setting maxwarn to INT_MAX if GMX_MAXCONSTRWARN is -1
(or any other negative number).

Fixes #2058.

Change-Id: Ie6e2cb57f8402dd9a327f72f7fad36db19b8bb68

7 years agoFixed print bug in gmx wham
Berk Hess [Mon, 10 Oct 2016 07:08:05 +0000 (09:08 +0200)]
Fixed print bug in gmx wham

Change-Id: I1957d1213498c25dff0f9257a51aa89af8cf03b8

7 years agofix typo
James W. Barnett [Tue, 11 Oct 2016 16:07:36 +0000 (11:07 -0500)]
fix typo

Change-Id: Iee8170173b5c4f02361e588260985d7ddf24f198

7 years agoUpdate for FFTW 3.3.5
Mark Abraham [Sat, 8 Oct 2016 23:35:10 +0000 (01:35 +0200)]
Update for FFTW 3.3.5

The auto-download now gets FFTW 3.3.5 and builds it properly,
including with --enable-vsx when GMX_SIMD is set to VSX, i.e. for
Power8, and --enable-avx512 when GMX_SIMD is any of the AVX flavours
(which is safe on non-512 now, works on KNL, and is presumed useful
for future AVX512 architectures).

Note that 3.3.5 does not automatically add avx and sse support if
configured with --enable-avx2, so changed the documentation
accordingly.

Change-Id: I2a48ec1cb4f812dcae18870e0afcaf1120da251b

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.

Change-Id: I9be10acfb3650c778401d04dfcd52aa200f78ff4

7 years agoAdd script for Jenkins regressiontest update job
Mark Abraham [Thu, 15 Sep 2016 15:29:27 +0000 (16:29 +0100)]
Add script for Jenkins regressiontest update job

This job can generate regressiontests reference data. Intended to be
triggered on regressiontests change that lacks some reference data,
either because it's a new test case, or the old data was deleted in
that patch. Jenkins will build the code, run the test harness to
generate new reference data and attempt to add it to the git index.
If files were added, then update the commit and push it back to
gerrit.

The actual implementation is in the releng repository.

When merging to master branch, update the gcc version to 4.8.

Change-Id: I70542022af00773f58646c617fbf818cdf8f577e

7 years agoAlways update mdatoms when doing energy minimisation
Carlo Camilloni [Fri, 30 Sep 2016 10:08:47 +0000 (12:08 +0200)]
Always update mdatoms when doing energy minimisation

currently mdatoms were not updated when doing energy
minimisation using domain decompositions

Change-Id: I1ab79bfec0ad303c85cac2ea3ed622350e4872ec

7 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
Teemu Murtola [Wed, 5 Oct 2016 18:24:16 +0000 (20:24 +0200)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Mon, 3 Oct 2016 15:09:57 +0000 (17:09 +0200)]
Merge branch release-5-1 into release-2016

Change-Id: I38cba3159387519af07195a5995b0986dac5a2d6

7 years agoReplace use of deprecated readdir_r
Mark Abraham [Mon, 3 Oct 2016 10:00:52 +0000 (12:00 +0200)]
Replace use of deprecated readdir_r

clang 3.8+ warn about the deprecation of readdir_r. The main issue
here is support for concurrent access to the same directory stream,
which is never something GROMACS is likely to do. Currently the only
use is implementing enumerateFilesWithExtension which is used
single-threaded by pdb2gmx for discovering force fields in the
database. So we can replace the use of readdir_r with readdir, which
is simpler, and offers other advantages listed in man readdir_r.

Documented the new restriction on the interface of
DirectoryEnumerator. There are no current uses of nextFile that
would be affected by the change.

Change-Id: I0b80554493ff80e8857f0431192e22cfe7db5b22

7 years agoFix incorrect charge in HISE.
Justin Lemkul [Mon, 3 Oct 2016 11:32:58 +0000 (07:32 -0400)]
Fix incorrect charge in HISE.

Revision 1a60bdbfb5e6b11e52783a6afa26e615f15f1be0 introduced an
incorrect charge on HISE CG, which leads to a fractional charge
on the residue.  Any simulation with this charge will be wrong.

Fixes #2013

Change-Id: I9f80daf3dda2cd71715d4e15d6c868c6e47b48cc

7 years agoFixed bug in gmx wham for reading pullx files.
Jochen Hub [Thu, 21 Jul 2016 10:03:40 +0000 (12:03 +0200)]
Fixed bug in gmx wham for reading pullx files.

Because the order of columns in the pullx files has changed recently, gmx wham
did not pick the reaction coordinate from pullx.xvg if the COM of the pull
groups were written. gmx wham was tested with various pull options and geometries.

Change-Id: If487e0493992c76649dc9a596c8df56d331abf22

7 years agoFixed script xplor2gmx.pl to work with GMXDATA
David van der Spoel [Mon, 12 Sep 2016 11:15:20 +0000 (13:15 +0200)]
Fixed script xplor2gmx.pl to work with GMXDATA

Change-Id: I25c8857cfdd992679f3be9a6ab59c9a74c0df0c8

7 years agoFix default nice level in mdrun-only build
Teemu Murtola [Sat, 24 Sep 2016 18:57:16 +0000 (21:57 +0300)]
Fix default nice level in mdrun-only build

Now an mdrun-only build should default to zero nice level, the same as
'gmx mdrun' in a normal build.

Change-Id: I50dcf3be93bdba0d03bf6816c15c7c6729db0005

7 years agoFix math-test false positive
Roland Schulz [Fri, 16 Sep 2016 00:45:33 +0000 (17:45 -0700)]
Fix math-test false positive

Depending on the accuracy of the floating point division, the
input of the test function could be 1ulp too large or too small.
If it was too large the result of the test function wasn't
within 4ulp and the test failed.

Change-Id: Ia322b136d1db9b25c7c733e4067f927a4c77e372

7 years agoFixed unused variables in domdec.cpp
Berk Hess [Fri, 16 Sep 2016 07:38:24 +0000 (09:38 +0200)]
Fixed unused variables in domdec.cpp

Fixed unused variables in domdec.cpp when configured without MPI.

Change-Id: I844ab59e16eb2fbde97ed3893ba6dea5679dca34

7 years agoMade distance restraints work with threads and DD
Berk Hess [Wed, 10 Aug 2016 10:23:03 +0000 (12:23 +0200)]
Made distance restraints work with threads and DD

The NMR distance restraints use several buffers for summing distances
that were indexed based on the index of the thread+domain local ilist
force atoms. This gives incorrect results with OpenMP and/or domain
decomposition. Using the type index for the restraint and a domain-
local, but not thread-local index for the pair resolves these issues.
The are now only two limitations left:
* Time-averaged restraint don't work with DD.
* Multiple copies of molecules in the same system without ensemble
  averaging does not work with DD.

Fixes #1117.
Fixes #1989.
Fixes #2029.

Change-Id: Ic51230aa19a4640caca29a7d7ff471e30a3d9f09

7 years agoDocument wallcycle counters and subcounters
Vedran Miletić [Wed, 31 Aug 2016 18:52:46 +0000 (20:52 +0200)]
Document wallcycle counters and subcounters

List the available counters and explain how they are used. For subcounters,
explain the difference to counters and mention how to enable them.

Change-Id: Id5ce0e99b37a899f84d10b799840abad27d15c9c

7 years agoPrint OpenCL error string instead of error code
Vedran Miletić [Tue, 30 Aug 2016 18:18:13 +0000 (20:18 +0200)]
Print OpenCL error string instead of error code

Change-Id: I00871b7f295373d8497a13d0bc3cbd0c0ff99668

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Thu, 8 Sep 2016 10:40:51 +0000 (12:40 +0200)]
Merge branch release-5-1 into release-2016

Trivial conflicts in minimize.cpp from bug fix in same region that now
has exceptions caught within an OpenMP region.

Change-Id: I8b3c269a2afd7d4967e0f7310c96af6022533ddd

7 years agoBumped patch number to prepare for future 5.1.5 release
Mark Abraham [Thu, 8 Sep 2016 08:07:13 +0000 (10:07 +0200)]
Bumped patch number to prepare for future 5.1.5 release

Change-Id: I37e3120ec8ab257f0aeb1cf137dff27391e0689f

7 years agoVersion 5.1.4
Mark Abraham [Wed, 7 Sep 2016 12:39:33 +0000 (14:39 +0200)]
Version 5.1.4

Bumped SOVERSION_MINOR and REGRESSIONTEST_HASH

Change-Id: Ib8404367c7ac15e0de567bf103f5ceb5d4dd5091

7 years agoRemoved HIS1 from oplsaa and charmm definitions
Mark Abraham [Mon, 5 Sep 2016 15:49:22 +0000 (17:49 +0200)]
Removed HIS1 from oplsaa and charmm definitions

HIS1 is intended for linking with heme, which oplsaa doesn't
define. charmm converts HIS1 to HSD in its .r2b.

This makes the recent fix for oplsaa HISD "consistent" with HIS1.

Fixes #2047
Refs #2049

Change-Id: Ibc0463c779e76689dc7ef65e48aedc716de9e032

7 years agoFix LYN charges in amber03
Mark Abraham [Mon, 5 Sep 2016 15:32:19 +0000 (17:32 +0200)]
Fix LYN charges in amber03

These charges now match those found in AMBER 14 and 16. The
validation of the AMBER ports was done with AMBER 8.0, and
this fix was made afterwards in
http://ambermd.org/bugfixes/8.0/bugfix.19 (and perhaps LYN wasn't
in the validation set).

Fixes #2046.

Change-Id: Ibcaab337b527a44e42d5a7c68f71ef4fde2acf66

7 years agoFix amber03 HIP charges
Mark Abraham [Tue, 6 Sep 2016 13:57:00 +0000 (15:57 +0200)]
Fix amber03 HIP charges

These were changed in Nov 2005, and now match AmberTools 16

Fixes #2050

Change-Id: I191b60c6acd2f521b3481578114ff48fca0979e5

7 years agoWork around glibc 2.23 with CUDA
Mark Abraham [Mon, 27 Jun 2016 17:18:12 +0000 (19:18 +0200)]
Work around glibc 2.23 with CUDA

Note: Cherry-pick of e2cd2e2e from the 2016 branch.

Fixes #2022

Change-Id: Id9881efb3f26af341b9c89b4bd1f983a2149c9e4

7 years agoFix bug with conjugate-gradient and OpenMP
Berk Hess [Tue, 6 Sep 2016 13:14:17 +0000 (15:14 +0200)]
Fix bug with conjugate-gradient and OpenMP

The conjugate-gradient update routine re-used the pointer variable for
x for cg_p. This pointer was shared over threads and no barrier was
present before the pointer modification.

Fixes #1941.

Change-Id: I5f635fc3054147543820c4e5e74f3519637d541d

7 years agoRe-enable flexible constraints with DD
Berk Hess [Mon, 5 Sep 2016 08:58:45 +0000 (10:58 +0200)]
Re-enable flexible constraints with DD

Commit 409edb80 added a fatal error in init_shell_flexcon() with DD.
But flexible constraints without shells work correctly with DD.

Change-Id: Ic3c5028a7aa6d956cf85f779347df16329d817bb

7 years agoMerge branch release-5-1 into release-2016
Berk Hess [Fri, 2 Sep 2016 15:28:25 +0000 (17:28 +0200)]
Merge branch release-5-1 into release-2016

Change-Id: Ia1a7fad67f0ff11175ea24c46f813a445cd49ed6

7 years agoFix Parrinello-Rahman with nstpcouple>1
Berk Hess [Mon, 15 Aug 2016 19:03:13 +0000 (21:03 +0200)]
Fix Parrinello-Rahman with nstpcouple>1

Fixes #2031.

Change-Id: I37cf18c40c6cf5e301d7981c9f10bbf963d8cda8

7 years agoMake virial reproducible
Berk Hess [Wed, 17 Aug 2016 13:27:49 +0000 (15:27 +0200)]
Make virial reproducible

OpenMP reduction was used to reduce virial contributions over threads,
which does not have a defined order. This leads to different rounding,
which makes runs non-reproducible (but still fully correct).
Now thread local buffers are used.
Also removed OpenMP parallezation for small count (e.g. shift forces).

Change-Id: I8d80def602337cc12ab601916bf40d7f66bf9bbc

7 years agoStop using gmx_fatal in grompp
Mark Abraham [Tue, 23 Aug 2016 22:40:04 +0000 (00:40 +0200)]
Stop using gmx_fatal in grompp

Added warning_error_and_exit to issue an error that describes the
location in the input file, and then halt processing (because data
structures would not be safe to use) while also describing where in
the code that occured. Either set of metadata can be useful to users
or developers diagnosing issues.

Refactored implementation of check_warning_error() so that
warning_error_and_exit() can have the gmx_noreturn qualifier, so that
analyzers understand the behaviour of the calling code, and compilers
can understand the implementation of warning_error_and_exit().

This permits more effective diagnostics in various places, and
eliminates some existing hacks.

Bumped all declarations of errbuf to have size STRLEN, since some of
the new uses might be safer that way.

Also made a minor fix to output to avoid redundant output from
done_warning when an error has occured.

Change-Id: I29f8afeb70d0da3598c6443c15090bca9bf5c639

7 years agoFix build with GMX_USE_TNG=off
Roland Schulz [Wed, 24 Aug 2016 20:57:28 +0000 (13:57 -0700)]
Fix build with GMX_USE_TNG=off

Change-Id: I305edfafbe87f0ad1e8ff410f419e5d32b23e1a7

7 years agoFixed bug in gmx insert-molecules.
Jochen Hub [Wed, 24 Aug 2016 15:50:08 +0000 (17:50 +0200)]
Fixed bug in gmx insert-molecules.

With option -ip, and if all trials were unsuccessful, a molecule was
eventually incorrectly placed at 0/0/0 due to a memory error
when referencing to rpos[XX][mol].

Change-Id: I367727210b893652af39217925906cc2dc703465

7 years agoFix Ewald surface+3DC corrections
Berk Hess [Wed, 24 Aug 2016 11:00:14 +0000 (13:00 +0200)]
Fix Ewald surface+3DC corrections

Ewald surface and 3DC correction forces were only applied up to,
but not including, the last atom with exclusions. With water at
the end of the system only the last H would not be corrected.
With ions at the end all ions would be missing.
In addition, with the Verlet scheme and domain decomposition
no force correction was applied at all.

Fixes #2040.

Change-Id: I064bf01fab561dca40451763b75283b6f59e0fbd

7 years agoMerge branch release-5-1 into release-2016
Berk Hess [Wed, 24 Aug 2016 11:12:21 +0000 (13:12 +0200)]
Merge branch release-5-1 into release-2016

Also applied the merged fix to nbnxn_cuda_kernel_fermi.cuh.

Change-Id: I79d0cb59214290097d6f356e35dd13c4eadaed75

7 years agoRemove variable precision gro writing
Berk Hess [Tue, 23 Aug 2016 10:13:35 +0000 (12:13 +0200)]
Remove variable precision gro writing

The gro precision is now fixed to 3, 4 and 5 decimal places for
x, v and box respectively to ensure compatibility with other software.
Variable precision reading is still supported.

Fixes #2037.

Change-Id: I0e593622ee0380c3934a7b7b6826ae29aed00a59

7 years agoFixed opening of wall table files
Berk Hess [Wed, 17 Aug 2016 13:35:05 +0000 (15:35 +0200)]
Fixed opening of wall table files

Fixes #2033.

Change-Id: Ie5092476f021d0578bbcbd84c7e4f895959fd06e

7 years agoFixes for BG/Q platform files and install guide
Mark Abraham [Fri, 12 Aug 2016 08:19:34 +0000 (10:19 +0200)]
Fixes for BG/Q platform files and install guide

Renamed the platform file to reflect normal practice
and the install guide.

Change-Id: Icffde855789f561faa0249d095838fea9f97ce1d

7 years agoReduce FE pair-list memory usage
Berk Hess [Mon, 8 Aug 2016 13:24:14 +0000 (15:24 +0200)]
Reduce FE pair-list memory usage

Refs #2014.

Change-Id: Ia8bbc55eed7e3590e6944127ab94dd41f475e6a7

7 years agoBump number to prepare for first patch release
Mark Abraham [Fri, 12 Aug 2016 08:11:49 +0000 (10:11 +0200)]
Bump number to prepare for first patch release

Change-Id: I1cdfd715d2681677460945ed6670adb2a35f9839

7 years agoFix deadlock with thread-MPI
Berk Hess [Tue, 9 Aug 2016 20:26:04 +0000 (22:26 +0200)]
Fix deadlock with thread-MPI

With thread-MPI mdrun could deadlock while pinning threads.

Fixes #2025.

Change-Id: Ib42e9625134531b1e2f910b11339aa0f78b80624

7 years agoFix twin-cutoff for GPU LJ pot-switch
Berk Hess [Tue, 9 Aug 2016 11:24:49 +0000 (13:24 +0200)]
Fix twin-cutoff for GPU LJ pot-switch

With rcoulomb>rvdw, as used with PME tuning, the GPU kernels performed
the LJ cut-off check before applying the potential-switch to the LJ
forces and energies.

Fixes #2007.

Change-Id: Ie2f6fdfec10bdb8800123e6fa299839a31bc0f93

7 years agoVersion 2016
Mark Abraham [Wed, 3 Aug 2016 13:13:10 +0000 (15:13 +0200)]
Version 2016

Removed "-rc1" per policy. Bumped regressiontests hash.

Change-Id: If94c03e280fce13143d238fa3e7f2df3b8b659cf

7 years agoFix/improve doc links in template/README
Teemu Murtola [Thu, 4 Aug 2016 04:23:46 +0000 (07:23 +0300)]
Fix/improve doc links in template/README

For installations from a tarball, put a link to an appropriate version
at manual.gromacs.org instead of Jenkins-generated documentation which
might be for a newer version.  For builds from the repository, the links
still point to the nightly Jenkins job.

The first link was also pointing to an obsolete Jenkins job.

Change-Id: Ib56c62cd572879c8dadde6881507e54f6d22a784

7 years agoThree new quotes.
David van der Spoel [Tue, 2 Aug 2016 21:23:55 +0000 (23:23 +0200)]
Three new quotes.

Change-Id: I9a7ed8343a0133a68bf7790e85bff9d331dd6294

7 years agoUse only legal characters in OpenCL cache filename
Vedran Miletić [Tue, 12 Jul 2016 17:07:30 +0000 (19:07 +0200)]
Use only legal characters in OpenCL cache filename

The device name from the vendor could contain anything, and we need to
avoid dot and slash when we try to make a filename from it. To help
keep it valid for all possible users, we permit only alphanumeric
characters from the current locale.

Change-Id: Ie55959a9a2161d0cfc7effa6ab57fffc8160f4e2

7 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
David van der Spoel [Sun, 31 Jul 2016 07:18:27 +0000 (09:18 +0200)]
Merge "Merge branch release-5-1 into release-2016" into release-2016

7 years agoDocument gmx_cgsort_t and gmx_domdec_sort_t structs
Vedran Miletić [Wed, 27 Jul 2016 15:01:25 +0000 (17:01 +0200)]
Document gmx_cgsort_t and gmx_domdec_sort_t structs

Add descriptions to fields of gmx_cgsort_t and gmx_domdec_sort_t
structs used in domain decomposition code.

Change-Id: Ie64664ed46413e51ba22504270ab11350c39b84a

7 years agoImprove handling of gmock and gcc6
Mark Abraham [Fri, 29 Jul 2016 11:56:19 +0000 (13:56 +0200)]
Improve handling of gmock and gcc6

This patch reverts commit d6e35c96 that used gcc
-fno-delete-null-pointer-checks to work around implementation errors
in gmock 1.7. There's been no new release of gmock for several years,
but a patch is now available to address this issue.

This commit applies that patch, found at
https://github.com/google/googletest/issues/705#issuecomment-235067917. Updated
our README describing modifications GROMACS has found it necessary to
make.

Fixes #1911

Change-Id: I0d5abe9bf8172f6749bcad97a13765edaa3d4c80

7 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Fri, 29 Jul 2016 12:32:44 +0000 (14:32 +0200)]
Merge branch release-5-1 into release-2016

Change-Id: Id782b78da4b2080fec208d29b9b4afc363f1418c

7 years agoFixes incorrect charges in OPLS/AA-L for HISD and HISE
David van der Spoel [Fri, 22 Jul 2016 07:43:02 +0000 (09:43 +0200)]
Fixes incorrect charges in OPLS/AA-L for HISD and HISE

With the present charges results from Michael Shirts et al.
J. Chem. Phys. 119 (2003) 5740 can be reproduced.

Fixes #2013

Change-Id: Ifb037961499633210d26ff32ec6bf3bebc505461

7 years agoAdd toolchain flags for SSE2 compilation
Mark Abraham [Thu, 28 Jul 2016 17:53:50 +0000 (19:53 +0200)]
Add toolchain flags for SSE2 compilation

This is how the code should be, though my testing didn't need it.

Also fixed function documentation.

Fixes #2008

Change-Id: Ic1e1c16d22e054e9f741d91c667305de7398cd30

7 years agoBumped patch number to prepare for future 5.1.4 release
Mark Abraham [Thu, 21 Jul 2016 18:40:39 +0000 (20:40 +0200)]
Bumped patch number to prepare for future 5.1.4 release

Change-Id: I813e0d8c976d0afca316f5cfe095c5647b8fd66c

7 years agoFix issues with using int for number of steps
Mark Abraham [Thu, 14 Jul 2016 15:31:49 +0000 (17:31 +0200)]
Fix issues with using int for number of steps

Mostly we use a 64-bit integer, but we messed up a few
things.

During mdrun -rerun, edr writing complained about the negative step
number, implied it might be working around it, and threatened to
crash, which it can't do. Silenced the complaint during writing,
and reduced the scope of the message when reading.

Fixed TNG wrapper routines to pass a 64-bit integer like they should.

Made various infrastructure use gmx_int64_t for consistency, and noted
where in a few places the practical range of the value stored in such
a type is likely to be smaller. We can't extend the definition of XTC
or TRR, so we're stuck. TNG is already good, though.

Fixes #2006

Change-Id: If485d9d92cb4b99a3bbe25e8e9fa082fc3fccd5f

7 years agoVersion 5.1.3
Mark Abraham [Wed, 13 Jul 2016 10:27:17 +0000 (12:27 +0200)]
Version 5.1.3

Bumped minor soversion and regressiontest hash

Change-Id: I55f1cc4f1154f053512c8cc3509fd0be8e3c347b

7 years agoFix trr magic number reading
Mark Abraham [Tue, 12 Jul 2016 13:55:46 +0000 (15:55 +0200)]
Fix trr magic number reading

The trr header-reading routine returned an "OK" value if the magic
number was wrong, which might lead to chaotic results everywhere,
because checking of return values tends not to happen (even when
they're right). Other GROMACS magic-number reading routines tend to
give a fatal error if the the number is wrong, e.g. by reading a file
written in wrong endianness. (This should never be a thing for XDR
files, which are defined to be big endian, but such code has existed.)

This change adds/restores that behaviour to trr reading, along
with separating the behaviour of failing to read a magic integer
from reading one that doesn't match.

Fixes #1926

Change-Id: I3cdd8ae9172e3b95fc232d8fa31a442d239233db

7 years agoFix gmx mdrun -membed -ntmpi -1
Mark Abraham [Mon, 11 Jul 2016 14:43:44 +0000 (16:43 +0200)]
Fix gmx mdrun -membed -ntmpi -1

This used to give a fatal error if we'd chosen more than one rank, but
instead we should choose to use a single rank. Now that we have
several kinds of things that want to trigger such handling, build some
infrastructure to handle it. This allows us to separate the trigger
logic from how we report back to the user.

Change-Id: If01177b590c1a817113c642c30fd30d6d4bc3eab

7 years agoFix membed with partial revert of 29943f
Erik Lindahl [Sat, 9 Jul 2016 21:32:58 +0000 (23:32 +0200)]
Fix membed with partial revert of 29943f

The membrane embedding algorithm must be initialized before
we call init_forcerec(), so it cannot trivially be moved into
do_md(). This has to be cleaned up anyway for release-2017
since we will remove the group scheme be then, but for now
this fix will allow us have the method working in release-2016.

Fixes #1998.

Change-Id: I8e16a67b8df16999793649d79eebca051b8b474f

7 years agoFix for incorrectly setting expanded ensemble when fep_state = 0
Michael Shirts [Mon, 27 Jun 2016 04:19:26 +0000 (22:19 -0600)]
Fix for incorrectly setting expanded ensemble when fep_state = 0

Expanded ensemble lambda values were not being copied over when the
proposed fep_state was 0.  This commit fixes that by removing a
a conditonal that was incorrectly added.

Fixes #1995

Change-Id: I3d49b0936d973fb70a9a79799743f5069ba4fff4

7 years agoFix regressiontest download md5sum
Mark Abraham [Mon, 11 Jul 2016 12:24:52 +0000 (14:24 +0200)]
Fix regressiontest download md5sum

I forgot that the md5sum changes with the decision to
name it rc1 rather than beta3, because the directory
name within the tarball changes.

Change-Id: I5b5f5b9de43ee5771fbdfb53842609f1635f3f38

7 years agoFirst 2016 release candidate
Mark Abraham [Thu, 23 Jun 2016 14:12:06 +0000 (16:12 +0200)]
First 2016 release candidate

Change-Id: I54a3e3c33015eb42ba5c18994ef76ce1bb2888c5

7 years agoHardware detection clean-up and pre/post-processing
Erik Lindahl [Thu, 7 Jul 2016 14:01:13 +0000 (16:01 +0200)]
Hardware detection clean-up and pre/post-processing

This change cleans up the various tests and hacks we have
had in different places to remove a number of false warnings
and errors. It also unifies all this processing to two
small routines that are called just before/after the
hardware is detected, so the user can choose whether it
should be done or not in other places.

- Rather than trying to guess when we should or shouldn't
  override the number of cores online, the preprocessing
  uses a piece of code that allows sleeping cores to come
  online automatically by running a small C++11 thread loop before
  doing the hardware topology detection. This way we can
  remove all ARM-specific paths. To avoid wasting a second
  on systems where SMT is disabled, we avoid calling it on x86.
- All SMT warnings are handled in the post-processing call,
  but only as notes in the log file to avoid writing
  warnings on stderr.
- The check for OpenMP thread mismatch has been removed
  since it caused incorrect warnings by comparing the number
  or threads configured for each OpenMP process with the
  total number of cores in the entire system. We will have
  to rewrite this later as a test in the MPI/OpenMP
  parallelization setup instead.

By sticking with the hwloc/sysconf-online detection, we should
now also handle all special cases where cores have been taken
offline manually in a correct way without using hardware-specific
paths.

Change-Id: I37edb3eada3f4c8c0906c641c7041cc0270985e8

7 years agoPrevent fragile use cases of checkpoint appending
Erik Lindahl [Tue, 24 May 2016 23:04:50 +0000 (01:04 +0200)]
Prevent fragile use cases of checkpoint appending

There are way too many ways we allow runs to be continued
and extended. We still allow the checkpoint file to be
missing (so -cpi can be used for all command lines), but
we warn if it is not found. To avoid mistakes with file
appending when restarting from checkpoints, we now require
that all previous output files must be present
(unless -noappend is used), and that the file names must
match the ones used in the previous run.

Fixes #1777.

Change-Id: Id9e89773a4a9214be6dbb76676c526e98e12bd37

7 years agoUpdate affinity checking for Intel compiler
Erik Lindahl [Thu, 7 Jul 2016 18:29:33 +0000 (20:29 +0200)]
Update affinity checking for Intel compiler

Since release 2013, the Intel compiler no longer sets
OpenMP affinity by default according to intel docs. This
means the code that tried to disable it by setting
environment variables no longer had any effect (and we
likely have not checked it the last few years). In
addition, it is not ideal behaviour in a library either to
assume that no other code has executed OpenMP prior to a call
or to set environment variables that influence other code
execution too. However, we will still disable Gromacs' own
thread affinity if it has been set by the user or calling code.

Change-Id: I57a952766e87a35483f1960b349f7c30d5b85f24

7 years agoPrint working dir before command line
Vedran Miletić [Wed, 6 Jul 2016 14:49:31 +0000 (16:49 +0200)]
Print working dir before command line

When running GROMACS via a batch script, it is useful to know which
working dir is being used for relative paths (file names) in the
command line.

Change-Id: Iab6701e09ad3b0386b59c2bdda2c4f908fdc2d0a

7 years agoMerge "Merge branch release-5-1 into release-2016" into release-2016
David van der Spoel [Fri, 8 Jul 2016 14:24:25 +0000 (16:24 +0200)]
Merge "Merge branch release-5-1 into release-2016" into release-2016