alexxy/gromacs.git
10 years agonb_kernel_sparc64_hpc_ace_double: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 19:13:04 +0000 (23:13 +0400)]
nb_kernel_sparc64_hpc_ace_double: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I55ffc910f53826529550c836af5d0c85c773074b
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_sse4_1_double: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 19:11:04 +0000 (23:11 +0400)]
nb_kernel_sse4_1_double: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I46b28dbf3a367c877fa7a90801936c9f40ffc8f7
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_sse2_double: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 19:09:01 +0000 (23:09 +0400)]
nb_kernel_sse2_double: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I2fa97a6b3e85666707e3dab11bc0da556233caba
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_avx_256_double: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 19:07:26 +0000 (23:07 +0400)]
nb_kernel_avx_256_double: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: Ia6ca3b66816da852ef13fea145d0c42ac5d17c91
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_avx_128_fma_double: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 19:05:11 +0000 (23:05 +0400)]
nb_kernel_avx_128_fma_double: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I3b7849c28b0d6c2e7a446086e7c506cdad881004
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_sse2_single: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 12:57:39 +0000 (16:57 +0400)]
nb_kernel_sse2_single: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I878b5c89378eec7f88304fda23dd8747a348a8a9
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_sse4_1_single: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 12:39:51 +0000 (16:39 +0400)]
nb_kernel_sse4_1_single: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: Ifabba35a46ac8e8fe11b6044b63e6c65947d4912
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_avx_128_fma_single: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 12:19:09 +0000 (16:19 +0400)]
nb_kernel_avx_128_fma_single: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I4cd73a5863349a44b11fa9480685ef25df4bed26
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agonb_kernel_avx_256_single: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 11:56:47 +0000 (15:56 +0400)]
nb_kernel_avx_256_single: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I48b8a816f75bc905c41656924fd0285c8a5aca48
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agoClarified logic in g_wham
Mark Abraham [Tue, 16 Jul 2013 07:39:29 +0000 (09:39 +0200)]
Clarified logic in g_wham

The fragment "!i==0" is less clear than "i!=0," and clang 3.4-SVN even
issues warnings about a possible problem. Checked with Jochen Hub (the
original author) and he agrees the new form is appropriate.

Change-Id: I640e2104b3aa2d740895ee1145e56b731b11350f

10 years agononbonded and nb_kernel_c: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sun, 14 Jul 2013 11:10:24 +0000 (15:10 +0400)]
nonbonded and nb_kernel_c: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I75cd722907de96082295dd119217b7b5fea13b19
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agomdlib: clean up -Wunused-parameter warnings
Alexey Shvetsov [Mon, 1 Jul 2013 07:22:01 +0000 (11:22 +0400)]
mdlib: clean up -Wunused-parameter warnings

Clean up (most) of unused params, nbnxn stuff still need cleanup
Also this commit removes some dead (unused) functions

Change-Id: I9aae68266f66a149565c3e5f6e06810db4de287b
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agoAdd unit tests for selection position calculation.
Teemu Murtola [Mon, 29 Apr 2013 03:35:41 +0000 (06:35 +0300)]
Add unit tests for selection position calculation.

Add unit tests for most functionality of poscalc.*.  These tests also
cover centerofmass.*.

Fixed two issues:
- POS_MASKONLY calculations had an inconsistent group set in the output
  positions (which was visible in the selection interface, returning
  incorrect set of atoms for the selection).
- Force calculation was incorrect.
These do not affect g_select, so only fixed for 5.0.

Part of #651, related to #1221.

Change-Id: I4dc6475f53fb3b1559bae9296f8c9f3e6dd14bf7

10 years agoAdd five new quotes
Mark Abraham [Tue, 16 Jul 2013 20:51:38 +0000 (22:51 +0200)]
Add five new quotes

(Also bumped line count, which was one too small previously.)

Change-Id: Ic545ae456b3bd2e6df2eadc296b43cda49aec5bc

10 years agoFix pthread detection for GMock
Teemu Murtola [Mon, 22 Jul 2013 15:11:56 +0000 (18:11 +0300)]
Fix pthread detection for GMock

FindPthreads.cmake was removed recently because it was an orphan.
It turns out that isn't true, because GMock was using it.
Rewrote that part of the build system to use the standard
FindThreads.cmake instead.

Also clarified that the CMakeLists.txt is part of the Gromacs build
system instead of being part of Google Mock.

Fixes #1310

Change-Id: I5055569b8534586c4faf3732d0e97c63ad7de408

10 years agoMerge "Merge branch release-4-6 into master"
Roland Schulz [Wed, 24 Jul 2013 07:01:05 +0000 (09:01 +0200)]
Merge "Merge branch release-4-6 into master"

10 years agoMerge branch release-4-6 into master
Mark Abraham [Fri, 19 Jul 2013 07:41:13 +0000 (09:41 +0200)]
Merge branch release-4-6 into master

Nothing controversial. Rename detection failed on
gmx_detect_hardware.h, so that resolution is done by hand.

Conflicts:
CMakeLists.txt
admin/mkhtml
src/gromacs/gmxlib/gmx_detect_hardware.c
src/gromacs/mdlib/nbnxn_search.h
src/programs/mdrun/runner.c

Conflict resolved in src/gromacs/legacyheaders/gmx_detect_hardware.h:
include/gmx_detect_hardware.h

Conflicts to do with pkgconfig are mostly not applicable to master
branch (except for change to libgromacs.pc.cmakein to add
@GMX_LIBS_SUFFIX@). Others resolved by deleting the files or change
sets:
src/gromacs/libgromacs.pc.cmakein
src/CMakeLists.txt
src/kernel/libgmxpreprocess.pc.cmakein
src/mdlib/CMakeLists.txt
src/mdlib/libmd.pc.cmakein
src/tools/libgmxana.pc.cmakein

Change-Id: I0c02d3a235b909e4d9ea628bb392ff9173bfc902

10 years agoConvenience methods for implementing main().
Teemu Murtola [Mon, 15 Jul 2013 04:23:06 +0000 (07:23 +0300)]
Convenience methods for implementing main().

Added a method to TrajectoryAnalysisCommandLineRunner that allows a
one-line main() method in user tools, removing some boilerplate code
that could break with Gromacs changes.  Forward the actual
implementation to CommandLineModuleManager, allowing it to do the same
processing as it does for the wrapper binary/symlinks to it.  This
allows for some simplification of TrajectoryAnalysisCommandLineRunner.

An extra method that runs any
  int (*method)(int argc, char *argv[])
method that calls parse_common_args() as main() through
CommandLineModuleManager could also be added, but left out of this
change for now.

