Mark Abraham [Sun, 31 Mar 2019 16:42:04 +0000 (18:42 +0200)]
Start making IMD and swap model IMDModule
Moved MDModules to mdrun code module (to relieve cyclic dependency
that would otherwise result), because it is a very high level thing
that is intended to be aware of very many components.
Refs #2877
Change-Id: Ia7d1422bab887f768f8abed01edcbc4fb290dfeb
M. Eric Irrgang [Fri, 15 Mar 2019 11:24:53 +0000 (14:24 +0300)]
Add GROMACS library dependency to gmxapi package.
The `gmxapi` Python package has a C++ extension module configured and
built through CMake. This change links the C++ extension module to the
GROMACS library external interface.
No new code is introduced. This change just establishes that a Python
package can be built, installed, and imported with dynamic linking to
an installed GROMACS library.
Ref: #2912
Change-Id: I1c992c30132df25cf6a91902611cb201962649af
M. Eric Irrgang [Wed, 27 Feb 2019 07:46:51 +0000 (10:46 +0300)]
Use pybind11 to make a minimal C++ Python extension.
* Bundle pybind11 2.2.4 headers
* Create the `gmxapi._gmxapi` submodule as a C++ extension module.
Ref: #2912
Change-Id: Iadc8645906c2b89d98fae57b891deac80793b050
Mark Abraham [Wed, 10 Apr 2019 05:51:00 +0000 (07:51 +0200)]
Reuse rvecs_differ in InteractiveMD module
Change-Id: I5dfbfc0c0934dc734045f41db8075ad5f1a0b635
Mark Abraham [Sun, 31 Mar 2019 12:29:20 +0000 (14:29 +0200)]
Make ImdSession into a Pimpl-ed class with factory function
This prepares to make IMD into a proper module. No
functionality changes in this commit.
Replaced gmx_bool with bool
Used fast returns when IMD is inactive, for better
readability of code.
Refs #2877
Change-Id: Ibbe8c452f6f480e9a357fe1b87da3ab0ae166317
Mark Abraham [Fri, 29 Mar 2019 13:54:36 +0000 (14:54 +0100)]
Reform IMD module
Remove GMX_HAVE_WINSOCK which was synonymous with Windows
support. Because that is somewhat risky, introduced CMake variable to
turn off IMD support. Reduced a lot of config.h dependency in
headers. Moved portability constructs to imdsocket source file.
Expanded testing coverage to be of both a minimizer and a dynamical
integrator. Switched the test case to be one that has some
interactions (because steep segfaults otherwise), and updated the mdp
settings to continue to work given the likely future directions of
mdrun.
Removed an unused method
Moved the ownership of the IMD session data structure out of inputrec
and its point of construction out of minimizers and do_md. This is now
done in runner.cpp, alongside other such construction. This prepares
for more use of MDModules. Set up the default period between IMD steps
in a different but equivalent way (since it works differently for
minimization).
Separated the inputrec boolean for whether IMD connections are
supported by the input from the run-time boolean of whether the mdrun
command-line arguments require IMD connections to be possible. Now the
inputrec is logically const with IMD.
Used logging framework for reporting, and noted future improvements as
TOD items. Improved reporting in some cases where IMD sessions are
impossible.
Note TODOs for future improvements for renaming and restructuring.
Removed some useless inclusion of imd.h
Fixes #2913
Change-Id: I2b13dcdd9a0e69caba697f9dd2c928d94e1fb80c
M. Eric Irrgang [Fri, 29 Mar 2019 12:59:54 +0000 (15:59 +0300)]
Introduce gmxapi operations and basic data model.
Ref: #2894
Change-Id: I4e899e63287370fd2fdde89ddc1b2ea39c3fe67d
M. Eric Irrgang [Tue, 19 Mar 2019 14:58:03 +0000 (17:58 +0300)]
gmxapi 2019 Q1/Q2 project roadmap.
Lay out project goals, functional requirements, and testing plans.
Provides roadmap.rst and pytest acceptance tests
expressing the required functionality of the Python package.
Ref: #2893
Change-Id: I71ec79eb5d8a6e4d61fb5d7d6e20176c9c07a6af
M. Eric Irrgang [Mon, 8 Apr 2019 15:23:40 +0000 (18:23 +0300)]
Remove stale "TODO".
Refs #2839
Change-Id: I927ee73fc9c6ffa423d37fd4606654392cb8a1b8
Paul Bauer [Thu, 4 Apr 2019 14:31:03 +0000 (16:31 +0200)]
Remove t_topology from two preprocess tools
Refs #2833
Change-Id: Ic842305579986910db8cc30313f74278239640bc
Christian Blau [Thu, 21 Mar 2019 15:48:04 +0000 (16:48 +0100)]
densityfitting - MDModule declaration
Declaring the infrastructure for running molecular dynamics simulations with
addional forces that are derived from densities.
Adds a IForceProvider for density fitting simulation that is set up with
its DensityFittingParameters that are in turn built from DensityFittingOptions.
refs #2282 #2901
Change-Id: I0732a78747582a6e23bba1e141d73c4cda421011
Szilárd Páll [Thu, 4 Apr 2019 16:59:29 +0000 (18:59 +0200)]
Revert "Temporarily disable ARM HPC compiler in post-submit"
This reverts commit
d8d9b66ca33e423ca09079e5f9294ca872d61ca5.
Reason for revert: build slave software issues resolved.
Change-Id: I9f7c904152e4be951199c9fcdba00bd9d928f33b
Carsten Kutzner [Thu, 4 Apr 2019 14:36:50 +0000 (16:36 +0200)]
Early exit from mdrun if group scheme is detected in .tpr
Fixes #2918
Change-Id: I37566623c3ed4613f8b4e69f9f74882656772d1d
Artem Zhmurov [Mon, 1 Apr 2019 09:48:05 +0000 (11:48 +0200)]
Remove isPressureCouplingStep(...)
The isPressureCouplingStep(..) subroutine is called from places,
where the type of barostat is already known and then checks for it
again. Removing this subroutine eliminates the double-checks and
improves readability of the code.
Change-Id: I5bbb0706432e16414097e87e4e0d302f669ab83f
Paul Bauer [Thu, 4 Apr 2019 09:59:27 +0000 (11:59 +0200)]
Update developer guide for changes to Gerrit
Change-Id: I2fad9ad5dfd0fb4536520529706d6dbaaca5d5d9
Artem Zhmurov [Mon, 1 Apr 2019 09:24:23 +0000 (11:24 +0200)]
Remove isTemperatureCouplingStep(...)
This subroutine hides the checks on whether the temperature
coupling should be updated, making it harder to read the
sequence of events in the main loop. Also, the subroutine is
used only twice and both times some of the conditionals are
double checked (e.g. is Velocity-Verlet integrator is in use).
Change-Id: Idb4196c2f81095c09426b2798e79d2beea4f306e
Mark Abraham [Wed, 3 Apr 2019 13:58:39 +0000 (15:58 +0200)]
Initial deactivation of group scheme.
mdrun now gives a fatal error with a group-scheme .tpr, so anybody
using one won't get a segfault.
do_force now only has one implementation, which suits those working
on improved force calculations.
More removal of inactive code will follow later. Noted TODO to fix the
release notes properly in such a commit.
Refs #1852
Change-Id: I3b13135565951f4d7f872ddf3b8518860eccfdb0
Paul Bauer [Wed, 3 Apr 2019 08:47:02 +0000 (10:47 +0200)]
Fix post submit
Change-Id: Ia45a8e1154c0d5ddd94155ddb7907c0290d13866
Paul Bauer [Tue, 12 Mar 2019 15:28:44 +0000 (16:28 +0100)]
Refactor gpp_bond_atomtype
Refs #2833
Change-Id: Id17a93c9cc4a66b0bf89c465d2d44601fe2c523d
Paul Bauer [Fri, 15 Mar 2019 11:26:38 +0000 (12:26 +0100)]
Add std::string case insensitive compare
Add another function for std::string case insensitive
comparison over a user specified length instead of
comparing the full string.
Added tests for functionality.
Showcase in preprocessing.
Change-Id: I1f117261ce56ad7c6bc5e5113da1fef705cf8aa6
Paul Bauer [Thu, 14 Mar 2019 11:21:55 +0000 (12:21 +0100)]
Refactor gmx_group_t to SimulationAtomGroups
Change allocation on type to std::container, but did not touch to
underlying t_grps datastructure yet.
Change-Id: I3858e650a31764b3ab83090eaa0653fc579a8af1
Paul Bauer [Tue, 19 Mar 2019 09:46:06 +0000 (10:46 +0100)]
Fix simulated annealing and add test
Refs #2871
Change-Id: Ibde5226a664d3d4d5558477fdf9b81e1219a5295
Szilárd Páll [Mon, 1 Apr 2019 19:52:26 +0000 (21:52 +0200)]
Temporarily disable ARM HPC compiler in post-submit
Change-Id: Ib59a495f70d073f13c08a55344b6323dd163d8b1
Mark Abraham [Thu, 14 Mar 2019 16:40:23 +0000 (17:40 +0100)]
Move MDModules initialization earlier
This will permit extending the functionality to also provide
command-line options and help descriptions for gmx tools.
Moved more functionality into Mdrunner::Builder
It also permits the Mdrunner constructor that is normally used to
prompt the construction of a properly formed MDModules. Removed a
comment about default initialization that is a normal fact of life
with constructors. Updating it would be wordy and no real value.
Refs #2877
Change-Id: I70126f297422a9076484083d461b0b003ae2e23b
Mark Abraham [Sun, 31 Mar 2019 16:52:05 +0000 (18:52 +0200)]
Move enerdata ownership to mdrunner
All the things managed by runner need a gmx_enerdata_t, so consolidate
the management of its lifetime. This prepares for modularization of
code that requires one of these.
Change-Id: Ibbf03c17beecb53039bb50a5ef6462925d777b52
David van der Spoel [Sun, 31 Mar 2019 18:17:26 +0000 (20:17 +0200)]
Removed confusing gpp_atomtype functions.
For some reason there were functions to extract the massB
and chargeB from atomtypes, however atomtypes do only have
a single charge or mass.
Change-Id: Iddcbeb57e4fa7fd905f5969447f14faf6d626ff0
M. Eric Irrgang [Wed, 27 Feb 2019 08:08:05 +0000 (11:08 +0300)]
Plumbing for gmxapi 2019 Q1/Q2 project roadmap.
Provide infrastructure so that dependent change can focus on content
of project plan.
Ref: #2893
Change-Id: Idd72e9ede890f7fc97a680c5a5bffe97499eaaf5
Berk Hess [Wed, 27 Mar 2019 13:16:47 +0000 (14:16 +0100)]
Simplify nbnxm final force reduction
Change-Id: I66485bfe1c056db82492b531b266de1071aeb12c
Berk Hess [Tue, 26 Mar 2019 13:37:53 +0000 (14:37 +0100)]
Move early return for nbnxm force reduction
To reduce dependencies and code complexity, the early return for
avoiding overhead of a force reduction reducing no forces at all
has been moved from nonbonded_verlet_t to atomdata.cpp. The check
has been changed from no non-local work to no non-local atoms, which
should not affect performance much.
Change-Id: I3315699e15918482b321b702f6ba24209aa3a6b2
Berk Hess [Mon, 18 Mar 2019 15:25:26 +0000 (16:25 +0100)]
Move PairlistSet declaration
Moved the declaration of PairlistSet to pairlistset.h.
Also completed the documentation.
Change-Id: I0cac4bbf1919b4a2f39d8ead63aa75f112ab60c7
Roland Schulz [Tue, 26 Mar 2019 00:24:39 +0000 (17:24 -0700)]
Fix UB vector usage
It is UB to
- increment past end.
- decrement end iterator for empty vector.
- use operator[] on end iterator.
Also fixes a buffer overflow for c_simdBestPairAlignment=2.
All found with _LIBCPP_DEBUG=1.
Change-Id: Ib21ca875244673b27748a01373e7fc10252a7c44
Berk Hess [Mon, 18 Mar 2019 10:13:56 +0000 (11:13 +0100)]
Move nbnxm domainSetup to GridSet
The domain setup belongs with GridSet and moving it there reduces
the dependency of the pairlist construction function on PairSearch.
Removed PairSearch as an argument to those constuction functions.
Also moved SearchCycleCounting out of PairSearch.
Change-Id: I764868f5e7a002cf435ce74d428c95cf1e9dac23
Berk Hess [Mon, 18 Mar 2019 12:30:47 +0000 (13:30 +0100)]
Extract nbnxm PairlistSets
The class PairlistSets was part of nonbonded_verlet_t. This change
extracts it, moves it to pairlistsets.h and hides it from the rest
of the code. This requires a few more, trivial, methods in
nonbonded_verlet_t to operate on PairlistSets.
Also renamed the pairlist params struct to PairlistParams and
moved it to separate include and source files.
Change-Id: I8e728663e145ce1f8504ae7302d7208344cc7cf3
Mark Abraham [Wed, 13 Mar 2019 09:26:21 +0000 (10:26 +0100)]
Move DomdecOptions into its own header
This reduces compilation coupling and prepares for implementing proper
Options support into mdrun. Moved content into gmx namespace and
replaced gmx_bool. Renamed nr enum members to Count for future
compatibility with the new enumeration helpers.
Refs #2877
Change-Id: Ib5f5889111f858579f594f4c76f3aa8c222403b2
Artem Zhmurov [Tue, 19 Mar 2019 12:59:57 +0000 (13:59 +0100)]
GPU naming conventions
In GPU programing, it is convenient to indicate what memory space
the pointer points to. This is often done by adding prefixes to the
pointers, which is now indicated in the developers manual.
Refs #2053.
Change-Id: Id39ad0b9c5876e4362fa4e261d0c011125dc380a
Berk Hess [Wed, 27 Mar 2019 10:17:26 +0000 (11:17 +0100)]
Fix nbnxm OpenCL with cluster size 4
Fixed the nbnxm OpenCL setup with cluster size 4 (for Intel IGPUs)
by using the appropriate constexpr to set the clustersize.
Also renamed PairlistType::Hierarchical8x8 to HierarchicalNxN.
Fixes #2906
Change-Id: Ifc373d04481eb7f56211d192014dfef218e56c03
Prashanth Kanduri [Tue, 19 Mar 2019 15:37:46 +0000 (16:37 +0100)]
Moving put_atoms_in_box_omp() to pbc.h
This is another patch in the cleaning efforts of sim_util.
It finally removes sim_util.h
The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.
Related: #2574
Change-Id: Ib0c2dbc21bd31ee272888d3fa25a3c0ce65b5478
Prashanth Kanduri [Thu, 21 Mar 2019 17:42:17 +0000 (18:42 +0100)]
Getting rid of use_GPU(nbv) function
Using the useGPU() function build within nonbonded_verlet_t
struct
This is another patch in the cleaning efforts of sim_util.
The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.
Related: #2574
Change-Id: I0e0d1dc74aa18032dfb4ab84f3badbb83ef0365b
Prashanth Kanduri [Thu, 21 Mar 2019 18:23:00 +0000 (19:23 +0100)]
Move stat function declarations to a new stat.h
This is another patch in the cleaning efforts of sim_util.
The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.
Change-Id: I8decd93e02cfdda79f131171d2b91be095cc77e0
Related: #2574
Szilárd Páll [Thu, 14 Mar 2019 11:56:58 +0000 (12:56 +0100)]
Skip PBC calculation when there are no listed forces
Change-Id: I3857f2e55bdd052d508acc026b6f77ee5dbc2546
Szilárd Páll [Mon, 25 Mar 2019 20:17:24 +0000 (21:17 +0100)]
do_force_cutsVERLET cleanup
- removed unused PME cycles returned from do_force_lowlevel
- removed unused variables
- localized variables only used in nbnxn_put_on_grid
Change-Id: I1b36df6c0a0c36962e764fcd252f1c9c3f71821b
Berk Hess [Fri, 15 Mar 2019 21:10:08 +0000 (22:10 +0100)]
Convert nbnxn_pairlist_set_t to class PairlistSet
This change is only refactoring.
Two implementation details have changed:
The CPU and GPU pairlist objects are now straight lists instead
of array of pointer to lists. This means that the pairlist objects are
no longer allocated on their respecitive thtreads. But since the lists
have buffers to avoid cache polution and the actual i- and j-lists are
llocated thread local, this should not affect performance
ignificantly.
The free-energy lists are now only allocated with perturbed atoms.
Change-Id: Ifc76608215518edfc61c0ca8eb71ea2a928cf57c
Artem Zhmurov [Mon, 25 Mar 2019 14:00:16 +0000 (15:00 +0100)]
Remove unused headers
These headers contain integrator_t definition, which is no longe in use.
Change-Id: Ic4acd4e238aa0e06301162001588aaf7f0ad6890
Mark Abraham [Wed, 20 Mar 2019 16:03:37 +0000 (17:03 +0100)]
Support ArrayRef of EnumerationArray
Also updated the example and named FooStrings variables correctly.
Introduced keysOf free function so that it is easy to write code that
clang-tidy does not warn about.
Change-Id: I51ee8adb1b13d771e7b1e8cd75f263bc6e921ffb
M. Eric Irrgang [Sat, 23 Mar 2019 12:00:07 +0000 (15:00 +0300)]
Remove uses of std::iterator mix-in.
std::iterator<> is used as a mix-in (via CRLT) to inherit compatibility
with std::iterator_traits<>. However, inheriting from std::iterator<>
is unnecessary, may hurt clarity, and is deprecated (as of C++17).
Instead, explicitly express the member types that are necessary for
compatibility with std::iterator_traits<>
Change-Id: I32cdd97681a73cdf7beec257635f9132ec67de03
Mark Abraham [Sun, 24 Feb 2019 07:15:57 +0000 (08:15 +0100)]
Convert gmx dump to module
Used Options and more std::string.
Minor fixes and improvements to text. Removed the report of the known
bug, replacing it with a TODO.
Added eftRunInput to the filename option types understood by
FileNameOption machinery, so that tools that only operate on .tpr
files work properly. This is then used for gmx dump -s.
Refs #2877
Change-Id: I5bb1c73c39a4cdd820735f894d4cb55d171afd48
Christian Blau [Thu, 14 Mar 2019 12:57:04 +0000 (13:57 +0100)]
densityfitting - serializer for mrc header data.
Serializes mrc header data.
Change-Id: I6160eba199cb2e355f7cf4f65d5729346735cc92
Paul Bauer [Tue, 19 Mar 2019 14:36:37 +0000 (15:36 +0100)]
Add simple tests for symbol table
Refs #2833
Change-Id: I0e69a0b6c5410c56cb2b62a9320814f93cd2f23c
Szilárd Páll [Tue, 12 Feb 2019 17:40:19 +0000 (18:40 +0100)]
Reorder PBC setup in do_force_lowlevel
Eliminated redundant set_pbc() call so now there is always a single call
to the DD-optimized set_pbc_dd() called only when needed with clarified
conditionals for the different use cases (listed forces and Group
scheme).
Also improve the t_forcerec.bMolPBC documentation.
Change-Id: I8a0782bf81e05f1c7221ee5f0da42bf5e4d24ac9
Berk Hess [Fri, 15 Mar 2019 09:36:13 +0000 (10:36 +0100)]
Move around PairSearch code
Renamed internal.h to pairsearch.h.
Moved PairSearch member functions to new file pairsearch.cpp.
TODO: Remove dependencies of pairlist.cpp on Pairsearch.
TODO: Make all PairSearch functions in pairlist.cpp members.
Change-Id: I21e3f93fa69a5ee0ffd00faf01a7d0267d7e79b9
Mark Abraham [Sun, 17 Mar 2019 15:39:41 +0000 (16:39 +0100)]
Clean up mdrun help description
Details about how unix signals are implemented can go in the user
guide.
The nice level does not actually change with whether mpirun is used,
so we should not say so.
Mentions of "experimental" features that have been in the code for a
decade don't belong here.
Fixed a repeated word.
Preparation for #2877
Change-Id: Ib68ab15717e52a9155be869581c18ba21513f067
Mark Abraham [Wed, 20 Mar 2019 09:16:54 +0000 (10:16 +0100)]
Improve mimic module
File naming did not conform to style. Improved some include structure. This
module no longer needs to depend on gmxpreprocess.
Preparation for #2877
Change-Id: I0a3a4e72828f3e47f28d0d7420e5c65e580d5428
Paul Bauer [Tue, 12 Mar 2019 16:21:45 +0000 (17:21 +0100)]
Add simple test to preprocess bond atom type
Refs #2833
Change-Id: I401678c4d5f266794c2018db3f4168432d33450d
Paul Bauer [Fri, 15 Mar 2019 15:37:37 +0000 (16:37 +0100)]
Add test for string comparison
Change-Id: If42579ceb2d98d270389d4e401f504955df73761
Mark Abraham [Tue, 19 Mar 2019 02:55:02 +0000 (03:55 +0100)]
Add support for serializing 32-bit integers
Some file formats explicitly require this size, which we should
support explicitly. Note that C++ requires that int be at least 16
bits. In practice on current systems it is always 32 bits, but being
explicit might help future portability if any architecture would use
64-bit int.
Also added some support for unsigned 32- and 64-bit integers where
I saw it was missing and might be useful.
Added some test coverage where it already exists.
Refs #1877
Change-Id: I05efd7d4ba07b695fc4ed7c9d9cac8738873a3a5
Christian Blau [Fri, 8 Mar 2019 15:06:01 +0000 (16:06 +0100)]
densityfitting - density file format (mrc) header.
Implements mrc/cc4/map format file headers as decribed in
"EMDB Map Distribution Format Description Version 1.01 (c)
emdatabank.org 2014"
Reading and writing is part of a follow-up patch.
refs #2282 and #1877
Change-Id: Ifd43cedb137c0beeb320e1299df8bae9916c8ea8
Paul Bauer [Fri, 15 Mar 2019 15:27:37 +0000 (16:27 +0100)]
Fix case insensitive string comparison
Changed instances of string comparison back to use same order as in
original code, and revert one change for comparison over length to
original code.
Change-Id: I07c3ccce93c37ff897365d80c0ff384e29aa6322
Mark Abraham [Tue, 19 Mar 2019 12:06:23 +0000 (13:06 +0100)]
Fix clang warning
Change-Id: I905b387692bfa606da0db74bbb8aee42ddc24ab7
Berk Hess [Fri, 15 Mar 2019 09:26:02 +0000 (10:26 +0100)]
Reduce dependencies of nbnxn_atomdata_t
Now the nbnxn atomdata module no longer depends on PairSearch,
but on GridSet instead.
Also moved the cycle counting to nbnxm.cpp.
Change-Id: Ibb1af368e38e84459c77f41fa867c4fc18dc5756
Mark Abraham [Mon, 18 Mar 2019 13:40:52 +0000 (14:40 +0100)]
Update ElectricField module
As we use this as an example module, we should have it up to date with
style and language features, etc.
Change-Id: I2e350a2c7f9f78840be433ecd81f8b6b24f8209d
Prashanth Kanduri [Thu, 28 Feb 2019 15:58:00 +0000 (16:58 +0100)]
Move initialize_lambdas(...) to state
This is another patch in the cleaning efforts of sim_util.
The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.
Change-Id: I270e75126b6ec3aa3cf194e92e7589d713ac6bcd
Related: #2574
Paul Bauer [Mon, 18 Mar 2019 13:00:40 +0000 (14:00 +0100)]
Simple tests for C-style string comparison
Those tests are meant to be used to guide reimplementation of the
C-style functions in C++ and should be extended for additional functions
that are replaced.
Change-Id: Icb12192c676bd5d24110000668790e4193a9a268
Prashanth Kanduri [Wed, 27 Feb 2019 11:12:44 +0000 (12:12 +0100)]
Moving do_constraints_first(...) to constr.h
This is another patch in the cleaning efforts of sim_util.
The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.
Change-Id: Ic311bd9afe8baddc0589f368ebf464f1699589dc
Related: #2574
Berk Hess [Wed, 13 Mar 2019 21:27:25 +0000 (22:27 +0100)]
Change nbnxn_search to class PairSearch
Changed some nbnxm functions to methods located in new file nbnxm.cpp
to keep the internals of the nbnxm module private and hidden.
TODO: Rename internal.h to pairsearch.h
TODO: Move Pairsearch definitions to new file pairsearch.cpp
TODO: Rename nonbonded_verlet_t to Nbxnm
Change-Id: I8fa5d3b88ed453598cbed3ab4b8548258f851e20
Berk Hess [Wed, 13 Mar 2019 12:55:33 +0000 (13:55 +0100)]
Extract DomainSetup from nbnxn_search
Change-Id: I1a46c543e063b250e27b3759ddc050a46fc6692d
Berk Hess [Wed, 13 Mar 2019 09:47:49 +0000 (10:47 +0100)]
Change nbnxm macros to constexpr
Also added an inline function to clarify the code and avoid code
duplication.
Change-Id: If68ad4f745a9b6f1c68379af24305a47084b608b
Berk Hess [Tue, 12 Mar 2019 10:58:42 +0000 (11:58 +0100)]
Move functions to gridset.cpp
Change-Id: Ib8b6b0159d25b50ddfd0d4ced37b8486ed2c6081
Berk Hess [Mon, 11 Mar 2019 14:07:47 +0000 (15:07 +0100)]
Add nbnxm GridSet class
Collected all data that is shared between nbnxm grids to a new class
called GridSet.
TODO: Turn nbnxn_search into a class and move some functions
Change-Id: Iae0dc988d88310d88e0541656f896e552cd19260
Berk Hess [Thu, 14 Mar 2019 07:23:38 +0000 (08:23 +0100)]
Fix compilation issue
Automatic rebase allowed merging code with outdated types.
Added namespace and fixed Doxygen while we were there
Change-Id: I7543f53d07fba5010ef15e4e81fbb7e2d632d167
Szilárd Páll [Fri, 8 Mar 2019 14:18:52 +0000 (15:18 +0100)]
Reorganize search-time code in do_force_cutsVERLET
Only code reordering done here in order to facilitate splitting out the
DD/search work from the force computation schedule.
Change-Id: I04b7fa97eed3a48b38389b9da4ac9be4b36c718a
Szilárd Páll [Tue, 12 Mar 2019 16:57:54 +0000 (17:57 +0100)]
Add haveGpuBondedWork flag to PpForceWorkload
Also move init of PpForceWorkload to make sure it precedes the GPU bonded
data initialization that the value of flag depends on.
Change-Id: Icdaab084d718087a44b2a2ec7702edd0ba86285b
Szilárd Páll [Tue, 19 Feb 2019 09:44:14 +0000 (10:44 +0100)]
Start modularizing force workload setup
Extend ppForceWorkload flags with listed forces-related booleans
and add a setup function that re-initializes ppForceWorkload every
search step.
Change-Id: I71c783cf22e58e880d7d8655bc1e9b44e6428407
Paul Bauer [Tue, 12 Mar 2019 16:07:02 +0000 (17:07 +0100)]
Add tests for preprocess atom types
Adds some tests for the handling of preprocessing atom types and fixes a
bug that I introduced while refactoring the code.
Refs #2833
Change-Id: I3dabd11a1bc8a78379f4187bc8efa266a7c46d74
Paul Bauer [Tue, 12 Mar 2019 10:29:17 +0000 (11:29 +0100)]
Remove custom datastructure in vsite preprocessing
Refs #2833
Change-Id: I6801264e743b3bf8cf205b8b297315c4b739de06
Paul Bauer [Wed, 13 Mar 2019 12:51:17 +0000 (13:51 +0100)]
Fix errors caused by automatic rebase
A recent merge caused an automatic rebase that did not take a change
in a parent commit into account, leading to all builds to fail.
This fixes the error.
Change-Id: Iee9064e723fdc1d546fe140256467a6b0cb0b2fa
Artem Zhmurov [Fri, 22 Feb 2019 11:10:13 +0000 (12:10 +0100)]
Basic routines to handle periodic boundary.
This is a generalization of the SIMD/GPU-like PBC
routines so that they can be used in a CPU code as well.
(Related to Refs #2863)
====================================
Patch set 6:
-- TODOs and reference to Redmine #2863 added.
-- Comments improved.
====================================
Patch sets 7 and 8: Rebasing.
====================================
Patch set 9:
-- Minor changes to comments.
-- Standsrd float3 vector subtraction used.
====================================
Patch set 10 and 11: Rebase, uncrustify.
====================================
Change-Id: I9efded685fcc41d05bbc5d7deed3ce70f43f5e98
Paul Bauer [Fri, 22 Feb 2019 17:07:39 +0000 (18:07 +0100)]
Refactor t_param to InteractionType
Refs #2833
Change-Id: Iab043e96399c2a9615e66c5889010331c95782df
Berk Hess [Mon, 11 Mar 2019 09:53:38 +0000 (10:53 +0100)]
Move nbnxm atom macros to atomdata.h
Removed unused macros
The moved macros have been converted to constexpr.
Change-Id: I0d1352a218e1a317223e6579108fb42b02ddf393
Mark Abraham [Tue, 12 Mar 2019 02:56:24 +0000 (03:56 +0100)]
Fix memory leak
Refs #2833
Change-Id: I402aa9996ed398654594527d408a8318dab701f0
Paul Bauer [Fri, 25 Jan 2019 16:07:02 +0000 (17:07 +0100)]
Refactor preprocessing atom types.
Refs #2833
Change-Id: Ifd7f583fd5908c1ce225e379b58757f9a09b2100
Berk Hess [Thu, 7 Mar 2019 09:52:29 +0000 (10:52 +0100)]
Clean up calc_verlet_buffer_size()
Use return value instead of passing pointer. Added a separate vsite
function for counting the non-linear vsites.
Changed pointers to references.
Improve variable naming
This change is only refactoring.
Change-Id: I91b57dee08452d5e44b5b38860ffbd5e01430a3a
Paul Bauer [Wed, 6 Mar 2019 14:35:29 +0000 (15:35 +0100)]
Minor refactoring in vsite_parm
Refs #2833
Change-Id: I0658c9c380d4a0723e5a283cd6372f4ad8a6c6b8
Mark Abraham [Wed, 6 Mar 2019 10:16:29 +0000 (11:16 +0100)]
Eliminate mdlib/mdrun.h
This file was filled with stuff that works better elsewhere.
Moved the options structs into gmx namespace
Refs #2877
Change-Id: Ib796ef8e9896804c56936f23f67dcd3fc12900fd
Mark Abraham [Sun, 10 Feb 2019 13:28:49 +0000 (14:28 +0100)]
Remove ineffective code for writing more TER fields to pdb files
A weakly typed string containing a residue type name was passed to a
function expecting a residue name. This has led to fewer TER records
being output than expected by the author of
ff9a9692e1f4. The intent
then was presumably to refer to the residue type of the previous
chain, but in fact the residue type of that residue type was used,
which is always "Other". Thus no extra TER fields were ever written.
The intended feature for PDB writing is not clearly vital, and has
never worked, so is now removed. These days, it would only be active
if pdb2gmx wrote .pdb output, since in no other case do we build chain
numbers.
Change-Id: I4e5ed09171772e17fd0fc11aff239bf7aaa966eb
Mark Abraham [Sun, 10 Feb 2019 15:13:06 +0000 (16:13 +0100)]
New tests for pdb2gmx and editconf
The editconf tests run only in single precision, as they do not
reproduce well in double precision. We don't have a good way to make
them reproduce without writing a much more complex checker. It's
better that we add test coverage for the normal precision than to have
no coverage until we have code that works for both kinds of precision
configuration.
Change-Id: If85768ec63469b148547506f77a84c1fa940ebf8
Mark Abraham [Sun, 10 Feb 2019 13:11:30 +0000 (14:11 +0100)]
Clean up use of loop indices
There was no need to index restype by i, so we may as well
move closer to being able to use range-based for loops.
Change-Id: I6551325b74ffdfc15b055339cf0d2ca818c01ff3
Berk Hess [Tue, 5 Mar 2019 21:13:18 +0000 (22:13 +0100)]
Clean up nbnxm bounding box functions
Replaced macro function by inline function.
Reduced and simplified function arguments.
Renamed functions with more expressive names.
Removed _simd4 from the SIMD4 version of the normal BB distance
calculation function, since it can be used everywhere and this
reduced preprocessing logic.
Replaced nbnxn_bb_t by BoundingBox.
Change-Id: I63a7a0add371b268b533bde60e15a644ec71583e
Berk Hess [Tue, 5 Mar 2019 15:11:07 +0000 (16:11 +0100)]
Clean up nbnxm bounding boxes
Changed a flat array to array of 1D BB structs.
Changed a macro to a constexpr.
Change-Id: I75bb6792a3e99dc152450398a90f5414ae79fd8c
Berk Hess [Fri, 1 Mar 2019 12:01:30 +0000 (13:01 +0100)]
Convert nbnxm bounding box to a struct
Change-Id: Ia432e1f242b90ec0dbe01c528125bb7fa955bd5f
Mark Abraham [Wed, 6 Mar 2019 13:00:36 +0000 (14:00 +0100)]
Revert "Eliminate mdlib/mdrun.h"
This reverts commit
f4c94df918063cf855ba4575e1aebefb232ace50.
Somehow gerrit permissions were able to be bypassed, and this change
fixes the change that did not go through review as expected. We'll
investigate gerrit settings also.
Mark Abraham [Wed, 6 Mar 2019 10:16:29 +0000 (11:16 +0100)]
Eliminate mdlib/mdrun.h
This file was filled with stuff that works better elsewhere.
Moved the options structs into gmx namespace
Refs #2877
Change-Id: Ib796ef8e9896804c56936f23f67dcd3fc12900fd
Mark Abraham [Sun, 24 Feb 2019 07:13:36 +0000 (08:13 +0100)]
Minor modernization in gmx_dump
Moved into gmx namespace. Used anonymous namespace rather than
static functions.
Removed out of date comment in registering legacy modules.
Change-Id: I8fa441ff9d776e0dbe391f21004c4bf2e56d5cf0
Mark Abraham [Mon, 11 Feb 2019 07:01:39 +0000 (08:01 +0100)]
Make pdb2gmx tests run in Jenkins
Now that the use of regex is less inefficient, these tests will run
several tens of times faster, which will make them usable in Jenkins.
Change-Id: I115ce221fb0156b08dd71d266c2d1b9cd65ba759
Berk Hess [Tue, 5 Mar 2019 12:34:29 +0000 (13:34 +0100)]
Fix post-submit warnings
Change-Id: Id9d36d0fcdf0fcdb16438992f58229185942a1da
Berk Hess [Thu, 28 Feb 2019 09:47:30 +0000 (10:47 +0100)]
Move nbnxm atomdata types to atomdata.h
This change is only code motion.
Change-Id: Ibefdd476c93ac2863dfb028fea37d4b00945055a
Berk Hess [Tue, 8 Jan 2019 22:03:18 +0000 (23:03 +0100)]
Turn nbnxn_grid_t into a class
Change-Id: I7dbb2268ad7ee70a49db5fd20b1938e786b1da35
Paul Bauer [Mon, 4 Mar 2019 10:25:15 +0000 (11:25 +0100)]
Merge "Merge branch release-2019"
Szilárd Páll [Thu, 28 Feb 2019 01:51:34 +0000 (02:51 +0100)]
Encapsulate force output setup in do_force_*
Code that sets up force buffer outputs for force-only and virial
contribution together with clearing is moved into a function that
produces a struct containing the relecant data.
Refs #2802
Change-Id: Ie04a8c8edf703610ff8e357792d6ec22ebb718ff
Mark Abraham [Sat, 2 Mar 2019 03:28:49 +0000 (21:28 -0600)]
Merge branch release-2019
Change-Id: Ib12dea8e32d62a0cf12b8cab6ed8162ce6a40561
Mark Abraham [Fri, 1 Mar 2019 23:42:49 +0000 (15:42 -0800)]
Remove defunct mdrun options
These worked with General Coupling Theory, and were
not removed alongside that code when it was removed.
Refs #1292
Change-Id: Ia795ea81e7c38ba3b895f926ce048c0ac2dfba1a