Berk Hess [Tue, 8 Jan 2019 15:09:10 +0000 (16:09 +0100)]
Extract nbnxm grid.h and pairlistwork.h
Change-Id: Ia0da75a21e56d7e473f868cc3758f415ac9e4eb9
Berk Hess [Sat, 16 Feb 2019 17:24:13 +0000 (18:24 +0100)]
Fix compiler warnings
Change-Id: I179eb5a53b14d2bcdc340468d2215a44fcd6a3a4
Berk Hess [Thu, 10 Jan 2019 09:34:44 +0000 (10:34 +0100)]
Move nbnxm details from sim_util.cpp to module
The removes most nbnxm implementation details from sim_util.cpp.
The rest will be done when making nbnxn a class.
Change-Id: Iba411ce87b431a3b9aad656a22dd9114d5854546
Berk Hess [Fri, 4 Jan 2019 10:54:27 +0000 (11:54 +0100)]
Move nbnxn files to nbnxm directory
This change moves all files related to the nbnxn code to an new
nbnxm subdirectory. This change is only code motion and file renaming.
This is also the start of a renaming from nbnxn to nbnxm, which is
a more correct name, since the i- and j-cluster size can be different.
All nbnxn setup code in forcerec.cpp is moved to nbnxm_setup.cpp.
Removed nbnxn_ and _simd... pre- and postfixes from most files.
Renamed nbnxn_search.cpp to pairlist.cpp and nbnxn_search.h to
nbnxm_pairlistset.h. Although this is currently somewhat inconsistent,
future refactoring will make the contents consistent.
Renamed nbnxn_utility.h/cpp to nbnxm_geometry.h/cpp.
Change-Id: I39c17769c566f78b84211510c5ac17793fd131fa
David van der Spoel [Mon, 11 Feb 2019 19:25:50 +0000 (20:25 +0100)]
Tests of restrained listed potentials.
TODO:
- Tests of tabulated potentials.
- Tests of NMR related potentials.
- Tests of restrained angles.
Part of #2795
Change-Id: I27ebc7a5a8805cc92a8e00deb83e36ca3cd87a78
Paul Bauer [Thu, 14 Feb 2019 16:07:59 +0000 (17:07 +0100)]
Fix memory leaks in editconf
Fixed all leaks found by valgrind.
Change-Id: I87c02051e3be772c9706c0995fc0e94bcebd7add
Szilárd Páll [Sat, 10 Nov 2018 20:16:57 +0000 (21:16 +0100)]
Extend GpuEventSynchronizer to allow on-device sync
Added a method that allows inserting a dependency on the synchronizer's
even into a stream passed.
Change-Id: I982ad99b594aab6a6042749260479debb12042a5
Semen Yesylevskyy [Fri, 15 Feb 2019 11:15:26 +0000 (13:15 +0200)]
Fixed misleading wording for membed option.
It is currently wrritten "This approach is unsuitable" but it is only
unsuitable from the code organization point of view, not for conceptual
reasons.
Change-Id: I504bb2a78bdb85cc41aa67b492e2a0fac828d8e4
Semen Yesylevskyy [Fri, 15 Feb 2019 11:00:18 +0000 (13:00 +0200)]
Add new suggested external trajectory analysis tool
Also reorder the list alphabetically, to avoid appearance
of suggesting a preference.
Change-Id: I474d6064e8b119429e7a91e7a804bbe386339e05
Paul Bauer [Tue, 12 Feb 2019 09:12:22 +0000 (10:12 +0100)]
Fix memory issues in preprocess
Refs #2833
Change-Id: Ic4118958d98446d3a164fca10c5618ad0da9bed6
Paul Bauer [Wed, 13 Feb 2019 07:49:20 +0000 (08:49 +0100)]
Refactor vsite topology
Refs #2833
Change-Id: Ibde09f829a72cc5e6467e15cf8ee7e3c183a30ad
Szilárd Páll [Sat, 10 Nov 2018 20:43:49 +0000 (21:43 +0100)]
Minor refactoring in mdrunnner
Simplified some runner.cpp code to reduce clutter and moved a few
variable declarations away from the beginning of the function.
Change-Id: I818196e3b775077f648415ed6fbbd6d2eb91521a
Paul Bauer [Tue, 12 Feb 2019 10:42:13 +0000 (11:42 +0100)]
Refactor rtp renaming
Refs #2833
Change-Id: I2407045adadb3b84810fb6bfd83d5b8e9daba6f5
Mark Abraham [Wed, 6 Feb 2019 09:35:55 +0000 (10:35 +0100)]
Make EnergyOutput wrapper class
Eventually we want a proper class for the energy accumulation and
output behaviours. In the meantime, this hides much about t_mdebin and
t_ebin from integrators, so that we can refactor with minimal
disruption to other work.
Made t_mdebin private to the new EnergyOutput implementation file.
Used bool rather than gmx_bool in the interface of EnergyOutput.
Noted several TODOs for improvements to code structure.
Removed dependency on ebin.h and enxio.h from the new header, so
various other places had to declare their own dependencies.
Change-Id: If09b2c82dd8c139c76cb5fc453d556c26a5eee89
Artem Zhmurov [Wed, 13 Feb 2019 10:14:47 +0000 (11:14 +0100)]
Ignore Visual Studio Code metadata.
Change-Id: Ic03e22eb3246d7d29c4063601cc86cd6a721e81d
Mark Abraham [Tue, 12 Feb 2019 14:57:08 +0000 (15:57 +0100)]
Reduce coupling to paddedvector.h
As we've improved this infrastructure, we no longer use PaddedVector
in so many places.
Change-Id: I996433f4e0f82b00ab579e158f3d71dac9daae0f
Szilárd Páll [Sat, 10 Nov 2018 20:43:49 +0000 (21:43 +0100)]
Minor refactor of gpuid / task mapping parsing
Added two separate functions that implement the user-provided GPU ID
string and task mapping parsing, respectively. The separation allows the
two to reflect the slight difrerence in requirements on the input (and
allow these to change in the future). Unit tests were updated as well as
change to explicitly reflect this difference between the -gpuid and
-gputasks strings.
Change-Id: I71144a810e38d2f45e965731e245c868d1d35332
Mark Abraham [Tue, 12 Feb 2019 16:35:29 +0000 (17:35 +0100)]
Quiet clang warning
Change-Id: I48358616bd1c3adf0a8d5c53451ec877a8067ed8
Paul Bauer [Tue, 12 Feb 2019 10:05:07 +0000 (11:05 +0100)]
Refactor special bonds
Refs #2833
Change-Id: I2e093d7fb5fa429f969a78eef7da639af3f7cd1e
Paul Bauer [Mon, 4 Feb 2019 11:47:11 +0000 (12:47 +0100)]
Refactor t_rbonded and t_rbondeds
Again, replaced raw allocations with std::container and changed function
signatures and loops to use new behaviour.
Refs #2833
Change-Id: I620866b823d9839cafafe357352e3e7a49033a69
Paul Bauer [Mon, 4 Feb 2019 09:29:17 +0000 (10:29 +0100)]
Refactor t_restp
Replaced raw allocations with std::containers.
Refs #2833
Change-Id: Ie74708fdf04082f37e69e000aef8f5bd7f577dba
Christian Blau [Tue, 15 Jan 2019 12:33:37 +0000 (13:33 +0100)]
3x3 matrices
Matrices with contiguous, aliged memory as C-style "matrix" replacement
Matrix elements are accessed efficiently with bracket notation m(x,y)
or, for compability reasons, with m[x][y] (though deprecated)
Matrices manage their own memory, but provide an implicit conversion to
views and const views on their data which should be used instead of a
copy.
Arithmetic operations will follow in a later patch.
refs #2834
Change-Id: Ia96037384d2e1d774559fbcac97f420c58106625
Mark Abraham [Sun, 10 Feb 2019 23:01:17 +0000 (00:01 +0100)]
Remove gmx::Regex
We now always use std::regex. The wrapper type added the value of
standardizing regex flags, which was useful while we had to use only
the subset that was usable on all platforms. But the wrapper type made
it harder to use than needed, because e.g. they could not be stored in
a container. Removing gmx::Regex will create new opportunities.
Refs #2881
Change-Id: I97974527052b52c17bb26304b214e8b152dafb4b
David van der Spoel [Mon, 11 Feb 2019 21:16:48 +0000 (22:16 +0100)]
Remove buggy debug output.
Code leftover from testing the SW model with model specifics
hardcoded.
Part of #2774
Change-Id: Ida59dbe1b23672d377e834f199c567d4a51aa0b9
David van der Spoel [Sun, 3 Feb 2019 07:49:19 +0000 (08:49 +0100)]
Tests for polarization functions.
Part of #2795
Change-Id: I30d0c67bac3e16412ca2afaa12ea7e28e8c01f6e
Christian Blau [Tue, 5 Feb 2019 18:12:14 +0000 (19:12 +0100)]
view on MultiDimArray
Access the view and a const view on a MultiDimArray.
refs #2834
Change-Id: Ia82983ac9e3bc8edebc53a1c9f3335101ad4c704
Paul Bauer [Fri, 1 Feb 2019 13:48:52 +0000 (14:48 +0100)]
Refactor t_hack to MoleculePatches
Replaced raw allocations with std::containers. Changed loops and
dependent functions to use new format.
Used hopefully better names for types and variables.
Part of preprocessing clean up.
Refs #2833
Change-Id: I518f5b0d5a7f20cbf8bf3636e88084c1daaab5d9
Roland Schulz [Fri, 8 Feb 2019 21:45:15 +0000 (13:45 -0800)]
Remove EmptyArrayRef
Make it more aligned with std::span.
Almost everywhere it wasn't needed anyhow.
Only exception: ternary conditional operator. But there the type
was already explict in all but one case and that one case
(src/gromacs/domdec/distribute.cpp) was confusing because of
multiple implicit conversions.
Related #2859
Change-Id: I0b61abdc2e60285a7ca17e3bdc7e53cb72c5cf6a
Paul Bauer [Wed, 6 Feb 2019 12:47:19 +0000 (13:47 +0100)]
Fix bug in residue type reading
I used the wrong comparison in a recent change, fixed by properly
checking iterators against each other.
Change-Id: Ia077899e84c7af779b873d183d49236d92296dd3
Kevin Boyd [Tue, 5 Feb 2019 04:20:15 +0000 (23:20 -0500)]
Use more vector in selection index groups structs
Removed unused functions
Change-Id: If8a90ef705c3a9c9ab641ddbb64d17607d7a610f
Paul Bauer [Fri, 8 Feb 2019 15:13:46 +0000 (16:13 +0100)]
Change nightly matrix label to not use hwloc
Done because the 1310 agent has issues with the installation.
Change-Id: I3bbe1b15bf4e1c53a12a4fdac2b759726172965a
David van der Spoel [Fri, 8 Feb 2019 22:08:22 +0000 (23:08 +0100)]
Further increase of tolerance for angles.
Part of #2795
Change-Id: I0d698b6c079cfd008a5419ac2bb7de54ea6887a4
David van der Spoel [Fri, 8 Feb 2019 16:04:47 +0000 (17:04 +0100)]
Increased tolerance for angle functions.
Increased the tolerance for urey-bradley and
quartic angles some more.
Part of #2795.
Change-Id: I929957f1a8de7ad78d174cc613c544234f1450d0
Mark Abraham [Fri, 8 Feb 2019 14:54:20 +0000 (15:54 +0100)]
Fix Intel compiler warning
Post-submit warning hopefully goes away now.
Change-Id: Iddbefff5ea884bccc5e3a9a9959cd7bd216f55f4
David van der Spoel [Fri, 8 Feb 2019 09:00:35 +0000 (10:00 +0100)]
Increase tolerance in Angle test.
One of the new listed-forces tests failed due to
precision in post-submit. Increasing the tolerance
should fix it.
Part of #2795
Change-Id: I1586a92642b4fc257ad65d94337e7caf99385f53
Thomas Ullmann [Thu, 7 Feb 2019 17:14:38 +0000 (18:14 +0100)]
separated .rst documentation of dihedral PCA and hydrogen-bonds
The section of the reference manual on hydrogen-bonds was included
in dihedral-pca.rst. This hindered insertion of a section on an
analysis method related to PCA right after the dihedral PCA section.
Change-Id: I4d7c88624a12fc516cb63465098060fc871cc987
Mark Abraham [Thu, 17 Jan 2019 20:01:02 +0000 (21:01 +0100)]
Remove copy_energy from energy-writing steps
Used range-based for to avoid yet another copy of energy data between
intermediate buffers before being written to the .edr file.
Renamed some variable from index to entryIndex for clarity.
This change is covered by the tests on t_mdebin functionality.
Change-Id: Iecaf28c8af48a74abaf2805feb353c99ab613b10
Mark Abraham [Thu, 7 Feb 2019 09:51:41 +0000 (10:51 +0100)]
Reform energy output tests
Separated tests of t_mdebin from tests of t_ebin to prepare for making
t_mdebin a proper class. Improved coverage of t_mdebin (and indirectly
t_ebin). Made done_ebin deallocate ebin, which means scoped_cptr is
now more usable.
Made some operations on t_mdebin more safe, by checking for nullptr or
reordering logic. Technically there are now two more branches when
writing energy output.
Change-Id: I4b056f660d16ce7af225e229030d6729a34acefe
Roland Schulz [Thu, 7 Feb 2019 22:58:05 +0000 (14:58 -0800)]
Fix sign warning
Caused by rebase of
55c76c88c4d (as part of merge) onto
43da62f5e3.
Change-Id: If2d4f2cc19df18297b689d91b7ce865e5b382773
David van der Spoel [Sat, 2 Feb 2019 17:35:19 +0000 (18:35 +0100)]
Tests for listed force potentials.
Make-over of previous bondedtests and update of code
to test everything.
TODO:
- Tests for restraints and polarization.
Part of #2795
Change-Id: I15e4e5053fb0d1dd5968614bd06f899f0d28dc3a
Christian Blau [Mon, 4 Feb 2019 14:43:30 +0000 (15:43 +0100)]
mdspan - add bracket operator slicing
Add bracket operator that creates from a basic_mdspan using a bracket operator [].
Change-Id: I2727a7af42b169782b6d1542b6248f2fd23032ac
Roland Schulz [Wed, 6 Feb 2019 00:08:49 +0000 (16:08 -0800)]
Revert size to be unsigned for ArrayRef
Given the decision for std::span to be signed this became
inconsistent with future C++ while already being inconsistent
with std::vector. The goal of the original change, to have
signed variables for all arithmetic including loop indices,
can be achieve by using ssize everwhere arithmethic is used.
ssize is both available as free function (also for std::vector)
and member function.
Related #2826
Change-Id: Icc5d0f9561c610cbce34c575d268171e9890ca9c
Roland Schulz [Tue, 5 Feb 2019 23:51:26 +0000 (15:51 -0800)]
Add ssize and remove static_casts
Fixes #2826
Change-Id: I8cb3b64764798b164b355e71fb10874b49060a0a
Thomas Ullmann [Wed, 6 Feb 2019 21:59:02 +0000 (22:59 +0100)]
added a unit test for make_ndx to check generation of default protein index groups
Change-Id: I56b26a7eefeb818ec038696b8bb9e3a47e9ac536
Paul Bauer [Fri, 1 Feb 2019 08:01:16 +0000 (09:01 +0100)]
Refactor t_hackblock
Changed raw allocations to std::container, reworked functions that
depend on them to adapt to new format.
Part of work to change preprocessing to use enw topology datastructures.
Change-Id: Ifd2bf4b18affe7e41db6178a0a713376e7c87f12
Thomas Ullmann [Tue, 5 Feb 2019 18:51:59 +0000 (19:51 +0100)]
Fix bug in generating default protein index groups
The bug was introduced in
3c3dd54f00. When recording
atom indices for an index group in a temporary
vector, the indices of the previously processed index
group were not cleared resulting in index groups that
contained the indices of all previously processed
index groups besides the intended ones. This bug also
caused a crash of trajectory analyis tools with
selection options if the selection used such a
predefined index group.
Change-Id: I68fe19f0dfbca07618b882cf8509e33f570a8348
Mark Abraham [Mon, 28 Jan 2019 14:32:05 +0000 (15:32 +0100)]
Remove SIMD support from group scheme
It might take a bit longer to craft the patches that remove the rest
of the group scheme, but we may as well speed up our compilation times
first.
Refs #1852
Change-Id: I082e40e04678c744d9da8119333210878294a021
Paul Bauer [Mon, 4 Feb 2019 15:17:22 +0000 (16:17 +0100)]
Fix segmentation fault in minimize
Fixes #2858
Change-Id: I9cf391be031979607d09087fa851eb644fb7e56e
Roland Schulz [Sat, 2 Feb 2019 18:05:23 +0000 (10:05 -0800)]
Rename all source files from - to _ for consistency.
Refs #2839
Change-Id: I3a1af667b2b266b1fd65586445b5e7a8a1b6b618
Roland Schulz [Fri, 1 Feb 2019 01:43:05 +0000 (17:43 -0800)]
Fix cmake policy warning
Change-Id: I9cb247606b08cdace7880fd42b987f129c8f8dc6
Roland Schulz [Sat, 2 Feb 2019 19:34:02 +0000 (11:34 -0800)]
Replace compat::make_unique with std::make_unique
Change-Id: I6b0db007b8a7b9e1d72374dcee15f66587375f75
Christian Blau [Thu, 24 Jan 2019 22:01:08 +0000 (23:01 +0100)]
mdspan - free begin and end functions
Add functions to address contiguous mdspan data via begin and end function.
Allows range based looping over view elements.
Change-Id: I75dbf9be53d37fc80a023eaa1e8cda59254c0ebd
Christian Blau [Fri, 1 Feb 2019 12:48:47 +0000 (13:48 +0100)]
multidimensional array - bugfix swap
The swap operation for the multidimensional array was wrongly
implemented, because the views were only swapped without resetting them
onto the new data. The tests have been updated to better capture the
swapping behaviour.
Change-Id: Ic800a3ec0e059c8fcdfb4e5528747ca0c70afb82
Roland Schulz [Sat, 2 Feb 2019 17:41:02 +0000 (09:41 -0800)]
Fix Intel compiler on Windows build
Change-Id: I8a89a08c945bb088e4b896b1bc4fedef2320cd01
Roland Schulz [Tue, 22 Jan 2019 19:45:01 +0000 (11:45 -0800)]
Renamed listed-forces to listed_forces
There should be consistency in naming. _ is used in almost
all cases (2744 to 122 in src/gromacs not counting files
changed here). Follow up changes will change the remaining
files.
Change-Id: Iea57accfd94d7ede180b9becd7d607425a8df7f6
Roland Schulz [Sat, 2 Feb 2019 00:21:13 +0000 (16:21 -0800)]
Remove reliance on inconsistent cmake feature testing
Change-Id: I700b581d8e138328524c04cf9de9458e399d45d9
Roland Schulz [Sat, 2 Feb 2019 05:01:03 +0000 (21:01 -0800)]
Add recommendation of how to compile with MPI
Reason for recommendation: reproducible build.
Change-Id: Ib61e71c006cb0d6c852029667cf16696912a712f
Roland Schulz [Thu, 31 Jan 2019 17:00:24 +0000 (09:00 -0800)]
Fix clfft build
Change-Id: I9df2470aa02644aa4058ccce986b543374f10664
Roland Schulz [Wed, 30 Jan 2019 07:15:34 +0000 (23:15 -0800)]
Change all C to C++ outside of TNG
Change-Id: I43464b366cfdc1b816088cf8af117b17843f9359
Roland Schulz [Fri, 25 Jan 2019 21:29:15 +0000 (13:29 -0800)]
Add cmake C++14 feature check
Change-Id: Ia4e2185aca2a8e1ff1b07cc9b49cfee33a6de705
Roland Schulz [Fri, 25 Jan 2019 04:23:15 +0000 (20:23 -0800)]
Resolve C++14 TODOs
Also simplify constructor from fixed sized container.
Change-Id: I4983020939b1569949c39f7bf715fe2dbe69ab0d
Mark Abraham [Fri, 25 Jan 2019 15:00:51 +0000 (16:00 +0100)]
Bump CUDA requirement to 9.0
Also bump requirement for clang CUDA build to clang 6.0
Adjusted test matrices to run the tests in an equivalent and
reasonably balanced way.
Updated developer guide
Change-Id: I577af6267dcf31572e1af73eb46162938ec63feb
David van der Spoel [Sat, 26 Jan 2019 16:50:00 +0000 (17:50 +0100)]
Fixed some typos in comments.
Change-Id: Id738f01c1eb21036cb7d6db680d597f289939fc1
Roland Schulz [Fri, 25 Jan 2019 22:58:09 +0000 (14:58 -0800)]
Fix clang warning
No need to capture proxy by reference.
Change-Id: I2a75a3395a7c7d8164bb308e5f2cdde03f4aeb55
Roland Schulz [Sat, 26 Jan 2019 08:42:00 +0000 (00:42 -0800)]
Fix misc clang warnings
Change-Id: Ie319e46fce8709d504171d4937de695f0a75a9b2
Roland Schulz [Thu, 15 Nov 2018 02:38:03 +0000 (18:38 -0800)]
Require C++14
The current minimum compiler versions tested in Jenkins are already
sufficient. Leaves for a future change whether for CUDA C++11 or C++14
is used.
Addresses C++14 TODO in compat/pointers.h and stophandler.cpp.
Update developer guide
Refs #2831
Change-Id: Ib4329b96327d15c22328715172a9930092ecb64f
Mark Abraham [Fri, 25 Jan 2019 10:04:57 +0000 (11:04 +0100)]
Require clang 3.6
This version is the lowest that supports a smooth c++14 debug experience.
The clang in XCode 6.3 is based off this branch, and that is also the
earliest that supported c++14.
Adjusted build matrices because clang 3.6.2 is still affected by AVX
codegen issues in release and debug mode. clang 3.7 is fine. Thus
moved some minor coverage to the post-submit matrix.
Updated install guide text also for some unrelated compiler-support
things.
Also removed an overlooked gcc version check
Refs #2831
Change-Id: Id780ff06147e54c7a4516cc33c9897a4a4d2d3fa
Mark Abraham [Fri, 25 Jan 2019 15:10:50 +0000 (16:10 +0100)]
Fix post-submit build
Forgot that gcc-8 is not supported by cuda 10.0
Change-Id: Iee85fe9bdd9731c9913c827857bbaacc28c187f2
Mark Abraham [Thu, 24 Jan 2019 15:11:20 +0000 (16:11 +0100)]
Unify regex implementation
Now that we require compiler versions that all implement std::regex,
we can always have regex support and only use one implementation.
Refs #2831
Change-Id: I0118fc1aac127a5e2fcebd55a6bbef13b7c47762
Berk Hess [Thu, 24 Jan 2019 21:27:47 +0000 (22:27 +0100)]
Fix LINCS bug from recent commit
211039fc
Change-Id: Ibdee49d48d609dd6a36f1941046efecb96e87d66
Mark Abraham [Thu, 24 Jan 2019 13:55:53 +0000 (14:55 +0100)]
Bump required gcc compiler to 5.1
This prepares for the C++14 switch. Bumped CUDA version to 8.0 (which
we anyway will bump to 9.0 for C++14 support shortly). Bumped
regressiontests version requirement to 5.1 (and the cmake version to
3.9.6, which we forgot recently).
Removed references to minimum versions of gcc and clang that are now
always satisfied by our minimum requirements for those.
Refs #2831
Change-Id: Ifa062b361af08848fd92c3906fd2af04cfa1b8d6
Mark Abraham [Thu, 17 Jan 2019 05:22:36 +0000 (06:22 +0100)]
Use native cmake C++11 support
Removed custom CMake settings for compiler flags and standard library
settings.
Updated template to use the same build approach as the library
it needs
Refs #2831
Change-Id: Id9461df8695f8a0eadaec8e844e974a32cc7485f
Christian Blau [Thu, 24 Jan 2019 11:06:26 +0000 (12:06 +0100)]
Remove extra semicolons causing clang warnings.
In the AtomIterator and nbnxn_sci_t classes, extra semicolons generated
compilation warnings with some clang settings.
Change-Id: Ia184993f798d4afc14513dd7afc78f37665c4c6e
Paul Bauer [Wed, 23 Jan 2019 14:37:15 +0000 (15:37 +0100)]
Change gcov to run on bs-mic
Final change needed to decommission bs-mac.
Change-Id: Iaf0011906fae672b83af1d3631f8d698a0d9f52d
Paul Bauer [Wed, 23 Jan 2019 17:53:05 +0000 (18:53 +0100)]
Fix bug introduced in
9c2eb03b
I introduced a bug because I inverted a check when adding the string
comparison functions. Fixed here again.
Change-Id: Iba8469e910d860a9ca643380b292cf12e0a1d53a
Roland Schulz [Wed, 23 Jan 2019 17:23:51 +0000 (09:23 -0800)]
Merge release-2019 into master
Change-Id: I17cea87b19b5350853fdf652539a2f43e6092784
Roland Schulz [Wed, 23 Jan 2019 17:22:37 +0000 (09:22 -0800)]
Merge release-2018 into release-2019
Change-Id: Ifb898eb777bc2986d600cdbf190203dda3f441ec
Roland Schulz [Mon, 21 Jan 2019 19:15:38 +0000 (11:15 -0800)]
Rename gmx Variant to Any
Aligns much better with the C++17 naming given that gmx::Any has
similar functionality as std::any and is different from std::variant.
Change-Id: Id81f402c91197a62ce8ae6212b863aabd9952f6f
Christian Blau [Sat, 5 Jan 2019 07:45:57 +0000 (08:45 +0100)]
Multidimensional data in canonical layout.
Introduces a multidimensional array that holds its own data and makes it
accessible via the canonical right-aligned layout for indexing the data.
refs: #2282
Change-Id: I883cdb6a41d7277669e100320e230904856d1318
Berk Hess [Wed, 23 Jan 2019 09:29:55 +0000 (10:29 +0100)]
Fix error with 2D/3D DLB
With 2D or 3D dynamic domain decomposition with dynamic load balancing,
mdrun would exit with a fatal error when a cell size was limited.
This bug was introduced in commit
49367d45.
Fixes #2830
Change-Id: If36fcc2ddbb45c0855c78a2767b1d8562584b76f
Paul Bauer [Mon, 21 Jan 2019 09:07:33 +0000 (10:07 +0100)]
Introduce string comparison function
Added function to perform case insensitive string
comparison on std::string as input. Used some places in preprocessing as
showcases for the new function.
Change-Id: Ie128949883c05d0e7f951687bb4d51eca1d6f9d2
Roland Schulz [Fri, 18 Jan 2019 00:29:41 +0000 (16:29 -0800)]
Turn SystemAtomIterator into proper iterator
Enables range based for loop. Also renamed to AtomIterator.
Change-Id: I87e0ef50c4e0899a8954d584d5200bb6f5c8dd29
Paul Bauer [Thu, 20 Dec 2018 13:03:21 +0000 (14:03 +0100)]
Move QMMM charge setting to grompp
Also made sure that the const gmx_mtop_t does not get changed during
QMMM initialization.
Change-Id: I9bec4bbdb22ea6043019e887f8dbe44e7512ced5
Berk Hess [Fri, 4 Jan 2019 22:09:47 +0000 (23:09 +0100)]
Add utility method to NbnxnPairlistGpu
Change-Id: Ia862c8f719649d1e409f3c433a87b438d248aead
Berk Hess [Fri, 4 Jan 2019 21:57:35 +0000 (22:57 +0100)]
Remove now usused GPU alloc/free functions
Change-Id: Ifbb424162dd642ecca662ac6a5cb476c24649f0f
Berk Hess [Fri, 4 Jan 2019 17:17:01 +0000 (18:17 +0100)]
Convert NbnxnPairlistGpu to C++
Converted all arrays in NbnxnPairlistGpu to std::vector. There is now
a small initialization overhead when merging lists over threads.
We should recover this by using default initialization.
This change is only refactoring.
Change-Id: Ia811ec1b09ffb9e35ba1a8cf2ef0e64d4006898c
Paul Bauer [Mon, 21 Jan 2019 08:47:44 +0000 (09:47 +0100)]
Prepare for 2018.6
Change-Id: Ie71adbecb99819aae1ba87c6f886d44a97958165
Mark Abraham [Mon, 21 Jan 2019 05:05:09 +0000 (06:05 +0100)]
Remove init_md and improve init_em
These setup functions are adding more complexity in object creation
than they save in avoiding duplication.
Made dedicated simulated annealing setup function. Made dedicated
function for asking for coupling algorithm citations.
Change-Id: Icb3250bf481d430fb76216ef2ed2aec640eaa9a0
Paul Bauer [Mon, 21 Jan 2019 08:10:11 +0000 (09:10 +0100)]
Version 2018.5
Added release notes for commits that missed them.
Updated regressiontest hash.
Change-Id: I335988ed2b9c7a371e76dda7f7272eb30fe71a03
Christoph Junghans [Thu, 3 Jan 2019 10:39:04 +0000 (03:39 -0700)]
gmxManageLmfit.cmake: enforce usage of 7.0
LMFIT_FOUND will also be true for version lower than 7.0, so we
need to check the version explicitly in gmxManageLmfit.cmake.
Change-Id: Ia3ae12b3a74d2b567432f5ef18a77c13b19cdb85
Mark Abraham [Mon, 21 Jan 2019 05:11:15 +0000 (06:11 +0100)]
Clean up initialize_lambdas
With a little internal cleanup, the calling logic could be made much
simpler, e.g. as lam0 was always provided. Also improved const
correctness and used const inputrec as reference.
Change-Id: I255842b4d0c3cd2c8c648d3ebedc35013992118e
Szilárd Páll [Fri, 21 Dec 2018 19:17:33 +0000 (20:17 +0100)]
Add CUDA CC 7.5 (Turing) support with nvcc
Left commented out code for clang native CUDA build flag generation as
current clang (7.0) does not support sm_75.
Fixes #2814
Change-Id: Ie59c8c887e9d81d7a65136e0445291fd718c88dc
Mark Abraham [Fri, 4 Jan 2019 17:07:57 +0000 (18:07 +0100)]
Fix trjconv -ndec
This only works with XTC writing, but the documentation
and implementation was wrong. That mean that the terminal
feedback to the user was also wrong when writing a .gro file.
Fixes #2824
Refs #2037
Change-Id: I9f047d0b1042fa37e366ee8c99dabbb1f3458b0a
Kevin Boyd [Sat, 22 Dec 2018 15:21:07 +0000 (10:21 -0500)]
Convert gmx_update_t to C++
gmx_update_t replaced with Update class with pImpled
implementation class
Fixes an end of mdrun leak
Put Update on the stack in mdrun
Moved Update construction out of init_md
Removed unused deform parameters
Change-Id: I1fc98ac1ab7630461a75a8aee1a4af07afa58794
Berk Hess [Fri, 21 Dec 2018 20:49:29 +0000 (21:49 +0100)]
Convert nbnxn_atomdata_t to C++
Changed all manually managed pointer to std::vector.
Split of a Params and a SimdMasks struct.
Changed some data members to be private, more to be done.
This change is ony refactoring, no functional changes.
Note: minor, negligible performance impact of the nbnxn gridding
due to (unnecessary) initialization of std::vector during resize().
Change-Id: I9c70a1f8f272c80a7cf335fcbd867bd79c4102a2
Paul Bauer [Mon, 7 Jan 2019 14:46:06 +0000 (15:46 +0100)]
Refactor ResidueTypes
Changed datastructures to C++.
Replaced raw pointers with std::vector and std::string.
Removed unused function in residuetypes.h.
Change-Id: Idb4a5a879545a5de26b13bb8b484cd3debd6fba2
Mark Abraham [Thu, 10 Jan 2019 10:41:37 +0000 (11:41 +0100)]
Disabled internal clFFT when using MSVC with OpenCL
We require clFFT for OpenCL support, and MSVC 2017. But clFFT only
supports MSVC 2010, and a user has reported that that clFFT does not
compile. As we have not provided for clFFT support to be disabled at
configure time (nor taught mdrun that it might not be able to run PME
on an OpenCL GPU in this case), it is simplest to withdraw support for
this corner case until clFFT support for modern MSVC is available.
Fixes #2500
Change-Id: I736501234cfd51bc1cee5d8a71cb1fb343ddd100
Mark Abraham [Thu, 10 Jan 2019 09:07:59 +0000 (10:07 +0100)]
Improve nvcc error reporting
When nvcc fails, tell the user about both standard error and standard
output. The former code was broken if _cuda_test_err would be
undefined, and reported by a user (see the link at Redmine #2500).
Change-Id: Id16d2ff1bd1033cd23e82687b79409ea8d841131
Kevin Boyd [Tue, 15 Jan 2019 02:18:49 +0000 (21:18 -0500)]
Add tests for gmx mindist
Freed up some memory in gmx_mindist
Changed some static variables to normal variables, as
their values were propagating between tests and messing
with the options
Change-Id: Ideb0341659ad2d8a66769e671e1fafadd6ea8d02
Paul Bauer [Tue, 15 Jan 2019 07:10:24 +0000 (08:10 +0100)]
Change one gmx_mtop_t atom loop to C++
Changed C style struct to C++ class.
Preparation for modernizing atoms datastructure.
Removed a useless gmxassert.h
Refs #2833
Change-Id: I22cfa27bfefc8469b4100a9fef8c11da4d304657