alexxy/gromacs.git
3 years agoReplace nbnxn_buffer_flags_t with vector
Kevin Boyd [Mon, 8 Jun 2020 07:46:32 +0000 (07:46 +0000)]
Replace nbnxn_buffer_flags_t with vector

Plugs a memory leak

3 years agoUnify VdW and Electrostatic kernel enumerations in CUDA and OpenCL versions of NBNXM
Artem Zhmurov [Mon, 8 Jun 2020 06:58:20 +0000 (06:58 +0000)]
Unify VdW and Electrostatic kernel enumerations in CUDA and OpenCL versions of NBNXM

These enumerations are identical in CUDA and OpenCL.

3 years agoMove calculation of kinetic energy to md_support
Artem Zhmurov [Fri, 5 Jun 2020 15:23:32 +0000 (17:23 +0200)]
Move calculation of kinetic energy to md_support

The calc_ke_part function is only called from compute_globals,
hence it should reside there, not in update.

3 years agoRemove COM from SETTLE
Berk Hess [Fri, 5 Jun 2020 11:53:37 +0000 (11:53 +0000)]
Remove COM from SETTLE

SETTLE computed new postions of the atoms using the center of mass
of the molecule. But this adds rouding errors which lead to extra
energy drift. The use of the COM is now completely avoided, which
significantly improves energy conservation when coordinates are large
and also slighlty improves performance.
Corrected and updated the flop accounting for SETTLE.

3 years agoUse moltype directly for obtaining residueAtomRanges
Paul Bauer [Thu, 4 Jun 2020 16:35:39 +0000 (18:35 +0200)]
Use moltype directly for obtaining residueAtomRanges

Skipped indirection through molblock and mtop after seeing that the
client code this is intended for can just provide the current moltype.

Change-Id: I51e1bef8882d334849682b528e0e8f0c7f81ad17

3 years agoFix failing webpage build
Paul Bauer [Fri, 5 Jun 2020 09:27:31 +0000 (09:27 +0000)]
Fix failing webpage build

Change-Id: I09f0f0be0c055921e9e92adc424fce58ef2eb368

3 years agoMake a error message less confusing
Artem Zhmurov [Wed, 3 Jun 2020 14:28:40 +0000 (16:28 +0200)]
Make a error message less confusing

The GPU implementation of PME and bondeds require dynamical integrator.
This updates the error message to make it more clear to the user.

Refs. #3544

3 years agoAdd ability to chose regressiontest commit and branch
Paul Bauer [Thu, 4 Jun 2020 14:58:59 +0000 (14:58 +0000)]
Add ability to chose regressiontest commit and branch

Change-Id: I4b51a2c1a0ea434dc4c6d306ba88768ba8032270

3 years agoCool quote
Artem Zhmurov [Thu, 4 Jun 2020 07:21:19 +0000 (07:21 +0000)]
Cool quote

3 years agoFix missing PBC in SHAKE
Berk Hess [Wed, 3 Jun 2020 12:59:02 +0000 (14:59 +0200)]
Fix missing PBC in SHAKE

During introduction of PBC support in SHAKE, one distance calculation
was overlooked.
Also replaced doubles by reals and made variables scope local.

3 years agoRemove 'register' storage class in clFFT
Erik Lindahl [Wed, 3 Jun 2020 15:05:18 +0000 (17:05 +0200)]
Remove 'register' storage class in clFFT

Required for compatibility with C++17.

4 years agoTurn SettleData into a class
Berk Hess [Wed, 3 Jun 2020 12:49:49 +0000 (12:49 +0000)]
Turn SettleData into a class

This change is only refactoring.

4 years agononbonded-benchmark: run combrule=none when the -all option is used
Gilles Gouaillardet [Mon, 1 Jun 2020 07:55:06 +0000 (16:55 +0900)]
nonbonded-benchmark: run combrule=none when the -all option is used

Closes gromacs/gromacs#3543

4 years agoAdd function to get residue start and end
Paul Bauer [Tue, 2 Jun 2020 09:33:05 +0000 (09:33 +0000)]
Add function to get residue start and end

Free function for mtop that makes it possible to obtain the start and
end point of residues in a molecule block.

Change-Id: Ic7ac4b79a29275aac65cd8224f163e3c2efe6d4d

4 years agoFix atomics configure test
Mark Abraham [Mon, 1 Jun 2020 07:53:45 +0000 (07:53 +0000)]
Fix atomics configure test

The previous code used an approach to setting the include path for
TEST_ATOMICS test that did not work if the path had a space in it.
This meant that atomics support in GROMACS seemed broken if the build
was from a path in the home folder of a user named like "Firstname
Lastname". This is often the case on Windows.