Change-Id: I0b0d626fda50abe04c16e90a1c876262dcff81a4

10 years agoImprove program name reporting.
Teemu Murtola [Sun, 30 Jun 2013 09:52:48 +0000 (12:52 +0300)]
Improve program name reporting.

Now, the wrapper binary reports the name of the program as
'gmx-<module>' as soon as a module has been selected.  Error and help
messages are clearer, as well as the header printed during program
start-up.

Change-Id: I2754539ae6815405aeb22e42ad8b5452e525dbb3

10 years agoFix Doxygen warnings.
Teemu Murtola [Mon, 22 Jul 2013 04:47:10 +0000 (07:47 +0300)]
Fix Doxygen warnings.

Ibf32de31 introduced some undocumented members into
gmx::BinaryInformationSettings, which were causing Doxygen warnings.
Jenkins does not catch these in legacyheaders/...

Related to #1209.

Change-Id: I3c5c0c9818966290d3b298422905604b136d01c3

10 years agoUniform "generated by" information in output files.
Teemu Murtola [Fri, 5 Jul 2013 02:58:36 +0000 (05:58 +0300)]
Uniform "generated by" information in output files.

Extend the printBinaryInformation() function to make it possible to
write the lines in a particular comment format.  Use the function to
print out "Generated by" information in several output formats.  Removed
command_line() from statutil.h as it is no longer used.  Replaced most
uses of Program() with ShortProgram() where the actual path was not
relevant.

Also use printBinaryInformation() to print out information into the
mdrun log file.  Again print the copyright header to the beginning of
the log file.

Related to #1209.

Change-Id: Ibf32de318421a10d39f217517005fea408d19fbf

10 years agoMore files to C++.
Teemu Murtola [Wed, 3 Jul 2013 11:00:39 +0000 (14:00 +0300)]
More files to C++.

Switch a few more files to C++ compilation and resolve issues found: add
several extern "C" declarations, remove unused variables, move some
static variables from headers to source files.  Move gmx_ctime_r()
declaration to string2.h; it must be better to have one extra
declaration in an installed header than a mass of repeated declarations
in source files.  Remove a hack in smalloc.h; the code that prompted
that seems to have been removed in the kernel reorganization for 4.6,
and we are anyways not yet compiling a lot of legacy code with C++.
Suppress most scanf() warnings in these files.  Make cppcheck correctly
parse #ifdef __cplusplus blocks.  Add gmx_isnan().

The motivation for this selection of files is that these files write
output files where either command_line() or Program() is used to
indicate the currently running program.  Will replace those calls with a
uniform mechanism in a subsequent commit.

Change-Id: Ic1e90fcc08b1be6d4d6d257215f9523625ab347a

10 years agoOptions for controlling startup output.
Teemu Murtola [Thu, 4 Jul 2013 19:27:17 +0000 (22:27 +0300)]
Options for controlling startup output.

Add a -quiet option to the wrapper binary.  This option suppresses all
startup headers and the gmx_thanx() call in the end.  Restructure
CommandLineModuleManager::run() to avoid multiple paths that all need to
call gmx_thanx() and potentially also print the startup header.

Make -quiet suppress the startup header also in parse_common_args().
Reordering required by this causes invalid command-line option error
messages to be printed before the header gets printed, but this only
affects those few binaries that don't go through the wrapper binary.

Make gmx_print_version_info() callable through printBinaryInformation(),
and do this in the wrapper binary and in parse_common_args() in
response to -version.

Print the copyright in response -copyright in the wrapper binary.  Easy
to add to parse_common_args() as well, but even better would be to merge
the remaining few programs into the wrapper binary.

Part of #1209.

Change-Id: I0c7dddc91065b12f347da12acd82047e2d94b44c

10 years agoBe less verbose with program options.
Teemu Murtola [Fri, 5 Jul 2013 03:33:16 +0000 (06:33 +0300)]
Be less verbose with program options.

Don't print the list of program options by default when running the
Gromacs binaries.  The command line printed as part of the startup
header should provide any diagnostic value there is to this output.
Replace the previous -quiet option (that disabled this output) with
a -verbose option that enables this output again.  Left the mostly no-op
-quiet option there (there is still a special case of -quiet -h used by
gmx_tune_pme), because it will get new use shortly.
Removed the hidden -verb option whose value wasn't used.

Related to #1209.

Change-Id: I9730e1eb08a2ee35d26fd603f48e89f561dee50a

10 years agoPre-emptively fix some C++ warnings.
Teemu Murtola [Tue, 2 Jul 2013 16:51:38 +0000 (19:51 +0300)]
Pre-emptively fix some C++ warnings.

Moved sepdvdlformat from force.h into a source file to avoid warnings
about an unused variable.  These appeared as soon as a C++ source file
included force.h.  As an additional benefit, makes printing this
information more typesafe; this is how #1294 was found.

Change-Id: Id856fbe193d9b4a74ecfb49cba9eab03bad0a7ba

10 years agoUniform and less verbose startup for all binaries.
Teemu Murtola [Sat, 29 Jun 2013 12:24:39 +0000 (15:24 +0300)]
Uniform and less verbose startup for all binaries.

Now all binaries call gmx::ProgramInfo::init() as more or less the first
thing.  Removed set_program_name() as unnecessary, since the above call
does all that.  Make CommandLineModuleManager responsible of also
printing any common startup header, and add a method to suppress this
stderr output in unit tests.

Replace CopyRight() with a less verbose method and move the
responsibility of calling it to parse_common_args().
Added a PCA_STANDALONE flag for parse_common_args() to know when to do
this (can be removed once all programs are part of the wrapper binary).

Left the CopyRight() function still there, in case we want to add a
-license command-line option or similar to print that information.
Currently, it is not called from anywhere.  Removed GMX_NO_CREDITS and
some other unnecessary code from CopyRight().

Most stuff in contrib is broken by this.  There may be more changes
coming to the initialization sequence, and it will be simple to adapt
those programs that people want to get working again, but it is not
worth doing it more than once.

Part of #1209.

Change-Id: I5403dd259ab5f314cce3283aac275a6c26d4818d

10 years agoExtract Doxygen comments within #ifdef __cplusplus.
Teemu Murtola [Tue, 2 Jul 2013 05:51:15 +0000 (08:51 +0300)]
Extract Doxygen comments within #ifdef __cplusplus.

Also add documentation for some undocumented thread_mpi members exposed
by this.

Change-Id: I93ff0770d4032b92dc829257f773c11a93d78caa

