alexxy/gromacs.git
5 years agoAdd GMX_OCL_SHOW_DIAGNOSTICS env option
Roland Schulz [Sat, 28 Apr 2018 01:20:33 +0000 (18:20 -0700)]
Add GMX_OCL_SHOW_DIAGNOSTICS env option

Change-Id: Ie886544d40ff78fccd301b87d610ae8c42483b14

5 years agoImprove libstd++ handling
Roland Schulz [Mon, 28 Jan 2019 04:49:02 +0000 (20:49 -0800)]
Improve libstd++ handling

clang and icc use libstdc++ under Linux by default.

Previously such dependencies were handled differently than other
dependencies, in that we relied on the compiler autodetection, and
required the user to use the compiler flags to specify a proper
version.

Now we discover libstdc++ using cmake by finding g++, unless the user
or the toolchain they chose have already managed which gcc toolchain
to use. Then the found version is provided to the compiler with the
proper flags.

This has the advantages:
- Makes it easy for us to check the required version is used.
  Version check for libstdc++ 5 for C++14 is added.
- Makes it easy for the user to provide the correct version
  because standard cmake variables work.
- Makes build reproducible because the instance of libstdc++ used
  is constant (e.g. cached via GMX_GPLUSPLUS_PATH, or controlled
  by the toolchain, but not if the user chose non-reproducibility
  by setting CXXFLAGS environment variables). Previously, the
  auto-detection depended on the PATH environment variable at
  the time of build (not the time of the cmake run). Thus
  rebuilding with the same cache file was not guranteed to
  give the same result. It could cause cause confusing link
  errors if parts were rebuilt differently.

Also managed libc++ for clang-analyzer builds a bit better.

Fixes #2842

Change-Id: I855e16a6d4bd670cfb7acd6ea5c740f3a1b226bf

5 years agoPrecision fix for rescbt code.
David van der Spoel [Wed, 13 Feb 2019 19:13:58 +0000 (20:13 +0100)]
Precision fix for rescbt code.

The compute_restangles function was not sufficiently
precise. In fact it return completely different
results in single and double precision. By making part
of the function work in double the issue is fixed.

New tests added.

Part of #2795
Fixes #2862

Change-Id: Iad7f2bc45be996ba3e16358aab838c5427b157b8

5 years agoImprove GPU target compatibility error message
Szilárd Páll [Fri, 15 Feb 2019 15:10:38 +0000 (16:10 +0100)]
Improve GPU target compatibility error message

Change-Id: I53bff22da766c2e8bc083ca6c0e5a08d7ed3b408

5 years agoUse enum class for nbnxm locality
Berk Hess [Tue, 15 Jan 2019 08:35:04 +0000 (09:35 +0100)]
Use enum class for nbnxm locality

Converted the interaction and atom locality enum to enum class.
This exposed and fixed a few mixings of the two enums.
Move some files into the Nbnxm namespace.
Add local/non-local organization to the GPU timers.

Note that the use of the Nbnxm namespace outside the nbnxm module
is only temporary. This should all be replaced by methods.

Change-Id: I3c891b3b2b3e14d8175b63f4191f365a5cd64b18

5 years agoExtract nbnxm grid.h and pairlistwork.h
Berk Hess [Tue, 8 Jan 2019 15:09:10 +0000 (16:09 +0100)]
Extract nbnxm grid.h and pairlistwork.h

Change-Id: Ia0da75a21e56d7e473f868cc3758f415ac9e4eb9

5 years agoFix compiler warnings
Berk Hess [Sat, 16 Feb 2019 17:24:13 +0000 (18:24 +0100)]
Fix compiler warnings

Change-Id: I179eb5a53b14d2bcdc340468d2215a44fcd6a3a4

5 years agoMove nbnxm details from sim_util.cpp to module
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

5 years agoMove nbnxn files to nbnxm directory
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

5 years agoTests of restrained listed potentials.
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

5 years agoFix memory leaks in editconf
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

5 years agoExtend GpuEventSynchronizer to allow on-device sync
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

5 years agoFixed misleading wording for membed option.
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

5 years agoAdd new suggested external trajectory analysis tool
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

5 years agoFix memory issues in preprocess
Paul Bauer [Tue, 12 Feb 2019 09:12:22 +0000 (10:12 +0100)]
Fix memory issues in preprocess

Refs #2833

Change-Id: Ic4118958d98446d3a164fca10c5618ad0da9bed6

5 years agoRefactor vsite topology
Paul Bauer [Wed, 13 Feb 2019 07:49:20 +0000 (08:49 +0100)]
Refactor vsite topology

Refs #2833

