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

4 years agoFix copyright header
Paul Bauer [Sat, 25 Apr 2020 08:20:32 +0000 (10:20 +0200)]
Fix copyright header

Change-Id: Iab87aaf00ab6433a3fe616c4836595afa17c8907

4 years agoFix MSVC 2019 warnings
Roland Schulz [Sat, 25 Apr 2020 02:13:28 +0000 (19:13 -0700)]
Fix MSVC 2019 warnings

4 years agoUse branch point also for format and copyright check
Paul Bauer [Thu, 23 Apr 2020 20:24:50 +0000 (20:24 +0000)]
Use branch point also for format and copyright check

Change-Id: I16a9df11223426a40e6e138ee9f3793e700ae06e

4 years agoNote CUDA builds in job names.
M. Eric Irrgang [Fri, 24 Apr 2020 13:48:32 +0000 (16:48 +0300)]
Note CUDA builds in job names.

Identify CI jobs that involve CUDA builds. Include `cuda-10.1` in the
tool chain slug for the job name for easier navigation through the
pipeline web interface.

4 years agoUpdate bundled pybind.
M. Eric Irrgang [Fri, 24 Apr 2020 16:16:08 +0000 (16:16 +0000)]
Update bundled pybind.

The pybind 2.5 release has better build system support for C++ 2017.
Otherwise there is no direct impact to our existing usage.

4 years agoFix parallel testing
Paul Bauer [Fri, 24 Apr 2020 11:27:15 +0000 (11:27 +0000)]
Fix parallel testing

Change testing to be more robust in threaded setups.

Also change on merge test to use real MPI to make sure this works
correctly.

Change-Id: Id78b213291bf7cc225fc2564a23f0d85362467fd

4 years agoOnly set GMX_PYTHON_PACKAGE=ON where needed.
M. Eric Irrgang [Fri, 24 Apr 2020 11:19:52 +0000 (14:19 +0300)]
Only set GMX_PYTHON_PACKAGE=ON where needed.

Remove GMX_PYTHON_PACKAGE=ON from default CMAKE_GMXAPI_OPTIONS. Only
provide it in the jobs supporting documentation builds (which use a
gmxapi Python package staged in the build tree).

Remove a "TODO" that is confusing and presumably outdated.

4 years agoUse branch point also for format and copyright check
Paul Bauer [Thu, 23 Apr 2020 20:24:50 +0000 (20:24 +0000)]
Use branch point also for format and copyright check

Change-Id: I16a9df11223426a40e6e138ee9f3793e700ae06e

4 years agoMark HWLOC cmake cache variable as advanced
Mark Abraham [Tue, 21 Apr 2020 07:31:24 +0000 (09:31 +0200)]
Mark HWLOC cmake cache variable as advanced

There's no need to put this internal-use-only cache variable
in the non-advanced list, which we forgot to do when we
introduced it.

4 years agoMake boxdeformation independent of t_commrec
Pascal Merz [Thu, 23 Apr 2020 17:10:46 +0000 (17:10 +0000)]
Make boxdeformation independent of t_commrec

boxdeformation requested a pointer to the full t_commrec,
but only used on communicator and information on whether
the current rank is master and whether the simulation
is run in parallel. This has been made explicit, simplifying
subsequent changes splitting up t_commrec.

Refs #2395

4 years agoUse CMake 3.12+ facilities for detecting Python.
M. Eric Irrgang [Thu, 23 Apr 2020 14:43:55 +0000 (14:43 +0000)]
Use CMake 3.12+ facilities for detecting Python.

Consolidate Python detection in the main CMakeLists.txt before the
first usage in a subdirectory. Use FindPython3.cmake instead of
FindPythonInterp.cmake. Populate the legacy PYTHON_EXECUTABLE variable
for compatibility.

Fixes #2998

4 years agoMake clang-tidy script more robust
Paul Bauer [Thu, 23 Apr 2020 13:14:50 +0000 (13:14 +0000)]
Make clang-tidy script more robust

Changed script to be more robust and in line with other source
checking scripts.

Modified clang-tidy:test job to check against the merge fork point for a
commit instead of the previous git magic, as this did not work.

Change-Id: Ic806439727c5317db0c18964afd6138eeeea0427

4 years agoFix parallel testing
Paul Bauer [Thu, 23 Apr 2020 12:07:38 +0000 (12:07 +0000)]
Fix parallel testing

Change testing to be more robust in threaded setups.

Also change on merge test to use real MPI to make sure this works
correctly.

Change-Id: Id78b213291bf7cc225fc2564a23f0d85362467fd

4 years agoFix warnings for no-mpi build
Mark Abraham [Mon, 13 Apr 2020 05:23:00 +0000 (07:23 +0200)]
Fix warnings for no-mpi build

