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
ejjordan [Mon, 26 Apr 2021 12:39:44 +0000 (14:39 +0200)]
Apply clang-tidy11 to simd
ejjordan [Mon, 26 Apr 2021 12:36:49 +0000 (14:36 +0200)]
Apply clang-tidy11 to random
ejjordan [Mon, 26 Apr 2021 12:53:07 +0000 (14:53 +0200)]
Apply clang-tidy11 to commandline
Paul Bauer [Fri, 23 Apr 2021 13:05:39 +0000 (15:05 +0200)]
Fix MSVC build
The enum class must have collided with some internal type in MSVC, so we
rename it.
Artem Zhmurov [Mon, 26 Apr 2021 07:24:27 +0000 (07:24 +0000)]
Clang-11 fixes for applied forces
Paul Bauer [Wed, 21 Apr 2021 12:47:50 +0000 (14:47 +0200)]
Fix incorrect handling of single residue chains
The code for deciding if a molecule is circular would incorrectly assign
single residue chains as cyclic, leading to errors in pdb2gmx and wrong
topologies.
Fixes #4029
Berk Hess [Fri, 23 Apr 2021 15:53:43 +0000 (15:53 +0000)]
Specialize jacobi() for 3 dimensions
Artem Zhmurov [Fri, 23 Apr 2021 11:36:31 +0000 (11:36 +0000)]
Make SETTLE setup code platform-agnostic
Artem Zhmurov [Fri, 23 Apr 2021 10:13:49 +0000 (10:13 +0000)]
Apply clang-11 fixes for fileio
Andrey Alekseenko [Thu, 22 Apr 2021 16:44:08 +0000 (18:44 +0200)]
Fix beningn GCC 10.2 Wstringop-truncation warnings
- `get_pdb_atomnumber`
GCC was worried that we're copying up to 4 bytes to a buffer of
length 4, not leaving the space for terminating \0. The source string
is guaranteed to have length 3 + terminator, so not a problem.
Changed to strcpy, since it should be safe here.
While at it, renamed a variable, gave a name to a magic constant,
added a static_assert to ensure safety.
- `read_vsite_database`
GCC was complaining that we're copying 4094 bytes from a string of
length 4094, possibly truncating the terminating \0. The string was
guaranteed to have a terminator in its first 4093 bytes (fgets2 will
put it no later than STRLEN-2, and we also skip the first character).
But to make GCC happy, I see no harm in adding 1 more byte to strncpy.
Another warning from GCC is an actual error, fixed in MR !1487.
Artem Zhmurov [Fri, 23 Apr 2021 09:05:24 +0000 (09:05 +0000)]
Clang-11 fixes for PME and FFT
Pascal Merz [Fri, 23 Apr 2021 07:09:54 +0000 (07:09 +0000)]
Prepare virial calculation for legacy md-vv pressure coupling
Andrey Alekseenko [Thu, 22 Apr 2021 16:38:05 +0000 (18:38 +0200)]
Fix buffer overrun when invalid value passed to numPbcDimensions
The code was supposed to print a user-friendly string when an invalid
parameter value was passed, but user-friendly strings are defined only
for valid values.
Caught by gcc-10 diagnostics.
Artem Zhmurov [Thu, 22 Apr 2021 16:21:28 +0000 (16:21 +0000)]
Make LINCS setup code platform-agnostic
Mark Abraham [Thu, 22 Apr 2021 09:32:27 +0000 (11:32 +0200)]
Improve UpdateGroups testing infra
Made and used a class fixture, used scopes to clarify lifetimes,
updated naming to follow general style, separated tests of the effect
of temperature upon radius calculations.