alexxy/gromacs.git
6 years agoDisallowed change of ensemble for checkpoint restart
Mark Abraham [Fri, 26 Jan 2018 16:22:04 +0000 (17:22 +0100)]
Disallowed change of ensemble for checkpoint restart

Change-Id: I63a8330043fddffc9cfc98203f60d71497e6c2f7

6 years agoReplace *_free_buffered calls by freeDeviceBuffer
Aleksei Iupinov [Tue, 13 Feb 2018 16:49:40 +0000 (17:49 +0100)]
Replace *_free_buffered calls by freeDeviceBuffer

Change-Id: Iaabd4b6655615294943254a29a65507af7567ade

6 years agoMerge branch release-2018 into master
Mark Abraham [Fri, 16 Feb 2018 12:25:41 +0000 (13:25 +0100)]
Merge branch release-2018 into master

Trivial conflict in checkpoint.cpp from fixing whether a return value
was ignored.

Change-Id: Ie2006eeee1118b32d1a46e47191db45b454a4ecd

6 years agoFix PME for large systems with Fermi GPUs
Aleksei Iupinov [Thu, 15 Feb 2018 12:27:48 +0000 (13:27 +0100)]
Fix PME for large systems with Fermi GPUs

PME spread/gather CUDA kernel scheduling did not account for
compute capability limitations. Realistically this has only
caused it to fail on CC 2.x with input systems larger than
2^18 ~= 262k atoms. This is now fixed for all CUDA architectures.

Fixes #2409

Change-Id: I59295b5d53a341d08a221aebb52e1db9f1e80107

6 years agoUse struct for checkpoint header contents
Mark Abraham [Thu, 25 Jan 2018 20:37:06 +0000 (21:37 +0100)]
Use struct for checkpoint header contents

Also cleaned up some memory handling for strings in the header.

Change-Id: I3837844afdf863de263dbc8d2e88071ca50e23fb

6 years agoUpdate FFTW build to 3.3.7
Aleksei Iupinov [Tue, 19 Dec 2017 17:42:09 +0000 (18:42 +0100)]
Update FFTW build to 3.3.7

Refs #2358

Change-Id: Ifc4f1b289836c37d2f5edbfabfe26592d761b0ee

6 years agoAdd freeDeviceBuffer GPU utility function
Aleksei Iupinov [Mon, 12 Feb 2018 09:16:15 +0000 (10:16 +0100)]
Add freeDeviceBuffer GPU utility function

This allows to make the GPU pairlist deletion code look same
for CUDA and OpenCL. More cleanup TODOs are left.

Change-Id: I4f7775ae2bda65b69696f7aacdb1d3fea9c62ac5

6 years agoAdd the missing comma in the quote
Aleksei Iupinov [Thu, 15 Feb 2018 14:19:33 +0000 (15:19 +0100)]
Add the missing comma in the quote

This was printed as:
GROMACS reminds you: "It's just B I O L O G Y, can't you see?Joe Jackson" ((null))

Change-Id: I69e86ecda8930fffeeab3a54f2f015339fd9b345

6 years agoRemove read_checkpoint_state
Mark Abraham [Thu, 25 Jan 2018 20:58:43 +0000 (21:58 +0100)]
Remove read_checkpoint_state

Left over after its caller was removed in 8850750d352d

Change-Id: Iee119c38443e113263515e2e82351e5b2ee6546f

6 years agoRemove support for tpx version before 58/gmx4.0
Berk Hess [Wed, 14 Feb 2018 09:17:59 +0000 (10:17 +0100)]
Remove support for tpx version before 58/gmx4.0

Change-Id: I2e5d7f23e9a6825c30a6687099a27e73857a59cd

6 years agoUse std::vector for checkpoint outputfiles
Mark Abraham [Thu, 25 Jan 2018 10:56:41 +0000 (11:56 +0100)]
Use std::vector for checkpoint outputfiles

Change-Id: Ic547bc12dccd4c1f539a1d08a53326c39e035948

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Wed, 14 Feb 2018 12:54:33 +0000 (13:54 +0100)]
Merge branch release-2016 into release-2018

This patch has already been incorporated into release-2018

Change-Id: I088c0d44b5620b3eb575e8a1d0a05adeefaee2cc

6 years agoFix range bug in add_selection_groups in tngio.cpp
Berk Hess [Tue, 13 Feb 2018 10:40:28 +0000 (11:40 +0100)]
Fix range bug in add_selection_groups in tngio.cpp

If there were more molecule blocks than types in the topology,
atoms from the later blocks could be missing in selections written
to tng.

Change-Id: I8bf840b2f019ca9b3c2ccefcf48da866bf8ec559

6 years agoReplace the remaining EXPECT_DEATH with EXPECT_DEATH_IF_SUPPORTED
Aleksei Iupinov [Wed, 14 Feb 2018 11:20:06 +0000 (12:20 +0100)]
Replace the remaining EXPECT_DEATH with EXPECT_DEATH_IF_SUPPORTED