This build configuration gave warnings when combined with
clang-7 in the docs build.

Change-Id: Ic874769bcd627710798633be742dbbe80d78b791

4 years agoMake init_dires independent of t_commrec
Pascal Merz [Wed, 22 Apr 2020 17:21:14 +0000 (17:21 +0000)]
Make init_dires independent of t_commrec

init_disres was requesting a full pointer to the commrec,
but only uses a single communicator and checks for master rank
and whether the run is parallel. This information is now passed
in explicitly, simplifying the planned splitting of t_commrec.

Note that passing a nullptr for commrec was (mis)used by
gmx_disre only - effectively signalling that init_disres was
called from an analysis tool and not from mdrun. This has
been made explicit.

Refs #2395

4 years agoCopy of CI from master to 2020
Paul Bauer [Wed, 22 Apr 2020 06:52:14 +0000 (06:52 +0000)]
Copy of CI from master to 2020

Adjusted branches and build images.

Change-Id: I28d011a003119870c41e434cef623765ddc6ace1

4 years agoFix warnings with clang 9
Mark Abraham [Tue, 21 Apr 2020 07:28:16 +0000 (09:28 +0200)]
Fix warnings with clang 9

Use of GMX_USE_SIMD_KERNELS left some code declared and unused,
which is now fixed.

Printf formats for int64_t are not very portable, so used the
traditional string work around again.