Change-Id: Ibde09f829a72cc5e6467e15cf8ee7e3c183a30ad

5 years agoMinor refactoring in mdrunnner
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

5 years agoRefactor rtp renaming
Paul Bauer [Tue, 12 Feb 2019 10:42:13 +0000 (11:42 +0100)]
Refactor rtp renaming

Refs #2833

Change-Id: I2407045adadb3b84810fb6bfd83d5b8e9daba6f5

5 years agoMake EnergyOutput wrapper class
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

5 years agoIgnore Visual Studio Code metadata.
Artem Zhmurov [Wed, 13 Feb 2019 10:14:47 +0000 (11:14 +0100)]
Ignore Visual Studio Code metadata.

Change-Id: Ic03e22eb3246d7d29c4063601cc86cd6a721e81d

5 years agoReduce coupling to paddedvector.h
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

5 years agoMinor refactor of gpuid / task mapping parsing
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

5 years agoQuiet clang warning
Mark Abraham [Tue, 12 Feb 2019 16:35:29 +0000 (17:35 +0100)]
Quiet clang warning

Change-Id: I48358616bd1c3adf0a8d5c53451ec877a8067ed8

5 years agoRefactor special bonds
Paul Bauer [Tue, 12 Feb 2019 10:05:07 +0000 (11:05 +0100)]
Refactor special bonds

Refs #2833

Change-Id: I2e093d7fb5fa429f969a78eef7da639af3f7cd1e

5 years agoRefactor t_rbonded and t_rbondeds
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

5 years agoRefactor t_restp
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

5 years ago3x3 matrices
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

5 years agoRemove gmx::Regex
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

5 years agoRemove buggy debug output.
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

5 years agoTests for polarization functions.
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

5 years agoview on MultiDimArray
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

5 years agoRefactor t_hack to MoleculePatches
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

5 years agoRemove EmptyArrayRef
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

5 years agoFix bug in residue type reading
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

5 years agoUse more vector in selection index groups structs
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

5 years agoChange nightly matrix label to not use hwloc
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

5 years agoFurther increase of tolerance for angles.
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

5 years agoIncreased tolerance for angle functions.
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

5 years agoFix Intel compiler warning
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

5 years agoIncrease tolerance in Angle test.
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

5 years agoseparated .rst documentation of dihedral PCA and hydrogen-bonds
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

5 years agoRemove copy_energy from energy-writing steps
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

5 years agoReform energy output tests
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

5 years agoFix sign warning
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

5 years agoTests for listed force potentials.
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

5 years agomdspan - add bracket operator slicing
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

5 years agoRevert size to be unsigned for ArrayRef
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

5 years agoAdd ssize and remove static_casts
Roland Schulz [Tue, 5 Feb 2019 23:51:26 +0000 (15:51 -0800)]
Add ssize and remove static_casts

Fixes #2826

Change-Id: I8cb3b64764798b164b355e71fb10874b49060a0a

5 years agoadded a unit test for make_ndx to check generation of default protein index groups
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

5 years agoRefactor t_hackblock
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

5 years agoFix bug in generating default protein index groups
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

5 years agoRemove SIMD support from group scheme
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

5 years agoFix segmentation fault in minimize
Paul Bauer [Mon, 4 Feb 2019 15:17:22 +0000 (16:17 +0100)]
Fix segmentation fault in minimize

Fixes #2858

Change-Id: I9cf391be031979607d09087fa851eb644fb7e56e

5 years agoRename all source files from - to _ for consistency.
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

5 years agoFix cmake policy warning
Roland Schulz [Fri, 1 Feb 2019 01:43:05 +0000 (17:43 -0800)]
Fix cmake policy warning

Change-Id: I9cb247606b08cdace7880fd42b987f129c8f8dc6

5 years agoReplace compat::make_unique with std::make_unique
Roland Schulz [Sat, 2 Feb 2019 19:34:02 +0000 (11:34 -0800)]
Replace compat::make_unique with std::make_unique

Change-Id: I6b0db007b8a7b9e1d72374dcee15f66587375f75

5 years agomdspan - free begin and end functions
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

5 years agomultidimensional array - bugfix swap
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

5 years agoFix Intel compiler on Windows build
Roland Schulz [Sat, 2 Feb 2019 17:41:02 +0000 (09:41 -0800)]
Fix Intel compiler on Windows build

Change-Id: I8a89a08c945bb088e4b896b1bc4fedef2320cd01

5 years agoRenamed listed-forces to listed_forces
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

5 years agoRemove reliance on inconsistent cmake feature testing
Roland Schulz [Sat, 2 Feb 2019 00:21:13 +0000 (16:21 -0800)]
Remove reliance on inconsistent cmake feature testing