10 years agolinearalgebra and fft: clean up -Wunused-parameter warnings
Alexey Shvetsov [Mon, 1 Jul 2013 04:20:01 +0000 (08:20 +0400)]
linearalgebra and fft: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: Iaad4b2d1a98584d6d72cdd1ecf43b788d9753715
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agogmxlib: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sat, 29 Jun 2013 21:11:09 +0000 (01:11 +0400)]
gmxlib: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: Ibbe8d775ca1c37338f968d124d773808a1784eae
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agoSupport for storing multipoint analysis data.
Teemu Murtola [Mon, 10 Jun 2013 18:24:23 +0000 (21:24 +0300)]
Support for storing multipoint analysis data.

Main changes:
- The storage frames now store a vector of "point set info" objects,
  which partition the vector of values into point sets, and annotate
  those sets with extra information (currently, the index of the first
  column).
- The implementation of the frame access wrappers in dataframe.* are
  adapted similarly, and methods are added to allow access to multiple
  point sets within a single frame.
- Added tests for multipoint storage.
- Other changes are adapting to these interface changes.

Still doesn't work perfectly; full support for addColumnModule()
requires reworking the logic in dataproxy.cpp.

Part of #869.

Change-Id: I21141bad83b3f2bb72ece9146aaec02792e6cd0e

10 years agoAdded citation to free volume paper.
David van der Spoel [Thu, 11 Jul 2013 13:25:07 +0000 (15:25 +0200)]
Added citation to free volume paper.

Change-Id: Idcc8d29813e13f259048e7ad6cc1f72b70cd7229

10 years agogmxpreprocess: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sat, 29 Jun 2013 10:10:44 +0000 (14:10 +0400)]
gmxpreprocess: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: I1805a829682baf54047390442bfcfa2a95cd0ee1
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agogmxana: clean up -Wunused-parameter warnings
Alexey Shvetsov [Sat, 29 Jun 2013 05:52:29 +0000 (09:52 +0400)]
gmxana: clean up -Wunused-parameter warnings

Clean up (most) of unused params

Change-Id: Ic9a521924e467d3779ed8c137f7afce44b200378
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agoFixed possible dereference of null pointer
Mark Abraham [Thu, 11 Jul 2013 23:32:16 +0000 (00:32 +0100)]
Fixed possible dereference of null pointer

getpwuid() can return null. For example, Shun Sakuruba reported that
on Cray XE6 compute nodes have passwd.h, but users will not have
passwd entries.

Fixes #1301

Change-Id: I66e8064438fc02591629b0d381bc00afd06795c0

10 years agoMake uncrustify.sh compatible with more recent env
Alexey Shvetsov [Mon, 1 Jul 2013 03:13:25 +0000 (07:13 +0400)]
Make uncrustify.sh compatible with more recent env

recent mktemp wants template in gmxuncrust.XXXXX format
also canonical *nix based which doesnt have -s arg

Change-Id: Ic054c4eef3d4a49b7bae96b1012ec323a347567d
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
10 years agoFixed typos in #include guard #defines
Mark Abraham [Tue, 9 Jul 2013 10:15:25 +0000 (12:15 +0200)]
Fixed typos in #include guard #defines

Change-Id: Ifb366f7b10de3a23952ef427bd0e2cb7e282ccea

10 years agoRemove orphan CMake file
Mark Abraham [Tue, 9 Jul 2013 09:39:34 +0000 (11:39 +0200)]
Remove orphan CMake file

This was added in Erik's original CMake commit, updated once,
and has never been used.

Change-Id: Idf920bd87e1bf37d532a5b460be64ef852c43844

10 years agoFixed minor admin issues
Mark Abraham [Fri, 5 Jul 2013 16:41:09 +0000 (18:41 +0200)]
Fixed minor admin issues

- The installguide.xhtml file is intermediate output, and
  should not be versioned
- There is no need for HTML files to have date stamps to maintain
- Bumped some version numbers

Change-Id: I2783501f697ee1eae557fdbf365a7aaf5d640500

10 years agomore pkg-config fixes
Christoph Junghans [Sat, 6 Jul 2013 00:48:29 +0000 (18:48 -0600)]
more pkg-config fixes

* fixed a typo from I57897609b9bbc558db01c237d3e24d78aa25a5ca
* fixed name of libmd in libmd.pc

Change-Id: I6be35d8f1c0d53d4e4298967f0dc63de2205a663

10 years agoBump version after 4.6.3 release
Mark Abraham [Mon, 1 Jul 2013 18:25:08 +0000 (20:25 +0200)]
Bump version after 4.6.3 release

Change-Id: I1d99c36e090b25ae70d7476715e97b972ae2778c

10 years agoFixed some inconsistencies in pkg-config files
Christoph Junghans [Thu, 4 Jul 2013 19:20:23 +0000 (13:20 -0600)]
Fixed some inconsistencies in pkg-config files

Change-Id: I57897609b9bbc558db01c237d3e24d78aa25a5ca

10 years agoSplit AnalysisDataStorageFrame into two.
Teemu Murtola [Sun, 2 Jun 2013 12:03:23 +0000 (15:03 +0300)]
Split AnalysisDataStorageFrame into two.

Main changes:
- Move parts of AnalysisDataStorageFrame that are only used internally
  by the data storage into a separate class, which is internal to
  datastorage.cpp.  The remaining public interface now only contains
  methods that are required to construct the in-progress frame/point
  set.
- Make AnalysisDataStorageFrame have a separate vector of column values,
  which then get transfered into the actual storage when necessary.
  This part is required for handling multipoint storage.
- Only keep AnalysisDataStorageFrame objects for in-progress frames.
  Without this part, the memory usage of full storage would double; now
  the memory usage only increases proportional to the number of
  concurrent data frames.
- Recycle the AnalysisDataStorageFrame objects for subsequent frames.
  Avoids memory allocation, as the temporary column values don't need to
  be reallocated for each frame.

These changes clarify the responsibilities in the code, and allow for a
much cleaner implementation of multipoint storage (subsequent commit).

The implementation may not be as clean as possible, but it will see
further changes in subsequent commits.

Refactoring in preparation for #869 and #1010, no functional change.

Change-Id: I40928ff10c5aded3b094604b37349b9fd174d267

10 years agoSwitch remaining main() functions and copyrite.c to C++.
Teemu Murtola [Sat, 29 Jun 2013 04:59:18 +0000 (07:59 +0300)]
Switch remaining main() functions and copyrite.c to C++.

Required to be able to use gmx::ProgramInfo from these (done in
separate commit), and simplifies the compilation of mdrun as well.