The new approach avoids this brittleness, adds a few comments and has
the test source code inline in the cmake code. The TMPI_TEST_ATOMICS
macro is replaced by a function so that it has a namespace, since it
now needs to set some variables that benefit from that
namespace. Also, its results were returned in internal cache variables
rather than the namespace that the former macro automatically shared,
so there was no advantage to using a macro rather than a function.

The former TEST_ATOMICS test defined TMPI_ATOMICS before the call,
which was useless and confusing. That is removed.

Removed a useless call to TMPI_TEST_ATOMICS, which had always passed
the name of a variable instead of the value it contained, and was
redundant with a proper call that immediately preceded it in the
calling code.

4 years agoMake Cygwin build work
Mark Abraham [Thu, 28 May 2020 21:56:10 +0000 (23:56 +0200)]
Make Cygwin build work

Originally CMake didn't provide C++ language version flags, so GROMACS
managed that itself. Now that GROMACS lets CMake manage it, we always
get the -std=c++17 flag, rather than (say) -std=gnu++17 to allow
extensions to the std headers. In various places, GROMACS relied on
POSIX functionality that is available by default on Linux, but on
Cygwin required the GNU extensions to the C++ language dialect. This
change fixes several such places, mostly by requiring the POSIX
extensions needed.

Removed an include of sys/syscall.h that was unused, unnecessary, and
only present on Linux.

Moved an inclusion of gtest.h from a header into a source file because
it was only needed there.

Fixed some warnings about unused things.

4 years agoAdd test for InteractionList
Paul Bauer [Wed, 4 Mar 2020 14:50:52 +0000 (15:50 +0100)]
Add test for InteractionList

Change-Id: Id1231d96e056adb64231333e72ae5aa15f0abc6e

4 years agoHandle arbitrary doxygen versions in Docker image build scripts.
M. Eric Irrgang [Fri, 29 May 2020 12:18:04 +0000 (12:18 +0000)]
Handle arbitrary doxygen versions in Docker image build scripts.

Refs #3539

4 years agoUnify initialization of GPU and CPU SETTLE
Artem Zhmurov [Fri, 29 May 2020 10:51:49 +0000 (10:51 +0000)]
Unify initialization of GPU and CPU SETTLE

The two identical code path are now combined. Note, that that
exposes SettleParameters object and its initialization in the settle
header. But the SETTLE is contained within the Constraints object and
this header is not include anywhere else, so the exposure is minimal.

4 years agoRemove unused (and broken) image from Docker image build script.
M. Eric Irrgang [Thu, 28 May 2020 11:07:44 +0000 (14:07 +0300)]
Remove unused (and broken) image from Docker image build script.

4 years agoDocker image builds: simplify doxygen version handling.
M. Eric Irrgang [Thu, 28 May 2020 11:06:13 +0000 (14:06 +0300)]
Docker image builds: simplify doxygen version handling.

Remove broken handling for requested versions other than 1.8.5.

Remove over-specified (and broken) doxygen argument in parser.

4 years agoDocker image builds: move doxygen handling to a separate function.
M. Eric Irrgang [Thu, 28 May 2020 11:00:46 +0000 (14:00 +0300)]
Docker image builds: move doxygen handling to a separate function.

4 years agoExtend MPI ensemble testing for gmxapi.
M. Eric Irrgang [Tue, 26 May 2020 13:40:24 +0000 (16:40 +0300)]
Extend MPI ensemble testing for gmxapi.

Fixes #3469

4 years agoEnable MPI ensemble testing for gmxapi.
M. Eric Irrgang [Fri, 22 May 2020 15:38:20 +0000 (18:38 +0300)]
Enable MPI ensemble testing for gmxapi.

Refs #3469

4 years agoNormalize gmxapi related release-2020 job logic.
M. Eric Irrgang [Tue, 26 May 2020 14:17:03 +0000 (14:17 +0000)]
Normalize gmxapi related release-2020 job logic.

Use rules definied in global.gitlab-ci.yml for gmxapi related jobs.

Refs #3475

4 years agoRemove the dependence on Constraints object on t_mdatoms
Artem Zhmurov [Tue, 26 May 2020 06:37:02 +0000 (06:37 +0000)]
Remove the dependence on Constraints object on t_mdatoms

This removes t_mdatoms structure from all function signatures in
Constraints object. Only those data neede for Constraints is
now passed upon setup and stored locally.

4 years agoFix warnings on llvm 11 compilers
Erik Lindahl [Mon, 25 May 2020 20:09:30 +0000 (20:09 +0000)]
Fix warnings on llvm 11 compilers

