Magnus Lundborg [Thu, 26 Nov 2015 15:29:06 +0000 (16:29 +0100)]
Fixed typos in output.
Change-Id: I706c489f186c0d0367fca2cf4581186a0a97a291
Erik Lindahl [Thu, 8 Oct 2015 16:28:49 +0000 (18:28 +0200)]
C++ classes for cpuid and hardware topology
Refactored old cpuid into classes for cpuid and hardware
topology detection, and moved SIMD architecture selection
routines to the SIMD module. This will make it possible
to introduce hwloc transparently to get more advanced
topology information from the hardware topology class.
Since forcerec.h is still included by a few C files, the
previous cpuid datatype has been turned into pointers
to forward-declared non-existing structs, which causes
snew/sfree to choke on them. Internally they are instead
properly new:d/delete:d in the C++ code.
Change-Id: I378ec5dc6c32883c5d89f1cfeecea93a3b8b0e6b
Teemu Murtola [Fri, 27 Nov 2015 10:19:13 +0000 (12:19 +0200)]
Clean up some selection code
- Make most input parameters to centerofmass.* routines const.
- Remove unused return values for the routines, and replace the checks
for incorrect calls with asserts.
- Use ConstArrayRef in test code to get rid of other templates in test
code.
Change-Id: I343f3165df73a5a7d4468ca233f08d09b9a5b259
Magnus Lundborg [Wed, 25 Nov 2015 22:36:15 +0000 (23:36 +0100)]
Use local variables instead of those in *ir.
We set vout and fout to that values of ir->nstvout and ir->nstfout
Use the local variables.
Change-Id: I17dbc1f9c2fda7099cfa2f38da6600e2d175bd5a
Mark Abraham [Tue, 24 Nov 2015 18:55:30 +0000 (19:55 +0100)]
Fix logic of dd_print_missing_interactions exit
Old code would write a fatal error from master rank, and then exit
without coordinating with the other ranks. Instead, all ranks should
participate in the fatal error, using the existing code that takes
care of printing output only from master rank.
Change-Id: Iec91ddd09ba076cd977d2c1ef388cf99adae92f6
David van der Spoel [Tue, 24 Nov 2015 13:49:38 +0000 (14:49 +0100)]
Fixes newly introduced bug in make_ndx.
After cleanup removing "NOTSET" from general include files a bug
was introduced in make_ndx not being able to generate groups
based on atom name, residue name or atom type.
Fixes #1859
Change-Id: I5ccca69ca31ae9d53f7473bcd9e6864db9a66fc8
Mark Abraham [Tue, 27 Oct 2015 16:18:24 +0000 (17:18 +0100)]
Update and expand pre-submit commit matrix
Upstream, dynamic host assignment is now done from the requirements
expressed in the configuration line.
Updated old and new configs to support latest versions for icc, gcc,
MSVC, clang, and CUDA.
Change-Id: Icce62d1ba80a5b40ff00d78cdd24e15c8c45f2e7
Teemu Murtola [Sat, 21 Nov 2015 20:43:56 +0000 (22:43 +0200)]
Move precision detection symbols to baseversion.*
Part of splitting copyrite.* to its components.
Add extern "C" declaration to the symbols to make it simpler to check
their presence.
Change-Id: Ie6d776719766435ad75915b40ec1c01b06f23f7e
David van der Spoel [Sat, 21 Nov 2015 14:27:16 +0000 (15:27 +0100)]
Moved domdec structures out of commrec.h.
In order to clean up the legacyheaders directory here the
structures relating to domain decomposition are taken out of
commrec.h and moved to a new file domdec/domdec_struct.h
To not introduce new cyclic dependencies modified the
interface of write_checkpoint and gmx_fatal_collective.
Part of #1415
Change-Id: I485a03eddbb87dcc236b7e2e7d85d03383d86f61
David van der Spoel [Sat, 21 Nov 2015 21:33:13 +0000 (22:33 +0100)]
Cleanups in legacyheader/types/commrec.h
Removed superfluous typedefs from above file.
Part of #1415.
Change-Id: If3d99dc24864d21dbbfa2eaf57fd5264f7d3d9ec
Mark Abraham [Sun, 22 Nov 2015 12:08:46 +0000 (13:08 +0100)]
Fix generic group-scheme kernel table dereferencing
Changes to regressiontests see the generic kernels triggered more
often, and these need to not dereference table data that hasn't been
initialized. This change follows the example of nb_free_energy.cpp.
Change-Id: Ifca4ed318dfc04e760e65d1419df13388cb88248
Teemu Murtola [Sun, 22 Nov 2015 05:22:45 +0000 (07:22 +0200)]
Remove correlationfunctions -> mdtypes dependency
This only existed because of bool_names, which was much more general
that most other MD-specific enums in md_enums.h. Instead, add a
boolToString() utility function and use it. This is also more robust,
as passing an integer with a value other than 0/1 no longer causes an
out-of-bounds array access.
Remove some cycle suppressions that were not suppressing any cycles not
covered by other suppressions.
Change-Id: Id0a4e2aa1d73fb1dd07ef182a4f9e4370cb4115c
Teemu Murtola [Sat, 21 Nov 2015 12:00:57 +0000 (14:00 +0200)]
Use v.data() instead of &v[0] for C interop
When passing std::vector arrays to C code, use C++11 .data() instead of
&v[0], since this works also for empty arrays, even with various debug
versions of STL.
arrayref.h still has an &v[0] protected by an emptiness check, since
that is a potentially widely used header.
Change-Id: I3a342a0086c7d0f101c9a91227625c062bedfd5e
David van der Spoel [Fri, 20 Nov 2015 18:50:37 +0000 (19:50 +0100)]
Merged legacyheaders/types/qmmmrec.h into mdlib/qmmm.h
Change-Id: I711270f864d9266b554c44a1185723449973e0b3
David van der Spoel [Fri, 20 Nov 2015 18:19:36 +0000 (19:19 +0100)]
Merged genborn.h from legacyheaders/types into mdlib/genborn.h
Part of #1415.
Change-Id: I2c9dcb827219649791183d016bf07d056a9ca049
David van der Spoel [Fri, 20 Nov 2015 19:15:57 +0000 (20:15 +0100)]
Moved legacyheaders/types/group.h to mdtypes.
Part of #1415.
Change-Id: I959941cf586b90e97359e8ec026dc923ff7f8aa5
David van der Spoel [Fri, 20 Nov 2015 15:10:10 +0000 (16:10 +0100)]
Merged legacyheaders/types/ns.h and nblist.h to mdtypes/nblist.h
Also parts moved out of forcerec.h.
In order to make this work some parts of the forcerec structure
had to be made pointers, and the same for nblist structures.
Part of #1415.
Change-Id: Iaaadd76ccca001a11371b9a0ad1b75a727732f00
David van der Spoel [Wed, 11 Nov 2015 21:13:22 +0000 (22:13 +0100)]
Combine enums.h and names*.
Combined enums.h and names* to mdtypes/md_enums.cpp/h.
Added doxygen comments to md_enums.h
Removed macros in inputrec.h to reduce cyclic dependencies.
Clean up of legacyheaders. By removing some unnecessary includes
from the files names.h and enums.h (now md_enums.h)
a lot of 'freeriders' showed up, therefore had to include
topology.h in many files.
Part of #1415
Change-Id: I12b8ef4f82b7aec806aea2eee7d77604e86dc576
Mark Abraham [Wed, 18 Nov 2015 19:05:46 +0000 (20:05 +0100)]
Split wallcycle interface
Separated header for components that relate to accumulating counts
from end-of-run reporting. The former benefits from exposing a minimal
interface, e.g. so CUDA code isn't potentially exposed to C++11
headers.
Refs #1745
Change-Id: I70517ac104f002b7b4e61a3aaa26acff5193361c
Mark Abraham [Sat, 24 Oct 2015 15:49:59 +0000 (17:49 +0200)]
Remove ewcWAIT_GPU_NB_L_EST
This responsibility doesn't fit with the rest of gmx_wallcycle (and
the new implementation has slightly lower overhead, too).
Change-Id: I99984e8ae19f8201d1e49aa9fe0f01062ac8ee47
David van der Spoel [Thu, 19 Nov 2015 15:19:21 +0000 (16:19 +0100)]
Merged legacyheaders/nrnb.h and types/nrnb.h to gmxlib.
Part of #1415
Change-Id: I33922419a6a5a7976bda12fd81e2d752eb0c5c6d
David van der Spoel [Thu, 19 Nov 2015 12:08:40 +0000 (13:08 +0100)]
Moved mdatom.h from legacyheader/types to mdtypes.
Add doxygen comments to the elements of the structure.
Part of #1415.
Change-Id: I811ad4782dd482ac7fe198c85c85b91af6e20b67
David van der Spoel [Thu, 19 Nov 2015 11:05:50 +0000 (12:05 +0100)]
Moved legacyheaders/types/energy.h to mdtypes.
Part of #1415
Change-Id: I65a00cc49110a09edfafc7520a7a480f73b5165c
Mark Abraham [Wed, 14 Oct 2015 10:51:46 +0000 (12:51 +0200)]
Simplified init and mdrun code
Replaced bVV with EI_VV(ir->eI), so that someone reading the code
doesn't have to remember that they mean the same.
There's already restart-handling code that runs very early in mdrun to
determine whether a valid checkpoint restart will happen, so stopped
doing redundant checks and communication. Eliminated
gmx_fexist_master.
Consolidated logic related to setting up and using bInitStep. Renamed
boolean variable to startingFromCheckpoint according to new style. The
old bStartingFromCpt was only used together with a check for
velocity-Verlet, so we mays as well use the unqualified form and have
one fewer control variable.
Change-Id: Ic8baef9c7364a436bc2bb887e204b2f0f7988734
Berk Hess [Wed, 18 Nov 2015 08:34:59 +0000 (09:34 +0100)]
Removed Reaction-Field-nec
The RF no exclusion correction option was only introduced for
backward compatibility and a performance advantage for systems
with only rigid molecules (e.g. water). For all other systems
the forces are incorrect. The Verlet scheme did not support this
option and if it would, it wouldn't even improve performance.
Change-Id: Ic22ccf76d50b5bb7951fcac2293621b5eef285c5
Mark Abraham [Mon, 16 Nov 2015 15:56:28 +0000 (16:56 +0100)]
Fix use of #if vs #ifdef
Change-Id: Ic2b52f88cde3793d1f0b96fe36acbe7db1126174
Mark Abraham [Mon, 16 Nov 2015 19:59:37 +0000 (20:59 +0100)]
Remove t_adress
This was intended for removal with AdResS, but the migration of
typedefs/inputrec.h meant it got lost.
Change-Id: Ia0ee6ee20258cfab47345459ce07261d1452cd8b
Mark Abraham [Thu, 29 Oct 2015 15:12:59 +0000 (16:12 +0100)]
Fix AlignedAllocator with MSVC2015 debug mode
The rebind feature of the allocator is apparently used by error
checking in MSVC2015 C++ standard library, and that requires a
templated "copy constructor," and templated constructors can't be
auto-generated. Once we supply that constructor, we must also supply
any other ones we want, such as the no-argument constructors.
Change-Id: Id8446ac5691c9bd7d6f60768b47775211e43fb08
Erik Lindahl [Fri, 31 Jul 2015 22:13:25 +0000 (00:13 +0200)]
Remove unused code detected by PGI compiler
Minor cleanup to fix warnings issued by the PGI compiler.
- Unused routines have been removed, including ones that
were never referenced unless specific defines were set
directly in source files.
- Unreachable breaks have been removed.
- Add a flag to suppress warning that PGI does not
understand a GCC pragma in the generated parser.cpp
There are still issues with PGI not catching exceptions
in the unit tests, SIMD, and OpenMP.
Change-Id: Ic7900b80e31745aafa031c806f0664734014bbe5
Mark Abraham [Mon, 3 Aug 2015 10:20:49 +0000 (12:20 +0200)]
Removed state_global from mdrun energy-summation
state_global was used only when MD_READ_EKIN was set, ie. when
restoring KE data when restarting from checkpoints. So there is
no use passing it to every call to compute_globals.
Accordingly, moved use of restore_ekinstate_from_state().
Also added some docs and const correctness.
Refs #1793
Change-Id: I937f397602c761c92cd8e48121b56b1805a05470
Mark Abraham [Mon, 3 Aug 2015 20:08:31 +0000 (22:08 +0200)]
Remove "support" for twin-range with VV integrators
Group-scheme twin-range non-bonded interactions never worked with
VV+constraints, and removing it was a to-do item. There are no plans
to make it work with VV, and there are plans to remove the twin-range
scheme entirely, as well as rework leap-frog more closerly into the
Trotter scheme.
Refs #1137, #1793
Change-Id: Ibd70b5397568bfcd328cd6dd1c5c99384d7aaca8
Mark Abraham [Mon, 16 Nov 2015 10:47:43 +0000 (11:47 +0100)]
Merge branch release-5-1
Conflicts only from version numbers
Change-Id: I78235cce0c4fd7bcf4235dd888e1aef739d46001
Mark Abraham [Tue, 10 Nov 2015 16:33:17 +0000 (17:33 +0100)]
Remove AdResS
This feature will disappear with the group scheme, so we might as well
get it out of the way first. Doing this removal on its own might help
re-implement some time, if someone was keen.
Removed bVir, bPress, bSurft fields of t_mdebin, because all MD
algorithms now support such calculations.
gmx grompp now issues a fatal error if the main adress .mdp option is
on, and otherwise ignores the obsolete fields (like we do with other
.mdp options we've removed).
mdrun can read old .tpr files, but issues a fatal error if AdResS was
active in them.
gmx dump and gmx compare ignore all AdResS related fields.
Other tools can still read such .tpr files for their other content.
Removed Sebastian Fritsch from GROMACS 2016 contributor list, since he
only worked on AdResS features. Christoph Junghans made other
contributions that are still useful, and so remains.
Removed obsolete literature references
Also fixed some incorrect doxygen of init_forcerec().
Part of #1852
Change-Id: I22fa0fe480148aeda0ace194646a5ec2f3d20a8c
Teemu Murtola [Fri, 21 Aug 2015 10:10:31 +0000 (13:10 +0300)]
Add EnumOption with support for proper enum types
Generalize EnumIntOption such that it can now store the output into a
proper enum type, making it easier to write code where the compiler can
check for correct usage of the enums (i.e., give an error for
unintentional mixing of enum types, or for implicit int-to-enum casts).
Change-Id: Idcdd671f555327a3e3dad521b92d50930cb6e281
David van der Spoel [Thu, 12 Nov 2015 19:30:27 +0000 (20:30 +0100)]
Merged legacyheaders/types/inputrec.h into mdtypes/inputrec.h
Part of #1415.
Change-Id: I39885a01474173170bc6a7a7c2e54e7f21d64370
Mark Abraham [Thu, 12 Nov 2015 23:09:10 +0000 (00:09 +0100)]
Move responsibility for FFT description string
Configuring which FFT library will do the job is managed wholly by
CMake variables, so it seems reasonable to pass them through config.h
and use them to set the FFT description string at the only place that
needs it. This means the configuration-printing code doesn't have to
depend on the fft module.
Removed C++ header guard on fft.h while I was there.
Change-Id: Id20add978095d3ef998851bf68509afe2dbd3287
David van der Spoel [Sat, 14 Nov 2015 11:57:54 +0000 (12:57 +0100)]
Merged legacyheaders/types/state.h into mdtypes/state.h
Also merged swap/enum.h into legacyheaders/types/enums.h
to be moved later out of legacyheaders.
Part of #1415, #1854.
Change-Id: Ie53f190d6798b81c531896de80ef25c060836479
Teemu Murtola [Sat, 14 Nov 2015 20:08:53 +0000 (22:08 +0200)]
Fix reporting of unused cycle suppressions
Now also dependencies that do not exist at all are reported as unused
suppressions. There was already one unnecessary suppression.
Change-Id: I75b16743789121c4b7ab6c92850e1a6a39f88059
Mark Abraham [Thu, 12 Nov 2015 12:51:28 +0000 (13:51 +0100)]
Moved all cool stuff to its own file
Stopped reading data files from share/top, because this implementation
does string handling much more transparently. It also removes
dependency on fileio. Users can no longer change the databases
locally, which is less fun, but they can still change the source.
Removed cool quote dependency on gmx_rng. std::random is quite
appropriate in this case.
Stopped pdb2gmx writing a cool quote if a .gro title was missing
Now that gurgle.dat isn't a file, the management of how binaries
find the installed share/top is based on residuetypes.dat.
Change-Id: I625da0c8a4179934ff2f6cb47b5c2cb971d378d9
Mark Abraham [Thu, 12 Nov 2015 07:10:37 +0000 (07:10 +0000)]
Fix walltime measurement with bgclang
BlueGeneQ + xlc was fine
BlueGeneQ + bgclang clock_gettime doesn't work properly, leading to
checkpoints every nstlist steps.
Change-Id: I8c58da39be7dd19a8aea2715b418586c42feba46
Teemu Murtola [Sat, 14 Nov 2015 04:53:09 +0000 (06:53 +0200)]
Move network.h to gmxlib/
- Suppress cyclic dependency caused by too high-level code that is
currently present in checkpoint.cpp.
- Remove unused network.h use from forcetable.cpp to avoid another
cyclic dependency.
- Remove all includes for network.h from other headers, and introduce
them where required.
- Remove broken debug_gmx().
- Some cleanup.
Change-Id: Ib80787c4c2f16b12cc0f152f1017ea44dd69ecf4
Berk Hess [Wed, 21 Oct 2015 10:04:50 +0000 (12:04 +0200)]
Optimized the bonded thread force reduction
The bonded thread force reduction now uses fixed size blocks of 32
atoms. Instead of dividing reduction of the whole range of blocks
uniformly over the threads, now only used blocks are divided
(uniformly) over the threads.
This speeds up the reduction by a factor #threads (!) for typical
protein+water systems when not using domain decomposition.
With domain decomposition the speed up is up to a factor of 3.
Change-Id: I255b4336d315ef62ac9bc446c22313bf47baa097
Teemu Murtola [Fri, 13 Nov 2015 08:01:11 +0000 (10:01 +0200)]
Move gmx_ga2la.h to domdec/
Doxygen documentation for the moved functions is missing, which makes
Jenkins complain.
Change-Id: I2b5748b2b96c599531c04109e4f657d2e4c6281e
Carsten Kutzner [Mon, 22 Dec 2014 17:19:39 +0000 (18:19 +0100)]
Ion/water position swapping for multiple ion types and polyatomic ions
- Support for a user-defined number of ionic species
- Support for (small) polyatomic ions
- New protocol is able to process old CompEL .tpr files
- Cleaned up the code in a few places
- Updated swap-related .mdp options in the online user guide
and in the PDF manual
- Updated complex.swap* regression tests in a separate commit
to go along with this one
- Updated mdrun test fixture using the position swapping functionality
Change-Id: I89c8ad05726755d85e7f92223673624b7f8363be
David van der Spoel [Fri, 13 Nov 2015 09:15:23 +0000 (10:15 +0100)]
Replaced atom_id by int.
Change-Id: Id5d3937e3293bf9e4cb8b4d35b981a289e6001b1
Teemu Murtola [Fri, 13 Nov 2015 09:06:07 +0000 (11:06 +0200)]
Remove t_commrec dependency from cmdlineinit.cpp
This removes remaining legacyheaders dependencies from commandline/.
Change-Id: Iff17ee731823fc4979231944a1f53595e8a9f7fc
Teemu Murtola [Fri, 13 Nov 2015 07:10:41 +0000 (09:10 +0200)]
Move gmx_detect_hardware.h to gmxlib/
Some cleanup while there.
Change-Id: Ifb2b097972fe3e901054992751fee622abd7d4f2
Teemu Murtola [Fri, 13 Nov 2015 08:17:47 +0000 (10:17 +0200)]
Move nonbonded.h to gmxlib/nonbonded/
Change-Id: Iacd6d204be0de7da0016206936c2afd76cafd3e4
Teemu Murtola [Wed, 11 Nov 2015 05:06:28 +0000 (07:06 +0200)]
Let users build without compiler warnings
Our build system uses a very aggressive set of compiler warnings, in
particular for gcc. There have been several occasions where new
releases of compilers have started producing more warnings, which is
impossible for us to anticipate. There is little value in users seeing
such warnings, when the main intention is to catch more issues in
Jenkins.
Change the default build to not enable these warnings when building from
a source tarball. CMake options GMX_DEVELOPER_BUILD=ON or
GMX_COMPILER_WARNINGS=ON both enable the old flags, and the latter is
used for Jenkins builds. In most cases, these should not matter, since
the warnings are still on by default when building from a git
repository.
Change-Id: Ib9d3b2d1c3388b17808525615d13a1e66214edde
Teemu Murtola [Fri, 13 Nov 2015 08:27:01 +0000 (10:27 +0200)]
Merge types/nsgrid.h into nsgrid.h
Change-Id: Ic5b3180201bcc230633a3f0a2ba2219f51dde579
Mark Abraham [Thu, 12 Nov 2015 23:31:17 +0000 (00:31 +0100)]
Update includesorter.py
std::array was missing. Luckily, not actually a problem.
Change-Id: I0dbdd89086d129c7ce6a5b03efb709a1a837d4d2
David van der Spoel [Wed, 11 Nov 2015 20:59:33 +0000 (21:59 +0100)]
Moved genborn.h to mdlib
Part of #1415
Change-Id: Ia2d734be40df97426348a153040cf311a3abf7a3
Teemu Murtola [Thu, 12 Nov 2015 20:20:00 +0000 (22:20 +0200)]
Report unused cycle suppressions
This should make it less likely that we accidentally reintroduce a
dependency that was already once fixed, as currently it is very easy to
forget obsolete suppressions in place.
Change-Id: I686d15cccb342266ffb44e6e3cb52ed4cb92710e
David van der Spoel [Wed, 11 Nov 2015 20:51:17 +0000 (21:51 +0100)]
Moved txtdump.* to fileio.
Some cleanups in edsam.cpp too.
Part of #1415
Change-Id: I6cd58951eff1bac0dad75dbd448a958e57c767e7
David van der Spoel [Wed, 11 Nov 2015 07:06:30 +0000 (08:06 +0100)]
Moved copyrite.* to fileio from gmxlib and legacyheaders.
Part of #1415
Change-Id: Id6cfb84cc683f88731fac7d80053aadc9b828806
David van der Spoel [Wed, 11 Nov 2015 12:22:48 +0000 (13:22 +0100)]
Moved inputrec.* from gmxlib and legacyheaders to mdtypes.
Part of #1415
Change-Id: Idb00712d1b6ea9648a36d349f670790aaaf2c6d4
Mark Abraham [Wed, 11 Nov 2015 15:50:05 +0000 (16:50 +0100)]
Merge release-5-0 into release-5-1
Change-Id: I292a7eab69893472723338b44b4653f725f7294f
Berk Hess [Wed, 11 Nov 2015 09:33:47 +0000 (10:33 +0100)]
Fixed (harmless) fp exception in wallcycle_sum
Change-Id: I332e1d24f640df6d9459f5289a46bfd1ab7f9c71
Teemu Murtola [Wed, 11 Nov 2015 04:44:26 +0000 (06:44 +0200)]
Support inspecting expected error messages in tests
Add a command-line option --show-error-messages to test binaries.
When set, each test that uses EXPECT_THROW_GMX to test for expected
errors prints out the error message from the expected error, making it
possible to easily inspect it.
It is not (yet) easily possible to write a test that actually asserts
something about the message.
Change-Id: Iede88ae96f31d0545c9ba56d827b3c6a98ebd88d
Teemu Murtola [Mon, 9 Nov 2015 16:23:56 +0000 (18:23 +0200)]
Remove build system for boost
Now that no code depends on boost, remove the build system and
associated documentation. This is in a separate commit to make it
easier to revert, in case some dependency to boost is reintroduced.
Change-Id: I27e974abe6e44abe6c60371bf9f087f8d63cb667
David van der Spoel [Wed, 4 Nov 2015 12:28:04 +0000 (13:28 +0100)]
Removed legacyheaders/typedefs.h
More cleaning up in legacyheaders. Mostly this patch involves
shuffling around include files, and adding a couple of forward
declarations. Renames gmxlib/typedefs.* to mdtypes/state.* and
introduces new utility/int64_to_int.cpp with header.
Introduced new directory mdtypes to resolve circular dependencies.
Right now state.* and history files
are the only files living there.
Part of #1415
Change-Id: I5dc59a2ca3bd1f9c5391f4b9deb9f116b30106fc
Teemu Murtola [Fri, 6 Nov 2015 20:41:54 +0000 (22:41 +0200)]
Remove remaining boost dependencies
- Implement that small part of boost::exception that we still depend on
in exceptions.*. For now, this is essentially the same
implementation (but using C++11 features where applicable), but having
this fully in our hands would allow some further simplification in,
e.g., the way we initialize the exceptions.
- Copy boost/current_function.hpp to utility/.
- Add a few missing includes elsewhere.
The build system and remaining boost references will be removed in a
child change.
Change-Id: I657cde82033eb927f4a35e126329c0666f66548e
Mark Abraham [Tue, 10 Nov 2015 15:16:38 +0000 (16:16 +0100)]
Bump patch version to prepare for 5.1.2
Change-Id: Iefe307be5b3085555e7850566111dc2903b686db
Berk Hess [Mon, 9 Nov 2015 14:52:10 +0000 (15:52 +0100)]
Correct LINCS dHdl contribution
The LINCS constraint contribution to dH/dlambda was missing a factor
1/delta_t^2 and thus orders of magnitude too small.
Fixes #1851
Change-Id: I864726d9a86a34207d2a02ad0803874fbfb33966
Teemu Murtola [Sat, 7 Nov 2015 07:27:01 +0000 (09:27 +0200)]
Remove misc. copyrite.h functions
- Replace Program() and ShortProgram() with calls to IProgramContext.
This is now easier that there are at least basic catch-alls in place.
- Replace GromacsVersion() with gmx_version().
- Move gmx_thanx() to cmdlinemodulemanager.cpp, which was the only
user (removed the non-essential use from gmx_anadock.cpp).
Change-Id: I46cd50cc9d4dfef3ff29aad067841b67948df7f8
Teemu Murtola [Fri, 6 Nov 2015 11:09:33 +0000 (13:09 +0200)]
Move gmx_omp_nthreads.h and gmx_thread_affinity.h to gmxlib
One cyclic dependency found, but suppressed for now.
Some cleanup, and remove the gmx_ prefix from thread_affinity.*.
Change-Id: I31a4e1216b90a70a42e5fd375c84623d08b56ddd
Teemu Murtola [Fri, 6 Nov 2015 12:04:12 +0000 (14:04 +0200)]
Move PBC enums to pbc.*
This starts to break the dependency magnet that enums.h and names.h are,
and makes the selection/ module independent of legacyheaders/.
Change-Id: I70d17f913356be5492d3f38aa6f23f499584fe8b
Teemu Murtola [Thu, 5 Nov 2015 20:11:23 +0000 (22:11 +0200)]
Move ns.h and nsgrid.h to mdlib/
Two more headers out of legacyheaders/. Remove unnecessary include from
nonbonded.cpp to avoid a circular dependency.
Change-Id: I8936e770407eef9f92abb0477b8e24c2b3d0ec7a
Teemu Murtola [Thu, 5 Nov 2015 18:46:42 +0000 (20:46 +0200)]
Move force.h and vsite.h into mdlib/
- Remove a cyclic gmxlib <-> mdlib dependency by removing an unnecessary
include.
- A tables <-> mdlib cyclic dependency broken by moving flags only used
in functions in forcetable.h there from force.h.
- Minor cleanup in the moved files.
Change-Id: I544a77927c2ab245437e16b17fe80d32c2badb2c
Teemu Murtola [Thu, 5 Nov 2015 16:28:46 +0000 (18:28 +0200)]
Move types/rgb.h to fileio/
This is the only context where it is used.
Change-Id: I47b85df2b93d121bef2d88e305741a72c6c63f88
Mark Abraham [Tue, 8 Sep 2015 14:08:50 +0000 (16:08 +0200)]
Move DD hashing to domdec module
Removed C++ guard no longer needed
Change-Id: I786b03512e34662182f8521a300226696700fdee
Vedran Miletić [Thu, 5 Nov 2015 09:32:55 +0000 (10:32 +0100)]
Update explanation of replica exchange output
We use both ex and x as a shorthand for exchange, and the output
should mention that.
Change-Id: Ied7fa5328191098a506279602a0ba67ca2254d0b
Vedran Miletić [Thu, 5 Nov 2015 09:32:18 +0000 (10:32 +0100)]
Document gmx_repl_ex struct
This patch adds descriptions to fields of gmx_repl_ex struct used
in replica exchange code.
Change-Id: I68fccd4d121ab3cf747ea5c61630728d74597260
Mark Abraham [Wed, 4 Nov 2015 15:05:33 +0000 (16:05 +0100)]
Handle another unused variable
bgclang-3.7 finds this, missed it out of the earlier fix
Change-Id: Ibd59230ad26f4818978de97c78b0384a08c6d9ed
Erik Lindahl [Tue, 3 Nov 2015 22:04:28 +0000 (23:04 +0100)]
Avoid __vectorcall with clang for reference build
Clang-3.6 added support for the microsoft __vectorcall
function call convention that we test for, but this is
buggy and produces mdrun-test unit test failures on
debug builds when using Reference SIMD, while it works
for real SIMD. Disable __vectorcall in this case.
Change-Id: I2f940e568d160879f0afb141670301f50cda3a7a
Teemu Murtola [Wed, 4 Nov 2015 20:00:51 +0000 (21:00 +0100)]
Merge "Merge branch release-5-1"
Mark Abraham [Wed, 4 Nov 2015 15:31:27 +0000 (16:31 +0100)]
Permit matrix build with RelWithDebInfo set
Change-Id: Idabaa52d2c5d3c3dae59958f47b924bc66f8d1dd
Mark Abraham [Wed, 4 Nov 2015 14:50:38 +0000 (15:50 +0100)]
Merge branch release-5-1
Change-Id: I199f26f3b928141c166a77b99d47d1ac7edb1877
Mark Abraham [Wed, 4 Nov 2015 14:38:59 +0000 (15:38 +0100)]
Even less moving from unique_ptr
clang-3.7 warns that these std::move calls prevent the copy-elision
optimization that is permitted for returns of named values. Now that
these pointers are always std::unique_ptr, we have no need of the
std::move anyway.
I missed these in an earlier patch, through not building the test
binaries when I checked clang-3.7.
Change-Id: I7b7518564a02c98117c7c7e92dcc7f8d12b7a245
Mark Abraham [Fri, 30 Oct 2015 09:24:06 +0000 (10:24 +0100)]
Version 5.1.1
Bumpd SOVERSION_MINOR and REGRESSIONTEST_MD5SUM per policy
Documented the two historical values of SOVERSION_MAJOR
Change-Id: I50662a762a1af9a39f94ec9a18e0afe48cb8424d
Szilard Pall [Wed, 21 Oct 2015 00:06:43 +0000 (02:06 +0200)]
Tweak NVML-related messages
Reworded and added hints related to fixing/working around the issues
presented to the user.
Change-Id: I1e6fc424404aca71ca1ae2788a06541e202b8184
Mark Abraham [Mon, 2 Nov 2015 11:59:39 +0000 (12:59 +0100)]
Fix icc 16 issues
Some minor compilation warnings.
align_bytes for LINCS was not being correctly initialized, and had
value zero. The timing of static initialization can be a problem in
C++, though we'd expect that std::max over two compile-time constants
should resolve at compilation time. This could be a problem of mixing
standard-library ABI on a build slave, but that's an issue a user
could have also. Particularly given that the implementation of
snew_aligned is currently hard-coded to 128 bytes, we lose nothing by
making that consistent and documenting it.
Change-Id: I7db035c355c7f8c66522c4c03853ef2e328515ab
Mark Abraham [Tue, 3 Nov 2015 20:32:18 +0000 (21:32 +0100)]
Stop moving from unique_ptr when copy elision works
clang-3.7 warns that these std::move calls prevent the copy-elision
optimization that is permitted for returns of named values. Now that
these pointers are always std::unique_ptr, we have no need of the
std::move anyway.
Change-Id: I0bc777bfdb19c6f33a3679d03dc2b71ee79a5c46
Teemu Murtola [Fri, 30 Oct 2015 11:57:17 +0000 (13:57 +0200)]
Update build scripts to match releng refactoring
- Use build options specified in the build script instead of directly
calling functions to initialize the compiler.
- Declare local options in gromacs.py to allow removing irrelevant
options from releng.
- Replace uses of context.params with context.opts.
- Use methods in context for env.vars and directory changes to support
dry-runs marginally better (and to support further refactoring for
testability).
Change-Id: I9c213a5e9337f1ca97ec14b4f3589ecb721f5bdc
David van der Spoel [Tue, 3 Nov 2015 16:16:31 +0000 (17:16 +0100)]
Moved df_history utility routines from typedefs to new file.
Part of #1415.
Change-Id: Ia2b9e6e5342cb3bb5820894fb82ef2908d969bc6
Mark Abraham [Thu, 29 Oct 2015 14:52:05 +0000 (15:52 +0100)]
Quiet warnings with clang-3.7
BlueGene clang-3.7 finds these. Interestingly, normal
clang-3.7 doesn't.
Change-Id: Iafa2f7a202b2e56adc527b0299af195485d99b46
Berk Hess [Tue, 3 Nov 2015 11:27:46 +0000 (12:27 +0100)]
Fix no wallcycle support
The recent wallcycle code change
3ad081ab broke the possobility to run
without wallcycle support.
Change-Id: Ica292ad53bdd6766949e1a5eb1952b9412f6774c
Berk Hess [Fri, 23 Oct 2015 18:50:21 +0000 (20:50 +0200)]
Removed nbnxn kernel blendv optimization
The nbnxn simd kernel blendv optmization, which was accidentally
deactivated since 5.0, has been removed. It made assumptions about
the internal storage of SIMD representations. With gcc 4.x blendv
would give a small performance improvement, but with gcc 5 performance
is equal or deteriorates.
Change-Id: I2b07895257a2fde0ade2a627369ed22683dd89e1
Mark Abraham [Fri, 30 Oct 2015 13:02:13 +0000 (14:02 +0100)]
Merge branch release-5-1
Minor conflicts handling the wallcycle bug that has been fixed in both
branches, so that subcounters work (verified) and nvcc management.
Change-Id: I23ce09dd6e0dd75f407fba90456bb106c41fc8b2
James W. Barnett [Fri, 30 Oct 2015 14:07:14 +0000 (09:07 -0500)]
Output replica exchange order description to debug
When -debug was selected some of the description was printed to
mdrun's log, but it looks like the actual numbers were being
printed to the debug log. This puts them both in the debug log.
Change-Id: Ic209ef762317b3483441a65ca08ca134cfdd41cd
Berk Hess [Mon, 2 Nov 2015 09:33:43 +0000 (10:33 +0100)]
Fix intermolecular interactions with small mols
Fixed intermolecular interactions not being assigned with domain
decomposition for system with only single charge group molecules.
Change-Id: I49e55d0461c4b1f92077d047072c31b22a5b397b
Teemu Murtola [Sat, 24 Oct 2015 19:44:16 +0000 (22:44 +0300)]
Replace boost::exception_ptr with std::exception_ptr
This substantially reduces our dependencies to boost; the remaining
functionality from boost/exception should not be too difficult to
replace, either.
Change-Id: I81105a2442ce584882b109fba7ba66e2309145c8
Erik Lindahl [Sat, 8 Aug 2015 15:49:12 +0000 (17:49 +0200)]
Enable 64-bit cycle counters on ARMV7a
ARMv7a has support for returning 64 bits of cycle information by
using two 32-bit registers. However, unless user-space access has
been enabled in the kernel they will return 0. We enable their usage,
but will still return that there is no support in GROMACS if they
are not enabled in the kernel.
Change-Id: Ic91550e743056335388d0b2c862d35e38b72cb04
Szilard Pall [Mon, 2 Nov 2015 00:23:09 +0000 (01:23 +0100)]
Fix signal type
The signal array type has been changed from into to char, but this can
not safely hold the negative values associated with the signaling
indicating to stop at next step. This has likely led to broken
signaling on platforms where the char implementation does not use a
signed 8-bit integer. To fix this issue "signed char" is used now.
Change-Id: If2ca213c979815ff3ab868cb0f7c8281abc2be50
Erik Lindahl [Sun, 5 Jul 2015 17:26:56 +0000 (19:26 +0200)]
Split SIMD implementations into 4 files
Split each SIMD implementation into a wrapper file,
and then separate files for single, double,
simd4-single, and simd4-double. No other edits.
This will facilitate reviewing future changes, and
hopefully make it a bit easier to overview what is
needed to implement support for new architectures
when the reference implementation is no longer a
single 3600-line file.
Change-Id: Ice59d26de508f5d719ccbe770fc649489c30e960
Mark Abraham [Fri, 23 Oct 2015 14:00:16 +0000 (16:00 +0200)]
Replace boost::shared_ptr with std::shared_ptr
Now that we can use them, C++11 smart pointers are probably less hassle.
Since boost::exception hard-codes the use of boost::shared_ptr, we can't
remove boost:shared_ptr yet.
Added a missing include for std::max
Change-Id: Iafe8dee8e7f5f952c2680979607428f02aedf98d
Erik Lindahl [Sun, 5 Jul 2015 14:47:59 +0000 (16:47 +0200)]
Moved GMX_SIMD_* macros from ifdefs to values 0/1
This will help catch bugs in SIMD-related files that
use ifdef checks but where the symbol contains a typo,
or if the correct file has not been included.
Change-Id: I9353db28babc9e70e17c095889d9b0131ce07361
David van der Spoel [Wed, 14 Oct 2015 20:18:14 +0000 (22:18 +0200)]
Replaced NOTSET from typedefs.h by local solutions.
In a continuing effort to get rid of typedefs.h here the
dependence on typedefs.h for the NOTSET variable is removed.
In gmxpreprocess a local files notset.h defines NOTSET as an int
and to make this work all references to typedefs.h were removed
from the header files. Of course this does
not change the crappy logic of assigning a value to an int and
hope that it will not turn out to be a valid number.
Change-Id: Ic598b5a6c9e71106a37d2679aa7522b5ada44247
Szilard Pall [Sun, 1 Nov 2015 20:13:40 +0000 (21:13 +0100)]
Fix bug in cycle subcounter management
The recent reorganization introduced an out of bounds indexing due to a
typo in a loop condition.
Change-Id: I1f4113fe02df2f5a26c5e8db97cb6b1d0ad362d9
Teemu Murtola [Sun, 1 Nov 2015 11:55:59 +0000 (13:55 +0200)]
Remove remaining scoped_ptrs
Replace with std::unique_ptr, and a comment that indicates that
ownership never leaves the instance.
Change-Id: Ibcdf4abd9e86c26468b23e95da4d8e319fac234e