Resolved compiler/cppcheck/clang warnings that were present in these
files.  Some include file clean-up, motivated by the fact that force.h
causes warnings when included in C++ files, and fixing that requires
fixing #1294, where the solution is not yet decided on.

Change-Id: I69f4200c1c1783340d88381a6aca82151d1230cb

10 years agoRemove g_highway and vbox.c.
Teemu Murtola [Fri, 28 Jun 2013 11:52:10 +0000 (14:52 +0300)]
Remove g_highway and vbox.c.

g_highway hasn't been included in the build for a long time (never for
CMake), so I don't think anyone will miss it.  No need to keep it up to
date with changes done in program initialization for the wrapper binary.

vbox.c seems unused.

There are some other source files under src/ngmx/ that contain a main()
and are not included in the current build, but those seem some kind of
test programs, and don't seem to use much outside src/ngmx/, so left
them alone for now.

Related to #673.

Change-Id: I8b24f58450969e432dff677b8a9659e7bc544e00

10 years agoFurther copyrite.h cleanup.
Teemu Murtola [Fri, 28 Jun 2013 04:13:13 +0000 (07:13 +0300)]
Further copyrite.h cleanup.

- Rename thanx() to gmx_thanx().
- Make it responsibility of the wrapper binary to call gmx_thanx(),
  removing most existing calls.
- Remove unnecessary copyrite.h includes (many of them made unnecessary
  by the above change).
- One fix in qm_gamess.c that caused uncrustify to not parse the file
  correctly.

Change-Id: Ie74cdefa14f03b921f94d4b5931eb8e35a09f5af

10 years agoCorrected definition of EEL_USER
Mark Abraham [Tue, 25 Jun 2013 13:59:00 +0000 (15:59 +0200)]
Corrected definition of EEL_USER

Looks like a copy-paste typo occured at some point in the nbnxn
development. EEL_USER is only used in runner.c, and only to issue a
fatal error with user-supplied non-bonded potentials. That clearly
should be not applicable to eelPMESWITCH.

Fixes #1289

Change-Id: I4e987c81aec81a920779dd29d7c52e8b6d233b45

10 years agoComprehensive hwinfo structure concurrency fix.
Sander Pronk [Tue, 4 Jun 2013 20:31:08 +0000 (22:31 +0200)]
Comprehensive hwinfo structure concurrency fix.

The hwinfo structure and structures contained therein are inherently
global to any mdrun processes/ranks. This patch makes sure that
- The hwinfo structure is shared among all threads
- Only one thread creates a hwinfo structure
- The hwinfo structure is safe to read for all threads after they
    obtain it

In addition, it fixes the detection for pthread_setaffinity in thread_mpi.

This fixes concurrency issues with thread affinity settings with or
without MPI, and makes runner.c slightly easier to read because the
concurrency logic is pushed to gmx_detect_hardware.c

Fixes #1270, #1254

Note that #1254 issue 3 seems to be an OpenMPI bug.

Change-Id: I236e81923324d7873f3d8633889b91c7c02a7843

10 years agoScript for running uncrustify for modified files.
Teemu Murtola [Wed, 13 Feb 2013 11:51:07 +0000 (13:51 +0200)]
Script for running uncrustify for modified files.

Comments in the script explain how to use it manually or automatically.
The script uses the git filter attribute to indentify which files to run
uncrustify for.  This makes it possible to configure a git filter for
running uncrustify instead of using the script.  This is also described
in the script comments.

The script is easily extensible to do other types of automatic
reformatting, e.g., to check/add copyright headers.

Also contains a pre-commit hook for running uncrustify.  Currently only
checks the formatting; does not yet automatically reformat anything, as
it is a bit unclear what is the best way to do that.

Related to #845.

Change-Id: I389f2ebf43182d4827d1ec10cb6c1332bd4bf8de

10 years agoFix overeager VdW radii change note.
Teemu Murtola [Fri, 28 Jun 2013 03:34:13 +0000 (06:34 +0300)]
Fix overeager VdW radii change note.

Only print the note about changed VdW radii if the VdW radii are
actually used (and not for all tools that use any guessed property such
as masses).

Also ran the file through uncrustify.

Change-Id: I012ebe5c312c19082d0b066ae14e803196565a16

10 years agoMinor tweaks to qm_orca.c
Justin Lemkul [Wed, 19 Jun 2013 13:07:58 +0000 (09:07 -0400)]
Minor tweaks to qm_orca.c

Formatting fixes for readability and better screen output.  Also replaced
gmx_call() by gmx_fatal() for more sensible error reporting.

Change-Id: I7669fe2b1c83c6bf8fb5d24760d8acdb0919c46c

10 years agoFixes to config.h.cmakein to set GMX_QMMM_ORCA.
Justin Lemkul [Wed, 19 Jun 2013 11:47:30 +0000 (07:47 -0400)]
Fixes to config.h.cmakein to set GMX_QMMM_ORCA.

Installing using ORCA for QM calculations would proceed without
any issue, but the mdrun executable was nonfunctional because
GMX_QMMM_ORCA was never #defined, so the code was not correctly
compiled.

Fixes #1286

Change-Id: I230ded2d3cdbd9c5fc3e865d0b20049effb16766

10 years agoMore flexible position input for nbsearch routines.
Teemu Murtola [Fri, 17 May 2013 09:25:57 +0000 (12:25 +0300)]
More flexible position input for nbsearch routines.

In addition to single positions, it is now possible to do a full
pairwise search between two set of positions.  Introduced a helper class
that encapsulates all information about the positions, such that all
methods can take this class as input, and all different forms of
initializing the positions only needs to be implemented once in this
class.  Also made it possible to pass selections directly to the
neighborhood search routines and removed deprecated
Selection::positions(), which was only useful in combination with the
nbsearch code.

Part of #866.

Change-Id: I1829d981ddff16a98c5a2bae873cc3589ef44d4a

10 years agoC++-ify analysis nbsearch more.
Teemu Murtola [Sun, 12 May 2013 11:38:35 +0000 (14:38 +0300)]
C++-ify analysis nbsearch more.

- Use static_cast instead of C casts throughout.
- Use more C++-style comments.
- Use the same pattern for startPairSearch() as for initSearch() to
  allow multiple concurrent searches.
- Use std::vector instead of explicit memory allocation for the grid
  cell management.  Memory is still managed explicitly for rvec and ivec
  arrays, since they can't be put into std::vector.
- Make most members of the implementation classes private to clarify the
  code (the implementation class is now explicitly responsible for
  managing its internal state).

Part of #866.

Change-Id: I2af5552b696644f954957f96705baabd891284a9