Change-Id: Ibce3d4f240bf3552893762b74206d8e54575d18d

6 years agoAdd DeviceBuffer as a typedef for cl_mem/device ponter
Aleksei Iupinov [Thu, 8 Feb 2018 18:03:19 +0000 (19:03 +0100)]
Add DeviceBuffer as a typedef for cl_mem/device ponter

It is applied to unify the pairlist structure.

Change-Id: I81f78dca2a356ffc7b7638047d29ea29e20c689e

6 years agoFix bug in checkpoint error checking
Mark Abraham [Thu, 25 Jan 2018 08:34:45 +0000 (09:34 +0100)]
Fix bug in checkpoint error checking

Change-Id: I91a185913356a42949596d8f4ca34ec2394c24a5

6 years agoRemove barriers preventing texture reference races
Szilárd Páll [Mon, 12 Feb 2018 19:51:21 +0000 (20:51 +0100)]
Remove barriers preventing texture reference races

These barriers only prevent races on the texture references which can't
happen anymore.

Change-Id: I31ba03f2045643e56ce3272f91a6a0c85a83e88e

6 years agoFix grompp net charge check
Berk Hess [Tue, 13 Feb 2018 11:55:35 +0000 (12:55 +0100)]
Fix grompp net charge check

The grompp check for the net charge would ignore molecule blocks
at the end when molecule types are used in multiple, non consecutive
molecule blocks.

Fixes #2407

Change-Id: I4e7c6c609da99025174f180f9d4037ac9f9fd7fc

6 years agoFix grompp net charge check
Berk Hess [Tue, 13 Feb 2018 11:55:35 +0000 (12:55 +0100)]
Fix grompp net charge check

The grompp check for the net charge would ignore molecule blocks
at the end when molecule types are used in multiple, non consecutive
molecule blocks.

Fixes #2407

Change-Id: I4e7c6c609da99025174f180f9d4037ac9f9fd7fc

6 years agoPrepare release notes for 2018.1
Mark Abraham [Tue, 13 Feb 2018 07:11:35 +0000 (08:11 +0100)]
Prepare release notes for 2018.1

Change-Id: I342130c590bff57df1369d488fb98491e936f78f

6 years agoUse death test only when supported
Mark Abraham [Tue, 13 Feb 2018 16:11:19 +0000 (17:11 +0100)]
Use death test only when supported

In build farms for bioconda and DebiChem, some environments don't
support death tests, so hopefully if we use the GoogleTest machinery
to avoid using them when not supported we can avoid issues in such
environments.

Refs #2405

Change-Id: I17efe3b620b162d615b91a5f5cd4c8bd458143a5

6 years agoMove GPU traits into separate headers
Aleksei Iupinov [Tue, 13 Feb 2018 14:44:27 +0000 (15:44 +0100)]
Move GPU traits into separate headers

Avoid using templated traits struct in favor of simplicity,
as CUDA/OpenCL code being isolated suffices for now.

Change-Id: I2c43edb7cff2d3711141abf044e5fedd76e4444d

6 years agoSeparate multisim from commrec
Mark Abraham [Sun, 21 Jan 2018 18:26:14 +0000 (19:26 +0100)]
Separate multisim from commrec

Changed default value for nmultidir variable.

Called done_commrec.

Change-Id: Ie5f531389d682b9a619b5fc6314cb687f1a68828

6 years agoRemove single/multi compilation unit switching logic
Szilárd Páll [Mon, 12 Feb 2018 13:26:46 +0000 (14:26 +0100)]
Remove single/multi compilation unit switching logic

The reason for needing the single compilation unit support for the
nonbonded kernels has now eliminated with the removal of the CUDA
texture reference support, so all switching logic and consistency
checks are now removed. The CMake cache variable and include statements
that allow using multiple compilation units is still kept for now.

Change-Id: I9f6e6491805aba7202cbe65865fbceb173e20cce

6 years agoRemove texture reference support in the CUDA
Szilárd Páll [Thu, 8 Feb 2018 20:20:45 +0000 (21:20 +0100)]
Remove texture reference support in the CUDA

Only required for legacy CC 2.0 / Fermi hardware we drop support to
simplify code and improve maintainability. The impact on the Fermi
support will only be performance (as direct memory fetch will be used).
Additionally, all builds will use multiple complication units now,
single compilation unit support has been kept for now and will be
removed later (if it simplifies code).

Follow-up expected/made possible:
- remove single compilation unit mode for CC 2.0;
- remove barrier that protects from race cleanup in
  pme-load-balancing.cpp;
- merge regular and Fermi NB kernels.

Change-Id: Ic3677b7beaff1b4b9dc927d955940f7e779c2a41

