alexxy/gromacs.git
8 years agoFixed typos in output.
Magnus Lundborg [Thu, 26 Nov 2015 15:29:06 +0000 (16:29 +0100)]
Fixed typos in output.

Change-Id: I706c489f186c0d0367fca2cf4581186a0a97a291

8 years agoC++ classes for cpuid and hardware topology
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

8 years agoClean up some selection code
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

8 years agoUse local variables instead of those in *ir.
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

8 years agoFix logic of dd_print_missing_interactions exit
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

8 years agoFixes newly introduced bug in make_ndx.
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

8 years agoUpdate and expand pre-submit commit matrix
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

8 years agoMove precision detection symbols to baseversion.*
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

8 years agoMoved domdec structures out of commrec.h.
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

8 years agoCleanups in legacyheader/types/commrec.h
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

8 years agoFix generic group-scheme kernel table dereferencing
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

8 years agoRemove correlationfunctions -> mdtypes dependency
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

8 years agoUse v.data() instead of &v[0] for C interop
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

8 years agoMerged legacyheaders/types/qmmmrec.h into mdlib/qmmm.h
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

8 years agoMerged genborn.h from legacyheaders/types into mdlib/genborn.h
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

8 years agoMoved legacyheaders/types/group.h to mdtypes.
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

8 years agoMerged legacyheaders/types/ns.h and nblist.h to mdtypes/nblist.h
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

8 years agoCombine enums.h and names*.
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

8 years agoSplit wallcycle interface
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

8 years agoRemove ewcWAIT_GPU_NB_L_EST
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

8 years agoMerged legacyheaders/nrnb.h and types/nrnb.h to gmxlib.
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

8 years agoMoved mdatom.h from legacyheader/types to mdtypes.
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

8 years agoMoved legacyheaders/types/energy.h to mdtypes.
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

8 years agoSimplified init and mdrun code
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

8 years agoRemoved Reaction-Field-nec
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

8 years agoFix use of #if vs #ifdef
Mark Abraham [Mon, 16 Nov 2015 15:56:28 +0000 (16:56 +0100)]
Fix use of #if vs #ifdef

Change-Id: Ic2b52f88cde3793d1f0b96fe36acbe7db1126174

8 years agoRemove t_adress
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

8 years agoFix AlignedAllocator with MSVC2015 debug mode
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

8 years agoRemove unused code detected by PGI compiler
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

8 years agoRemoved state_global from mdrun energy-summation
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

8 years agoRemove "support" for twin-range with VV integrators
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

8 years agoMerge branch release-5-1
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

8 years agoRemove AdResS
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

8 years agoAdd EnumOption with support for proper enum types
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

8 years agoMerged legacyheaders/types/inputrec.h into mdtypes/inputrec.h
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

8 years agoMove responsibility for FFT description string
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

8 years agoMerged legacyheaders/types/state.h into mdtypes/state.h
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

8 years agoFix reporting of unused cycle suppressions
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

8 years agoMoved all cool stuff to its own file
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

8 years agoFix walltime measurement with bgclang
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

8 years agoMove network.h to gmxlib/
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

8 years agoOptimized the bonded thread force reduction
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

8 years agoMove gmx_ga2la.h to domdec/
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

8 years agoIon/water position swapping for multiple ion types and polyatomic ions
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

8 years agoReplaced atom_id by int.
David van der Spoel [Fri, 13 Nov 2015 09:15:23 +0000 (10:15 +0100)]
Replaced atom_id by int.

Change-Id: Id5d3937e3293bf9e4cb8b4d35b981a289e6001b1

8 years agoRemove t_commrec dependency from cmdlineinit.cpp
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

8 years agoMove gmx_detect_hardware.h to gmxlib/
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

8 years agoMove nonbonded.h to gmxlib/nonbonded/
Teemu Murtola [Fri, 13 Nov 2015 08:17:47 +0000 (10:17 +0200)]
Move nonbonded.h to gmxlib/nonbonded/

Change-Id: Iacd6d204be0de7da0016206936c2afd76cafd3e4

8 years agoLet users build without compiler warnings
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

8 years agoMerge types/nsgrid.h into nsgrid.h
Teemu Murtola [Fri, 13 Nov 2015 08:27:01 +0000 (10:27 +0200)]
Merge types/nsgrid.h into nsgrid.h