10 years agoRemove C API for analysis neighborhoor search.
Teemu Murtola [Sat, 11 May 2013 05:41:34 +0000 (08:41 +0300)]
Remove C API for analysis neighborhoor search.

Makes it easier to refactor the C++ API, when no consideration needs to
be put into maintaining the C interface.  If really necessary, this can
be reimplemented on top of the C++ API later.

Nearly the whole nbsearch.cpp file changes, but most of this is
mechanical replacement.  Kept the order in the code as same as possible
to make it easier to see that the logic is not changing.

The high-level changes are:
 - Move members of gmx_ana_nbsearch_t to the appropriate implementation
   classes and suffix them with an underscore.
 - Move static helper functions into members of the appropriate
   implementation classes.  This and the above are responsible for
   majority of the changes, as 'd->member' becomes 'member_' on most
   lines.
 - Move the declarations of the C++ implementation classes to the
   beginning of the file.
 - Move all Doxygen documentation to the classes.
 - Restructure the C++ classes a bit to remove some workarounds that
   were necessary to use the C API underneath.  Most notably, the forced
   search mode is now passed directly to the initialization function,
   removing some extra boolean flags, and the const methods in
   AnalysisNeighborhoodPairSearch are now really const.
Also some minor refactoring included here:
 - Remove use of cbrt(), and thus dependency on config.h.
 - Some conversion to C++ patterns: use of static_cast and moving
   variable declarations close to the first use.
Will continue the clean-up in subsequent commits to make it easier to
review that this part really does not change the old functionality.

Part of #866.

Change-Id: I40be305704e17d58f8cb906ad5fa69ea179ece15

10 years agoBetter concurrency support for analysis nbsearch.
Teemu Murtola [Sun, 5 May 2013 09:55:31 +0000 (12:55 +0300)]
Better concurrency support for analysis nbsearch.

AnalysisNeighborhood::initSearch() now supports concurrent calls from
multiple threads such that each call creates an independent search.
A pool of search objects is kept allocated to avoid constant
reallocation of the data structures.

This allows using the neighborhood search routines transparently in
thread-parallel analysis tools after that is implemented in the
framework.  The changes in the template demonstrate how this simplifies
the tool code.

Part of #866.

Change-Id: If469284671ec66e249e138e59da7cc87a8f4ac65

10 years agoFix analysis neighborhood search for 2D/screw PBC.
Teemu Murtola [Sun, 5 May 2013 03:48:16 +0000 (06:48 +0300)]
Fix analysis neighborhood search for 2D/screw PBC.

The gridding implementation did not work correctly in these cases, but
could get triggered.  For now, a simple all-pairs search is always used
in these cases.

Related to #866 and #651.

Change-Id: Iad066f3ea5964e97e1a29a0a20c5725f205509c8

10 years agoProper C++ API for analysis neighborhood search.
Teemu Murtola [Thu, 18 Apr 2013 19:02:01 +0000 (22:02 +0300)]
Proper C++ API for analysis neighborhood search.

Replace the dummy C++ wrapper with a more C++-like API for the
neighborhood search routines that are part of the selection code.
Subsequent commits will implement a few additional features to the API,
but split those off from here to keep things easier to review.

Implementation underneath is still the same as earlier.
Will remove the old C functions in a separate commit.
Changed the free volume tool to use the C++ API in preparation for this.

Added some basic tests for the functionality using the new API, which
should increase the percentual coverage in this part of the code
significantly.

Part of #866 and #651.

Change-Id: I139866b82cb048f1676d187b0cf6e5d270d4d32b

10 years agoFix some issues found by cppcheck-1.58.
Teemu Murtola [Thu, 30 May 2013 04:05:26 +0000 (07:05 +0300)]
Fix some issues found by cppcheck-1.58.

Some are real (although unlikely) bugs, others are just removal of
unnecessary code or stylistic changes. Fixes about 1/3 of the issues
this version of cppcheck finds; the remaining aren't as easily fixed and
most look like false positives.

Change-Id: Ic7ba3cc26be9906e037ecec9f8e63739ac3786be

10 years agoMore binaries into the wrapper binary.
Teemu Murtola [Wed, 26 Jun 2013 04:29:13 +0000 (07:29 +0300)]
More binaries into the wrapper binary.

Move most remaining binaries to be built into the 'gmx' wrapper binary.
Now, only mdrun and g_pme_error (which have a different initialization
sequence), and ngmx (and other X11 programs) remain outside.

Renamed a few headers to match the name of their implementation file.

Part of #685.

Change-Id: I3fb7e3de905c01d7564d809893390bbb9b8f8368

10 years agoMerge branch 'release-4-6' into master
Roland Schulz [Thu, 27 Jun 2013 07:57:35 +0000 (03:57 -0400)]
Merge branch 'release-4-6' into master

Conflicts:
CMakeLists.txt
cmake/ThreadMPI.cmake
src/gromacs/gmxana/calcpot.c
src/gromacs/gmxana/calcpot.h
src/gromacs/legacyheaders/pull_rotation.h
src/tools/CMakeLists.txt

Resolution was straightforward; always in favour of version already in
master branch. Removed calcpot.[ch].

Change-Id: I7ad7a6d9e34f30e04f71c52d707065c6e14b68f3

10 years agoAdapted clang-AMD-FMA workaround for both C and C++
Szilard Pall [Mon, 29 Apr 2013 16:56:48 +0000 (18:56 +0200)]
Adapted clang-AMD-FMA workaround for both C and C++

Based on 34a402e7bfb0c950edd7a7a624acf48334333a2d

The clang bug which causes incorrect code to be generated on AMD
with FMA (Piledriver and Bulldozer) is in fact caused by an assembler
bug and can be worked around by switching to an external assembler.
This commit implements such the workaround for clang 3.1 and 3.2.
The bug was fix in clang version 3.2-svn-r173176:
http://llvm.org/bugs/show_bug.cgi?id=15040
Hence, no workaround is needed for clang 3.3 with AVX_128_FMA
acceleration.

This workaround is ineffective on Mac OS because there is no suitable
external assembler, but distinguishing between vanilla and Apple clang
requires more code than what's worth adding to cover the case of
AMD-based Hackintoshes (all Mac-s are Intel-based).

Fixes #1099

Change-Id: Ice7c17a792fe257c4516628030b680d3b3b1a484

10 years agoMerge branch 'release-4-6' into master
Roland Schulz [Thu, 27 Jun 2013 03:34:35 +0000 (23:34 -0400)]
Merge branch 'release-4-6' into master

Mostly easy. selhelp.cpp got the fix from selhelp.c