6 years agoFix the include guard
Aleksei Iupinov [Thu, 1 Feb 2018 15:21:59 +0000 (16:21 +0100)]
Fix the include guard

Change-Id: If943efbd859211309be50d1d0cb25c53523bbbf5

6 years agoRemove commrec from hardware detection
Mark Abraham [Thu, 1 Feb 2018 12:30:24 +0000 (13:30 +0100)]
Remove commrec from hardware detection

This is preparatory refactoring for aspects of #2395

The OpenCL logic was ineffective, because duty is not yet decided, and
anyway we might soon want the detection on PME-only ranks.

Replaced the thread-MPI single-rank assertion with a more direct
implementation.

Minimized contents of detecthardware.h

Refs #2395

Change-Id: I03af65805bd14515a0213d511ae8cdb627c2f05c

6 years agoAnalyse threads on node before setting affinities
Mark Abraham [Fri, 26 Jan 2018 12:47:20 +0000 (13:47 +0100)]
Analyse threads on node before setting affinities

This prepares for future refactoring. It just extracts a function,
names variables related to thread count less cryptically, and adds
Doxygen. Possibly the analysis function could move to a more central
point later.

Change-Id: Ie624ba3ff86d5d5dbce9d2aba02199cd8e6714ea

6 years agoFix reading old force field files
Mark Abraham [Fri, 9 Feb 2018 10:14:09 +0000 (11:14 +0100)]
Fix reading old force field files

Old force field files that contain fields suitable for explicit
solvent still need to be readable. grompp could already still read the
directives in old force field files and ignore them. However, when
they are read, grompp still needs to understand that they are in a
valid place within the .top file structure. While any place is now
valid (because the contents are ignored), it is simplest to keep the
former requirement, since all files that worked with older GROMACS had
to conform with that requirement.

That requirement was removed in the patch that removed implicit
solvent support Ib241555ff3d8, and it should not have been removed.

I left a comment noting that this is a legacy constraint, not a
necessary one. But probably we'll rewrite topology handling before we
would ever care.

Fixes #2406

Change-Id: Ice11fd34963f7b2a3d5a3b66545c53587d834952

6 years agoRevert "Enable debug FP exceptions without TPI, not with TPI"
Aleksei Iupinov [Fri, 9 Feb 2018 11:14:19 +0000 (12:14 +0100)]
Revert "Enable debug FP exceptions without TPI, not with TPI"

This reverts commit 9aca3e2865d0cae8283df00f20fbe4b33927d854 until
most issues at #2404 are presumed to be fixed.

Change-Id: I5c3b248f2f265794837a6cf980ed4917108a54bb

6 years agoMerge branch release-2018
Mark Abraham [Fri, 9 Feb 2018 10:34:15 +0000 (11:34 +0100)]
Merge branch release-2018

Change-Id: I2524a854b75c0100ab821c4512339f3768ed4428

6 years agoUse more portable python shebangs
Mark Abraham [Tue, 6 Feb 2018 16:22:16 +0000 (17:22 +0100)]
Use more portable python shebangs

Per https://www.python.org/dev/peps/pep-0394/#recommendation, we
should use env, and point it at python2. When we either make them 2/3
or just-3 compatible, this should change.

Some distros (notable Arch Linux) already point python at python3 so
we should choose to be explicit, and thus somewhat portable.

Fixes #2401

Change-Id: Icf98e04660c798d10b167f971b20698e0741994a

6 years agoMerge "Merge branch release-2016 into release-2018" into release-2018
Mark Abraham [Thu, 8 Feb 2018 17:45:26 +0000 (18:45 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Thu, 8 Feb 2018 16:55:11 +0000 (17:55 +0100)]
Merge branch release-2016 into release-2018

Resolved conflicts in commit matrices by implementing the same logical
change as in release-2016 (move msvc+icc config to post-submit matrix)
in release-2018.

Change-Id: Id5d731e37e54b8c3896763d0a4ca496f99612f0f

6 years agoUse SIMD bondeds without perturbed interactions
Berk Hess [Wed, 24 Jan 2018 15:26:08 +0000 (16:26 +0100)]
Use SIMD bondeds without perturbed interactions

With free-energy, but without perturbed bonded interactions,
we would use the SIMD accelerated bondeds functions.

Change-Id: I67bdb0cba9c6ec20b076576af940d2be51fa6c9f

6 years agoAlways run the essential dynamics tests
Aleksei Iupinov [Thu, 8 Feb 2018 15:12:14 +0000 (16:12 +0100)]
Always run the essential dynamics tests

Change-Id: Ice24b0217d55d3c19ebdcb6b25a3f2f3539c31ef

6 years agoEnable debug FP exceptions without TPI, not with TPI
Aleksei Iupinov [Mon, 5 Feb 2018 14:49:15 +0000 (15:49 +0100)]
Enable debug FP exceptions without TPI, not with TPI

This was broken since I2a152a752079ca4. A FIXME is marked
to resolve interaction with the hidden command line switch
"-fpexcept".

Change-Id: I4b270233db34f19766d1bc4dda1725d7fcf9e897

6 years agoMerge "Merge branch 'release-2018' into master"
Mark Abraham [Thu, 8 Feb 2018 12:18:00 +0000 (13:18 +0100)]
Merge "Merge branch 'release-2018' into master"

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Thu, 8 Feb 2018 10:47:06 +0000 (11:47 +0100)]
Merge branch 'release-2018' into master

