Magnus Lundborg [Tue, 2 Mar 2021 06:04:16 +0000 (06:04 +0000)]
Disable awh-potential=convolved when using AWH with pull and FEP
The combination of a convolved potential along a pull dimension
with the umbrella potential that is used along the FEP lambda
dimension does not work.
Fixes: #3946.
Mark Abraham [Mon, 1 Mar 2021 16:11:11 +0000 (16:11 +0000)]
Various fixes for gmx xpm2ps
Minor fixes for bugs introduced during refactoring, mostly in my
commit
0004e9e8377.
No need to resize to zero on first iteration, which is anyway wrong
for subsequent iterations.
Incorrect regex for matching label strings.
Incorrect logic for title.
Incorrect discard of matrix type string.
Closes #3881
Berk Hess [Thu, 25 Feb 2021 21:16:31 +0000 (22:16 +0100)]
Fix mass perturbation to dH/dlambda
The contribution for perturbed mass was missing in dH/dlambda.
Note that this was present in the foreign energy differences
used for the Bennett acceptance ratio method.
Also updated the incorrect reference data for tests.
Fixes #3943
Mark Abraham [Fri, 26 Feb 2021 11:51:46 +0000 (11:51 +0000)]
Fix MiMiC with vsites
This moves the call to the virtual site construction in MiMiC.
The current call happened after virtual
sites are used. This call has been moved to right after the coordinates
are received. The underlying problem is likely to have lead to wrong results when using
MiMiC with virtual sites.
Refs #3866
Fixes #3904
Magnus Lundborg [Fri, 19 Feb 2021 17:23:19 +0000 (18:23 +0100)]
Introduce a check (in grompp) that AWH FEP sampling is OK
Ensure that awh-nstsample is a multiple of nstcalcenergy when
sampling an FEP dimension.
Fixes #3922
Andrey Alekseenko [Fri, 19 Feb 2021 19:20:08 +0000 (22:20 +0300)]
Correct docs and add safeguard for non-pulsed electric field
The docs were different from the implementation for the case of sigma =
0. The implementation has been that way for many years (at least since
b3fcdb22), so changing the behavior is dangerous.
Amended the user documentation, and added a check to warn users of
non-obvious legacy behavior.
Closes #3865
Jan-Oliver Joswig [Fri, 12 Feb 2021 10:21:31 +0000 (11:21 +0100)]
Changes from !1119
M. Eric Irrgang [Mon, 8 Feb 2021 15:55:14 +0000 (18:55 +0300)]
Use GmxManageMPI variables for gmxapi.
For minimal disruption to the release-2021 infrastructure,
let the `gmxapi` CMake target (libgmxapi) use
`${MPI_COMPILE_FLAGS}` and `${MPI_C_LIBRARIES}`
instead of the `MPI::MPI_*` target(s).
Note: This will conflict with the resolution to #3672.
Conflicts arising in a merge from `release-2021` to `master`
should defer to `master`.
Fixes #3896
Berk Hess [Wed, 10 Feb 2021 10:38:47 +0000 (11:38 +0100)]
Fix gmx_rmpbc_init with InteractionDefinitions
Molecules were not made whole when gmx_rmpbc_init with
InteractionDefinitions. This caused all trajectoryanalysis tools
not to make molecules whole.
Fixes #3900
Paul Bauer [Wed, 10 Feb 2021 07:49:31 +0000 (07:49 +0000)]
Fix llvm build in docker container
We still need to be able to rebuild containers if needed.
Artem Zhmurov [Tue, 9 Feb 2021 05:33:13 +0000 (08:33 +0300)]
Fix clang-format
2d567afadf39d215950455d46056745474b850c0 was finalized by applying
suggestion in the GitLab GUI, which did not adhere to clang-format
policy.
Paul Bauer [Tue, 9 Feb 2021 05:14:34 +0000 (05:14 +0000)]
Fix range check bug in gmx covar
Range checking was done the wrong way around.
Fixes #3902
Paul Bauer [Mon, 8 Feb 2021 17:40:49 +0000 (17:40 +0000)]
Tag images on the branch as release-2021
This makes sure we can change images for master without affecting the
stable branch.
Refs #3716
Mark Abraham [Fri, 5 Feb 2021 14:13:57 +0000 (15:13 +0100)]
Ensure GoogleTest builds properly
Some test targets would not build without this.
Closes #3890
Cathrine Bergh [Fri, 5 Feb 2021 15:43:14 +0000 (15:43 +0000)]
Updated logos
Mark Abraham [Wed, 3 Feb 2021 16:20:56 +0000 (17:20 +0100)]
Define M_PI when it is not defined
This is a standard work-around (e.g. used in GROMACS) for C++ library
implementations that don't provide POSIX capabilities by default
(e.g. Cygwin).
Closes #3890
Mark Abraham [Wed, 3 Feb 2021 07:56:08 +0000 (08:56 +0100)]
Fix refactoring issue
The former code had short-circuit logic that is now restored. That
could only be a problem if multiple patches for the same atom had the
same name, which sounds unlikely. So probably the problem was benign.
Added doxygen and suggested future clean-up.
Refs #2833
Mark Abraham [Wed, 3 Feb 2021 07:56:08 +0000 (08:56 +0100)]
Fix handling of tip4p in pdb2gmx
The former code wrote an output configuration file with an extra
spurious 'M' particle, as well as the 'MW'.
Added test coverage, which needs the full output configuration to be
checked. Made that configurable so that we have the option to check
the full configuration only when we want to.
Refs #2833
Fixes #3894
Andrey Alekseenko [Wed, 3 Feb 2021 17:15:31 +0000 (17:15 +0000)]
Initialize rollingPruningNumParts in init_plist
Previously, rollingPruningNumParts and rollingPruningPart were not
initialized, which, in the case of an empty domain, caused access
to uninitialized memory. No particular harm was being done, but it
could trigger an assertion in gpu_launch_kernel_pruneonly during
some of the regression tests.
The whole code in the preamble of gpu_launch_kernel_pruneonly is
probably due for refactoring, but since we initialize all other
plist's fields in init_plist, we better initialize these two as well.
Szilárd Páll [Tue, 2 Feb 2021 13:09:58 +0000 (13:09 +0000)]
Improve DLB recommendation
Do not recommend turning on DLB when it was turned off due to a
condition known to make it unsuitable to use in the run.
Fixes #3879
Mark Abraham [Tue, 2 Feb 2021 09:10:44 +0000 (10:10 +0100)]
Fix compiler-version checks for C++17 requirements
175d3bb67f4 didn't update these parts
Refs #3297
Mark Abraham [Mon, 1 Feb 2021 10:30:35 +0000 (10:30 +0000)]
Add necessary include
int64_t needs the right header to be defined. Was broken
on Cygwin
Fixes #3890
Christian Blau [Fri, 29 Jan 2021 08:30:13 +0000 (09:30 +0100)]
Update release note on QM/MM deprication
The previous release note made it sound like the ongoing
CP2K interface development is providing code that is
"untested and likely dysfunctional"
This is not the case, it is the best functioning interface
at the moment and while not part of the official GROMACS code
base, has seen more through testing than any other QM/MM
interface.
Szilárd Páll [Fri, 29 Jan 2021 16:36:42 +0000 (16:36 +0000)]
Improve CUDA codegen flags
- onnly generate PTX for an early and the latest arch (3.5 and 8.0)
- add binary 8.0 and 8.6 targets
Paul Bauer [Fri, 29 Jan 2021 07:34:26 +0000 (07:34 +0000)]
Prepare for first 2021 patch release
Reset DOI strings
Paul Bauer [Thu, 28 Jan 2021 13:35:05 +0000 (13:35 +0000)]
GROMACS 2021 release
Updated regressiontest hash.
Set doi strings.
Set correct release date.
Paul Bauer [Thu, 28 Jan 2021 12:12:57 +0000 (13:12 +0100)]
Fix NB-LIB copyright
Was missing some updates and had a wrongly formatted header.
Paul Bauer [Thu, 28 Jan 2021 11:07:42 +0000 (12:07 +0100)]
Fix formatting in random/seed.cpp
This was left over after merging release-2020 into 2021.
kanduri [Thu, 28 Jan 2021 11:37:56 +0000 (11:37 +0000)]
Fix failing listed-forces test
Andrey Alekseenko [Thu, 28 Jan 2021 08:48:27 +0000 (08:48 +0000)]
Reintroduce CI job descriptions
GitLab does not allow adding custom fields to YAML files, so comments
were used. I tried to make the descriptions grep'able (not for the
wqhole matrix, but at least for individual settings), human-readable,
and possibly machine-parseable at the same time.
Andrey Alekseenko [Wed, 27 Jan 2021 12:01:07 +0000 (15:01 +0300)]
SYCL: fix typo in a test and clean-up non-standard-compliant code
Discovered when trying to compile with hipSYCL. Although not an issue
for Intel compiler, better keep things clean.
The change of `write` to `read` in the test code is intended. Not sure
how it worked before, but it should be `read` there.
Also fixed namespace qualifiers, implicit ctors.
Mark Abraham [Wed, 27 Jan 2021 07:43:26 +0000 (08:43 +0100)]
Test python 3.9.1
Extends the image-building infrastructure to also include
python 3.9.1 into images.
Fixes #3479
Christian Blau [Tue, 2 Jun 2020 12:54:33 +0000 (14:54 +0200)]
Clarify lambda vector usage with figure in manual
Add a figure that clarifies the effect of different lambda values.
Paul Bauer [Tue, 26 Jan 2021 18:34:29 +0000 (19:34 +0100)]
Add new sample script for listed forces
Adds a sample script that demonstrated the use of
listed forces calculator.
Szilárd Páll [Tue, 26 Jan 2021 16:33:16 +0000 (16:33 +0000)]
Change default Ewald kernel to tabulated on NVIDIA CC 7.0
Partially addressed #3845
Mark Abraham [Tue, 26 Jan 2021 08:52:07 +0000 (09:52 +0100)]
Fix default for xpm2gmx tick-mark spacings
Inadvertently broken ages ago in
027ae34187f8
Fixes #3881
Pascal Merz [Tue, 26 Jan 2021 15:53:54 +0000 (15:53 +0000)]
Enable grompp to read virtual_site1
In !306, a virtual site with one constructing atom was introduced.
grompp was, however, not updated to understand the new topology entry.
This updates the topology format in grompp and the manual. It also adds
a missing example for virtual site type 2fd to the manual.
Found while investigating #3866, but not directly connected.
ejjordan [Tue, 26 Jan 2021 13:28:45 +0000 (14:28 +0100)]
Add necessary dependence of sample test on check-nblib
This change adds the argon-forces-integration sample script
as a dependency for check-nblib. Without this, the sample script
is not correctly tested.
Mark Abraham [Mon, 25 Jan 2021 16:56:57 +0000 (17:56 +0100)]
Stop installing NB-LIB argon-forces-integration binary
This binary should not be installed alongside gmx. For example, the
GROMACS analysis-tool template in share folder is not installed by
default.
There's value to testing that the sample code compiles, but not
everybody needs to install it.
Mark Abraham [Mon, 25 Jan 2021 16:41:26 +0000 (17:41 +0100)]
Use ctest better to run NB-LIB sample code as a test
The return code of the sample binary does what a test needs to do.
There's no need to create issues by shoehorning it into a GoogleTest.
Refs #3821
Andrey Alekseenko [Mon, 25 Jan 2021 15:43:40 +0000 (15:43 +0000)]
Update self-documentation in admin/git-pre-commit
Mark Abraham [Mon, 25 Jan 2021 10:39:56 +0000 (11:39 +0100)]
Log progress from gmx msd better
Refs #3284
Joe Jordan [Mon, 25 Jan 2021 12:48:56 +0000 (12:48 +0000)]
Check availability of compile flags at cmake time
Fixes #3821
Ensures that compile flag can be used before using it. Gives a
message if flag cannot be used.
ejjordan [Mon, 25 Jan 2021 09:53:33 +0000 (10:53 +0100)]
Rename DefaultAngle to HarmonicAngleType in nblib listed forces
This change renames the type corresponding to harmonic angles
in nblib from DefaultAngle to HarmonicAngleType. This is both
more descriptive, and more similar to other listed forces
types in nblib.
Additionaly, one failing test is disabled. This disabling
is needed so that all tests can pass to allow this MR to
be merged. A subsequent MR fixes the test issues.
Berk Hess [Mon, 25 Jan 2021 08:29:03 +0000 (08:29 +0000)]
MTS release note
M. Eric Irrgang [Sun, 24 Jan 2021 17:01:21 +0000 (20:01 +0300)]
Update Dockerfiles for Python subpackages.
Some appropriate adjustments were discovered while
investigating computing environments for an upcoming workshop.
* Bump the base Linux distribution.
* Refine the inline documentation.
* Adjust the package list and build options.
M. Eric Irrgang [Sun, 24 Jan 2021 16:57:36 +0000 (19:57 +0300)]
Finalize gmxapi Python package version 0.2.
Szilárd Páll [Fri, 22 Jan 2021 15:11:30 +0000 (16:11 +0100)]
Disable CUDA textures also on NVIDIA Ampere A100
The same benefits have been shown as those observed with V100.
Partially addresses #3845
Mark Abraham [Thu, 21 Jan 2021 12:11:36 +0000 (12:11 +0000)]
Ensure residue name used by pdb2gmx matches rtp name
The default for GLU/GLUH and ASP/ASPH is the unprotonated form. The
help text pdb2gmx specifically states this, and there is no attempt to
use the residue name to infer the protonation.
The old code set the rtp name to the unprotonated form without
changing the residue name read from the configuration file. The
original residue name was then used in the output configuration and
topology file. That name indicated the wrong protonation if the user
input tried to specify the protonated form via the residue name. Now
it changes the residue name to match the rtp name.
This has been surprising, so whenever pdb2gmx implements its default by
changing the residue name, it now reports that.
The same problem occurs when using pdb2gmx -asp if the input
configuration had the name of the protonated form and the interactive
choice was for the unprotonated form. However, in that case there is
no need to inform the user that the input residue naming is being
overridden. Tested manually.
Updated the tests to handle this case.
Added some release notes, Doxygen, added some comments, and updated some code style
so the review is easier.
Fixes #2480
Andrey Alekseenko [Thu, 21 Jan 2021 09:39:13 +0000 (09:39 +0000)]
Keep the number of tMPI ranks consistent with the number of GPUs
When the number of atoms in a system is small, and the automatic resource
assignment is used (i.e., a user just runs gmx mdrun), the number of ranks
chosen by get_nthreads_mpi might be incompatible with the expectations of
GpuTaskAssignmentsBuilder, namely that the number of ranks must be
divisible by the number of threads.
If the user did not supply the -ntmpi value, and we have to limit the
number of ranks due to small system size, we round it down down to the
nearest value divisible by the number of GPUs to use (or 1, whichever is
greater).
Fixes #3874
Mark Abraham [Wed, 20 Jan 2021 10:56:38 +0000 (11:56 +0100)]
Suggest a workaround for pulling with -deffnm
Also fixed use of settings, use settings to do the line wrapping,
and wrote some newlines to make the output more readable.
Refs #3875
Fixes #3442
Paul Bauer [Wed, 20 Jan 2021 10:39:02 +0000 (10:39 +0000)]
Use correct python interpreter cmake check
Still needed to complete address checksumming issue.
Fixes #3862
Mark Abraham [Tue, 19 Jan 2021 10:46:01 +0000 (11:46 +0100)]
Describe the configured precision correctly for mdrun
We adopted the build configuration naming scheme for GMX_DOUBLE
"mixed" vs "double" some years ago so that people knew we don't reduce
forces in mdrun solely in single. This change improves consistency in
this regard in the cases that are important to users, ie. log files
and messages about checkpoint restarts.
Various file-reading tools still refer to "single" in contexts where
they are reading floats, which is fine.
Paul Bauer [Wed, 13 Jan 2021 11:23:02 +0000 (12:23 +0100)]
NBLIB: Remove preprocessor macros
Macros used to implement part of the listed forces calculation have been
removed and replaced with a pure C++ template implementation.
Also addresses review comments not fully resolved from previous merge
requests.
Paul Bauer [Wed, 20 Jan 2021 06:10:40 +0000 (06:10 +0000)]
Fix TPR handling for older versions.
Reading in a newer TPR file in a pre-2021 version would fail hard with
symtab errors due to us forgetting to increment the tpr generation when
adding the VSite1 type to ftupd.
This fixes the omission an makes the tpr generation an enum similar to
the tpr version.
Fixes #3867
Paul Bauer [Tue, 19 Jan 2021 09:17:49 +0000 (10:17 +0100)]
Fix checksumming code
Recent additions to the code to avoid errors with certain IDEs
caused issues by never trying to validate the checksums.
Fixed by properly passing the necessary variables to the script.
Fixes #3862
Mark Abraham [Wed, 20 Jan 2021 04:57:46 +0000 (04:57 +0000)]
Fix PaddedVector move constructor
This could leave the moved-from vector in a state unfit to destruct.
Expanded test coverage, including improving the tests and their
infrastructure, so I could understand my own code.
Fixes #2832
Mark Abraham [Tue, 19 Jan 2021 11:06:38 +0000 (12:06 +0100)]
Report hwloc 1.x deprecation only when found
Refs #3818
Berk Hess [Tue, 19 Jan 2021 16:38:19 +0000 (16:38 +0000)]
Change default MTS force group selection
Because of instabilities of aliphatic protons with the Amber
force fields, the default force group selection for multiple
time stepping has been changed to include longrange-nonbonded only.
Refs #3804
Szilárd Páll [Tue, 19 Jan 2021 12:09:15 +0000 (12:09 +0000)]
Disable CUDA textures on NVIDIA Volta
This has significant performance benefit for the nbnxm kernels with
tabulated Ewald correction and it has negligible impact on the PME kernels.
Partially addresses #3845
Mark Abraham [Wed, 13 Jan 2021 14:49:39 +0000 (15:49 +0100)]
Deprecate mdrun -deffnm
This functionality is more trouble to implement and test well than
we expected. Even though it is convenient in some cases, on balance
we should remove it and encourage users to use standard approaches
for grouping their files.
Refs #3442, #942, #2205, #2154.
Fixes #3818
Pascal Merz [Tue, 19 Jan 2021 09:39:34 +0000 (09:39 +0000)]
Fix modular simulator log writing in fresh simulation starts with nstlog == 0
With nstlog = 0, legacy simulator writes log on the initial step, while
modular simulator wasn't. This adapts modular simulator to the legacy
approach.
Szilárd Páll [Tue, 19 Jan 2021 09:02:55 +0000 (09:02 +0000)]
Add G. Gouaillardet to the list of contributors
Berk Hess [Tue, 12 Jan 2021 07:38:38 +0000 (07:38 +0000)]
Avoid NMR restraints calls for MTS levels > 0
Distance and orientation restraint code was called for MTS levels > 0
whereas this should not happen.
Fixes #3863
Andrey Alekseenko [Sat, 9 Jan 2021 19:57:42 +0000 (22:57 +0300)]
densityfit: Fix typo in use of iterators
... and some typos in comments.
While both referenceDensity_ and referenceDensity are views into the same data,
it's clearer to use the same variable for both begin() and end().
This is a remake of MR !740. That MR was reverted (in !748) due to
failed tests. The test failures, however, were caused by an unrelated bug
(issue #3791, fix !827). So, this change is brought back.
Gilles Gouaillardet [Fri, 8 Jan 2021 07:47:46 +0000 (16:47 +0900)]
ARM_SVE: misc fixes
- fix a typo
- remove debug assert()
Paul Bauer [Wed, 6 Jan 2021 07:55:14 +0000 (08:55 +0100)]
Add new GROMACS logo
Replaces previous logo with new vector graphics one.
Logo (C) by Cathrine Bergh.
Gilles Gouaillardet [Thu, 7 Jan 2021 15:24:13 +0000 (15:24 +0000)]
arm_sve: fix GMX_SIMD_HAVE_4NSIMD_UTIL_{FLOAT,DOUBLE} macro definitions
only define these macros in impl_arm_sve_definitions.h when the number of
elements per vector greater than 4
Paul Bauer [Thu, 7 Jan 2021 14:11:04 +0000 (15:11 +0100)]
Merge branch release-2020 into merge-2020-into-2021
Resolved Conflicts:
cmake/gmxVersionInfo.cmake
docs/CMakeLists.txt
docs/conf.cmakein.py
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/expanded.cpp
src/gromacs/mdlib/tests/CMakeLists.txt
Paul Bauer [Thu, 7 Jan 2021 13:08:41 +0000 (13:08 +0000)]
Write copyright output files as utf8
The script could fail otherwise when encodings didn't match.
Christian Blau [Thu, 7 Jan 2021 07:51:56 +0000 (07:51 +0000)]
Prepare for GROMACS 2020.6
Reset DOI strings.
Prepare release note stubs.
Set patch number in build infrastructure.
Christian Blau [Wed, 6 Jan 2021 12:45:31 +0000 (12:45 +0000)]
GROMACS version 2020.5
Set DOI strings.
Szilárd Páll [Tue, 5 Jan 2021 20:58:23 +0000 (20:58 +0000)]
Update src/regressiontests URLs to https
With the recent server migration we support https downloads and we
should offer those over http.
Also updated the regressiontests URL to point to the ftp server.
Kevin Boyd [Wed, 30 Dec 2020 17:51:25 +0000 (09:51 -0800)]
Fix broken random seed generation.
On Ryzen 3k CPUs with the RDRAND microcode bug, the
std::mt19937_64 alternate path yields the same seed
on multiple calls that fall within the same second. Changed
the "seed" of the random seed to rescramble each time the
makeRandomSeed() function is called.
Fixes #3859
Kevin Boyd [Tue, 5 Jan 2021 13:28:26 +0000 (13:28 +0000)]
Fix broken random seed generation.
On Ryzen 3k CPUs with the RDRAND microcode bug, the
std::mt19937_64 alternate path yields the same seed
on multiple calls that fall within the same second. Changed
the "seed" of the random seed to rescramble each time the
makeRandomSeed() function is called.
Fixes #3859
Christian Blau [Tue, 5 Jan 2021 12:29:37 +0000 (13:29 +0100)]
Fix copyright year
Merging !423 on January 1st 2021 causes the pipeline to fail
due to a missed copyright year update.
The copyright year is updated with this patch.
Michael Shirts [Fri, 1 Jan 2021 10:30:38 +0000 (10:30 +0000)]
Expanded ensemble changes.
Fix the numerical stability issues encountered with simulated tempering (also, would have occurred with any alchemical problem with large energy differences between states). In most cases, we simply flip the form around and compute an alternate form that always gives a 0 instead of infinity when the energy difference between states is too far in any direction. Also added a citation. Fixes https://gitlab.com/gromacs/gromacs/-/issues/3304
Note that there is no way to get good estimates for free energy differences between states with the very large differences between examples. One of the numerical stability fixes is not expected to be great, but it's not really relevant since nothing would work in this case; using Wang-Landau (i.e. visitation based approaches) rather than metropolis style methods (energy difference analysis methods) is the only thing that works.
Szilárd Páll [Wed, 30 Dec 2020 12:27:34 +0000 (13:27 +0100)]
Bump version post-release to rc2
Szilárd Páll [Wed, 30 Dec 2020 16:28:34 +0000 (16:28 +0000)]
GROMACS 2021-rc1 release candidate
First release candidate.
Mark Abraham [Wed, 23 Dec 2020 13:44:37 +0000 (13:44 +0000)]
Deprecate .pdo file reading
Analysing such files is likely not relevant a decade later, and such
needs can be met by using an older version of GROMACS that did still
support reading these formats.
Fixes #3818
Alan Gray [Fri, 18 Dec 2020 07:45:10 +0000 (23:45 -0800)]
Stage bonded kernel atomics through shared memory
Fixes performance bug introduced in
01b2f20bd5 by staging energy step
atomics through shared memory rather than have all threads write
atomically directly to global memory.
Fixes #3443
Mark Abraham [Thu, 17 Dec 2020 11:10:35 +0000 (11:10 +0000)]
Update CI image to OneAPI 2021.1.1, add ICC tests.
Also, backport a change from MR !796 that silences the false-positive ICC
compiler warning.
Mark Abraham [Tue, 15 Dec 2020 17:01:19 +0000 (17:01 +0000)]
Update deprecation statuses
Various functionality has been agreed as deprecated at #3818 and
elsewhere. Those are now noted in the release notes, documentation,
and CMake status messages. The changes are all minor so there is
little need to make mdrun report when such configurations are used.
The deprecation content for release 2020 (and 2021) series is updated
to include the relevant content from release 2019 series. Comments
have been added to help us to this better in future.
Fixes #3818
Paul Bauer [Mon, 14 Dec 2020 12:44:02 +0000 (12:44 +0000)]
Fix pull group index handling
The pull code never validated its own index groups, leading to the
possibility of an invalid group either hanging the process or triggering
an assertion, depending on the build type.
Fixed by introducing the check for other index groups also to pull
groups.
Fixes #3810
Magnus Lundborg [Mon, 14 Dec 2020 11:22:48 +0000 (11:22 +0000)]
Fix incorrect AWH free-energy output with multiple walkers
The free-energy was averaged exponentially over walkers using the wrong
sign for the exponent. The meant that the free-energy output was off
for large update sizes. This error was quadratic in the update interval
and the number of walkers. This likely has no measurable effects with
the default AWH free-energy update interval. But the effect is noticeable
with the not uncommon update interval of 1000 steps.
Fixes: #3828
Simon Christ [Mon, 30 Nov 2020 10:37:00 +0000 (10:37 +0000)]
Correct signs of lj and coulomb forces
Pascal Merz [Fri, 11 Dec 2020 13:07:23 +0000 (13:07 +0000)]
Restrict force frame comparison for FEP tests
Closes #3741.
Pascal Merz [Fri, 11 Dec 2020 12:22:44 +0000 (12:22 +0000)]
Fix trx frame reading from modular simulator checkpoint files
trx frames from checkpoints written by modular simulator could be
slightly off depending on the algorithms used (always up-to-date with
domain decomposition only). The global state is still written to
modular checkpoints (as there is a significant amount of setup work at
runner time that needs to be refactored before modular simulator can
get spawned completely without a global state). It is, however, not
guaranteed to be absolutely up to date, as it's not used in the
simulation continuation.
The trx frame reading is now handled by modular simulator if the
checkpoint was written by modular simulator. A test was added to
ensure that the final frame of the simulation is equivalent to the
checkpointed configuration.
Note that this was not affecting simulation restart (exact
continuation is tested also for modular simulator). It would, however,
affect other tools accessing the configuration from the checkpoint
file. The error was only present in master and 2021 beta, so it was
never in a released version.
trx frame reading by modular simulator required some refactoring of
the StatePropagatorData and FreeEnergyPerturbationData
checkpointing. The main read and write function was moved to the data
object itself rather than being owned by its element. This is likely a
better design decision anyway: The element orchestrates the
checkpointing during the simulations, but the data object is handling
the actual data reading / writing. This allows to create a dummy data
object, restore it from checkpoint, and read out the quantities
relevant for the trx frame.
Closes #3838
Berk Hess [Thu, 10 Dec 2020 13:34:59 +0000 (13:34 +0000)]
A check for perturbed listed pairs beyond rlist
Excluded atoms pairs should be within the pairlist cut-off, as
otherwise long-range corrections are not applied. This is problematic
for free-energy calculations where intra-molecular interactions are
not coupled and replaced by pair interactions. Now a fatal error
is generated when perturbed pair interactions are beyond rlist.
Also added PME grid correction for LJ excluded pairs beyond rvdw,
which was missing from #3403.
Added missing release note for the fix of #3403.
Fixes #3403
Fixes #3809
Paul Bauer [Wed, 9 Dec 2020 14:45:51 +0000 (14:45 +0000)]
Fix indexing bug in electric field module
Improper refactoring in
c8eca5d1f27cc34903718ade7d44527c22ec3d93 lead to
the module using the wrong maximum atom index for applying the electric
field forces to atoms.
Fixes #3800
Andrey Alekseenko [Wed, 9 Dec 2020 11:24:13 +0000 (11:24 +0000)]
Fix defining of EXCLUSION_FORCES in CUDA/OpenCL kernels
For the case of cut-off electrostatics + Ewald LJ + no energy calculation,
the EXCLUSION_FORCES macro should be active.
However, LJ_EWALD macro is (conditionally) set only later, and so is
always undefined when it is being checked for EXCLUSION_FORCES.
Mark Abraham [Wed, 9 Dec 2020 10:14:01 +0000 (10:14 +0000)]
Fix compilation and tests with icc 19.1.2
Closes #3822
Pascal Merz [Wed, 9 Dec 2020 09:51:32 +0000 (09:51 +0000)]
Fix and activate tests for kv-tree checkpoint functions
The tests in src/gromacs/fileio/tests/checkpoint.cpp were introduced
in
64bee06aa, but the file was never added to the CMakeLists.txt,
meaning they were never executed (or even compiled).
Added the file to the CMake target and fixed a few compilation
errors and warning to activate the tests.
Pascal Merz [Wed, 9 Dec 2020 09:23:13 +0000 (09:23 +0000)]
Fix dump of checkpoint files
With the addition of the MdModules and the modular checkpointing,
`gmx dump -cp` would end with an error when either of the two was
written to checkpoint. Reason was that the function dumping
checkpoint files was not aware of the additional blocks present.
As the new functionality checkpoints at the end of the files, the
remainder of the information was printed anyway, but the call ended
with an error.
This adds the two new checkpointing blocks to the function used
by gmx dump, and prints the kv-tree they are based on. To achieve
this, the kv-tree printing functionality had to be expanded to
allow for arrays of objects.
Finally, this change also fixes a wrong comment in the modular
simulator checkpoint helper - checkpointing happens on top of the
integration step, so _before_ the last step.
Pascal Merz [Mon, 7 Dec 2020 08:42:44 +0000 (08:42 +0000)]
Fix Nose-Hoover conserved energy
Closes #3831
Pascal Merz [Sat, 5 Dec 2020 01:07:13 +0000 (18:07 -0700)]
Clarify checkpoint mismatch error, and enable in release
As of GROMACS 2021, checkpoint files written with the modular and the
legacy codepath need to be continued with the same code path. The
respective check was not executed in release mode, which would lead
to less descriptive errors.
Also reworded the error to guide users how they can solve the problem.
Pascal Merz [Fri, 4 Dec 2020 05:29:12 +0000 (22:29 -0700)]
Relax simulator comparison tests
The simulator comparison tests have proven to be too strict when running
them on more diverse hardware / compiler / parallelization combinations.
This doubles the tolerances for the energies of tests containing
constraints. Note that at 160 double precision ULPs, these are still
very tight for end-to-end tests, so the danger of relaxing them a bit
is low.
Closes #3836
Pascal Merz [Wed, 2 Dec 2020 21:38:48 +0000 (14:38 -0700)]
Print energy conservation in modular simulator
Paul Bauer [Wed, 2 Dec 2020 14:39:57 +0000 (14:39 +0000)]
Third GROMACS 2021 beta release
All features should now be stable before the release.
Pascal Merz [Wed, 2 Dec 2020 08:52:40 +0000 (01:52 -0700)]
Fixes post submit broken by
05f02ab82