alexxy/gromacs.git
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

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

5 years agoDisabled internal clFFT when using MSVC with OpenCL
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

5 years agoImprove nvcc error reporting
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

5 years agoAdd tests for gmx mindist
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

5 years agoChange one gmx_mtop_t atom loop to C++
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

5 years agoMove non-analysis tools from gmxana to gmxpreprocess
Kevin Boyd [Thu, 17 Jan 2019 00:30:15 +0000 (19:30 -0500)]
Move non-analysis tools from gmxana to gmxpreprocess

Renamed genpr to genrestr to align with actual gmx <tool> call

refs #2727

Change-Id: I83a1dc6b39915372c4178768354d334c7e911ae2

5 years agoRemove ctest section called simple
Mark Abraham [Fri, 18 Jan 2019 05:14:28 +0000 (06:14 +0100)]
Remove ctest section called simple

Now that the regressiontests no longer has such a category, we should
not have a ctest section for it.

Refs #1587

Change-Id: I6ea4fea10e01079bf9779b4127faa3f23a8d81d5

5 years agoRemove .travis.yml Travis-CI config file.
M. Eric Irrgang [Thu, 17 Jan 2019 11:31:31 +0000 (14:31 +0300)]
Remove .travis.yml Travis-CI config file.

Fixes #2836

Change-Id: Id413c51596dddb230c4b41f4a66673da21322543

5 years agoChange ResidueTypes to class
Paul Bauer [Fri, 11 Jan 2019 15:21:59 +0000 (16:21 +0100)]
Change ResidueTypes to class

Changes implementation to class with private implementation pointer.

Change-Id: Ia623a23e32ca95a00460c536e2868106b32ad7f9

5 years agoAllow multiple coordinate sets in listed_forces test.
David van der Spoel [Mon, 14 Jan 2019 19:41:13 +0000 (20:41 +0100)]
Allow multiple coordinate sets in listed_forces test.

Part of #2795

Change-Id: Idb1a0ec4e8c304d2f2d865f6feac5d026b1f2393

5 years agoMoved one regressiontest to core gromacs.
David van der Spoel [Sun, 9 Dec 2018 08:56:30 +0000 (09:56 +0100)]
Moved one regressiontest to core gromacs.

Added an md-vv test one.

Part of #2795

Change-Id: Icd33655abca39c47b6735f2d3a1b185e7eff2edb

5 years agoMigrate test configuration off bs_mac
Mark Abraham [Tue, 15 Jan 2019 12:16:20 +0000 (13:16 +0100)]
Migrate test configuration off bs_mac

Change-Id: I4b1014916397c31cbeacb01ac8bad771e09277c8

5 years agoFix memory leak in solvate
Paul Bauer [Wed, 16 Jan 2019 17:00:27 +0000 (18:00 +0100)]
Fix memory leak in solvate

Change-Id: Id74c2e4fe728b3b4b47d99c3ec8a55db44c5d8b7

5 years agoRemove several unnecessary things
Mark Abraham [Tue, 15 Jan 2019 19:37:41 +0000 (20:37 +0100)]
Remove several unnecessary things

More modern cmake requirements mean we don't need to
include some files.

Some TODO comments cannot be addressed in the forecast manner

Simplified some code

Refs #2505, #2831

Change-Id: I3593a072da0ece9b993c7f531ae43fd9fff4afc2

5 years agoRename HostVector to PaddedHostVector
Berk Hess [Tue, 15 Jan 2019 09:17:57 +0000 (10:17 +0100)]
Rename HostVector to PaddedHostVector

Also renamed HostStdVector to HostVector. This change is done because
we now need the unpadded type more often and this naming is more
consistent.
This change is only renaming, except for gmx_pme_pp.x which is now
without padding as it remained of type HostVector.

Change-Id: If3ba78554dd1ad7ed93d286ced343986690096c1

5 years agoReverted standard ExternalProject for FFTW download
Mark Abraham [Tue, 15 Jan 2019 19:12:49 +0000 (20:12 +0100)]
Reverted standard ExternalProject for FFTW download

Now that our cmake is modern enough, we can use the
simpler code again.

This partly reverts commit dc75f6f.

Change-Id: Ifc1800beba88fc342ac7b8490a51610a035d60c8