Manually modified:
src/programs/mdrun/md.cpp (to uncomment done_ebin())

Change-Id: Ic3887c40668f69e69ee8da15d210721b8bd3e95f

6 years agoAllow bonds with distance=0
Berk Hess [Wed, 7 Feb 2018 12:15:19 +0000 (13:15 +0100)]
Allow bonds with distance=0

We should allow overlapping atoms in harmonic bonds. But the code
would cause a floating point exception and incorrect free-energy
derivatives.
Note that using sqrt(x) instead of x*invsqrt(x) is faster on Intel.

Change-Id: I87dd1e84f8f526ac40e482bccc94d89e33a1d112

6 years agoCleaning up do_force_cutsVERLET function from wallcycle calls
Prashanth Kanduri [Mon, 18 Dec 2017 09:05:04 +0000 (10:05 +0100)]
Cleaning up do_force_cutsVERLET function from wallcycle calls

Change-Id: I50bead1f0760e2f61f5002d33bba8fc6e85692b5

6 years agoRemove unnecessary includes from domdec.h
Aleksei Iupinov [Tue, 6 Feb 2018 10:37:09 +0000 (11:37 +0100)]
Remove unnecessary includes from domdec.h

Change-Id: I0d1e1d8ebc52a60b3b939525b61952980b46d673

6 years agoZero unused values to silence the warning
Aleksei Iupinov [Tue, 6 Feb 2018 15:29:43 +0000 (16:29 +0100)]
Zero unused values to silence the warning

Change-Id: I8419a823e9a94434c3c534da4bf98ca79ff6ead7

6 years agoPrevent log file energy average printing dividing by zero
Mark Abraham [Wed, 31 Jan 2018 07:48:16 +0000 (08:48 +0100)]
Prevent log file energy average printing dividing by zero

If there's not enough data for averages, skip the average printing
entirely. In principle, pr_ebin could be called from elsewhere than
print_ebin, so now we print "N/A" rather than "nan" or segfaulting.

Added some const correctness. Added some tests. Unfortunately they
currently have to write a file to disk, but we should have the test
before refactoring it to run in memory. The tests needed to be able
to clean up their memory, so runner can now also call done_ebin
but for stability we'll leave that off for now.

TODO When merging to master branch enable the call to done_ebin
in runner().

Fixes #2394

Change-Id: Id2e151664dd4553e49880f96bdd90aacc945f992

6 years agoUse isfinite unambiguously
Mark Abraham [Tue, 6 Feb 2018 07:52:13 +0000 (08:52 +0100)]
Use isfinite unambiguously

Patch provdied by Veselin Kolev

Fixes #2400

Change-Id: I1923998a2288e20cb339e7fc59210cbf9ac5bfa8

6 years agoOnly setup Ewald in the generic group kernel if it's used
Aleksei Iupinov [Mon, 5 Feb 2018 11:31:57 +0000 (12:31 +0100)]
Only setup Ewald in the generic group kernel if it's used

Helps to not divide by garbage values.

Change-Id: I67999c56b2ce6105d154e7f90b137f67bafd4673

6 years agoSet cutoff modifiers in forcerec
Berk Hess [Mon, 5 Feb 2018 15:05:23 +0000 (16:05 +0100)]
Set cutoff modifiers in forcerec

The cutoff modifiers were not copied from interaction_const_t
to forcerec_t which meant only the generic kernels was used with
the group scheme.

Fixes #2399

Change-Id: I2890cbd55e648e434ad3817edc4e5fe4c5697162

6 years agoMake ndx files optional in SimulationRunner
Aleksei Iupinov [Mon, 5 Feb 2018 10:08:06 +0000 (11:08 +0100)]
Make ndx files optional in SimulationRunner

Change-Id: Ib1010097d2dce75a6fdac49bb3b3c5aa3e4c4b8f

6 years agoRemove mdpInputFileName_ from SimulationRunner, per TODO
Aleksei Iupinov [Mon, 5 Feb 2018 09:59:54 +0000 (10:59 +0100)]
Remove mdpInputFileName_ from SimulationRunner, per TODO

Change Ib6511a338935b14be was the prerequisite.

Change-Id: Ief8717d45c5948a7666b232dd7ea3f1863823671

6 years agoFix assertion failure in TPI
Berk Hess [Mon, 5 Feb 2018 09:38:22 +0000 (10:38 +0100)]
Fix assertion failure in TPI

