alexxy/gromacs.git
9 years agoSort includes outside src/gromacs
Teemu Murtola [Sun, 7 Sep 2014 17:48:36 +0000 (20:48 +0300)]
Sort includes outside src/gromacs

Change-Id: I7efefc3835d1a5974886ef680a9fb0ddce11ee3e

9 years agoSort all includes in src/gromacs
Teemu Murtola [Sat, 6 Sep 2014 16:43:24 +0000 (19:43 +0300)]
Sort all includes in src/gromacs

Used:
  admin/reformat_all.sh --pattern=src/gromacs includesort -B=../build
after building the doc-check target (whose dependencies are needed for
the sorter).

Change-Id: Icde0fb5cb5bc082fb4381d4cba1211329bad3fa5

9 years agoUse absolute include paths in nbnxn kernels
Teemu Murtola [Mon, 8 Sep 2014 14:09:39 +0000 (17:09 +0300)]
Use absolute include paths in nbnxn kernels

Currently, the WIP automatic include sorter expects these files to be
included as paths relative to src/, and so does doc-check after changes
done for the include sorter.  Change the generator source files to
account for this, and regenerate the kernels.  Can be improved in the
future.

Make the kernel generator work even if the current working directory is
not the same as the script directory.

Change-Id: Ibc603dd0c85291f0c8fede394d9fa35b39c3a0a4

9 years agoManually sort some includes in src/gromacs
Teemu Murtola [Sat, 6 Sep 2014 04:03:02 +0000 (07:03 +0300)]
Manually sort some includes in src/gromacs

Sort manually includes in files where there are #ifdefs within the
include statements and the automatic sorter does not do a good job
because of this.

This commit does this for files found in src/gromacs/.  Files from other
locations will be done in a separate change if there are any.

Fix nbnxn_cuda.h to work without requiring code to include
nbnxn_pairlist.h first.

Change-Id: I26fa1a28ea9094a62c826d8ee65ddabac345da68

9 years agoImprove performance of MIC exponential
Erik Lindahl [Wed, 9 Jul 2014 19:14:29 +0000 (21:14 +0200)]
Improve performance of MIC exponential

The limited precision is due to argument scaling
rather than the exponential function lookup, so
instead of iterating we can improve the accuracy
with a simple correction step, similar to what
was done for the recent AVX-512ER implementation.

Change-Id: If55e7c4cefac5022e7211dfa56686cb9ee03a54a

9 years agoRemove .tpa, .tpb, .tpx, .trj files. Part of #1500.
David van der Spoel [Tue, 9 Sep 2014 05:55:17 +0000 (07:55 +0200)]
Remove .tpa, .tpb, .tpx, .trj files. Part of #1500.

Change-Id: Ia055cbf5311bf8780ca826c767207e5172d1b7e2

9 years agoAdded flat-bottom cylindrical restraints in x and y.
Justin Lemkul [Thu, 14 Aug 2014 23:04:34 +0000 (19:04 -0400)]
Added flat-bottom cylindrical restraints in x and y.

The code previously only allowed the long axis of the cylinder
to be aligned along z.  This patch allows the cylinder to be
aligned along any axis.

Old topologies and .tpr files will still work for all geometries with
g values from 2 to 5, as 2 is now just a synonym for a z-directional
cylinder.  The new values are g=6 for x, g=7 for y, and g=8 for z.
The manual has been updated to reflect these changes.

Introduced a new static function that computes forces and energy for the
flat-bottom restraint.

Refs #1577

Change-Id: I40e0bd35225170e13a18ee54f6798470e697f29d

9 years agoMerge release-5-0 into master
Roland Schulz [Wed, 10 Sep 2014 04:16:09 +0000 (00:16 -0400)]
Merge release-5-0 into master

Conflicts:
CMakeLists.txt
only version changes not needed in master
src/gromacs/utility/gmxassert.h
better fix already in master

Change-Id: I8af70d807972758149e9f69b420d528269e9bebd

9 years agoFixed DD state collection issue
Berk Hess [Tue, 9 Sep 2014 12:35:52 +0000 (14:35 +0200)]
Fixed DD state collection issue

Collecting the cg distribution state to the master (for output
of replica exchange) could go wrong when the DD was out of sync.
This code path was probably never executed.

Change-Id: I14b41c15ddc827a46f7c6448fb7bd90414f8e210

9 years agoConverted groupcoord to C++.
Rossen Apostolov [Mon, 8 Sep 2014 14:07:37 +0000 (16:07 +0200)]
Converted groupcoord to C++.

Change-Id: I8b840ccd3261fabaeb702302821d36279473e1dd

9 years agoConverted fft files to C++.
Rossen Apostolov [Wed, 3 Sep 2014 09:54:39 +0000 (11:54 +0200)]
Converted fft files to C++.

Change-Id: I33609cb7019b216f1f675110ecc37bdd882dcfa5

9 years agoAdd 64-bit AArch64 asimd SIMD support
Erik Lindahl [Wed, 2 Jul 2014 12:15:32 +0000 (14:15 +0200)]
Add 64-bit AArch64 asimd SIMD support

This adds the low-level SIMD implementation
for the 64-bit ARM AArch64 architecture in
single and double precision. We use the
asimd (advanced SIMD) nomenclature that is
also present in the CPU flags, but this is
the same as AArch64-neon, and present on all
AArch64 hardware. Just as for the 32-bit ARM
Neon support in the parent patch this will not
generate kernels yet, and for this reason we do
not yet enable AARCH64_ASIMD by default. Unit
and regression tests pass on AArch64 hardware
with gcc-4.9.

Change-Id: I67b2615d30e2038af480270f934a6d2788c3ed7b

9 years agoAdd 32-bit ARM Neon SIMD support
Erik Lindahl [Tue, 1 Jul 2014 08:59:57 +0000 (10:59 +0200)]
Add 32-bit ARM Neon SIMD support

This adds the low-level SIMD implementation
for 32-bit ARM Neon instructions. We will still
not generate nbnxn kernels for it; that is coming
in a future update. For this reason we will also
not enable ARM_NEON automatically in GMX_SIMD yet.
The port passes our unit tests on
tcbl04.theophys.kth.se (ARMv7).

Change-Id: I61f771970777e82fcef757ab6915e07061912957

9 years agoCheck for implicit solvent + Verlet scheme
Berk Hess [Mon, 8 Sep 2014 07:36:04 +0000 (09:36 +0200)]
Check for implicit solvent + Verlet scheme

Fixed #1570

Change-Id: I8734c2dc99d3bc3e0a79ae043d86854446f3b495

