Alan Gray [Tue, 18 May 2021 14:33:42 +0000 (07:33 -0700)]
Remove GPU update restriction for replica exchange
Ensures that the end-of-step D2H coordinate copy is active for replica
exchange steps, to allow the GPU update restriction to be relaxed.
Artem Zhmurov [Thu, 20 May 2021 14:01:15 +0000 (14:01 +0000)]
Use MessageStringCollector class to construct error messages
Paul Bauer [Thu, 20 May 2021 07:57:58 +0000 (09:57 +0200)]
Disable ArrayRefDeathTests when building without assertions
Would otherwise lead to spurious failures.
ejjordan [Wed, 19 May 2021 16:28:07 +0000 (18:28 +0200)]
Remove inputrec from do_ewald
Also rename some parameters more verbosely and remove a dead code
block.
Joe Jordan [Thu, 20 May 2021 06:25:18 +0000 (06:25 +0000)]
Localize variables in ewald_LRcorrection
Artem Zhmurov [Wed, 19 May 2021 15:46:59 +0000 (18:46 +0300)]
Andrey Alekseenko [Wed, 19 May 2021 16:15:08 +0000 (16:15 +0000)]
Support GPU update without constraints
ejjordan [Mon, 17 May 2021 13:54:03 +0000 (15:54 +0200)]
Make TrotterSequence enum class
A subesquent MR can make an extended Trotter enum class, removing
dependence of coupling and update_vv headers on md_enums header.
Joe Jordan [Wed, 19 May 2021 15:09:16 +0000 (15:09 +0000)]
Clean up some headers in mdlib
ejjordan [Tue, 18 May 2021 18:19:54 +0000 (20:19 +0200)]
Remove forcerec and inputrec from ewald_LRcorrection
Only pass needed parameters to ewald_LRcorrection, instead of
entire forcerec and inputrec. This required also refactoring
EwaldBoxZScaler to only take needed parameters instead of a
whole inputrec.
Also made some names more verbose.
Paul Bauer [Wed, 19 May 2021 11:33:56 +0000 (11:33 +0000)]
Add nullptr check in ArrayRef from array construction
Artem Zhmurov [Wed, 19 May 2021 10:53:55 +0000 (10:53 +0000)]
Make common Leap-Frog device code backend-agnostic
ejjordan [Tue, 18 May 2021 18:35:53 +0000 (20:35 +0200)]
Remove forcerec from ewald_charge_correction
Also renamed commrec to be more verbose.
Andrey Alekseenko [Tue, 18 May 2021 19:54:23 +0000 (22:54 +0300)]
Fix CMake 3.20 warnings when compiling with IntelLLVM
Most work was done in
5d2d4769 (MR !1558), but we were still getting
warnings from the compiler compatibility checks. Nothing major, just
noise.
Andrey Alekseenko [Tue, 18 May 2021 11:41:49 +0000 (14:41 +0300)]
Remove unused StatisticsStatus values
The `enumValueToString(StatisticsStatus)` had the wrong order of
strings. But in fact most of these statuses were not used anyway, so we
can just remove the corresponding enum values altogether.
Joe Jordan [Tue, 18 May 2021 10:50:09 +0000 (10:50 +0000)]
Fix several doxygen errors
Artem Zhmurov [Mon, 17 May 2021 10:01:57 +0000 (10:01 +0000)]
Move the stub for X buffer ops into OpenCL
Mark Abraham [Fri, 14 May 2021 07:13:52 +0000 (09:13 +0200)]
Refactor gmx_reverse_top_t
Made the impl properly private, but to do so had to separate
the responsibility for checking the local topology, which
should never have been here.
This introduces two new headers in preparation for splitting up
domdec_topology.cpp into several parts that can then have their own
headers. But first gmx_reverse_top_t has to be properly encapsulated.
Refs #3887
Artem Zhmurov [Mon, 17 May 2021 07:58:53 +0000 (07:58 +0000)]
Make NBNXM force getter available in all backends
Paul Bauer [Fri, 14 May 2021 13:05:27 +0000 (15:05 +0200)]
Use InheritParentConfig: true in clang-tidy files
Removes duplication between files in test directories where it can be
avoided.
Artem Zhmurov [Thu, 13 May 2021 08:41:17 +0000 (11:41 +0300)]
Use appendIf(..) method of MessageStringCollector where it is relevant
Refs #3886
Artem Zhmurov [Wed, 12 May 2021 08:16:47 +0000 (11:16 +0300)]
Remove extra device force getter from NBNXM
Having two getters for the same device buffer is confusing and
polutes the name space. This removes the extra getter and
change to the calls to the other one where it was used.
Refs #2608
Artem Zhmurov [Thu, 13 May 2021 08:06:19 +0000 (11:06 +0300)]
Add appendIf(..) method and tests for MessageStringCollector
The messages are usually added conditionally, which makes
it more natural to use msc.appendIf(conditional, message) as
compared to if(conditional) { msc.append(message); }.
Also adds tests for basic functionality of the class and
renames the files according to conventions.
Refs #3886
Mark Abraham [Thu, 13 May 2021 07:36:56 +0000 (07:36 +0000)]
Decouple update group handling from domain decomposition module
Andrey Alekseenko [Tue, 27 Apr 2021 21:19:15 +0000 (00:19 +0300)]
Add SYCL implementation of X/V scale kernel
Refs #3929
Artem Zhmurov [Tue, 11 May 2021 11:25:26 +0000 (11:25 +0000)]
Make common Update-Constraints code backend-agnostic
Artem Zhmurov [Tue, 11 May 2021 06:05:58 +0000 (09:05 +0300)]
Name the MDRun FEP test binary consistently
Szilárd Páll [Tue, 11 May 2021 10:19:42 +0000 (10:19 +0000)]
Remove GMX_FORCE_DO_NOT_NEED_NORMAL_FORCE legacy flag in do_force()
Paul Bauer [Tue, 11 May 2021 09:51:13 +0000 (09:51 +0000)]
Add test for single residue chain
Artem Zhmurov [Tue, 11 May 2021 07:46:17 +0000 (10:46 +0300)]
Artem Zhmurov [Tue, 11 May 2021 05:57:07 +0000 (08:57 +0300)]
Fix conditional in assertion
The B-charges should be defined to use FEP in PME. The condition
was changed to the opposite in
fdac5efa5ed51dd9b8486ca35227708b62fb08ef
Mark Abraham [Tue, 11 May 2021 08:31:47 +0000 (08:31 +0000)]
Apply more clang-tidy-11
Artem Zhmurov [Tue, 11 May 2021 05:34:06 +0000 (08:34 +0300)]
Fix compiler warning and use static_assert
1. The compiler assumes that GMX_GPU_CUDA and GMX_GPU_SYCL
may be bit-fields and thus issue a warning if the logical
or is used (constant-logical-operand). Casting them to
booleans supresses the warning.
2. Change to use static_assert instead of the GMX_RELEASE_ASSERT
because this code on a hot path.
Szilárd Páll [Wed, 21 Apr 2021 17:48:04 +0000 (19:48 +0200)]
Eliminate duplicate CPU->GPU copy of x
x is copied to the GPU for buffer ops or PME as well as prior to GPU
update on search steps which leads to a duplicate copying which is
addressed in this change.
Fixes #4033
Refs #3988
Andrey Alekseenko [Tue, 11 May 2021 07:16:38 +0000 (07:16 +0000)]
Add SYCL implementation of GPU F buffer operations
Mark Abraham [Mon, 10 May 2021 13:36:44 +0000 (15:36 +0200)]
Apply clang-format-11
This is better than slowly dribbling changes all over the
code base
Mark Abraham [Tue, 11 May 2021 05:02:52 +0000 (05:02 +0000)]
Rename pdb2gmx tests
Joe Jordan [Mon, 10 May 2021 20:31:19 +0000 (20:31 +0000)]
Fix harmless bug in nonbonded FEP tests
Andrey Alekseenko [Mon, 10 May 2021 20:09:53 +0000 (20:09 +0000)]
Add SYCL implementation of GPU X buffer operations
Andrey Alekseenko [Mon, 10 May 2021 13:22:53 +0000 (13:22 +0000)]
Make GPU X buffer ops platform-agnostic
Andrey Alekseenko [Sat, 8 May 2021 11:23:23 +0000 (14:23 +0300)]
Fix shift_left/right function on hipSYCL
Having separate __host__ and __device__ definitions confused the
compiler when called from a non-annotated function. As a result,
a __host__ version, containing `assert(false)`, was always called,
leading to UB.
Refs #3965
Paul Bauer [Fri, 7 May 2021 15:03:42 +0000 (17:03 +0200)]
Make clang-tidy check more aggressive
Now makes sure that it checks on all warnings, not just files that could
be fixed automatically.
Andrey Alekseenko [Sun, 9 May 2021 12:48:12 +0000 (15:48 +0300)]
SYCL: Allow copying an uninitialized DeviceBuffer object
Needed for sharing more code between CUDA and SYCL.
Refs #4045, related to #3020
Szilárd Páll [Mon, 10 May 2021 08:51:17 +0000 (08:51 +0000)]
Move PME-GPU do_force() local bool into stepWorkload
Pascal Merz [Mon, 10 May 2021 07:26:35 +0000 (07:26 +0000)]
Clarify builder-time data, introduce simulation-time data
Berk Hess [Fri, 7 May 2021 12:31:39 +0000 (12:31 +0000)]
Make debug printing work with empty domains
Paul Bauer [Thu, 6 May 2021 14:22:09 +0000 (16:22 +0200)]
Merge branch release-2021 into merge-2021-into-master
Resolved Conflicts:
cmake/gmxCFlags.cmake
cmake/gmxManageFFTLibraries.cmake
cmake/gmxVersionInfo.cmake
docs/CMakeLists.txt
src/gromacs/applied_forces/awh/bias.cpp
src/gromacs/applied_forces/awh/biasstate.cpp
src/gromacs/applied_forces/awh/biasstate.h
src/gromacs/applied_forces/awh/read_params.cpp
src/gromacs/applied_forces/awh/tests/bias_fep_lambda_state.cpp
src/gromacs/fileio/vmdio.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/constr.cpp
src/gromacs/mdlib/enerdata_utils.cpp
src/gromacs/mdlib/mdatoms.cpp
src/gromacs/mdrun/mimic.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/modularsimulator/modularsimulator.cpp
src/gromacs/utility/mdmodulesnotifiers.h
Paul Bauer [Thu, 6 May 2021 09:35:44 +0000 (09:35 +0000)]
Use more modern clang for linters and sanitizers
Paul Bauer [Wed, 5 May 2021 15:16:05 +0000 (17:16 +0200)]
Remove UB in ArrayRef from array
Several issues with ArrayRefs from nullptr have been found by UBSAN.
Pascal Merz [Thu, 6 May 2021 04:43:26 +0000 (04:43 +0000)]
Unify temperature and pressure coupling connection
Berk Hess [Wed, 5 May 2021 15:45:28 +0000 (15:45 +0000)]
Convert t_oriresdata to C++
Paul Bauer [Wed, 5 May 2021 14:34:44 +0000 (16:34 +0200)]
Prepare branch for 2021.2 point release
Reset DOI strings.
Set new version.
Add release note stub.
Paul Bauer [Wed, 5 May 2021 13:55:17 +0000 (13:55 +0000)]
GROMACS 2021.2 release
Pascal Merz [Sat, 28 Nov 2020 19:37:47 +0000 (12:37 -0700)]
Allow elements to request local kinetic energy update
Trotter decomposed algorithms need to be able to request kinetic
energy update at a specific point in the algorithm.
Refs #3423
Andrey Alekseenko [Wed, 5 May 2021 13:05:50 +0000 (13:05 +0000)]
Make common GPU Force Reduction code backend-agnostic
Paul Bauer [Wed, 5 May 2021 11:45:15 +0000 (13:45 +0200)]
Fix include order
Was missed during previous commit.
Pascal Merz [Wed, 5 May 2021 11:47:27 +0000 (11:47 +0000)]
Zero modular simulator total energy
Paul Bauer [Fri, 23 Apr 2021 06:57:19 +0000 (08:57 +0200)]
Apply misc clang-tidy-11 fixes
Needed to build with newer version.
I also had to add a number of new exclusions in the base configuration
files. Those are mainly for recursive functions and use of global
variables. Tests needed their own configuration files to exclude check
for non const global variables.
Refs #3897
Mark Abraham [Wed, 5 May 2021 08:57:19 +0000 (10:57 +0200)]
Restore pull output to rerun
This was omitted from
c52e6838 and is now restored.
Refs #1868
Fixes #4043
Mark Abraham [Wed, 5 May 2021 08:55:48 +0000 (08:55 +0000)]
Break up dd_init_bondeds
Joe Jordan [Wed, 5 May 2021 08:30:45 +0000 (08:30 +0000)]
Apply clang-tidy11 to tools
ejjordan [Tue, 4 May 2021 14:37:47 +0000 (16:37 +0200)]
Remove dead functions from statistics module
Joe Jordan [Wed, 5 May 2021 07:35:26 +0000 (07:35 +0000)]
Pass ArrayRefs to dispatchNonbondedKernel
Joe Jordan [Wed, 5 May 2021 06:41:53 +0000 (06:41 +0000)]
Remove mdatoms from coupling code and use more ArrayRef
Roland Schulz [Wed, 5 May 2021 04:51:19 +0000 (21:51 -0700)]
Fix compile with IntelLLVM and cmake 3.20
ejjordan [Wed, 28 Apr 2021 12:56:28 +0000 (14:56 +0200)]
Remove mdatoms from do_walls
Also changed one pointer arg to ArrayRef.
Andrey Alekseenko [Tue, 4 May 2021 09:21:27 +0000 (11:21 +0200)]
Fix GCC-11 warning
It complained about pbcatom_input being uninitialized.
Does not seem like it is used anywhere before being set in
process_pull_groups, but better initialize it just in case.
ejjordan [Tue, 4 May 2021 12:34:25 +0000 (14:34 +0200)]
Remove mdatoms from vsite
Pass params directly and clean up includes.
Joe Jordan [Tue, 4 May 2021 13:58:30 +0000 (13:58 +0000)]
Apply clang-tidy11 to statistics
ejjordan [Tue, 4 May 2021 10:05:57 +0000 (12:05 +0200)]
Use enum : bool in commandline test
Demonstrates that t_pargs works with enum class : bool.
Paul Bauer [Tue, 4 May 2021 12:46:17 +0000 (12:46 +0000)]
Add known issues to user guide
Paul Bauer [Tue, 4 May 2021 11:26:01 +0000 (13:26 +0200)]
Use correct size for force vector in mdoutf
The wrong size of the array was used previously in constructing the
reference to it, leading to possible invalid memory access.
ejjordan [Tue, 4 May 2021 08:13:32 +0000 (10:13 +0200)]
Preven extension of DDBondedChecking
By having DDBondedChecking inherit from bool, any attempt to add
additional enum values will lead to compilation error, unless the
inheritance is also removed.
Mark Abraham [Mon, 3 May 2021 14:49:05 +0000 (16:49 +0200)]
Decouple update-group aspects of vsites and constraints
Update groups should not be managed from within domdec module, so
shift the responsiblity to runner temporarily to simplify future
changes.
This made clear that some internal fields of domdec module were
inaccurately named. Update groups preclude the possibility of
constraints or vsites being split across domains, but when update
groups are not in use such splits are merely possible, not
assured. The code doesn't change, because we always have to account
for the possiblity that some are split.
Refs #4004
Mark Abraham [Tue, 27 Apr 2021 13:18:35 +0000 (15:18 +0200)]
Remove some use of charge groups from domdec
Former domain-decomposition used either particles or charge groups in
constructing the local topology, but now it only uses
particles. Changed naming of functions, variables and comments for
consistency.
Eliane Briand [Tue, 4 May 2021 05:06:41 +0000 (05:06 +0000)]
Respect umask when creating temporary file
ejjordan [Wed, 28 Apr 2021 11:14:40 +0000 (13:14 +0200)]
Remove mdatoms from pairs in listed forces
Artem Zhmurov [Mon, 3 May 2021 19:52:10 +0000 (22:52 +0300)]
Mark Abraham [Mon, 3 May 2021 17:17:57 +0000 (17:17 +0000)]
Respect umask when creating temporary file
ejjordan [Wed, 28 Apr 2021 14:16:59 +0000 (16:16 +0200)]
Remove mdatoms from expanded
Also removed most of the included in expanded.cpp, all of which
were unused.
Gilles Gouaillardet [Mon, 3 May 2021 17:13:56 +0000 (17:13 +0000)]
densityfitting: add missing include file
Artem Zhmurov [Mon, 3 May 2021 13:20:26 +0000 (16:20 +0300)]
Berk Hess [Mon, 3 May 2021 14:29:11 +0000 (14:29 +0000)]
Clean up DD bonded interaction assignment
Szilárd Páll [Mon, 3 May 2021 13:28:08 +0000 (15:28 +0200)]
Mention the users forums on the user-guide front page
Added a note + URL pointing to the forums.
Mark Abraham [Thu, 29 Apr 2021 09:04:33 +0000 (11:04 +0200)]
Replace bool with enum class in DomdecOptions
The logic is simpler if we just use DDBondedChecking directly in
DomdecOptions. The enum values have changed so that they match those
for the bool type. Added a test and an assertion to confirm that this
works as expected, ie the default for mdrun -ddcheck is unchanged
Joe Jordan [Mon, 3 May 2021 13:04:50 +0000 (13:04 +0000)]
ArrayRef in pme
Mark Abraham [Tue, 27 Apr 2021 14:23:25 +0000 (16:23 +0200)]
Remove redundant store
gcc 9 complains about the useless store
Mark Abraham [Fri, 30 Apr 2021 06:21:02 +0000 (08:21 +0200)]
Temporarily lift requirement to detect GPUs in CI
Mark Abraham [Mon, 3 May 2021 09:44:48 +0000 (09:44 +0000)]
Fully define IndexGroupsAndNames
Szilárd Páll [Mon, 3 May 2021 08:42:36 +0000 (08:42 +0000)]
Allow using CPU PME with DD and GPU update
Mark Abraham [Fri, 30 Apr 2021 08:56:25 +0000 (10:56 +0200)]
Prohibit SETTLE interactions on atoms with perturbed masses
This has never been implemented, but in 2018.x and older it sometimes
managed not to crash. Now both grompp and mdrun prevent the simulation
from running and suggest an alternative.
Fixes #3959
Christoph Junghans [Fri, 30 Apr 2021 09:37:58 +0000 (09:37 +0000)]
fix build on F34
Mark Abraham [Fri, 30 Apr 2021 06:21:02 +0000 (08:21 +0200)]
Temporarily lift requirement to detect GPUs in CI
ejjordan [Tue, 27 Apr 2021 14:45:56 +0000 (16:45 +0200)]
Remove leftover function declaration from nbnxm atomdata
MR !1483 neglected to remove the declaration of function
nbnxn_atomdata_init. This MR rectifies that. Also removed
and unneeded include.
Joe Jordan [Tue, 27 Apr 2021 12:33:43 +0000 (12:33 +0000)]
Apply clang-tidy11 to mdrun
Joe Jordan [Tue, 27 Apr 2021 08:40:11 +0000 (08:40 +0000)]
Unify constructor of nbnxn_atomdata_t
Joe Jordan [Tue, 27 Apr 2021 06:23:06 +0000 (06:23 +0000)]
Constructor for t_mde_delta_h_coll
ejjordan [Thu, 22 Apr 2021 12:22:07 +0000 (14:22 +0200)]
Increase const correctness of t_mdatoms use in md.cpp
Previously two instances of t_mdatoms were made in do_md, once const
and one not. This replaces all instances where the non-const was not
used but could be with const usage. Also, non-const usage is now done
by calling MDAtoms->mdatoms() to indicate non-const usage more clearly.
Joe Jordan [Mon, 26 Apr 2021 15:33:40 +0000 (15:33 +0000)]
Remove inputrec from initialize_lambdas signature
ejjordan [Mon, 26 Apr 2021 12:56:15 +0000 (14:56 +0200)]
Apply clang-tidy11 to correlationfunctions