Change-Id: I700b581d8e138328524c04cf9de9458e399d45d9

5 years agoAdd recommendation of how to compile with MPI
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

5 years agoFix clfft build
Roland Schulz [Thu, 31 Jan 2019 17:00:24 +0000 (09:00 -0800)]
Fix clfft build

Change-Id: I9df2470aa02644aa4058ccce986b543374f10664

5 years agoChange all C to C++ outside of TNG
Roland Schulz [Wed, 30 Jan 2019 07:15:34 +0000 (23:15 -0800)]
Change all C to C++ outside of TNG

Change-Id: I43464b366cfdc1b816088cf8af117b17843f9359

5 years agoAdd cmake C++14 feature check
Roland Schulz [Fri, 25 Jan 2019 21:29:15 +0000 (13:29 -0800)]
Add cmake C++14 feature check

Change-Id: Ia4e2185aca2a8e1ff1b07cc9b49cfee33a6de705

5 years agoResolve C++14 TODOs
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

5 years agoBump CUDA requirement to 9.0
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

5 years agoFixed some typos in comments.
David van der Spoel [Sat, 26 Jan 2019 16:50:00 +0000 (17:50 +0100)]
Fixed some typos in comments.

Change-Id: Id738f01c1eb21036cb7d6db680d597f289939fc1

5 years agoFix clang warning
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

5 years agoFix misc clang warnings
Roland Schulz [Sat, 26 Jan 2019 08:42:00 +0000 (00:42 -0800)]
Fix misc clang warnings

Change-Id: Ie319e46fce8709d504171d4937de695f0a75a9b2

5 years agoRequire C++14
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

5 years agoRequire clang 3.6
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

5 years agoFix post-submit build
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

5 years agoUnify regex implementation
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

5 years agoFix LINCS bug from recent commit 211039fc
Berk Hess [Thu, 24 Jan 2019 21:27:47 +0000 (22:27 +0100)]
Fix LINCS bug from recent commit 211039fc

Change-Id: Ibdee49d48d609dd6a36f1941046efecb96e87d66

5 years agoBump required gcc compiler to 5.1
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

5 years agoUse native cmake C++11 support
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

5 years agoRemove extra semicolons causing clang warnings.
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

5 years agoChange gcov to run on bs-mic
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

5 years agoFix bug introduced in 9c2eb03b
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

5 years agoMerge release-2019 into master
Roland Schulz [Wed, 23 Jan 2019 17:23:51 +0000 (09:23 -0800)]
Merge release-2019 into master

Change-Id: I17cea87b19b5350853fdf652539a2f43e6092784

5 years agoMerge release-2018 into release-2019
Roland Schulz [Wed, 23 Jan 2019 17:22:37 +0000 (09:22 -0800)]
Merge release-2018 into release-2019

Change-Id: Ifb898eb777bc2986d600cdbf190203dda3f441ec

5 years agoRename gmx Variant to Any
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

5 years agoMultidimensional data in canonical layout.
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

5 years agoFix error with 2D/3D DLB
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

5 years agoIntroduce string comparison function
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

5 years agoTurn SystemAtomIterator into proper iterator
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

5 years agoMove QMMM charge setting to grompp
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

5 years agoAdd utility method to NbnxnPairlistGpu
Berk Hess [Fri, 4 Jan 2019 22:09:47 +0000 (23:09 +0100)]
Add utility method to NbnxnPairlistGpu

Change-Id: Ia862c8f719649d1e409f3c433a87b438d248aead

5 years agoRemove now usused GPU alloc/free functions
Berk Hess [Fri, 4 Jan 2019 21:57:35 +0000 (22:57 +0100)]
Remove now usused GPU alloc/free functions

Change-Id: Ifbb424162dd642ecca662ac6a5cb476c24649f0f

5 years agoConvert NbnxnPairlistGpu to C++
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

5 years agoPrepare for 2018.6
Paul Bauer [Mon, 21 Jan 2019 08:47:44 +0000 (09:47 +0100)]
Prepare for 2018.6

Change-Id: Ie71adbecb99819aae1ba87c6f886d44a97958165

5 years agoRemove init_md and improve init_em
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

5 years agoVersion 2018.5
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

5 years agogmxManageLmfit.cmake: enforce usage of 7.0
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

5 years agoClean up initialize_lambdas
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

5 years agoAdd CUDA CC 7.5 (Turing) support with nvcc
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

5 years agoFix trjconv -ndec
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

5 years agoConvert gmx_update_t to C++
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

5 years agoConvert nbnxn_atomdata_t to C++
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