This fixes a bunch of benign warnings exposed by recent
Intel compilers based on the llvm master branch frontend.

- Remove an unused mutex
- Use the C++ compiler for gmx_simdcall CMake tests
- Avoid anonymous structs to (C/C++ compatibility warning)

4 years agoFix awk error in clang-tidy script
Paul Bauer [Mon, 25 May 2020 06:50:51 +0000 (08:50 +0200)]
Fix awk error in clang-tidy script

Change-Id: I1fb812af81d75577d2a5a6bf0d7f932ea80c2baf

4 years agoRemove dependence on t_mdatoms from GPU version of leap-frog
Artem Zhmurov [Mon, 25 May 2020 08:13:12 +0000 (08:13 +0000)]
Remove dependence on t_mdatoms from GPU version of leap-frog

4 years agoFix clang-tidy warnings
Paul Bauer [Mon, 25 May 2020 06:47:24 +0000 (08:47 +0200)]
Fix clang-tidy warnings

Change-Id: I8f1b8d22c423dcef5742289e1f3c071e5ba668f2

4 years agoAdd conversion from new to legacy symtab
Paul Bauer [Sun, 24 May 2020 19:13:28 +0000 (19:13 +0000)]
Add conversion from new to legacy symtab

Added function to convert legacy to modern version as well.
Also add test for conversion and merge test fixtures for symbol table
tests.

Refs #2833

Change-Id: I59dab5e19a6fc4ab86933b178cb2d729b72c4f7a

4 years agoClean up grompp memory leaks in rotation and pull structures.
Kevin Boyd [Sun, 24 May 2020 13:13:01 +0000 (13:13 +0000)]
Clean up grompp memory leaks in rotation and pull structures.

Changed to C++ where possible, added c-style cleanup where not
feasible.

4 years agoAvoid parsing of fatalerror.cpp as lint failure
Paul Bauer [Sun, 24 May 2020 08:03:01 +0000 (08:03 +0000)]
Avoid parsing of fatalerror.cpp as lint failure

When the file was changed its presence could cause the linter to fail
even though no errors are present. Fixed by avoiding the name in the
regular expression.

Change-Id: I0c066ede89b30bfd98b5ad335ec40ea756445e00

4 years agoModernize convert-tpr
Paul Bauer [Sat, 23 May 2020 13:44:03 +0000 (13:44 +0000)]
Modernize convert-tpr

Moved convert-tpr to ICommandLineModule and cleaned up code a bit.

Change-Id: I6e6b494fabacf4e051c0d59a2436aede1e39bc38

4 years agoRemove dependence on t_mdatoms from pull code
Artem Zhmurov [Fri, 22 May 2020 18:15:35 +0000 (20:15 +0200)]
Remove dependence on t_mdatoms from pull code

The pull code only uses masses from the t_mdatoms, which
is now passed instead of the pointer to the entire
t_mdatoms structure.

4 years agoAdd tests for tool help output writing
Paul Bauer [Sat, 23 May 2020 09:16:46 +0000 (09:16 +0000)]
Add tests for tool help output writing

Change-Id: Ia1d3821feddc7856f6ebb64a0f26ac0eebdb2193

4 years agoRemove dependence of constraints on t_mdatoms
Artem Zhmurov [Fri, 22 May 2020 16:49:54 +0000 (16:49 +0000)]
Remove dependence of constraints on t_mdatoms

This changes the signatures of the constrants set/compute functions
by removing the t_mdatoms from the set of arguments and replacing
it with the parts that are actually used.

Refs. #3535

4 years agoRemove dependence of constraints on t_mdatoms
Artem Zhmurov [Fri, 22 May 2020 07:40:50 +0000 (07:40 +0000)]
Remove dependence of constraints on t_mdatoms

This changes the signatures of the constrants set/compute functions
by removing the t_mdatoms from the set of arguments and replacing
it with the parts that are actually used.

Refs. #3535

4 years agoFix compile errors
Paul Bauer [Wed, 20 May 2020 14:11:18 +0000 (16:11 +0200)]
Fix compile errors

Removing the include of arrayref.h caused issues due to missing implicit
include of <array>

Fixes #3534

Change-Id: I378e136c536c0db0e0b05042487698d3e38bfed7

4 years agoRemove t_mdatoms from Nbnxm setAtomProperties()
Berk Hess [Wed, 20 May 2020 14:56:32 +0000 (16:56 +0200)]
Remove t_mdatoms from Nbnxm setAtomProperties()