5 years agoRequire cmake 3.9.6
Roland Schulz [Sun, 13 May 2018 05:02:19 +0000 (22:02 -0700)]
Require cmake 3.9.6

Allows to use modern OpenMP support. The change will permit further
simplifications and modernization, particularly for CUDA.

Also bump release matrices to conform to new requirements.

Fixes #2505

Change-Id: Ibe92639ac4a0bc9ac615826637aeb6e86af0c6d4

5 years agoRemove raw pointers in index handling
Paul Bauer [Tue, 8 Jan 2019 09:46:50 +0000 (10:46 +0100)]
Remove raw pointers in index handling

Change-Id: I60f841e12e99bd0bd61b4dec176d24f5d2803f1a

5 years agoFix tiny leak in pleasecite.cpp
Kevin Boyd [Sun, 13 Jan 2019 16:04:55 +0000 (11:04 -0500)]
Fix tiny leak in pleasecite.cpp

Change-Id: Iee2846d42a8b843c2e70de2b7f4e33e889fad90a

5 years agoImprove portability of PME on GPU code
Mark Abraham [Thu, 10 Jan 2019 08:54:26 +0000 (09:54 +0100)]
Improve portability of PME on GPU code

Refs #2500

Change-Id: Id1069b0ad60a9af18b4882ec56364b073c871ebe

5 years agoRemove ctest section called kernel
Mark Abraham [Mon, 14 Jan 2019 08:21:02 +0000 (09:21 +0100)]
Remove ctest section called kernel

Now that the regressiontests no longer has such a category, we should
not have a ctest section for it.

Refs #1587
Change-Id: I9871e32dfbde329ca4eceb718a94a7c8a418282a

5 years agoPartial conversion of gmx msd to std::vector
Kevin Boyd [Sun, 7 Oct 2018 16:05:32 +0000 (12:05 -0400)]
Partial conversion of gmx msd to std::vector

Changed raw arrays in the primary struct to vector,
with the exception of Matrix - an STL friendly version
of this is still in the gerrit pipeline

refs #2368

Change-Id: Ic41e6a1f78d53c2d5134e5831536a714b0a38a5b

5 years agoMigrate TPI testing to Verlet scheme
Mark Abraham [Wed, 9 Jan 2019 16:09:50 +0000 (17:09 +0100)]
Migrate TPI testing to Verlet scheme

For now, this also disables TPI testing, since TPI does not yet
support the Verlet scheme. If that gets fixed before this change gets
incorporated, the test should not be disabled.

Refs #2391

Change-Id: I83483bd23a03e9175571f2194dae0df96960e6c7

5 years agoRefactor AtomProperties into C++
Paul Bauer [Tue, 8 Jan 2019 08:59:29 +0000 (09:59 +0100)]
Refactor AtomProperties into C++

Replaced raw pointers with vectors.

Change-Id: Ib1bdfcda9b618a70b5ce06beae1d3e9240e59ef8

5 years agoMSD tests for the -mol option.
David van der Spoel [Sat, 22 Dec 2018 21:33:36 +0000 (22:33 +0100)]
MSD tests for the -mol option.

Had to free some memory as well to make tests pass.
Added basic code for running grompp.

Renamed spc5 files in simulationdatabase that are used
in src/programs/mdrun/tests to tip3p5 since they were
in fact using tip3p and in this manner a conflict with
the gmx_msd tests is avoided.

TODO: re-use the grompp code in moduletest.cpp
from src/programs/mdrun/tests

Part of #2815

Change-Id: I5d5d33f431f1d3089ebaef54b6388348d47ce6e2

5 years agoUse label to select doxygen version
Teemu Murtola [Sun, 23 Dec 2018 19:17:19 +0000 (20:17 +0100)]
Use label to select doxygen version

Cherry-picked from commit 67837955db4b8c8553efdb8887a589e77e934cfb.
Allows retiring support for the old mechanisms in releng earlier.

Change-Id: Ic5276e846867e1dd77250500dcb8693946258e0c

5 years agoImprove use of gmxpreprocess headers
Mark Abraham [Wed, 2 Jan 2019 14:02:14 +0000 (15:02 +0100)]
Improve use of gmxpreprocess headers

Less use of typedef struct so that we can have more use of forward
declarations of types.

Less inclusion of headers from headers

Updated stdio.h to cstdio