Fixes #2398

Change-Id: I89ddde7bdb6c061411160009df1f87e7c2cef0a1

6 years agoDon't print impossible CUDA version numbers in absence of GPUs
Aleksei Iupinov [Fri, 26 Jan 2018 15:22:33 +0000 (16:22 +0100)]
Don't print impossible CUDA version numbers in absence of GPUs

As results of CUDA version API calls are not checked for success
when printing the gmx binary information header, values of the
non-initialized variables were printed on nodes with no GPUs
(e.g. "CUDA runtime: 32.96"). This change makes the gmx print
"N/A" as a CUDA version string in case of CUDA API error.

Change-Id: Ia5856badb5e5e536f50d1a028163743b4bf93107

6 years agoFix input MDP contents for swap and IMD tests
Aleksei Iupinov [Thu, 1 Feb 2018 16:39:10 +0000 (17:39 +0100)]
Fix input MDP contents for swap and IMD tests

Change I7a9a7c60591 moved the input MDP contents from files
to std::string's, and in doing so butchered the line breaks
for no good reason, silently breaking the tests.
This is now fixed, using C++11 raw string literals.

Change-Id: Ia4abc26ce67fdebba5f830c2461743b38d944956

6 years agoCheck for GTEST_IS_THREADSAFE being defined
Aleksei Iupinov [Tue, 30 Jan 2018 13:26:15 +0000 (14:26 +0100)]
Check for GTEST_IS_THREADSAFE being defined

Change I0d847bc24 updated GTest library to version 1.8.0,
which added GTEST_IS_THREADSAFE to the list of macros that
can only be defined to 1, or undefined. This change corrects
the check of the macro.

Change-Id: I6e2f9bb30a9128bc85a1b5f38c73d21b65dd61f7

6 years agoAdd information for n2t file format
Paul Bauer [Tue, 30 Jan 2018 12:13:26 +0000 (13:13 +0100)]
Add information for n2t file format

Refs #2130, #2146

Change-Id: I21acf300d5a9336b0c11d82d6e2f4d10fc1ef212

6 years agoReplace macros for multi-sim
Mark Abraham [Sat, 20 Jan 2018 16:14:23 +0000 (17:14 +0100)]
Replace macros for multi-sim

This now use static inline functions.

Change-Id: Ib80c4912690aee9ea2d06266eca143a6a7638b34

6 years agoUpdate GoogleTest to 1.8.0
Mark Abraham [Thu, 23 Feb 2017 16:07:20 +0000 (17:07 +0100)]
Update GoogleTest to 1.8.0

This is the first new release in several years. It introduces some new
features that may prove useful. It no longer requires work-arounds for
newer gcc versions. It fixes several issues that we had worked around
ourselves. Several other fixes have been transferred to the updated
versions.

This version incorporates the documentation (but only for this
version) because that can be useful for GROMACS developers,
particularly to have available offline.

Change-Id: I0d847bc2490935e0ddc3170b674d7460a5a08506

6 years agoRemoved unused flag PCA_CAN_READ_NODE
Berk Hess [Thu, 25 Jan 2018 09:39:41 +0000 (10:39 +0100)]
Removed unused flag PCA_CAN_READ_NODE

Change-Id: Ie3f5fca1208991688179c9acba698bda419a056e

6 years agoRemove unused declaration
Mark Abraham [Sat, 27 Jan 2018 07:54:44 +0000 (08:54 +0100)]
Remove unused declaration

Found by pre-release clang 6

Change-Id: Ibea53009ea71f295123c5c533e6478ae9f4a5da2

6 years agoRemove unused fields of t_commrec
Mark Abraham [Wed, 24 Jan 2018 15:30:33 +0000 (16:30 +0100)]
Remove unused fields of t_commrec

Change-Id: I7704117ca1c51c5e5ad50514d53c0bb0c508de43

6 years agoReduced includes of common headers in headers
Mark Abraham [Thu, 25 Jan 2018 07:23:00 +0000 (08:23 +0100)]
Reduced includes of common headers in headers

This makes it faster to recompile after refactoring
those headers.

Change-Id: I882eb29b23b3a983a9209243a9667b3ed77cdd66

6 years agoRemoved mdrun -multi
Mark Abraham [Thu, 18 Jan 2018 19:47:53 +0000 (20:47 +0100)]
Removed mdrun -multi

mdrun -multidir remains, and works better.

Moved some of the control logic into init_multisystem, particularly
because it was duplicated, and wrong in both versions.

Reduced scope of nmultisim.

Removed documentation.

Removed comment in mdrun.cpp that wasn't in English, has been there
for a very long time, and doesn't seem likely to be accurate or
useful.

Change-Id: I711330bde6ee001cbc60645beecf18e6b7d5fae4