4 years agoFix the number of steps check when checkpoint is loaded
Artem Zhmurov [Mon, 20 Apr 2020 19:00:28 +0000 (19:00 +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 agoMake tests check code for warnings same as the main code
Paul Bauer [Mon, 20 Apr 2020 17:51:33 +0000 (17:51 +0000)]
Make tests check code for warnings same as the main code

This has been inconsistent since a while.

Change-Id: I5cbe0d768620f82bd19ff8741df6b75b517200ed

4 years agoMake global topology const in ISimulator
Pascal Merz [Fri, 3 Apr 2020 22:28:40 +0000 (16:28 -0600)]
Make global topology const in ISimulator

The global topology in constant in all simulator level functions
with the exception of the setup of MiMiC runs and reruns.
Follow-up work will move the topology-altering MiMiC setup out of
the simulator level functions. It is, however, worth to already
enforce the current state, avoiding subsequent changes to undermine
these efforts. This commit changes the pointer to the global
topology in ISimulator to be const, and casts the const-ness away
for the two known cases it needs to be non-const.

Refs #3467

4 years agoproposed fix for redmine bug #3403
Christian Blau [Fri, 17 Apr 2020 13:57:50 +0000 (13:57 +0000)]
proposed fix for redmine bug #3403
Fixes #3403 by preventing the free energy kernel from skipping pairs
that are beyond the cutoff but also in the exclusion list generated by
couple-intramol=no. Forces calculation of the reciprocal-space Ewald
component for those pairs in the free energy kernel. Also extends the
size of the relevant tables to rcoulomb+tabext to avoid getting nonsense
energies/forces beyond the cutoff. Molecules being decoupled in this way
should be smaller than rcoulomb+tabext.

4 years agoFix check source not parsing errors and warnings correctly
Paul Bauer [Fri, 17 Apr 2020 10:05:10 +0000 (10:05 +0000)]
Fix check source not parsing errors and warnings correctly

Fixes #3487

Change-Id: I6161e02f66a9c34a56a7475f986ab94a5cc83d91

4 years agoNew cool quote
Artem Zhmurov [Thu, 16 Apr 2020 16:30:05 +0000 (18:30 +0200)]
New cool quote

From Petter PhD defence. Congratulations!

4 years agoIntroduce GMX_USE_SIMD_KERNELS cmake option
Mark Abraham [Thu, 16 Apr 2020 15:36:33 +0000 (15:36 +0000)]
Introduce GMX_USE_SIMD_KERNELS cmake option

Most GROMACS development does not need to recompile the SIMD nbnxm
(and fep) kernels whenever their dependencies change. These
dependencies are large in number, and include frequently changed
files, including config.h and various utility and nbnxm module
headers. This flag permits people to efficiently recompile while
working on code that doesn't directly target changes to the SIMD
kernels.

It also means that CI builds not aimed at efficient mdrun execution
times can instead minimize compilation times and ccache db sizes. This
will also have the side effect of testing more of the reference NBNXM
kernels.

There's other SIMD code (particularly PME, bonded, LINCS, update)
which still compiles and runs in the usual way. Currently these are
less costly to compile and harder to disable. That could change in
future.

4 years agoUnify CUDA and OpenCL lookup-table creation
Artem Zhmurov [Thu, 16 Apr 2020 11:38:32 +0000 (11: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 agoUse GPU resources for build types again
Paul Bauer [Thu, 16 Apr 2020 07:31:21 +0000 (07:31 +0000)]
Use GPU resources for build types again

Change-Id: Ibc2629b2ae29ba5099c4565f94adeccc6cb5c270

4 years agoChange default CMake version to 3.13.0 for CI images.
M. Eric Irrgang [Tue, 14 Apr 2020 16:17:06 +0000 (19:17 +0300)]
Change default CMake version to 3.13.0 for CI images.

Refs #3484

4 years agoMake bonded interaction checking more robust (modular simulator)
Pascal Merz [Tue, 14 Apr 2020 18:31:08 +0000 (18:31 +0000)]
Make bonded interaction checking more robust (modular simulator)

Choice on whether the number of bonded interactions should be checked
during calls to the ComputeGlobalsElement used to be done at scheduling
time. This works in the current setup, as domain decomposition (which
might require such a check) is always done right before scheduling.
As this check is requested through callbacks, it is however more robust
to decide whether to perform this test at run time, not at scheduling
time. This commit switches to this more robust behavior.

Change-Id: I2c54bf0152e185c10d582cf0f06ecfc911c6c68b

4 years agoReintroduce LJ Ewald tables
Pascal Merz [Tue, 14 Apr 2020 15:42:37 +0000 (15:42 +0000)]
Reintroduce LJ Ewald tables

Fixes #3470 by reintroducing the LJ Ewald tables.

4 years agoRequire CMake >=3.13.
M. Eric Irrgang [Fri, 6 Mar 2020 11:28:15 +0000 (14:28 +0300)]
Require CMake >=3.13.

Fixes #3290

4 years agoFix more clang warnings
Mark Abraham [Tue, 14 Apr 2020 07:16:12 +0000 (07:16 +0000)]
Fix more clang warnings

4 years agoFix invalid gitlab-ci.yml
M. Eric Irrgang [Tue, 14 Apr 2020 06:09:54 +0000 (06:09 +0000)]
Fix invalid gitlab-ci.yml

Use consistent rules for dependent jobs.

gmxapi related jobs were eligible to be added to a pipeline when job
dependencies were not.

Fixes #3483

4 years agoThe ugliest hack to fix rebase issues ever
Paul Bauer [Mon, 13 Apr 2020 14:51:18 +0000 (14:51 +0000)]
The ugliest hack to fix rebase issues ever

Change-Id: I1b8202c4f9f36d03d29679850fd2e0672c823968

4 years agoFix clang-tidy script and code issue
Paul Bauer [Mon, 13 Apr 2020 06:59:11 +0000 (08:59 +0200)]
Fix clang-tidy script and code issue

The script would not pick up issues correctly.

Also fixed code issue found by nightly build.

Change-Id: Ia51d7b92f9f024ace254f5b98cc44e7f00702521

4 years agoFix warnings for no-mpi build
Mark Abraham [Mon, 13 Apr 2020 05:23:00 +0000 (07:23 +0200)]
Fix warnings for no-mpi build

This build configuration gave warnings when combined with
clang-7 in the docs build.

4 years agoFix clang 10 -Wimplicit-int-float-conversion warnings
Szilárd Páll [Sun, 12 Apr 2020 16:16:43 +0000 (16:16 +0000)]
Fix clang 10 -Wimplicit-int-float-conversion warnings

4 years agoRemoved unused variable in force table generation
Mark Abraham [Sun, 12 Apr 2020 12:58:59 +0000 (14:58 +0200)]
Removed unused variable in force table generation

Also reduced the scope of a related variable.

4 years agoFinish removing ENCAD shifts and table generation
Mark Abraham [Sun, 12 Apr 2020 10:08:16 +0000 (10:08 +0000)]
Finish removing ENCAD shifts and table generation

The force field was removed in 2014, and the functional forms can't be
used any more since the group scheme is removed. The table-generation
functions were also broken in several ways. Anybody wanting to use
this force field in the recent past (or perhaps future) needs to use
user tables.

The tpr-facing enums have their numerical values preserved, along with
changes to indicate that the symbol values are unused. This means that
old tpr files can still be read correctly, while maintainers don't
have extra work to understand what is going on. The internal code can
be fully removed.

Fixes #3477

4 years agoUpdate to clang-tidy-9
Mark Abraham [Sun, 12 Apr 2020 08:55:43 +0000 (08:55 +0000)]
Update to clang-tidy-9

Code fixes have already taken place, it remains to update the
CI configuration to use the existing llvm-9 Docker image and
adjust the documentation to match.