Omitted the content of 34a402e7 (clang-AMD-FMA work-around) in favour
of reworking it for C++ in a child patch

    Conflicts:
        CMakeLists.txt - kept master version number!
        src/gmxlib/selection/selhelp.c - deleted
        src/gromacs/gmxana/pp2shift.h - deleted
        src/gromacs/legacyheaders/pull_rotation.h

Change-Id: Ibf0c9af136e39dfcbef0a85eb7d314740706cb60

10 years agoRemove hack to support old version tpr version 80
Roland Schulz [Sun, 2 Jun 2013 00:23:17 +0000 (20:23 -0400)]
Remove hack to support old version tpr version 80

This break reading of master tpr version 80 (used up to Oct 16,
e56dd547) which added support for fbposres. There is no simple way
of supporting F_FBPOSRES in ftupd for 80 but not for 81-89. The hack
so far breaks changes required for dihres (3ec882b8ec64)

Change-Id: Iec63fa564c7605cdadc0417e7ddb4f6ae732c0b9

10 years agoFixed -npstring command line argument in g_tune_pme
Carsten Kutzner [Fri, 14 Jun 2013 12:06:28 +0000 (14:06 +0200)]
Fixed -npstring command line argument in g_tune_pme

-npstring <str> is used to let g_tune_pme know how it should specify
the number of MPI processes to the mpirun command (with -np (default) or -n ).
You could provide it, but it actually -np was used in any case.

Change-Id: Ibb807b492dfb05c67628c18b7073092aa983f770

10 years agoFixed #include of header for atomics on K-computer
Mark Abraham [Sun, 23 Jun 2013 19:43:02 +0000 (21:43 +0200)]
Fixed #include of header for atomics on K-computer

Reported by Shun Sakuraba

Fixes #1274

Change-Id: Ia6369ba56b6978f79e9fbde3268f8a44ef44b6d8

10 years agoFix declaration that XLC rejected
Jeff Hammond [Sun, 16 Jun 2013 20:50:00 +0000 (20:50 +0000)]
Fix declaration that XLC rejected

Changed volatile void* volatile* declarator to volatile void* volatile.

Fixes #1284

Change-Id: I133f480b060ab4723988bd3059e5bd20ebc9df7a

10 years agoadded CUDA compiler flags to version header
Szilard Pall [Mon, 17 Jun 2013 22:48:30 +0000 (00:48 +0200)]
added CUDA compiler flags to version header

The nvcc compiler information, compared to CPU compiler info, was
lacking both the full path to the compiler binary as well as the full
list of flags used (including the host-compiler flags if these are
passed).

Change-Id: Ic80a512bc6d5a39b6594c360d2952e48b5d43ee0

10 years agoClean up copyrite.*.
Teemu Murtola [Fri, 31 May 2013 10:42:20 +0000 (13:42 +0300)]
Clean up copyrite.*.

- Make a few functions static, since they are not used outside the file.
- Move pr_difftime() to nrnb.c and make it static there, since that is
  the only place where it was used.
- Move the logic of producing the FFT library identification from
  copyrite.c to fft_*.c, where it naturally belongs.
- master always has a C++ compiler, so remove the unnecessary
  conditional.
- Clean up the include statements in copyrite.c.

Change-Id: I9a72c014f1d0583adacc657414bc8a758d450b21

10 years agoMove FFT routines to src/gromacs/fft/.
Teemu Murtola [Fri, 31 May 2013 04:15:13 +0000 (07:15 +0300)]
Move FFT routines to src/gromacs/fft/.

Adjusted the build system a bit to select the file to build at the CMake
level instead of using #ifdefs within the files. Some minor cleanup.
Also add some hacks to produce separate Doxygen docs for each of the
gmx_fft_t implementations; otherwise, they mess up each other and
produce warnings, as some of them have Doxygen comments and some do not.

Change-Id: I55d8c4ce402d68b8cd3e2e700f83d801d8b8294e

10 years agoRestructure AnalysisData unit tests.
Teemu Murtola [Sat, 8 Jun 2013 17:20:34 +0000 (20:20 +0300)]
Restructure AnalysisData unit tests.

Add test fixtures and other machinery that allows using the same test
logic for multiple different input data using typed tests from Google
Test.

Avoids code duplication in unit tests for #869 and #1010.

Change-Id: I74962aa4ed0741329b3dbcd40663fc94a3bc96b5

10 years agoMore flexible input data for analysisdata tests.
Teemu Murtola [Sat, 8 Jun 2013 10:29:48 +0000 (13:29 +0300)]
More flexible input data for analysisdata tests.

Instead of somewhat inflexible parsing from a static real[] array,
construct the input data objects by explicit method calls to add frames
and point sets.  Convert the existing tests to construct the input data
this way.

Increase coverage of multipoint tests for AnalysisData by using
point sets that do not cover the full range of columns.
Improve test error messages and fix issues found while doing this.

Prerequisite for unit tests for #869 and #1010.

Change-Id: Idd0831d9bbf8e59b6edfab758cd53881133e1f3a

10 years agofixed SD and BD integrator OpenMP performance
Berk Hess [Wed, 5 Jun 2013 22:09:37 +0000 (00:09 +0200)]
fixed SD and BD integrator OpenMP performance

SD and BD integrator always integrated single threaded.
Really fixes #1121

Change-Id: I2217c40e9c188c7cd57801e413750035c6488f56

10 years agoFixing a problem when dhdl and replex are not multiples
Michael Shirts [Wed, 19 Jun 2013 02:31:32 +0000 (22:31 -0400)]
Fixing a problem when dhdl and replex are not multiples

Problems is fixed by guaranteeing the free energy information
is now updated at a frequency that is the greatest common
denominator of the relevant internal variables.

An existing gcd function was taken from gmx_genion and put
in the include/maths.h file.

Change-Id: I7473185ab02c7c9a7557fbaa165bb20b63bafb7a

10 years agoflops table now reports CUDA analytical Ewald
Berk Hess [Thu, 23 May 2013 13:21:21 +0000 (15:21 +0200)]
flops table now reports CUDA analytical Ewald

Change-Id: I72dfdc3b3f1ecb651897922c2e7ffec784c3bf60

10 years agoAdd unit tests for selection index mapping.
Teemu Murtola [Sun, 28 Apr 2013 10:43:28 +0000 (13:43 +0300)]
Add unit tests for selection index mapping.

Add unit tests for parts of indexutil.* that are mainly used by the
selection position calculation engine.

Add required functionality to toputils.* and update typedefs.c to
support more flexible freeing of required data structures.