4 years agoMake sure images have /usr/bin/python
M. Eric Irrgang [Thu, 14 May 2020 08:28:06 +0000 (11:28 +0300)]
Make sure images have /usr/bin/python

Append a Docker RUN command to make sure that /usr/bin/python either
already exists or is configured as a python3 alias.

Refs #3528

4 years agoRefactor print_missing_interactions()
Berk Hess [Fri, 15 May 2020 08:28:52 +0000 (10:28 +0200)]
Refactor print_missing_interactions()

4 years agoRemove unnecessary includes of arrayref.h
Paul Bauer [Tue, 19 May 2020 05:29:21 +0000 (05:29 +0000)]
Remove unnecessary includes of arrayref.h

Changed to forward declaration.
Don't think I got all of them yet.

Change-Id: I7c148364db152ed0a6645e91ee1ab93421441c0d

4 years agoUnify CUDA and OpenCL lookup-table creation
Artem Zhmurov [Fri, 15 May 2020 16:38:02 +0000 (16:38 +0000)]
Unify CUDA and OpenCL lookup-table creation

In CUDA code, textures are used for the lookup-tables,
whereas in OpenCL they are created as a read-only
buffers. This commit hides these differences behind a
unified wrapper.

Refs #3318
Refs #3311

Change-Id: I003e0c982c2452a2753e331b46fc59f0b7e1b711

4 years agoUpdate docker image build scripts for master branch.
M. Eric Irrgang [Thu, 14 May 2020 08:57:15 +0000 (11:57 +0300)]
Update docker image build scripts for master branch.

CI infrastructure has been back-ported to the `release-2020` branch,
so we can clean up the extra pieces that existed to support multiple
releases. This change does not require immediate rebuilds of the images.
The next time images are rebuilt, fewer images will be built and they
will be slightly smaller.

4 years agoMake sure CI script can call /bin/env python`
M. Eric Irrgang [Thu, 14 May 2020 08:34:19 +0000 (11:34 +0300)]
Make sure CI script can call /bin/env python`

Before calling admin/clang-tidy.sh, make sure that the wrapped tool will
be able to find a Python interpreter.

Refs #3528

4 years agoMinor clean up to buildall.sh
M. Eric Irrgang [Thu, 14 May 2020 08:24:09 +0000 (11:24 +0300)]
Minor clean up to buildall.sh

A commented line indicates the script has occasionally been written for
overly aggressive action and is frequently modified in place, sometimes
resulting in accidental commits of disabled commands. This change lets
the script simply provide copy-pasteable commands for the user to run
at their discretion.

4 years agoAllow llvm option already used in buildall.sh script.
M. Eric Irrgang [Thu, 14 May 2020 08:17:35 +0000 (11:17 +0300)]
Allow llvm option already used in buildall.sh script.

An update to utility.py was apparently overlooked in a previous commit.
This allows admin/containers/buildall.sh to run.

4 years agoReduce console log output from sample_restraint tests.
M. Eric Irrgang [Thu, 14 May 2020 13:59:20 +0000 (13:59 +0000)]
Reduce console log output from sample_restraint tests.

Don't override default root log level in test_binding.py
Remove `-x` bash option from automated testing script.
Also remove extraneous and inappropriate __init__.py

Refs #3530

4 years agoExtract postProcessForceWithShiftForces()
Berk Hess [Thu, 14 May 2020 12:51:51 +0000 (12:51 +0000)]
Extract postProcessForceWithShiftForces()

Also added a boolean to check whether we spread vsite forces exactly
once.

4 years agoAvoid CI errors from overloading resources
Paul Bauer [Thu, 14 May 2020 09:53:03 +0000 (09:53 +0000)]
Avoid CI errors from overloading resources

CI got cause ICE due to resource limitations.
Avoided by limiting parallelism for make.

Change-Id: I6cc09f16625f615984e71c650eafa755abc1f121

4 years agoFix check source error parsing
Paul Bauer [Wed, 13 May 2020 11:46:20 +0000 (11:46 +0000)]
Fix check source error parsing

Change-Id: I1a1bb3333fb9a36083b72004e116467432319ae9

4 years agoRefine usage of *job:tags* parameter.
M. Eric Irrgang [Tue, 12 May 2020 14:20:41 +0000 (14:20 +0000)]
Refine usage of *job:tags* parameter.

Try to prevent jobs from getting stuck when they should be runnable
in GitLab forks or in the Gromacs CI environment when the Shared Runners
are turned off.

4 years agoExtract helper force buffers to a separate class
Berk Hess [Tue, 12 May 2020 13:14:11 +0000 (13:14 +0000)]
Extract helper force buffers to a separate class

This change provides useful refactoring itself and it is needed
for multiple time stepping.