6 years agoChange multi-sim tests to use -multidir
Mark Abraham [Thu, 18 Jan 2018 19:44:20 +0000 (20:44 +0100)]
Change multi-sim tests to use -multidir

The former use of -multi is deprecated.

The need to make directories for -multidir makes it more clear that
simulation runner should not be a thing made and owned by the test
fixture.

Change-Id: Ib6511a338935b14beed0c23a683f9dd2a66a164e

6 years agoRemove unused fields per TODO
Aleksei Iupinov [Wed, 24 Jan 2018 13:49:48 +0000 (14:49 +0100)]
Remove unused fields per TODO

Change-Id: Ia895f83254a0ad8a500304660f39f9d2e384ae6d

6 years agoRemove gmx_inline
Mark Abraham [Wed, 24 Jan 2018 07:49:27 +0000 (08:49 +0100)]
Remove gmx_inline

C++ supports the inline keyword, and we should prefer to
use standard things where possible.

Removed the include of the relevant header in the two places where
that was now possible.

Change-Id: Ia709e3b55d83d01459706580fc337aaa275a6330

6 years agoTeach include sorter to ignore cmake-test files
Mark Abraham [Wed, 24 Jan 2018 08:13:19 +0000 (09:13 +0100)]
Teach include sorter to ignore cmake-test files

Change-Id: Ie08c0ab7a03fcd1016347f534b518ff51863da98

6 years agoMove Windows icc config to post-submit testing
Mark Abraham [Wed, 24 Jan 2018 13:23:00 +0000 (14:23 +0100)]
Move Windows icc config to post-submit testing

The front end and standard library for this build are the same as the
msvc config, so there is not a great deal of coverage added by this
config. Post-submit does not use this slave at all.  Only running one
job per matrix on this slave will permit us to use only one executor
on it, which might reduce the number of strange failures and hangups.

Fixes #2387

Change-Id: Iedc421b7f4ea6d74f0b4cbd5cc88ea958b427213

6 years agoReplace gmx_bool with bool in bitmask functions
Mark Abraham [Tue, 23 Jan 2018 22:00:28 +0000 (23:00 +0100)]
Replace gmx_bool with bool in bitmask functions

These functions never stored to a variable of type gmx_bool, so there
is not even a theoretical downside to using a proper bool.

Change-Id: If0f5f1fffe6badb3bb6c777f04365cd6c403ebdc

6 years agoRemove support for implicit solvation
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove support for implicit solvation

Mdp files with implicit-solvent = no can still be read, and formerly
valid related fields are now ignored, so that default mdp files from
previous versions of GROMACS will work. Anything else for the
implciit-solvent mdp value gives an error in grompp.

grompp can now only write a tpr file that has a false value for
ir->implicit_solvent, but can read older versions. When mdrun is
presented with an older tpr file that did such a simulation, it
refuses to run, presenting a useful error message. Such tpr files are
still useful for other purposes, so can still be read, except that the
fields specific to these methods are ignored.

grompp now ignores the topology directives for related parameters,
which means that force-field folders that are the same as, or
modifications of folders formerly supported by GROMACS still
work. However, the versions currently distributed have none of those
fields.

The group-scheme kernels have been removed, and generation
infrastructure updated so that they do generate the code that's in the
repo. However, now that the python generation scripts no longer
generate GB kernels, the dictionary ordering changes, which changes
the generated output. That output is not sensitive to the order of the
declarations or data-structure elements, so this is only a cosmetic
issue.

Documentation has been removed.

Unit tests on .mdp file handling have had to be updated.

Also removed unused enbcoul enumeration

Refs #1500
Refs #1971
Fixes #1054

Change-Id: Ib241555ff3d8e60012ba0e628ab0f9a3f91eca9e

6 years agoRemove topology support for implicit solvation
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove topology support for implicit solvation

Refs #1500
Refs #1971

Change-Id: I75d05d52ea1d528f63f2249da62f0bcfca4274d2

6 years agoTest the mixed mode PME with walls and box scaling
Aleksei Iupinov [Tue, 16 Jan 2018 16:31:58 +0000 (17:31 +0100)]
Test the mixed mode PME with walls and box scaling

Refs #2385

Change-Id: I42281dd6b3da30c777a0819d97c1d85e69049674

6 years agoTest PME CPU/GPU with walls and box scaling
Aleksei Iupinov [Tue, 16 Jan 2018 15:09:01 +0000 (16:09 +0100)]
Test PME CPU/GPU with walls and box scaling

Change-Id: I34f9a1b3a20b25b9cb577f074e08ccddad9f1b2e

6 years agoWrap the PME testing loop in a method for extensibility
Aleksei Iupinov [Fri, 12 Jan 2018 16:16:57 +0000 (17:16 +0100)]
Wrap the PME testing loop in a method for extensibility

Also clarify the XML reference data step tag.

Change-Id: I04eee98d92221f4e0e2fa23fa1180896858f1add