Part of #651, related to #1221.

Change-Id: Ibc68ad71a4834b991820014969be46152426a9f5

10 years agoUniform initialization for analysisdata tests.
Teemu Murtola [Fri, 7 Jun 2013 10:13:56 +0000 (13:13 +0300)]
Uniform initialization for analysisdata tests.

Unit tests that use input data now initialize the AnalysisData object
using a common helper, which uses the properties of the input data.
This puts the initialization code into one place only, which makes it
easier to adapt to implementation of #1010.

Related to #1010.

Change-Id: I1ffe3a52a2b5edc7d6ac647cea669c250e67e71c

10 years agoSeparate topology handling in selection tests.
Teemu Murtola [Fri, 26 Apr 2013 12:16:18 +0000 (15:16 +0300)]
Separate topology handling in selection tests.

Split common functionality for handling test topologies in selection
unit tests into a separate files (toputils.*).  This commit does not yet
add a lot of reusable code, but subsequent commits will (and they will
also introduce more files that use this functionality).

Part of #651.

Change-Id: Idda0099ba166014c9d6c36e0d8ba212e5fa8e940

10 years agoDefine both C and C++ compilers in BGQ toolchains; use -O3
Jeff Hammond [Sun, 16 Jun 2013 19:59:47 +0000 (19:59 +0000)]
Define both C and C++ compilers in BGQ toolchains; use -O3

When using either the C or C++ toolchain, the complimentary compiler is
not properly identified, rather /usr/bin/g{cc,++} is, which may cause
configuration problems.  this patch fixes this issue.

ALCF strongly recommends the use of -O3 unless there is clear evidence
that higher optimization has a (positive) effect on the quality of the
code generation from XL.  we find that XL frequently generates no faster
and even slower code with -O4 and -O5 unless the code is specifically
designed to be optimized for BGQ.

Fixes #1283

Change-Id: If32a507c6394e23106555741bdefbc0d554c3765

10 years agoUse more obvious name of BGQ compiler MPI wrappers
Jeff Hammond [Sun, 16 Jun 2013 19:10:26 +0000 (19:10 +0000)]
Use more obvious name of BGQ compiler MPI wrappers

While it is true that mpicc points to the XL compilers when it is the
one found in xl.ndebug/bin, this is not generally true and thus the use
of mpicc as a wrapper for XL violates the principle of least surprise.
the mpixl* wrappers are unambiguous and equally valid.

Fixes #1282

Change-Id: I460e829e55a221d8be35a70932864555feb21a95

10 years agofix CMake bug related to TestQPX.c location
Jeff Hammond [Sun, 16 Jun 2013 19:08:40 +0000 (19:08 +0000)]
fix CMake bug related to TestQPX.c location

cmake/TestQPX.c was not found because it lacked the
appropriate relative path.

Fixes #1281

Change-Id: I5fcc8598c91e39a86c337f14497b6d5faff91116

10 years agofixed a typo (unclosed bracket) that cause CMake to fail
Jeff Hammond [Sun, 16 Jun 2013 18:59:21 +0000 (18:59 +0000)]
fixed a typo (unclosed bracket) that cause CMake to fail

Fixes #1280

Change-Id: I987c860052923602b0ce7e6837a6905ad81a9f22

10 years agoImprove reference data checks against same data.
Teemu Murtola [Sun, 28 Apr 2013 09:33:28 +0000 (12:33 +0300)]
Improve reference data checks against same data.

Make it easier to perform multiple checks against the same reference
data using the TestReferenceChecker.  nextSearchNode_ was always NULL
when the reference data was getting written, which caused every check to
write a new reference data entry.  Now, the search is also performed as
part of writing the reference data, so that only the first check with a
particular id creates an entry, and subsequent checks perform the check
against this entry.

The analysis data tests were depending on duplicate ids behaving
differently, so changed them to also use the same pattern as elsewhere
for repeating elements, i.e., NULL ids.

Related to #651.

Change-Id: Icc0d1d68a0846bbdcc9639933e8060e56cb4b30e

10 years agoNew analysis tool to compute the free volume and total volume.
David van der Spoel [Thu, 28 Mar 2013 16:25:38 +0000 (17:25 +0100)]
New analysis tool to compute the free volume and total volume.

Works with selections, such that the freevolume in a box containing
a subset of all atoms can be computed.
Added excessive comments so that others can use this as a reference
for implementing analysis tools as well.
Added a test system as well, but this is somewhat tricky due to
real precision and the Monte Carlo algorithm.
literature reference.
valgrind.

Change-Id: I2acb48b829c9495e399c60e9dc927662e2958d69

10 years agofixed minor g_bar output issues
Berk Hess [Tue, 11 Jun 2013 10:56:05 +0000 (12:56 +0200)]
fixed minor g_bar output issues

Replaced one s_A by s_B in the help text.
Replaced %g by %f in all gmx_fatal calls.

Change-Id: I306703eace9c6b3251981d0b9f3a05bdc9c617ff

10 years agoAdded ability to use cppcheck from the command line.
Teemu Murtola [Tue, 28 May 2013 18:54:46 +0000 (21:54 +0300)]
Added ability to use cppcheck from the command line.

CMake now detects cppcheck, and enables "make cppcheck" to run
cppcheck on all source files, generated kernels and some other files
excluded.  Commands are more or less the same as used in Jenkins.
A separate target is produced for each input file, allowing one to use
build system parallelism (tested that it doesn't have much effect on the
overall run time).  This also adds a nice property that after the
initial run, cppcheck gets only run on modified files.  All errors
(including those from unmodified files) are also collected into a single
text file for easier processing.

No effort has been made to make it particularly robust or portable,
e.g., with respect to different cppcheck versions, as it is mostly for
developer convenience to be able to reproduce the runs from Jenkins.

Ideally, Jenkins would also run cppcheck using the generated rules,
which would allow changing the cppcheck configuration in sync with
source code changes if that is necessary.  For this purpose, a CMake
option to switch to XML output files is provided.

Change-Id: Ib88e2ba87cd4f091484fe09beac5ef108b0fad77

10 years agoRemove unused variables
Mark Abraham [Wed, 29 May 2013 12:24:05 +0000 (14:24 +0200)]
Remove unused variables

Change-Id: I8c6ce4e83474d720bb8565453c13247132289e22

10 years agoBetter averaging for analysis data modules.
Teemu Murtola [Wed, 3 Apr 2013 17:17:12 +0000 (20:17 +0300)]
Better averaging for analysis data modules.