4 years agoRefactor virtual site interface
Berk Hess [Tue, 12 May 2020 09:01:35 +0000 (09:01 +0000)]
Refactor virtual site interface

Replaced struct gmx_vsite_t by pimpled class VirtualSitesHandler.
Removed most arguments that stay the same from the construction
and spreading calls. Replaced rvec pointers by ArrayRefs.
This change is only refactoring and there are no functional changes
in the code using this, but the PBC and virial handling have been
simplified and the parameters reduced. Templating of the spreading
functions on virial handling should improve performance.
Added full doxygen documentation.

4 years agoFix archive build
Paul Bauer [Tue, 12 May 2020 08:13:13 +0000 (08:13 +0000)]
Fix archive build

Change-Id: I27361fa3f9218bbb38ac739b758d63a9774737ea

4 years agoRemove the duplicating note from the release notes
Artem Zhmurov [Mon, 11 May 2020 06:04:13 +0000 (08:04 +0200)]
Remove the duplicating note from the release notes

The fix was moved to release branch and release notes become duplicated.

4 years agoUnify CUDA and OpenCL lookup-table creation
Artem Zhmurov [Mon, 11 May 2020 08:31:34 +0000 (08:31 +0000)]
Unify CUDA and OpenCL lookup-table creation

In CUDA code, textures are used for the lookup-tables,
whereas in OpenCL they are created as a read-only
buffers. This commit hides these differences behind a
unified wrapper.

Refs #3318
Refs #3311

Change-Id: I003e0c982c2452a2753e331b46fc59f0b7e1b711

4 years agoMerge branch 'origin/release-2020' into master
Paul Bauer [Wed, 6 May 2020 12:31:38 +0000 (14:31 +0200)]
Merge branch 'origin/release-2020' into master

Resolved Conflicts:
admin/clang-tidy.sh
admin/containers/buildall.sh
admin/containers/utility.py
admin/dockerfiles/buildall.sh
admin/dockerfiles/ci-clang/Dockerfile
admin/dockerfiles/ci-docs-clang/Dockerfile
admin/dockerfiles/ci-docs-gcc/Dockerfile
admin/dockerfiles/ci-gcc/Dockerfile
admin/gitlab-ci/archive.gitlab-ci.yml
admin/gitlab-ci/documentation.gitlab-ci.yml
admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/gromacs.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
cmake/gmxManageSimd.cmake
cmake/gmxVersionInfo.cmake
docs/dev-manual/containers.rst
src/CMakeLists.txt
src/api/cpp/tests/testingconfiguration.h
src/buildinfo.h.cmakein
src/gromacs/CMakeLists.txt
src/gromacs/ewald/pme_only.cpp
src/gromacs/fileio/matio.cpp
src/gromacs/fileio/oenv.cpp
src/gromacs/gmxana/gmx_do_dssp.cpp
src/gromacs/gmxana/nrama.cpp
src/gromacs/gmxlib/network.cpp
src/gromacs/gmxlib/nonbonded/nb_free_energy.cpp
src/gromacs/listed_forces/bonded.cpp
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdtypes/interaction_const.h
src/gromacs/nbnxm/pairlist.h
src/gromacs/selection/CMakeLists.txt
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd_double.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd_float.h
src/gromacs/simd/simd.h
src/gromacs/utility/basedefinitions.h
src/gromacs/utility/binaryinformation.cpp
src/testutils/CMakeLists.txt
src/testutils/TestMacros.cmake
src/testutils/testasserts.h

Change-Id: Ie157786299ca8f2d8c77a148b3bf1b1061f44b8a

4 years agoFix copyright
Paul Bauer [Tue, 5 May 2020 06:56:33 +0000 (08:56 +0200)]
Fix copyright

Change-Id: I9d9953def7c31c2830de2452bb0678f1cad86969

4 years agoUnify CUDA and OpenCL lookup-table creation
Artem Zhmurov [Tue, 5 May 2020 06:37:33 +0000 (06:37 +0000)]
Unify CUDA and OpenCL lookup-table creation

In CUDA code, textures are used for the lookup-tables,
whereas in OpenCL they are created as a read-only
buffers. This commit hides these differences behind a
unified wrapper.

Refs #3318
Refs #3311

Change-Id: I003e0c982c2452a2753e331b46fc59f0b7e1b711

4 years agoFix cmake error: Mixed styles of target_link_libraries signatures
Paul Bauer [Mon, 4 May 2020 17:53:47 +0000 (17:53 +0000)]
Fix cmake error: Mixed styles of target_link_libraries signatures

Plain and keyword target_link_libraries signatures cannot be mixed.