Localized definition of t_nbparam to the single file it needs to be
in.

Change-Id: I92d2d4e1a9a1bc8062627af45dc606903254803c

5 years agoFix small leak in constraints
Kevin Boyd [Sun, 13 Jan 2019 16:01:38 +0000 (11:01 -0500)]
Fix small leak in constraints

Change-Id: I68370a3cec7d39846c26c46f293fd8855540252d

5 years agoAdd grompp check for usage of "define" field in mdp
Kevin Boyd [Mon, 24 Dec 2018 20:53:17 +0000 (15:53 -0500)]
Add grompp check for usage of "define" field in mdp

Users can misspell the strings specified with -D in the topology. This  now
check that every -D field has a corresponding #ifdef and/or #ifndef and/or
C macro-style text replacement in the topology.

Fixed one unit test with unnecessary define field

refs #1975

Change-Id: Ie6329b234a60dde8efc34fb788e6296f241651ed

5 years agoMake AtomProperties class with Impl
Paul Bauer [Thu, 10 Jan 2019 12:33:34 +0000 (13:33 +0100)]
Make AtomProperties class with Impl

Moved the atomprop structure to a class with the underlying arrays
implementation detail. Changed names to be more descriptive. Changed
functions to be class methods where appropriate.

Change-Id: Iffee0635008567735798d0ad5ac560d0cb1e582a

5 years agoUse enum class for grompp directives
Mark Abraham [Wed, 2 Jan 2019 11:44:40 +0000 (12:44 +0100)]
Use enum class for grompp directives

Now the enum class can be forward declared in header files, so we
lower compilation coupling in a few places. Also moved the enum
definition to a less generic header file, to help get rid of
grompp-impl.h file completely.

Made use of new enumeration helpers. Added a test so that the
enumeration can't be extended without extending the matching name array.

Removed commented code for d_blocktype, which hasn't existed for ages.

Change-Id: If3fdc87f87f95f1a5ee61ae2f9f22218105a49a5

5 years agoFix typo in release notes
Mark Abraham [Fri, 11 Jan 2019 12:55:27 +0000 (13:55 +0100)]
Fix typo in release notes

Change-Id: Ie104808c9e60c892ba9b3a089f19067e023351e2

5 years agoAdd helper functionality for safer enumerations
Mark Abraham [Wed, 2 Jan 2019 14:02:39 +0000 (15:02 +0100)]
Add helper functionality for safer enumerations

Also unit tests.

Based on the public-domain code from Guilherme R. Lampert, found on
GitHub at https://github.com/glampert/enum_helpers

Change-Id: I344184fc1852efa9d22a15800e7fb1d6c876aef0

5 years agoAdded low-level tests for improper dihedrals.
David van der Spoel [Wed, 2 Jan 2019 22:11:27 +0000 (23:11 +0100)]
Added low-level tests for improper dihedrals.

Also first try at implementing tests of the free
energy calculations.

Part of #2034

Change-Id: Ie8f244059fcf914d860f57e5f66dc76997904638

5 years agoAdd more checks for division by zero
Mark Abraham [Thu, 10 Jan 2019 09:59:31 +0000 (10:59 +0100)]
Add more checks for division by zero

The rotation code was still vulnerable to numerical coincidences of
atom positions and slab centers.

Refs #1587
Refs #1431

Change-Id: If7928825d74226a5b25ed3441e6b6dbdf004115a
(cherry picked from commit 5023601307ea4a905e19d83113c2ac43aaf0d71e)

5 years agoSplit nbnxn_atomdata_init()
Berk Hess [Wed, 26 Dec 2018 15:21:54 +0000 (16:21 +0100)]
Split nbnxn_atomdata_init()

Extracted the parameter initialization from nbnxn_atomdata_init()
in preparation of extracting the parameters from the struct.
This change is only code motion.

Change-Id: I0cf2dd6e54406f095b7568c8dd92b31d0bc58f74

5 years agoChange grid pointers in nbnxn search to references
Berk Hess [Thu, 20 Dec 2018 20:51:55 +0000 (21:51 +0100)]
Change grid pointers in nbnxn search to references

While modifying the makeClusterList function arguments,
also unified the diagonal exclusion handling so the logic
is in one place instead of 10.

Change-Id: Ia35d56540968843e10f1e9d43f13a8b116b7b759