Added an AnalysisDataFrameAverager for functionality common to analysis
data modules that compute averages over frames.  Currently, it only
accumulates the average and variance in double precision (using better
formula than before), but provides a useful base for implementing other
functionality:
 - Block averaging or other methods of better estimating the error.
 - Parallelization support to allow these modules to work in parallel
   after #869 is implemented.
For all of these, after the implementation is done in this common class,
it is easy to have that functionality in all the modules.  Some
interface changes may be required for some of the above, though.

Also some improvements to AnalysisDataAverageModule documentation.

Change-Id: I06ae7a92d36a0ee7e2fc0a1602ac40e6b8212d1d

10 years agoMove wman.* to src/gromacs/onlinehelp/.
Teemu Murtola [Thu, 23 May 2013 17:22:35 +0000 (20:22 +0300)]
Move wman.* to src/gromacs/onlinehelp/.

It naturally belongs together with this functionality.
It is used only internally by the library, so no need to install it.
Also removed unnecessary declarations from the header.

One less header in legacyheaders/, ~220 to go...

Change-Id: I371de95faedc26873a85441901be88dbf60ad9ba

10 years agoFixes syntax for FAHCORE in CMakeLists.txt.
Peter Kasson [Thu, 6 Jun 2013 15:39:45 +0000 (08:39 -0700)]
Fixes syntax for FAHCORE in CMakeLists.txt.

GMX_FAHCORE triggered a set_property() call that was missing
a PROPERTY identifier and thus triggered a cmake error message.
Syntax at
http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:set_property

Change-Id: I95108ba3332e6ce5c15a4dc4bfa165c3a8e3ac8f

10 years agoAdd a GMX_NO_CREDITS variable to not show credits
Pedro Lacerda [Fri, 31 May 2013 06:11:08 +0000 (03:11 -0300)]
Add a GMX_NO_CREDITS variable to not show credits

It's annoying to get output loaded of credits messages, especially when
running scripts. This commit add GMX_NO_CREDITS environment variable,
when set no copyright is shown.

Related to #1267.

Change-Id: Ia8482a73bde733b08cb37680ecceb713560872f5

10 years agoVarious fixes for genion
Pedro Lacerda [Fri, 31 May 2013 02:02:15 +0000 (23:02 -0300)]
Various fixes for genion

Remove genion non-random insertion of ions, by side effect it stops
writting useless log file. This commit also warns user about -conc
option overriding -nn or -np.

Fixes #1236, #615, and #1208

Change-Id: Icb7e411cda10abb3a7fea4137534f253b0777def

10 years agofixed DD internal state corruption with energy minimization
Berk Hess [Mon, 3 Jun 2013 18:56:19 +0000 (20:56 +0200)]
fixed DD internal state corruption with energy minimization

With energy minimization we need to reload old DD states after
steps are rejected. There were two bookkeeping issues in the reload.
This could lead to all kinds of, but no silent, errors.
Fixes #1272

Change-Id: Ia44c3bad27f3efdee76fa93dd281690e44dde700

11 years agoFixed inconsistent locality_order array for thread affinity.
Sander Pronk [Wed, 29 May 2013 12:17:06 +0000 (14:17 +0200)]
Fixed inconsistent locality_order array for thread affinity.

The locality_order array from gmx_cpuid (determining which threads
map onto which processors) is inconsistent if run with valgrind. This
patch checks the consistency and creates a fallback linear ordering if
that happens.

Change-Id: I59c0cef487134f9cb4115faf364dcfdad7f0d0e6

11 years agoFixed deadlock on Mac OS X during thread affinity check.
Sander Pronk [Mon, 3 Jun 2013 11:15:04 +0000 (13:15 +0200)]
Fixed deadlock on Mac OS X during thread affinity check.

During thread affinity setting, an erroneous #ifndef APPLE caused the Mac OS X
binary to enter the code path that assumes thread affinity support to exist,
leading to a deadlock later on. This is fixed, by making the printing of a
warning platform-specific, but not the rest of the code path, as presumably
originally intended.

Change-Id: I95bd808552869ece45efd1b818c1b5e1be03ed94

11 years agoSplit cmake thread detection into core thread and thread_mpi.
Teemu Murtola [Sun, 26 May 2013 09:45:47 +0000 (12:45 +0300)]
Split cmake thread detection into core thread and thread_mpi.

This makes it possible to use core threading facilities
(mutex/cond-var/affinity, etc) on builds that don't use thread_mpi.

Change-Id: I0f0f43e86da642c4645fd7ac3c4796098cf9cd5e

11 years agofixed deadlock with replica exchange and -maxh
Berk Hess [Mon, 3 Jun 2013 19:42:21 +0000 (21:42 +0200)]
fixed deadlock with replica exchange and -maxh

Fixes #1273

Change-Id: Ib93cce59adf60afe0971944ef41df3a7d9883edc

11 years agoOnly build base thread support with GMX_THREAD_MPI=OFF.
Teemu Murtola [Sun, 26 May 2013 09:45:47 +0000 (12:45 +0300)]
Only build base thread support with GMX_THREAD_MPI=OFF.

Restore the old behavior of only building the basic threading primitives
from thread_mpi if the MPI parts are not needed.

Change-Id: I0f0f43e86da642c4645fd7ac3c4796098cf9cd5e

11 years agoMerge "Merge branch 'release-4-6'"
Mark Abraham [Thu, 30 May 2013 21:30:50 +0000 (23:30 +0200)]
Merge "Merge branch 'release-4-6'"

11 years agoNew patch release 4.6.2
Mark Abraham [Thu, 30 May 2013 14:00:03 +0000 (16:00 +0200)]
New patch release 4.6.2

Added details of Pronk, et al 2013 paper to README

Bumped version to 4.6.3-dev. The v4.6.2 tag points to the actual
version that built the tarball, which was patch set 1.

Change-Id: I9b17cd80f34e2d175dbed0d87677a0611254b7c7

11 years agofix unnecessary switch to polling GPU wait
Szilárd Páll [Thu, 7 Mar 2013 02:50:47 +0000 (03:50 +0100)]
fix unnecessary switch to polling GPU wait

Commit 84597ae introduced an incorrect condition for testing
whether mdrun should and can switch to polling GPU wait.
This minor bug results in swithching to polling wait even when this
is unnecessary (i.e. when the driver in use is >=v5.0), This is
rather harmless, but the polling wait is fragile, so we should use
it only when really necessary.

This commit fixes the switching as well as reorganizes the conditionals
to make it more clear that switching is needed when ECC is on and the
NVIDIA GPU driver is older than v5.0.

Change-Id: I9106cb34c9a8fde2f9b54045d9b03ee5f5d50d8b