Change-Id: Ic5b3180201bcc230633a3f0a2ba2219f51dde579

8 years agoUpdate includesorter.py
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

8 years agoMoved genborn.h to mdlib
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

8 years agoReport unused cycle suppressions
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

8 years agoMoved txtdump.* to fileio.
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

8 years agoMoved copyrite.* to fileio from gmxlib and legacyheaders.
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

8 years agoMoved inputrec.* from gmxlib and legacyheaders to mdtypes.
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

8 years agoMerge release-5-0 into release-5-1
Mark Abraham [Wed, 11 Nov 2015 15:50:05 +0000 (16:50 +0100)]
Merge release-5-0 into release-5-1

Change-Id: I292a7eab69893472723338b44b4653f725f7294f

8 years agoFixed (harmless) fp exception in wallcycle_sum
Berk Hess [Wed, 11 Nov 2015 09:33:47 +0000 (10:33 +0100)]
Fixed (harmless) fp exception in wallcycle_sum

Change-Id: I332e1d24f640df6d9459f5289a46bfd1ab7f9c71

8 years agoSupport inspecting expected error messages in tests
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

8 years agoRemove build system for boost
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

8 years agoRemoved legacyheaders/typedefs.h
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

8 years agoRemove remaining boost dependencies
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

8 years agoBump patch version to prepare for 5.1.2
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

8 years agoCorrect LINCS dHdl contribution
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

8 years agoRemove misc. copyrite.h functions
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

8 years agoMove gmx_omp_nthreads.h and gmx_thread_affinity.h to gmxlib
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

8 years agoMove PBC enums to pbc.*
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

8 years agoMove ns.h and nsgrid.h to mdlib/
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

8 years agoMove force.h and vsite.h into mdlib/
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

8 years agoMove types/rgb.h to fileio/
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

8 years agoMove DD hashing to domdec module
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

8 years agoUpdate explanation of replica exchange output
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

8 years agoDocument gmx_repl_ex struct
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

8 years agoHandle another unused variable
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

8 years agoAvoid __vectorcall with clang for reference build
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

8 years agoMerge "Merge branch release-5-1"
Teemu Murtola [Wed, 4 Nov 2015 20:00:51 +0000 (21:00 +0100)]
Merge "Merge branch release-5-1"

8 years agoPermit matrix build with RelWithDebInfo set
Mark Abraham [Wed, 4 Nov 2015 15:31:27 +0000 (16:31 +0100)]
Permit matrix build with RelWithDebInfo set

Change-Id: Idabaa52d2c5d3c3dae59958f47b924bc66f8d1dd

8 years agoMerge branch release-5-1
Mark Abraham [Wed, 4 Nov 2015 14:50:38 +0000 (15:50 +0100)]
Merge branch release-5-1

Change-Id: I199f26f3b928141c166a77b99d47d1ac7edb1877

8 years agoEven less moving from unique_ptr
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

8 years agoVersion 5.1.1
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

8 years agoTweak NVML-related messages
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

8 years agoFix icc 16 issues
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

8 years agoStop moving from unique_ptr when copy elision works
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

8 years agoUpdate build scripts to match releng refactoring
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

8 years agoMoved df_history utility routines from typedefs to new file.
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

8 years agoQuiet warnings with clang-3.7
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

8 years agoFix no wallcycle support
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

8 years agoRemoved nbnxn kernel blendv optimization
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

8 years agoMerge branch release-5-1
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

8 years agoOutput replica exchange order description to debug
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

8 years agoFix intermolecular interactions with small mols
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

8 years agoReplace boost::exception_ptr with std::exception_ptr
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

8 years agoEnable 64-bit cycle counters on ARMV7a
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

8 years agoFix signal type
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

8 years agoSplit SIMD implementations into 4 files
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

8 years agoReplace boost::shared_ptr with std::shared_ptr
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

8 years agoMoved GMX_SIMD_* macros from ifdefs to values 0/1
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

8 years agoReplaced NOTSET from typedefs.h by local solutions.
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

8 years agoFix bug in cycle subcounter management
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

8 years agoRemove remaining scoped_ptrs
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