6 years agoPreliminary cleanup before removing ifdef cplusplus
Mark Abraham [Sun, 24 Dec 2017 05:53:27 +0000 (16:53 +1100)]
Preliminary cleanup before removing ifdef cplusplus

Several files used more complex organization, which is best resolved
manually before we do some scripted refactoring.

Converted two all-vs-all kernels to C++ so that smalloc.h could be
converted. We'll anyway remove those kernels some time soon.

Change-Id: I49549cff19effa91bf0400ab706d582b13017309

6 years agoAVX512: copysign
Roland Schulz [Sat, 20 Jan 2018 01:22:59 +0000 (17:22 -0800)]
AVX512: copysign

Change-Id: I336b9096d83f7dc74ec53d233df8c2ad75a51ed1

6 years agoAVX512 GCC 5.3 work-around
Roland Schulz [Fri, 19 Jan 2018 21:23:27 +0000 (14:23 -0700)]
AVX512 GCC 5.3 work-around

GCC 5.3 has bug in overload resolution causing the AVX512
and scalar function to become ambiguous.

Change-Id: I1db4696f19c05c9eb3a97320a8c6c5b41823cca9

6 years agoAdd a death test for the duplicate inputrec keys checking
Aleksei Iupinov [Thu, 18 Jan 2018 11:13:00 +0000 (12:13 +0100)]
Add a death test for the duplicate inputrec keys checking

That was fixed in Idc66145af.

Refs #2386

Change-Id: I4c726989da646ffa5343f4bcdea51dfdf049ef6c

6 years agoMerge "Merge branch 'release-2018' into master"
Mark Abraham [Fri, 19 Jan 2018 14:55:18 +0000 (15:55 +0100)]
Merge "Merge branch 'release-2018' into master"

6 years agoRename class BiasReader to struct BiasOutputSetup
Aleksei Iupinov [Fri, 19 Jan 2018 10:05:20 +0000 (11:05 +0100)]
Rename class BiasReader to struct BiasOutputSetup

Change-Id: Id3b2eb7405b88633914be50d3c41c7ced861238d

6 years agoAdd dev-guide docs for automatic update of regressiontests
Mark Abraham [Fri, 19 Jan 2018 11:14:33 +0000 (12:14 +0100)]
Add dev-guide docs for automatic update of regressiontests

Change-Id: I28e907157cfc7e428841030f4605fed02def390b

6 years agoMove the temporary file MPI workaround into the base mdrun test class
Aleksei Iupinov [Fri, 12 Jan 2018 13:23:41 +0000 (14:23 +0100)]
Move the temporary file MPI workaround into the base mdrun test class

Change-Id: Ic3fb0f42dde408b6f26944ffc59366d21c5086e3

6 years agoMake the reference data variables local in GetIrTest
Aleksei Iupinov [Thu, 18 Jan 2018 11:36:22 +0000 (12:36 +0100)]
Make the reference data variables local in GetIrTest

Change-Id: Ief12dd273b7d1099eb01d025cec7fde1efdc5aeb

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Fri, 19 Jan 2018 10:42:17 +0000 (11:42 +0100)]
Merge branch 'release-2018' into master

Change-Id: I77f2ee791cfe08a3d162605e14b411a18244b4c3

6 years agoFixes for issues found by clang 6
Mark Abraham [Mon, 8 Jan 2018 08:22:16 +0000 (09:22 +0100)]
Fixes for issues found by clang 6

Change-Id: Ibdaad0a36d30659f2f9fa8bf142d311bc1f38b2d

6 years agoRemove incorrect release-note entry
Roland Schulz [Thu, 18 Jan 2018 22:13:03 +0000 (14:13 -0800)]
Remove incorrect release-note entry

Change was reverted before the release.

Change-Id: Id46ba251edc9a44cd62275d03ecfe15d5230cfd9

6 years agoGot rid of manual memory management in the PME overlap structures
Aleksei Iupinov [Tue, 28 Nov 2017 14:14:40 +0000 (15:14 +0100)]
Got rid of manual memory management in the PME overlap structures

Also moved a couple of fields (send_id, recv_id) to the proper
place.

Change-Id: I372d82b703349c65fd86257795d958a8b38c98b8

6 years agoBump version numbers for 2019 development
Mark Abraham [Wed, 17 Jan 2018 14:21:05 +0000 (15:21 +0100)]
Bump version numbers for 2019 development

Change-Id: I5c89b5266d122ba63017a2d7d84b9da1c0066040

6 years agoAvoid dynamic STL containers in global init
Roland Schulz [Fri, 12 Jan 2018 02:00:58 +0000 (18:00 -0800)]
Avoid dynamic STL containers in global init

For global variables (and static class members) using dynamic containers
causes issues if using LD_PRELOAD to load different libgromacs.