Complete error message:

------------------->8---------------------------8<--------------------------
CMake Error at src/testutils/CMakeLists.txt:76 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "testutils".  All uses of target_link_libraries with a target
  must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * src/testutils/CMakeLists.txt:72 (target_link_libraries)

-- Configuring incomplete, errors occurred!
------------------->8---------------------------8<--------------------------

See: https://cmake.org/cmake/help/v3.0/policy/CMP0023.html

4 years agoUnify CUDA and OpenCL lookup-table creation
Artem Zhmurov [Mon, 4 May 2020 17:44:01 +0000 (17:44 +0000)]
Unify CUDA and OpenCL lookup-table creation

In CUDA code, textures are used for the lookup-tables,
whereas in OpenCL they are created as a read-only
buffers. This commit hides these differences behind a
unified wrapper.

Refs #3318
Refs #3311

Change-Id: I003e0c982c2452a2753e331b46fc59f0b7e1b711

4 years agoUse test conversion script from source
Paul Bauer [Wed, 29 Apr 2020 09:23:54 +0000 (09:23 +0000)]
Use test conversion script from source

No longer install the script to convert CTest results to JUnit and
instead use the files from the cloned git source for it.

Fixes #3514

Change-Id: Ida4f2ab563601153b0b218c9bc6b7cfdb4969f01

4 years agoFix incorrect header and linter scripts
Paul Bauer [Thu, 30 Apr 2020 12:03:15 +0000 (14:03 +0200)]
Fix incorrect header and linter scripts

Wrong grep flag meant that messages have not been printed.

Change-Id: I74b2088a12753d584929f9aa75ed915d400d8091

4 years agoCatch errors in v-rescale and Parrinello-Rahman checkpointing
Pascal Merz [Thu, 30 Apr 2020 19:49:14 +0000 (13:49 -0600)]
Catch errors in v-rescale and Parrinello-Rahman checkpointing