9 years agoSupport custom default extension for FileNameOption
Teemu Murtola [Sun, 27 Jul 2014 04:42:53 +0000 (07:42 +0300)]
Support custom default extension for FileNameOption

Add FileNameOption.defaultType() to allow changing the default extension
used for file types that accept multiple extensions.  About 1% of the
existing t_filenm declarations seem to use such a feature.

Make parse_common_args() deduce the value for this from the value of
t_filenm.fn, if it contains an extension.

Extend unit tests to cover these cases.

Change-Id: Idf8d1c6b70b88d58bbf12398bd16f57412eab065

9 years agoRemove unnecessary extensions in t_filenm defaults
Teemu Murtola [Sun, 27 Jul 2014 04:31:56 +0000 (07:31 +0300)]
Remove unnecessary extensions in t_filenm defaults

Several tools had an extension specified for the default file name in
t_filenm, but that extension matched either the only accepted extension
for the file type, or to the default extension for that type.

To keep the code more uniform, remove those unnecessary declarations.
This leaves <10 instances where t_filenm specifies a non-default
extension for the default file name (which doesn't currently work).
Probably some of those could also be removed, but at least a few are
justified, so a subsequent commit will add support for that.

Change-Id: I28053b6b407783b515144aad5351f27bbc2b6ba7

9 years agoMore consistent default handling for StringOption
Teemu Murtola [Tue, 26 Aug 2014 16:28:43 +0000 (19:28 +0300)]
More consistent default handling for StringOption

For enumerated StringOptions, the enum indexes were not always
consistently handled.  Added a few tests for the behavior, and fixed it.
Now the storeEnumIndex() option works consistently in that if the caller
specifies an initial value for the variable, and there is no other
default, the caller-provided value is preserved.  Also, the stored enum
index is properly updated if a default value is provided through a value
in the output variable.

Fixes #1586

Change-Id: Ib9d24e977dbfde6b23ba90271574cdd43c70c1bd

9 years agoUpdate template/README
Teemu Murtola [Wed, 3 Sep 2014 04:08:10 +0000 (07:08 +0300)]
Update template/README

Add a link to Doxygen documentation about the template, and replace
outdated information about the build system with a link to a more
up-to-date description in the Doxygen documentation.

The links are to the nightly Doxygen build for now and for simplicity,
but in principle could be replaced by links to deployed documentation
for a release once that happens.

Change-Id: I0e9085aa77ab9e473405a8d3619d92fbb4ae255c

9 years agoRemove some include order dependencies
Roland Schulz [Sun, 24 Aug 2014 06:56:12 +0000 (02:56 -0400)]
Remove some include order dependencies

Add explicit #include statements to headers that need definitions from
other headers, instead of relying on the including code to include those
headers earlier.  This allows reordering and refactoring #include
statements without breaking the compilation in unrelated pieces of code.

This set of changes is sufficient to make things compile after applying
the WIP automatic include sorter with the default order; other ordering
may expose more such dependencies.

Change-Id: I52536bca8930f1c489b084327071f090eec8a445

9 years agoFix build for external boost 1.56.0
Roland Schulz [Fri, 5 Sep 2014 20:23:19 +0000 (16:23 -0400)]
Fix build for external boost 1.56.0

exception/detail/attribute_noreturn.hpp has been removed in 1.56. We
shouldn't have used a detail header in the first place. Use Gromacs
own noreturn attribute.

Also:
- rename GMX_ATTRIBUTE_NORETURN to gmx_noreturn to match unused,
  restrict, and inline
- moved gmx_noreturn to basedefinitions.h
- defined gmx_noreturn for MSVC.
- always use attribute at the beginning not the end, to make it work
  with MSVC (also is more consistent)

Change-Id: Ieaeec03182be9a9d248bb460dae389270e806045

9 years agoSimplify AVX integer load/store
Roland Schulz [Sun, 6 Jul 2014 21:47:19 +0000 (17:47 -0400)]
Simplify AVX integer load/store

Also has the potential to improve performance on some architectures
(if there is a domain crossing penalty - not sure whether any AVX capable
generation has a penalty).

Change-Id: Icc7b136571fc9ad1dbabeabe446c93e8816ec678

9 years agoFix build for external boost 1.56.0
Roland Schulz [Fri, 5 Sep 2014 18:46:47 +0000 (14:46 -0400)]
Fix build for external boost 1.56.0

exception/detail/attribute_noreturn.hpp has been removed in 1.56. We
shouldn't have used a detail header in the first place. In master
we can use GMX_ATTRIBUTE_NORETURN but 5.0.x it is defined only
for code analysis not for compilers.

Change-Id: I6f26d6ddc62c73f583d324f7c794a499c274b394

9 years agoRemove unnecessary config.h includes
Teemu Murtola [Tue, 19 Aug 2014 03:38:10 +0000 (06:38 +0300)]
Remove unnecessary config.h includes

Now that all the blanket definitions that need to appear everywhere are
in gmxpre.h, remove unnecessary uses of config.h.  Kernel files left
alone for now.

Change-Id: I1e0e7b1f842c5182334687ad86afaee176e31bf2

9 years agoMove some defines to gmxpre.h for thread-MPI
Teemu Murtola [Fri, 5 Sep 2014 18:55:55 +0000 (21:55 +0300)]
Move some defines to gmxpre.h for thread-MPI

Thread-MPI requires TMPI_WAIT_FOR_NO_ONE to be defined consistently in
all code that may use structs that use TMPI_YIELD_WAIT_DATA, and there
are several of those structs.  Moved the definition for this macro to
gmxpre.h, so that it should be defined everywhere and not cause
surprises.  Rationale for not moving any other defines (some are used by
thread_mpi/include/*) is given in comments, and if/when thread-MPI is
going to disappear sooner or later, there hopefully will not be much
more code introduced that would depend on it and would require a more
robust mechanism, or warrant changing thread-MPI itself.

Change-Id: Ic9f1c2c63fee183e65506f06fdc84d10cc5f97b9

9 years agoAnother batch of added config.h
Teemu Murtola [Thu, 4 Sep 2014 18:45:56 +0000 (21:45 +0300)]
Another batch of added config.h

Include config.h explicitly in most places where it is used instead of
relying on getting the definitions from "somewhere".

Change-Id: I3c6702cea59fca10226a13714c8ffddc482c224a

9 years agoMake doc-check fail the build on warnings
Teemu Murtola [Fri, 5 Sep 2014 17:44:03 +0000 (20:44 +0300)]
Make doc-check fail the build on warnings

This makes it easier to run it in Jenkins, even if it makes it work
inconsistently compared to the Doxygen targets.

Change-Id: Ifc469fb598f1f3287bc1a5dded231b304023a810

9 years agoMerge "Merge release-5-0 into master"
Teemu Murtola [Fri, 5 Sep 2014 17:51:17 +0000 (19:51 +0200)]
Merge "Merge release-5-0 into master"

9 years agoVersion bumps after new release
Mark Abraham [Fri, 5 Sep 2014 12:21:56 +0000 (14:21 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: Ie5d579a360e935743e99577e0d01779569156893

9 years agoVersion 5.0.1
Mark Abraham [Fri, 5 Sep 2014 12:20:27 +0000 (14:20 +0200)]
Version 5.0.1

Bumped version numbers to remove -dev tags, bumped regressiontest
md5sum.

Change-Id: I1ec0a9b850a796d44e89025b742521ff48d8f482

9 years agoMerge release-5-0 into master
Roland Schulz [Thu, 4 Sep 2014 16:48:52 +0000 (12:48 -0400)]
Merge release-5-0 into master

Conflicts:
CMakeLists.txt
trivial
share/template/cmake/FindGROMACS.cmakein
deleted in master
src/gromacs/utility/gmx_header_config_gen.h.cmakein
applied to src/gromacs/utility/gmx_header_config.h
src/gromacs/commandline/pargs.cpp
applied to src/gromacs/commandline/cmdlinemodulemanager.cpp
src/gromacs/gmxlib/gmx_thread_affinity.c
trivial
src/gromacs/gmxlib/main.cpp
applied to src/gromacs/utility/basenetwork.cpp
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/*.c
Merged the template and rerun the generator
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_template_sparc64_hpc_ace_double.pre
trivial
src/gromacs/utility/futil.cpp
change unnecessary (function deleted)
Other changes:
src/gromacs/fileio/vmdio.c
removed duplicate config.h

Change-Id: Ib4237944773e41d7b52e8c0ee181da717d2b26f3

9 years agoAdd Mingw warnings
Roland Schulz [Wed, 3 Sep 2014 21:48:23 +0000 (17:48 -0400)]
Add Mingw warnings

Change-Id: I8825ee1948fe03be751f09bc87db050f89fa49bd

9 years agoSlight simplifcation of 2xnn
Roland Schulz [Mon, 25 Aug 2014 16:37:25 +0000 (12:37 -0400)]
Slight simplifcation of 2xnn

Change-Id: Ibca1e9bb2d3a3657fa684050d0080280ac7269d8

9 years agoInclude config.h directly if used
Teemu Murtola [Tue, 19 Aug 2014 03:42:16 +0000 (06:42 +0300)]
Include config.h directly if used

Include config.h directly in files that use definitions from there.
Only gmx_blas/gmx_lapack are exceptions, where the header does the
inclusion for simplicity.  There is also one of the kernel inner loop
files in nbnxn kernels that relies on the source file including
config.h.

Change-Id: Ibea7d3fafb0e7de5ee3d40e52c68fef5646edf37

9 years agoMake doc-check silent for in-source build
Teemu Murtola [Thu, 4 Sep 2014 03:26:38 +0000 (06:26 +0300)]
Make doc-check silent for in-source build

Change Doxygen comment for one file to make the 'doc-check' target
warning-free for an in-source build (used by Jenkins).

Change-Id: I0bf8f68ea33ee2c6204948ab0bc495ad2044e65e

9 years agoMerge "Merge release-5-0 into master"
Teemu Murtola [Thu, 4 Sep 2014 14:48:14 +0000 (16:48 +0200)]
Merge "Merge release-5-0 into master"

9 years agoCreated bonded module
Mark Abraham [Tue, 20 May 2014 20:32:20 +0000 (22:32 +0200)]
Created bonded module

Converted files to C++, eliminated unused variables, reduced #include
dependencies, used static_cast, made more use of position vectors in x
const-correct, removed some gmx_unused arguments that were really
unused. Doxygen will follow once there's been some more cleanup and
there's a little more internal structure to the module.

Left bonded-threading.* files behind, because they don't belong
with the bonded-interaction computation machinery. They will move
into the bonded module shortly.

Noted TODOs for future cleanup.

Change-Id: I0fae6f27adcf316cfe673ecf48688cb24dfb3469

9 years agoK-computer specific modifications
Erik Lindahl [Wed, 30 Jul 2014 13:06:50 +0000 (15:06 +0200)]
K-computer specific modifications

This commit implements most of the K-computer-
specific changes for Gromacs-5.0. The HPC-ACE
SIMD module has been added since we need the
exponentials for LJPME, and there are also some
fixes to the LJPME nonbonded accelerated group
kernels that prevented them from compiling.
The SIMD unit tests have been modified to avoid
making assumptions about the internal storage
being single or double, since HPC-ACE only
supports double. The toolchain files have
been updated and moved to the platform subdir,
and we now have a separate module to handle
Gromacs-specific flags and settings for K.

Change-Id: I5b832809b5dd52ef4b72f6cd41b1b3da1c036a57

9 years agocmake: missing quote
Christoph Junghans [Wed, 3 Sep 2014 23:15:12 +0000 (17:15 -0600)]
cmake: missing quote

Found on my old MacBook, where CMAKE_BUILD_TYPE is empty by default.

Change-Id: Icf63666f4b4c3f18214ba091819b0238d7f4a225

9 years agoMerge release-5-0 into master
Roland Schulz [Wed, 3 Sep 2014 17:47:25 +0000 (13:47 -0400)]
Merge release-5-0 into master

Conflicts:
cmake/gmxDetectSimd.cmake
cmake/gmxSetBuildInformation.cmake
share/template/cmake/FindGROMACS.cmakein
change superseded in master
src/gromacs/fileio/mdoutf.h
src/gromacs/gmxlib/network.c
src/gromacs/gmxlib/oenv.cpp
src/gromacs/legacyheaders/types/simple.h
change applied to
src/gromacs/utility/real.h

Change-Id: Ib076dc9894f0d590a243a7504c3db7daf2f72beb

9 years agoFix MingW build
Roland Schulz [Mon, 1 Sep 2014 02:25:26 +0000 (22:25 -0400)]
Fix MingW build

Change-Id: Id6025838e274305266f0f90eda2ddbb48355d792

9 years agoFixed sc_power==48 crash in single precision
Erik Lindahl [Tue, 2 Sep 2014 09:01:20 +0000 (11:01 +0200)]
Fixed sc_power==48 crash in single precision

A few summation variables in the free energy kernel
need to be double to avoid overflows for 48th power
softcore interactions.

Fixes #1580.

Change-Id: I3263e9eb83515ebaf9f6c04fd0e57ae179933d4e

9 years agoFix mis-use of fabs in LAPACK
Mark Abraham [Wed, 20 Aug 2014 08:20:21 +0000 (10:20 +0200)]
Fix mis-use of fabs in LAPACK

clang-3.5 warns that fabs is not the right approach.

Change-Id: Ib7125fcad2f4fda99abf7b67f296f24d84cb34be
(cherry picked from commit d9c0e416e180cdd7e0a158d8d9b9e1fe59ef89b7)

9 years agoMore hacking to get the template to detect and build
Mark Abraham [Tue, 2 Sep 2014 15:40:56 +0000 (17:40 +0200)]
More hacking to get the template to detect and build

Change-Id: Ifa945dedfcd70a571171fb156d5eaad37e1d761c

9 years agoFix that TNG tests were not run
Roland Schulz [Thu, 28 Aug 2014 19:38:24 +0000 (15:38 -0400)]
Fix that TNG tests were not run

Missing config.h meant there were not run.

Also fix rerun test without zlib. The input is zlib compressed and thus should
only be tested if zlib support is available.

Change-Id: Ia80abcb7584f698512578652621cb16c16e4188a

9 years agoFixed preprocessor error for AVX_128_FMA simd
Erik Lindahl [Tue, 2 Sep 2014 16:58:12 +0000 (18:58 +0200)]
Fixed preprocessor error for AVX_128_FMA simd

Some endifs appear to have been left when we
removed the MSVC-specific macros.

Change-Id: If5dcb9269348f2a34f2c37efb0856925bb473940

9 years agoFix formatting of fatal errors in g_bar
Erik Lindahl [Mon, 28 Jul 2014 18:49:22 +0000 (20:49 +0200)]
Fix formatting of fatal errors in g_bar

The lambda value has changed from a floating
point number into a complicated vector, so we
now have a small routine that formats the contents
of this vector for the fatal error routines.

Fixes #1531.

Change-Id: I41f7d27c16a76879d6f1f7dc669655d755c1ce3d

9 years agoFix PRINT_ALLOC_KB output
Roland Schulz [Tue, 26 Aug 2014 19:10:10 +0000 (15:10 -0400)]
Fix PRINT_ALLOC_KB output

Only an issue when compiled with -DPRINT_ALLOC_KB

Change-Id: I0fed328ba8e8f943ece3b38f63ce5b6cf84f0f5e

9 years agoTNG Fix for GMX_DOUBLE builds and where ZLIB is not available.
Magnus Lundborg [Tue, 26 Aug 2014 12:02:06 +0000 (14:02 +0200)]
TNG Fix for GMX_DOUBLE builds and where ZLIB is not available.

Also includes a check that the user name can be retrieved
before trying to set it.

Change-Id: I51d4ab2e590752980953d1926d4bea56fe1beffa

9 years agoFix data block length when uncompressing TNG data.
Magnus Lundborg [Fri, 29 Aug 2014 09:37:44 +0000 (11:37 +0200)]
Fix data block length when uncompressing TNG data.

Also, if there are no bonds in a molecule do not reserve
memory for them (to avoid a returned NULL pointer).

Change-Id: I06f9ad71711174017a229faec53d6dca08ee99d0

9 years agoFixed string var expansion in CMake due to CMP0053
Erik Lindahl [Tue, 2 Sep 2014 06:36:34 +0000 (08:36 +0200)]
Fixed string var expansion in CMake due to CMP0053

CMake policy 0053 means they are deprecating the usage of
@VAR@ in CMakefiles, so CMake-3.0.2 has started to
issue big warnings about this. Replace them with ${VAR}.

Change-Id: I4e63a4eb038edbc27019bfb89c7106e97aa194c2

9 years agoTNG: Handle large files on 32 bit systems.
Magnus Lundborg [Wed, 20 Aug 2014 06:56:12 +0000 (08:56 +0200)]
TNG: Handle large files on 32 bit systems.

Force 64 bit file positions and sizes to make sure that files
>2 GB work.

Change-Id: I70ea7fb96891dfa2d18d6188677e946b3a0a0ac6

9 years agoUpdated x-axis label for g_wham.
Justin Lemkul [Sun, 31 Aug 2014 15:10:33 +0000 (11:10 -0400)]
Updated x-axis label for g_wham.

It was confusing to label it "z" as this is not conventional notation
and several users have interpreted the output as applying only to the
z-axis.  This commit updates the x-axis label to be the more conventional
Greek "xi" used for reaction coordinates.

Change-Id: Ib60af7b03155a792792d3496184d298c834389e9

9 years agoWhen writing TNG include file closing in wallcycle.
Magnus Lundborg [Tue, 15 Jul 2014 13:54:49 +0000 (15:54 +0200)]
When writing TNG include file closing in wallcycle.

If there is an unwritten frame set when closing a TNG file
it will be written to disk. This includes compressing the
data (when writing compressed output), which can take a
significant amount of time if the system is large.
This should be included in the wallcycle count to make it
more fair.

Change-Id: Ida43fe73b8bc1b0c1326e286a4bff647410da45f

9 years agoFix and document issues with template.cpp
Mark Abraham [Fri, 4 Jul 2014 14:05:27 +0000 (16:05 +0200)]
Fix and document issues with template.cpp

Boost is a requirement for the template, so the FindGROMACS.cmake
needs machinery to deal with that. It will now find the Boost internal
to GROMACS.

pkg-config generally helps (if available and GMXRC is sourced), and
that use is now documented in the README.

Finding the GROMACS libraries and headers is also a requirement.  This
now works whether or not the user has sourced GMXRC or has pkg-config
installed. The user can over-ride this with CMAKE_PREFIX_PATH if they
want to.

The template needs to use the same compiler and compiler flags for
post-C++98 support, and this is now documented in the README. In
master branch, some of these issues are side-stepped, so take due care
when merging.

Fixes #1554

Change-Id: Id30cf5149ead4a3f719499e37776a00f08309afc

9 years agoMerge "Merge branch release-4-6 into release-5-0" into release-5-0
Mark Abraham [Mon, 1 Sep 2014 18:56:21 +0000 (20:56 +0200)]
Merge "Merge branch release-4-6 into release-5-0" into release-5-0

9 years agoFixes and updates to BlueGene/Q support
Mark Abraham [Sun, 17 Aug 2014 22:10:32 +0000 (22:10 +0000)]
Fixes and updates to BlueGene/Q support

Stopped hard-coding compilers, since these vary between sites. Moved
compiler suppressions to gmxCFlags to follow standard practice better.

Permitted use of software invsqrt, even though you don't want to use
it.

Suppressed several kinds of false-alarm warnings with whole-of-source
compiler suppressions. I would preferred to keep the suppressions as
file-level compiler flags, but the way we compile our list of source
files for libgromacs makes this inconvenient, and the compiler would
not accept the PBC-related suppression as a pragma, either. Build is
now finally free of warnings (so long as you don't use the built-in
LAPACK with bgclang-3.5). Restructured some helper functions that
return strings whose getters might throw, so that there is a return
value that will keep compilers happy in all cases.

Change-Id: I7158e165575934be2b76beee7c10f860ccf58b76

9 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Mon, 1 Sep 2014 16:22:23 +0000 (18:22 +0200)]
Merge branch release-4-6 into release-5-0

Conflicts:
CMakeLists.txt
Left version stuff in release-5-0 alone, because they should be
unaffected by release-4-6 version bumps.

Change-Id: I000cba25affa818b9e4283e85ae8cdf61f7c53a1

9 years agoMerge "Merge branch release-4-6 into release-5-0" into release-5-0
Mark Abraham [Mon, 1 Sep 2014 16:20:15 +0000 (18:20 +0200)]
Merge "Merge branch release-4-6 into release-5-0" into release-5-0

9 years agoAdded negative zero preprocessor constants
Erik Lindahl [Thu, 21 Aug 2014 06:35:41 +0000 (08:35 +0200)]
Added negative zero preprocessor constants

We had some discussions already when we started using negative
zero that it could be fragile on some compilers, and apparently
PGI is one of them. Maybe not the most important target, but it
makes sense to have a common constant in one place, and it can
also save some cycles in tight loops to clearly separate float
from double versions so we avoid extra precision conversions.

Change-Id: Id30a536b4f99f0310bfb2ec5185275c466cf5e07

9 years agoFixes issue with vsiten and verlet buffers.
David van der Spoel [Sat, 30 Aug 2014 14:17:38 +0000 (16:17 +0200)]
Fixes issue with vsiten and verlet buffers.

A loop counter for a loop over vsiten did not take into
account that multiple entries make up one vsiten
particle. Part of #1579.

Change-Id: Ic9a79e89ea9ef8f9f529c9d4a6c5cf05f65e9c7d

9 years agoVersion bump after 4.6.7
Mark Abraham [Fri, 29 Aug 2014 13:47:10 +0000 (15:47 +0200)]
Version bump after 4.6.7

Change-Id: I1f2e73c2b94f31b67e65bf7cf188fb542391ab4d

9 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Thu, 28 Aug 2014 14:22:11 +0000 (16:22 +0200)]
Merge branch release-4-6 into release-5-0

Conflicts:
src/gromacs/fileio/gmxfio.c
Used new release-4-6 code calling renamed md5 functions

src/gromacs/gmxana/gmx_covar.c
Used gmx_ffclose, not ffclose, for file opened with xvgropen.

Change-Id: If6f9cb61bf7eab06dfdc61a03ad89ed38d599382

9 years agoFixed two PME issues with MPI+OpenMP
Berk Hess [Fri, 15 Aug 2014 09:20:28 +0000 (11:20 +0200)]
Fixed two PME issues with MPI+OpenMP

Change 272736bc partially fixed #1388, but broke the more general
case of multiple MPI communication pulses in PME. Change 272736bc
incorrectly changed tx1 and ty1. This change has been reverted.

Change 27189bba fixed the incorrect PME grid reduction with multiple
thread grid overlap in y. But it broke the, much more common, case
where the y-size of the PME grid is not divisible by the domains in y.
This change, incorrectly, changed buf_my.

Now buf_my is set to the correct value, which solves both issues.

Fixes #1578.
Refs #1388 and #1572.

Change-Id: Id2d7d013a3b8cdc04eda1fb026567088a38ec81f

9 years agoFixed bugs in vsiteN with OpenMP
Berk Hess [Tue, 19 Aug 2014 08:10:48 +0000 (10:10 +0200)]
Fixed bugs in vsiteN with OpenMP

Fixes #1579.

Change-Id: I42d234f4ad6a94e8f7b6b8236ea119860dd9f7ab

9 years agoMerge release-5-0 into master
Roland Schulz [Sun, 24 Aug 2014 17:36:51 +0000 (13:36 -0400)]
Merge release-5-0 into master

Conflicts:
install-guide/configure-install-guide.cmake.in
applied to docs/configure-markdown.cmake.in
Moved doxygen/cycle-suppressions.txt -> docs/doxygen/cycle-suppressions.txt
docs/CMakeLists.txt: replaced PROJECT_VERSION with GMX_VERSION_STRING

Change-Id: I61724a10a5331fdf747edd411dfa2f2256cd3f6b

9 years agoInitialize unused velocity constraint components
Berk Hess [Fri, 22 Aug 2014 10:37:49 +0000 (12:37 +0200)]
Initialize unused velocity constraint components

With domain decomposition, velocity components for communicated
atoms could be uninitialized. These components were never used, but
this could lead to valgrind warnings and floating point exceptions.

Fixes #1576.

Change-Id: Ic673680699578ddf62c2d240342138cbc16490c8

9 years agoPrecalculate pbc shift for analysis nbsearch
Teemu Murtola [Sat, 23 Aug 2014 03:48:55 +0000 (06:48 +0300)]
Precalculate pbc shift for analysis nbsearch

Instead of using pbc_dx_aiuc(), precalculate the PBC shift between grid
cells outside the inner loop when doing grid searching for analysis
neighborhood searching.  In addition to improving the performance, this
encapsulates another piece of code that needs to be changed to implement
more generic grids.

Change-Id: Ifbbe54596f820b01572fe7bb97a5354556a4981d

9 years agoImprove analysis nbsearch grid mapping
Teemu Murtola [Sat, 23 Aug 2014 03:27:24 +0000 (06:27 +0300)]
Improve analysis nbsearch grid mapping

Now the analysis neighborhood search implements its own version of
put_atoms_in_triclinic_unitcell().  While computing the index of the
correct grid cell, it is relatively easy to produce also the coordinates
that lay within that cell instead of using a separate call.  This
provides two benefits:
 - It avoids rare rounding problems if put_atoms_in_triclinic_unitcell()
   would put the atom right at the edge of the box, but the mapping code
   would consider it outside the box, causing out-of-range grid cell
   index to be generated.
 - It allows to customize the grid mapping more freely (e.g., to create
   grids that are not periodic).

Change-Id: Ib7602fa49a1b8f7882a63843322786b3e51e8e32

9 years agoBackport of 'Remove unused figures from share/html/'
Teemu Murtola [Sun, 8 Jun 2014 04:22:47 +0000 (07:22 +0300)]
Backport of 'Remove unused figures from share/html/'

from master branch. Some of the flowchart images are also unused, but
left them there for completeness.

Change-Id: Ia47f9ac62f865f60c6f1998f407d62c9ba6c66f2

9 years agoGeneralize markdown configuration machinery
Mark Abraham [Thu, 10 Jul 2014 12:52:15 +0000 (14:52 +0200)]
Generalize markdown configuration machinery

This implementation scales a bit better as we increase the number of
markdown files. It may even be easier to understand! Preserves
existing top-level targets, and general behaviour. The full ARGN
functionality is not yet used, but it will be shortly.

Introduced stub user guide, with HTML and PDF build.

Change-Id: I198f273a08f81035694c3efefd35a5b2f2af7f0d

9 years agoUnify documentation for webpage build
Mark Abraham [Mon, 7 Jul 2014 07:43:13 +0000 (09:43 +0200)]
Unify documentation for webpage build

The new webpage build can be run either from a code repo (for
development), or from the unpacked source tarball (for actual
deployment). The latter is useful to ensure the documentation reflects
the tarball, and because the tarballs and their md5sum values must be
available for building the webpage. A Jenkins flow job can build the
tarballs and then construct the webpage for automated delivery. The
machinery is active only if GMX_BUILD_WEBPAGE is set (and other pieces
in place), so will be transparent to normal users.

Created configurable top-level index.md inside the new docs top-level
directory. Various components have moved into this directory, but each
can still be built independently.

Imported some basic (but pandoc-specific) CSS from
https://gist.github.com/ryangray/1882525

Made a new top-level index.md, and made it build HTML with Pandoc and
use the CSS. Later, we can consider making the whole static site build
work with some generator, e.g. to make links automatically.

Established CMake variables for configuring the webpage build with
the names of tarballs and their md5sum values. Builds from the repo
don't include this part of the webpage.

Moved the install guide into the new docs directory. Minor fixes to
header levels. Generated PDF install guide also. Used
PANDOC_EXECUTABLE instead of hard-coded "pandoc."  Made it use the
CSS.

Moved reference manual build into the new docs directory, and linked
its default setting to GMX_BUILD_WEBPAGE.

Moved old html guide content into the new docs directory. This still
installs in the old way. Fixed broken links for xpm2ps and grompp.
Added rudimentary hdb.html to fix missing link target. Removed text
that linked to ancient material that no longer semes to exist.

Moved doxygen generation into the new docs directory. The useful
output now goes directly to build/docs/html, and logs to
build/docs/doxygen.

Bumped copyright years to keep uncrustify script happy.

Bumped top-level CMakeLists.txt and CPackInit.cmake to check for the
new correct paths when building tarballs.

Added config file for linkchecker to help automate checking
the links all work.

Refs #1242

Change-Id: I8e5cf98b2997b76f56b24f45262c9c9eebf9900e

9 years agoFix zlib usage with TNG
Mark Abraham [Mon, 4 Aug 2014 22:42:26 +0000 (22:42 +0000)]
Fix zlib usage with TNG

Using zlib for TNG requires also that the the #include file can be
found, and this can be in a non-standard path. One part of this commit
should be rolled back into the TNG repo.

Change-Id: Iaa70ddd4f5471e405404148e6e83067d5ea52a27

9 years agoMove -nice handling to CommandLineModuleManager
Teemu Murtola [Fri, 22 Aug 2014 04:02:55 +0000 (07:02 +0300)]
Move -nice handling to CommandLineModuleManager

Now also the tools written using the C++ framework support the -nice
command-line option.  The system also behaves more consistently, as now
all programs except mdrun and gmx-view default to -nice 19.  Previously,
there was no really consistent logic for where PCA_BE_NICE was set and
where not.

Remove PCA_BE_NICE as it is no longer used.  parse_common_args() no
longer has any options that it unconditionally adds, which completes one
step in full migration to the wrapper binary.

Change-Id: I35a464d3263bc20e98ad1d381e93fdc2749931a2

9 years agoFixed TNG memory alignment problem and reset pointers.
Magnus Lundborg [Tue, 19 Aug 2014 15:26:00 +0000 (17:26 +0200)]
Fixed TNG memory alignment problem and reset pointers.

This is a temporary fix to the memory alignment problems on some
platforms. In the main TNG repository the whole I/O system is
rewritten to address this problem. This fix is to avoid the
problems without making too large changes.

There are also some pointers that were not reset after memory
was freed. This is also fixed in here.

This commit does not correspond to any commit in the TNG
repository.

Fixes #1542, #1546, #1547 and #1559.

Change-Id: I90a6406cccbc43fd57d4423c2b661019cf7763e8

9 years agoFix mis-use of fabs in LAPACK
Mark Abraham [Wed, 20 Aug 2014 08:20:21 +0000 (10:20 +0200)]
Fix mis-use of fabs in LAPACK

clang-3.5 warns that fabs is not the right approach.

Change-Id: Ib7125fcad2f4fda99abf7b67f296f24d84cb34be

9 years agoMisc. gmxpre.h-related changes
Teemu Murtola [Wed, 20 Aug 2014 19:13:17 +0000 (22:13 +0300)]
Misc. gmxpre.h-related changes

Related to selection parser generated files:
- Add gmxpre.h to the generated selection parser files. parser.cpp and
  parser.h are now generated with a newer bison version, since that is
  what I happened to have available.
- Minor improvements to the regeneration script.

Related to the doc-check target:
- Make the doc-check target happy again by removing a check that is not
  valid in the current state.  Minor clean-up in the script.
- Add a checker for the presence of gmxpre.h in all files where it is
  expected to appear.
- Move one suppression from config.h to gmxpre.h, since that is where
  the code now is.
- Use consistent #include "config.h" in vec.h and remove blanket
  suppression for that issue in doc-check.

Change-Id: I1e803ef000c5b2c685532c9e47df534ef5b263bc

9 years agoMerge release-5-0 into master
Teemu Murtola [Wed, 20 Aug 2014 18:03:25 +0000 (21:03 +0300)]
Merge release-5-0 into master

Conflicts:
  src/gromacs/legacyheaders/types/simple.h
    - applied gmx_unused change to basedefinitions.h
  src/gromacs/mdlib/sim_util.c
    - took adjacent changes from both branches

Change-Id: I42071be546015ede33b03a34ef0d95a5d5a3b09e

9 years agoAdd _GNU_SOURCE=1 to find clone() with PGI
Erik Lindahl [Fri, 8 Aug 2014 20:36:48 +0000 (22:36 +0200)]
Add _GNU_SOURCE=1 to find clone() with PGI

The PGI C++ compiler would not find clone()
in sched.h unless _GNU_SOURCE is set, and
it shouldn't hurt any other platforms if
we add it by default for gmock.

Change-Id: Id9446622bb49e17efd80ea1508e0ee40b48acdbe

9 years agoChange error to warning for missing OMP_NUM_THREADS
Roland Schulz [Wed, 16 Jul 2014 01:45:49 +0000 (21:45 -0400)]
Change error to warning for missing OMP_NUM_THREADS

Setting the default number of OpenMP threads using -ntomp works too. Using ntomp
allows to use the regressiontests. A proper fix should be done in master because
it requires larger code changes.

Change-Id: Ic47cebc9da6cf1b0624a1383d7ce23f93bd26dbe

9 years agoFix matrix pointer dereference bug in update.c
Erik Lindahl [Tue, 12 Aug 2014 18:11:40 +0000 (20:11 +0200)]
Fix matrix pointer dereference bug in update.c

The PGI compiler found a bug where an if-statement
checked against a dereferenced pointer rather than
the pointer itself being non-NULL.

Change-Id: If08977b818f28e1c78c35222d0f4efe6ae6aad65

9 years agoEnable SIMD register calling convention with gmx_simdcall
Erik Lindahl [Mon, 28 Jul 2014 18:33:42 +0000 (20:33 +0200)]
Enable SIMD register calling convention with gmx_simdcall

Cmake now checks if the compiler supports __vectorcall or
__regcall calling convention modifiers, and sets gmx_simdcall
to one of these if supported, otherwise a blank string.
This should enable 32-bit MSVC to accept our SIMD routines
(starting from MSVC 2013), and with ICC it can at least in
theory improve performance slightly by using more registers
for argument passing in 64-bit mode too. Presently this is
only useful on x86, but the infrastructure will work if we
find similar calling conventions on other architectures.

Fixes #1541.

Change-Id: I7026fb4e1fb6b88c8aa18b060a631cbb80231cd4

9 years agoAdd cycle counters for 64-bit ARM
Erik Lindahl [Tue, 19 Aug 2014 12:29:57 +0000 (14:29 +0200)]
Add cycle counters for 64-bit ARM

The gcc code has been tested on actual ARM64
hardware, but the MSVC one is only implemented
from the MSVC manual.

Change-Id: I13aac4d65345c684b6ddc5812ca9c3fcbe27b81a

9 years agoShorten plugin configuration message
Erik Lindahl [Tue, 12 Aug 2014 13:04:59 +0000 (15:04 +0200)]
Shorten plugin configuration message

This is just a minor note, so make sure it fits in a
single line rather than drawing attention to itself.

Change-Id: I086f3a90fdcdb92aa5920c27cc9176bae8c9bce4

9 years agoRemove unused config.h defines
Teemu Murtola [Tue, 19 Aug 2014 03:05:01 +0000 (06:05 +0300)]
Remove unused config.h defines

These were orphaned in pre-4.6 times, with an argument that an
architecture may appear where these may be necessary.  Since that has
not happened in two years, and the whole group kernels are scheduled for
removal, it is unlikely they ever get used again, either.

Change-Id: Ie8e9c12110a889d9b1ed80125feb1ab7de4483cc

9 years agoIntroduce gmxpre.h for truly global definitions
Teemu Murtola [Mon, 18 Aug 2014 18:50:38 +0000 (21:50 +0300)]
Introduce gmxpre.h for truly global definitions

Bulk of the changes is done by applying an awk script using
  admin/reformat_all.sh --filter=copyright \
      --pattern=src/\*.{cpp,cu,c} list-files | xargs add_gmxpre.h
where add_gmxpre.h contains
  #!/bin/bash
  for f in "$@" ; do
    awk 'BEGIN {add=1}
         /gmxpre\.h/ {add=0}
         /#include/ {if (add) print "#include \"gmxpre.h\"\n"; add=0}
         {print}' $f >$f.tmp
    mv $f.tmp $f
  done
In other words, by adding a gmxpre.h include before the first #include
statement.

Manual changes on top of that:
 - Adapt reformat_all.sh to support the --pattern option used above.
 - Manually edit the files directly under src/ to move some necessary
   defines from config.h to gmxpre.h, and to adapt the build system to
   generate the latter.
 - Move the inserted include outside the HAVE_CONFIG_H #ifdef in
   gmx_cpuid.c.
 - Adapt nbnxn kernel generator files to insert the #include at the
   proper place and regenerate the kernels.
 - Adapt group kernel generators to insert the #include at the proper
   place, and remove unnecessary include guards from generated _source_
   files.

Adaptation for scanner.l and parser.y in the selection code will come
later, together with a checker that checks that gmxpre.h is actually
included everywhere.

Motivation for the change is documented in the file comment for
gmxpre.h.  This file could potentially be used also for precompiled
headers to speed up the build, but that would require a lot more effort
than this...

Change-Id: I02f08c6765dd7179ce9db135b2d502172700f180

9 years agoFix nbnxn templates
Roland Schulz [Mon, 18 Aug 2014 06:47:09 +0000 (02:47 -0400)]
Fix nbnxn templates

Change 6400ed5de8 changed the generated files without changing
the template.

Change-Id: If42909a59d25a4e866de6af8874157b23c781128

9 years agoAdd Intel command line warning
Roland Schulz [Mon, 18 Aug 2014 00:36:05 +0000 (20:36 -0400)]
Add Intel command line warning

Fixes that build was printing a warning for scanner.cpp.

Related to #1483

Change-Id: I8a30fce82ab7ef0bfe735630b1ce4d9bb636b36d

9 years agoRemove check that auto-generated files exist
Roland Schulz [Sat, 16 Aug 2014 21:21:21 +0000 (17:21 -0400)]
Remove check that auto-generated files exist

The check is redundant because we check in cpack that all files
are available.

Change-Id: I8ccd37ac1b4b4225b389711c7fb7f2bb0e473f78

9 years agoFix Portland compiler warnings
Erik Lindahl [Mon, 11 Aug 2014 13:27:53 +0000 (15:27 +0200)]
Fix Portland compiler warnings

The PGI compiler finds several unreachable code
parts, mainly due to multiple return statements
being used. For most places this is just a
cosmetic fix to get rid of warnings, but functions
that are performance-sensitive should only have
a single return statement since the return
instruction causes a pipeline stall on many
architectures. This patch also fixes a warning
about an unused variable.

Change-Id: Ibf1c9e9dd1cdf29fc59c84afa4348e02bed270e6

9 years agoHalved the cost of the pull communication
Berk Hess [Mon, 11 Aug 2014 16:11:17 +0000 (18:11 +0200)]
Halved the cost of the pull communication

With DD the PBC reference coordinates are now only communicated
after DD repartitioning. This reduces the number of MPI_alltoall
calls from 2 to 1 per step, which can significantly improve
performance at high parallelization.

Added a cycle counter for pull potential.

Added checks for zero pull vectors to avoid div by 0.

Change-Id: Ib89ba9e14eaa887f59a5087135580bc29a20d7d0

9 years agoDon't build tests until they are run
Roland Schulz [Thu, 7 Aug 2014 23:04:12 +0000 (19:04 -0400)]
Don't build tests until they are run

There is no advantage to normal users, to build the tests until the
user decides to run them. Also avoids that the user thinks that
Gromacs doesn't compile on his platform if there is only a problem
with the testing framework.

Added a GMX_DEVELOPER_BUILD option which restores the old behavior.

Change-Id: Ifda2184eb45bf58b8798f21a29aea19bef57c690

9 years agoUse full path for legacyheaders
Roland Schulz [Fri, 25 Jul 2014 05:08:01 +0000 (01:08 -0400)]
Use full path for legacyheaders

Advantages:
simpler to setup tooling / IDE (just one path)
show immediately all usage of legacyheaders
No risk of accidentally working includes (together with using relative paths)

Used:
find src/gromacs/ src/programs/ src/testutils/ -name '*.c' -o -name '*.cpp' \
   -o -name '*.h' -o -name '*.cu' -o -name '*.cuh' -o -name '*.pre'|
   xargs -n1 python makeabspath.py

Manual changes to cmake and doxygen files to remove legacyheader include path.

makeabspath.py:
https://gist.github.com/rolandschulz/ee636f517d75e48bc68c

Related to #1557.

Change-Id: I6c1b51a573acfe7b0123485405f2494e97715f53

9 years agoRemove mdrun -seppot
Mark Abraham [Sat, 31 May 2014 17:43:09 +0000 (19:43 +0200)]
Remove mdrun -seppot

This output of rank-local energies is not needed for any routine use,
and isn't much use in mdrun -debug either. Removing it simplifies a
few code paths, including removing some dependencies on writing sane
things to the log file. Eliminated some now-unused parameters.

Refs #1292

Change-Id: I7628b78862144ae2478b6f42a6818915e3a22fe3

9 years agoFix gmx tune_pme with LJ-PME
Mark Abraham [Tue, 8 Jul 2014 20:39:52 +0000 (22:39 +0200)]
Fix gmx tune_pme with LJ-PME

Extend the range of vdwtype for which tune_pme will scale rvdw. This
makes tune_pme worth using with LJ-PME.

Change-Id: Iec702ae984cd062d47970380c0ca41f82e4c31d2

9 years agoFix wallcycle counting with md-vv, sd and sd2
Mark Abraham [Wed, 9 Jul 2014 20:36:31 +0000 (22:36 +0200)]
Fix wallcycle counting with md-vv, sd and sd2

Previously the coordinate update for the first half of velocity Verlet
and (where applicable) the second half of the SD integrators was left
out of the walltime accounting, and showed up in the "Rest"
section. With this fix, the number of "update" steps reported depends
on exactly which flavour of which integrator is in use, because
there's also some number of calls to do constraining and/or energy
communication. Those numbers vary with either the flavour of
integrator, or the number of iterations MTTK actually needs.

Change-Id: Ib294455b7277caf89018c413d6c1c0ebf93c6ddb

9 years agoDisable analysisdata generic tests if not compilable
Teemu Murtola [Fri, 8 Aug 2014 04:07:19 +0000 (07:07 +0300)]
Disable analysisdata generic tests if not compilable

If Google Test claims that typed tests are not supported, exclude the
analysisdata generic tests that use this functionality from compilation
(since they wouldn't compile).  Instead, add a dummy test that at least
shows a developer who runs the unit test executable directly that
something is missing (the ctest run still passes without any messages).

Change-Id: Iba9bcc4b993e5213fe48e24d52b09474e5801fa8

9 years agoMerge release-5-0 into master
Roland Schulz [Sat, 16 Aug 2014 04:30:10 +0000 (00:30 -0400)]
Merge release-5-0 into master

Conflicts (trivial):
src/gromacs/commandline/pargs.cpp
src/gromacs/gmxlib/gmx_thread_affinity.c
src/gromacs/options/filenameoption.cpp

Manual changes required for ConstArrayRef:
       src/gromacs/commandline/pargs.cpp
       src/gromacs/options/filenameoption.cpp
       src/gromacs/selection/selection.cpp
       src/gromacs/selection/tests/nbsearch.cpp
Manual moved REGRESSIONTEST_MD5SUM from
       CMakeLists.txt to cmake/gmxVersionInfo.cmake

Change-Id: I1a2038f72c1e1cfed830de5c540ab278dbb39cfe

9 years agoFixed output of eigenvalues in g_covar. Fixes #1575
Carsten Kutzner [Fri, 15 Aug 2014 14:44:44 +0000 (16:44 +0200)]
Fixed output of eigenvalues in g_covar. Fixes #1575

Commit 972032bfb8cd38 introduced a bug that would lead to eigenvalues
only written to .xvg file if "-last" is explicitly stated on the
command line. Otherwise no eigenvalues would appear in the .xvg file.
The eigenvalues are written in a loop from '0' to 'end', but since
'end' is initialized with '-1', the loop would never be executed.
This patch moves the code that computes 'end' one block upwards
before the output to file.

Change-Id: I738c9dd77ff9e6e2daae89b6d2063755dfba88af

9 years agoCorrected SIMD math overflow documentation
Berk Hess [Mon, 11 Aug 2014 12:26:22 +0000 (14:26 +0200)]
Corrected SIMD math overflow documentation

Added more details to the SIMD pmecorr and exp documentation.
Corrected the source of the PME-LJ kernel overflow.

Change-Id: If3f5a27a3bb49ebb67fc24d43ed849e75175cf3c

9 years agoFix CMake package config after recent version changes
Teemu Murtola [Thu, 14 Aug 2014 03:05:55 +0000 (06:05 +0300)]
Fix CMake package config after recent version changes

Combined merge of I49c5037 and I23ec2dc broke the build without any
conflicts, since usage for a variable that was renamed in the first was
added in the second.

The version management logic in the package config still needs some
extra thought, but that's better done separately to get the build fixed.

Change-Id: I93db8c0c5b515bc73f8e4e10eae86d9fd049975d