Change-Id: I7bc20b8305fdf5cfedd43d0e1351d9327cdca332

6 years agoRe-enable multi-rank PME tests (with the file race fixed in parent)
Aleksei Iupinov [Fri, 12 Jan 2018 11:09:42 +0000 (12:09 +0100)]
Re-enable multi-rank PME tests (with the file race fixed in parent)

Also remove the MPI_Barrier call, which was the previous
attempt at fixing the issue.

Change-Id: I2deb6b77abe2b8719a8b4d50410e92427cbbbd85

6 years agoRemove support for BlueGene
Mark Abraham [Tue, 16 Jan 2018 18:58:56 +0000 (19:58 +0100)]
Remove support for BlueGene

These systems are nearly at end of life, and are starting to be
decommissioned. Plus regressiontests haven't passed since about
version 5.1.

Accordingly, QPX SIMD is no longer supported, since only the
BlueGene/Q A2 cores implemented it.

Our cpuinfo code can still detect this platform, because that
does no harm, but we now fall back to GMX_SIMD_ACTIVE=None.

Docs and build system have been updated accordingly.

There is an aspect of the Verlet scheme that was originally
implemented for BlueGene/Q (namely simd_interaction_array), but this
is now also used by the no-SIMD build, so remains in the code.

Change-Id: I1a680671bfab56f94d9fadb2e8f751ba429e5894

6 years agoFix COMM removal on part of the system
Berk Hess [Fri, 12 Jan 2018 14:23:40 +0000 (15:23 +0100)]
Fix COMM removal on part of the system

COMM removal requested for part of the system acted on the whole
system.

Fixes #2381

Change-Id: Ic36ce0d261dd9b5aeceef1803f6a97e6a9ca8716

6 years agoAdd contribution information to webpage
Paul Bauer [Fri, 27 Oct 2017 14:49:03 +0000 (16:49 +0200)]
Add contribution information to webpage

We'll need a link from a high-level page on the new website to these
details, but the details and cross-links make sense to have as part of
the developer guide.

Change-Id: I0839367662804fe75cd18479db5335644f787176

6 years agoPort thread-MPI to compile as C++
Mark Abraham [Wed, 17 Jan 2018 13:23:27 +0000 (14:23 +0100)]
Port thread-MPI to compile as C++

Change-Id: Ie184dcd672af99e2cea400465b9a1112bfd0d923

6 years agoAdd check in grompp to avoid assertion failure
Berk Hess [Thu, 18 Jan 2018 10:51:36 +0000 (11:51 +0100)]
Add check in grompp to avoid assertion failure

With an mdp file with a parameter present with both the current name
and the old name which automatically gets replaced, an assertion
would fail. Now a fatal error is issued.

Fixes #2386

Change-Id: Idc66145afaca6a1e0cb868dd6aba2405e2dd7171

6 years agoFix box scaling in PME mixed mode
Aleksei Iupinov [Tue, 16 Jan 2018 17:08:57 +0000 (18:08 +0100)]
Fix box scaling in PME mixed mode

A TODO is left to test and handle this better in master.

Fixes #2385

Change-Id: I34d01d3ea6802f624888a1fd85eef72711a82f2f

6 years agoReplace stderr prints in filenm.cpp by asserts
Berk Hess [Wed, 17 Jan 2018 13:55:44 +0000 (14:55 +0100)]
Replace stderr prints in filenm.cpp by asserts

Refs #2377

Change-Id: Iec556bf03b613e27c6b98e09577801f4d0701d06

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Wed, 17 Jan 2018 12:29:47 +0000 (13:29 +0100)]
Merge branch 'release-2018' into master

Change-Id: I101621e6fca6729cc42cd7eb6678c1471ccf6ef2

6 years agoRe-enable GPU with walls and 1 energy group
Berk Hess [Tue, 16 Jan 2018 14:13:08 +0000 (15:13 +0100)]
Re-enable GPU with walls and 1 energy group

With a single non-bonded energy groups and walls we can use a GPU
for non-bonded calculations.

Change-Id: I95e72d6acc8852091bb269b350cdbf67f56e19fc

6 years agoMerge "Merge release-2018 into master"
Mark Abraham [Tue, 16 Jan 2018 16:30:35 +0000 (17:30 +0100)]
Merge "Merge release-2018 into master"

6 years agoMerge release-2018 into master
Roland Schulz [Fri, 12 Jan 2018 01:58:30 +0000 (17:58 -0800)]
Merge release-2018 into master

Change-Id: I197f817d0b54392bc1198536e39e74baacad3e96

6 years agoRemove tumbling ice-cube warning with SD
Berk Hess [Tue, 16 Jan 2018 13:02:37 +0000 (14:02 +0100)]
Remove tumbling ice-cube warning with SD

With SD there is friction, so ice cubes will not tumble.

Change-Id: Ibe91856529c26386e3f3683f95b574a9c6e7a875