This adds additional tests to catch checkpoints missing the v-rescale
thermostat integral or the Parrinello-Rahman box velocities. This
also make the number of steps explicit (useful in further investigations
of #3518).

In partial fulfillment of #3518

4 years agoPrepare for 2020.3
Paul Bauer [Wed, 29 Apr 2020 09:34:53 +0000 (11:34 +0200)]
Prepare for 2020.3

Reset DOI strings.

Change-Id: I6b9d5772fcc9b4d8507817d09173dd2d5577dfdb

4 years agocmake: declare (and hence initialize) GMX_USE_SIMD_KERNELS before it is used
Gilles Gouaillardet [Thu, 30 Apr 2020 13:56:22 +0000 (22:56 +0900)]
cmake: declare (and hence initialize) GMX_USE_SIMD_KERNELS before it is used

Fixes gromacs/gromacs#3516

4 years agoGROMACS version 2020.2
Paul Bauer [Wed, 29 Apr 2020 09:31:53 +0000 (11:31 +0200)]
GROMACS version 2020.2

Update regressiontest hash.
Set DOI strings.

Change-Id: I708a1e340754d173b8c7ef47803e7fa525c9671a

4 years agoPrint base commit for source linters
Paul Bauer [Wed, 29 Apr 2020 12:47:58 +0000 (12:47 +0000)]
Print base commit for source linters

Added a printout for the branch used for comparing.

Will use to see if branch point selection is working properly and to see
if the clang-tidy script picks up the warnings it should.

Change-Id: I791d2a11f98cd8e0cf0d06e92a9980cd9d038874

4 years agoFix incorrect header and linter scripts
Paul Bauer [Thu, 30 Apr 2020 12:03:15 +0000 (14:03 +0200)]
Fix incorrect header and linter scripts

Wrong grep flag meant that messages have not been printed.

Change-Id: I74b2088a12753d584929f9aa75ed915d400d8091

4 years agoRemove bundled FindCUDA.cmake
Mark Abraham [Thu, 30 Apr 2020 11:28:39 +0000 (11:28 +0000)]
Remove bundled FindCUDA.cmake

We bundle FindCUDA so we can suppress warnings in CI testing. In user
space, we always use the FindCUDA from the cmake they used, because
the tarballs never had these files.

4 years agoDisallow combination of gcc > 9 and IBM_VSX
Paul Bauer [Thu, 30 Apr 2020 06:27:31 +0000 (08:27 +0200)]
Disallow combination of gcc > 9 and IBM_VSX

The compiler flag is not detected for newer versions of gcc and can lead
to confusing error messages.

Fixes #3380

Change-Id: I0c5311325b2bf2bc08ab727eabd670115720b4a6

4 years agoFix compiler flag reporting
Mark Abraham [Thu, 30 Apr 2020 09:24:00 +0000 (09:24 +0000)]
Fix compiler flag reporting

The C, C++ and CUDA compiler flag reporting didn't mention those added
by cmake from the build configuration, even those are always used.

Closes #3510

4 years agoUpdate header sorting.
M. Eric Irrgang [Fri, 24 Apr 2020 13:15:42 +0000 (16:15 +0300)]
Update header sorting.

* Add missing C++ standard library headers to includesorter.py
* Work around some logic errors in the way includesorter.py enforces
  the stated scoping of sorted include blocks. Document.
* Apply updated includesorter.py

Refs #3297

4 years agoRequire C++17 standard and STL features.
M. Eric Irrgang [Wed, 29 Apr 2020 08:21:14 +0000 (11:21 +0300)]
Require C++17 standard and STL features.

Closes #3297

* Update project CMAKE_CXX_STANDARD.
* Migrate to std::optional and std::string_view.
* Update requirements in client packages.
* Provide some tool chain hints.
* Replace deprecated use of std::uncaught_exception() with
  std::uncaught_exceptions().
* Update install-guide.

4 years agoAdd EOF newlines to eliminate compiler warnings
ejjordan [Wed, 29 Apr 2020 08:38:16 +0000 (10:38 +0200)]
Add EOF newlines to eliminate compiler warnings

4 years agoRemove cmake logic that is outdated by requiring cmake 3.13
ejjordan [Wed, 29 Apr 2020 08:54:53 +0000 (10:54 +0200)]
Remove cmake logic that is outdated by requiring cmake 3.13

4 years agoUpdate cmake version for docs container
Mark Abraham [Wed, 29 Apr 2020 12:07:35 +0000 (14:07 +0200)]
Update cmake version for docs container

Currently the nightly docs build fails because of
the bumped cmake requirement.

4 years agoPrint base commit for source linters
Paul Bauer [Wed, 29 Apr 2020 12:47:58 +0000 (12:47 +0000)]
Print base commit for source linters

Added a printout for the branch used for comparing.

Will use to see if branch point selection is working properly and to see
if the clang-tidy script picks up the warnings it should.

Change-Id: I791d2a11f98cd8e0cf0d06e92a9980cd9d038874

4 years agoFix the number of steps check when checkpoint is loaded
Artem Zhmurov [Wed, 29 Apr 2020 12:10:20 +0000 (12:10 +0000)]
Fix the number of steps check when checkpoint is loaded

The check ignores the initial step in the config file, thust only
works when loading for the trajectory that was originally started
from step zero.

4 years agoApply more granular CTest time-out policy.
M. Eric Irrgang [Tue, 28 Apr 2020 16:47:36 +0000 (19:47 +0300)]
Apply more granular CTest time-out policy.

Separate some test macro logic:
* Decouple IGNORE_LEAKS from INTEGRATION_TEST and SLOW_TEST.
* Use SLOW_TEST without IGNORE_LEAKS for some newly relaxed time-outs.

Give longer time out to some tests.

Resolves #3513

4 years agoUse test conversion script from source
Paul Bauer [Wed, 29 Apr 2020 09:23:54 +0000 (09:23 +0000)]
Use test conversion script from source

No longer install the script to convert CTest results to JUnit and
instead use the files from the cloned git source for it.

Fixes #3514

Change-Id: Ida4f2ab563601153b0b218c9bc6b7cfdb4969f01

4 years agoBaseline commit
Mark Abraham [Wed, 29 Apr 2020 08:27:37 +0000 (08:27 +0000)]
Baseline commit

This just checks that the pipeline failure in #3507 does reproduce
before I start changing things that matter.

4 years agoFixed several clang-tidy issues
Mark Abraham [Tue, 28 Apr 2020 18:08:18 +0000 (20:08 +0200)]
Fixed several clang-tidy issues

A static variable was vulnerable to static-init-order-fiasco.  Tests
will still perform OK even with constructing the default value
multiple times, so converted to a getter.

Closes #3498

4 years agoAddress review comments
ejjordan [Tue, 28 Apr 2020 13:55:28 +0000 (15:55 +0200)]
Address review comments

4 years agoSimplify calc_listed signature
ejjordan [Mon, 27 Apr 2020 18:17:00 +0000 (20:17 +0200)]
Simplify calc_listed signature

In order to remove a number of parameters from the signature of
calc_listed, function calls for position restraints, dispersion
correction, and orientation restraints were moved out of the
calc_listed function.

4 years agoFix issues with check-source
ejjordan [Tue, 28 Apr 2020 11:54:03 +0000 (13:54 +0200)]
Fix issues with check-source

4 years agoAdd clang WA
Roland Schulz [Sun, 26 Apr 2020 19:10:51 +0000 (12:10 -0700)]
Add clang WA

4 years agoFix MSVC 2019 test failures
Roland Schulz [Sun, 26 Apr 2020 07:58:56 +0000 (00:58 -0700)]
Fix MSVC 2019 test failures

Related #3495

4 years agoFix the removal of COM velocity in case of GPU update
Artem Zhmurov [Mon, 27 Apr 2020 19:21:58 +0000 (19:21 +0000)]
Fix the removal of COM velocity in case of GPU update

After the velocities are changed on the CPU to remove the COM motion,
they have to be copied back to the GPU memory.

Fixes #3508

4 years agoResolve static analyzer warnings from google tests.
M. Eric Irrgang [Mon, 27 Apr 2020 17:57:27 +0000 (17:57 +0000)]
Resolve static analyzer warnings from google tests.

Exclude a couple of problematic lines from consideration by the clang
static analyzer by surrounding with precompiler conditionals
(`#ifndef __clang_analyzer__`).

Fixes #3503

4 years agoAvoid temporary strings.
M. Eric Irrgang [Mon, 27 Apr 2020 17:19:35 +0000 (17:19 +0000)]
Avoid temporary strings.

Resolve a compiler warning about temporary strings created through a
string concatenation written as a chain of addition operators.
Instead, use `string.append()`.

4 years agoMove PBC setup out of the launchKernel(...) in GPU bondeds
Artem Zhmurov [Mon, 27 Apr 2020 14:24:10 +0000 (14:24 +0000)]
Move PBC setup out of the launchKernel(...) in GPU bondeds

The PBC setup should not be performed on every step, hence it
should be separated from the force computation launch. This
is a preparation step, that does not change the logic, only the
separates the PBC setup and changes kernel launch signature.

4 years agoFix segmentation fault in do_dssp
Paul Bauer [Mon, 27 Apr 2020 11:46:33 +0000 (13:46 +0200)]
Fix segmentation fault in do_dssp

A matrix would be initial allocated with zero size, so that a
following call to increase the size of one element would lead to memory
corruption on a subsequent try to set a value in the matrix.

Fixes #3444

Change-Id: I1892c09a8aa4c2f92156f7b1a76623df9ac62e56

4 years agoImproved some logic in do_force
Mark Abraham [Mon, 27 Apr 2020 12:08:49 +0000 (12:08 +0000)]
Improved some logic in do_force

This helps the analyzer to understand that it should not just assume
that stateGpu can be a nullptr. The new logic is equivalent to
that for constructing stateGpu.

Removed the GMX_MPI preprocessing, which is less robust than plain
logic and probably contributed to using the wrong logic to construct
localXReadyOnDevice

4 years agoBuild python package for documentation builds
Paul Bauer [Mon, 27 Apr 2020 07:31:47 +0000 (09:31 +0200)]
Build python package for documentation builds

Fixes #3506

Change-Id: If18ed44603d685118d4b73f2ee72401028574d61

4 years agoFix warning for return type
Paul Bauer [Mon, 27 Apr 2020 07:23:09 +0000 (09:23 +0200)]
Fix warning for return type

Fixes #3499

Change-Id: I648a4b3d35618fe7c41d406c98be291ca9bd0d2f

4 years agoFix bug in source verification on Windows
Paul Bauer [Fri, 24 Apr 2020 10:59:49 +0000 (12:59 +0200)]
Fix bug in source verification on Windows

The way to pass the set of directories to be used for validating the
source caused issues on Windows systems, as it replaced ":" characters
to change from strings to lists in CMake.

This caused the top level directory to be changed from e.g. "D:" to
"D;", messing up the rest.

Fixed the message passing to only pass the final directory, and modify
to full path after the set has been passed through.

Fixes #3493

Change-Id: I4076b8e87dc8d72a83af6aa0c7ab4b3366917ed0

4 years agoMove configuration of global headers
Mark Abraham [Sat, 25 Apr 2020 14:11:50 +0000 (16:11 +0200)]
Move configuration of global headers

Previously it was possible to get a different result from
  cmake .. && make && make install
than one got from
  cmake .. && cmake .. && make && make install
because the lmfit detection ran after config.h was generated,
so HAVE_LMFIT changed value from one cmake to the next, triggering
a rebuild of all source files that depended on config.h. lmfit
is supposed to fall back on the internal version, but did not,
so this is buggy. It's also very inefficient with compilation
in some workflows.