alexxy/gromacs.git
8 years agoMerge release-5-0 into master
Mark Abraham [Thu, 25 Jun 2015 08:47:53 +0000 (10:47 +0200)]
Merge release-5-0 into master

Conflicts:
docs/install-guide/install-guide.md
Applied release-5-0 changes to docs/install-guide/index.rst

docs/manual/install.tex
Applied release-5-0 changes to docs/user-guide/environment-variables.rst

src/gromacs/commandline/cmdlineprogramcontext.cpp
Applied comment from release-5-0

src/gromacs/gmxana/gmx_hbond.c
Removed smooth_tail as in release-5-0

src/gromacs/gmxlib/gmx_detect_hardware.cpp
Removed GMX_MAX_THREADS implementation as in release-5-0
(adjacent changes)

src/gromacs/utility/init.cpp
Combined changes to include statements

src/gromacs/utility/path.cpp
Combined changes to include statements

src/programs/mdrun/mdrun.cpp
Added new please_cite calls from release-5-0 to new call site
in runner.cpp

Change-Id: I5b75b12bb8a49a606b086184017b754477d65068

8 years agoAvoid accessing hackblocks for x2top
Erik Lindahl [Tue, 23 Jun 2015 20:43:33 +0000 (16:43 -0400)]
Avoid accessing hackblocks for x2top

Previous fixes for generating dihedrals would cause us to access
the hackblock even when using x2top, which we should not do.

Fixes #1711.

Change-Id: Id0ea6d524d80b87fe257c9fd4f1c48c4be828654

8 years agoUpdate header when appending to TNG file.
Magnus Lundborg [Fri, 27 Mar 2015 11:20:38 +0000 (12:20 +0100)]
Update header when appending to TNG file.

The library now handles updating the size of the headers
by moving the first frame sets to make room (if necessary).
Therefore this is now enabled when appending to a trajectory
from mdrun.

Change-Id: I7334a1b0c251856f30e116b63161f7676055dce1

8 years agoGPU Ewald table kernel now uses CPU spacing
Berk Hess [Mon, 15 Jun 2015 21:56:26 +0000 (23:56 +0200)]
GPU Ewald table kernel now uses CPU spacing

The tabulated Ewald GPU kernels (only used by default on Fermi),
used a fixed table spacing. Now the same adaptive spacing as on the
CPU is used. With default settings this leads to a coarser table.

Change-Id: I35f0c89e00301ac7e1260b1c0dcc1604300da5aa

8 years agoAvoid GPU selection with GPU emulation
Berk Hess [Sun, 21 Jun 2015 06:17:21 +0000 (08:17 +0200)]
Avoid GPU selection with GPU emulation

Change-Id: Iee5949fa11419b0c1344edb6c85ab475baa77719

8 years agoMinor reformatting of SIMD mismatch message
Berk Hess [Mon, 22 Jun 2015 07:33:29 +0000 (09:33 +0200)]
Minor reformatting of SIMD mismatch message

Added extra newline, removed parentheses.

Change-Id: I2ec3f6d078dfa3b4587213c5ec421d36443a01af

8 years agoAdd sugar to print empty line in printBinaryInformation
Berk Hess [Mon, 22 Jun 2015 12:03:39 +0000 (14:03 +0200)]
Add sugar to print empty line in printBinaryInformation

The binary information print was missing a prefix and suffix
on an empty line which caused invalid xvg file formatting.

Change-Id: I8faa76502fc44ebd698387e4ab0f85f1473be710

8 years agoUpdated physical constants from NIST 2010 CODATA
Erik Lindahl [Thu, 18 Jun 2015 16:44:33 +0000 (18:44 +0200)]
Updated physical constants from NIST 2010 CODATA

Minor fixes (usually to the 5-6th decimal), and
more constants have been derived the basic ones instead
of specifying values directly. The units section in
the manual has been updated accordingly.

Fixes #1671.

Change-Id: Ic1d853a4fb6c70c81c3969d3d8ba86f52956ef67

8 years agoRemoved buggy -smooth hack in hbond module
Erik Lindahl [Sun, 21 Jun 2015 13:49:03 +0000 (15:49 +0200)]
Removed buggy -smooth hack in hbond module

As discussed in redmine #1553, this was a hack
added a while ago, but apparently it leads to
segfaults. We should avoid hacks in the first
place, and since nobody has been interested in
fixing it for the last year it's time to kill it.

Fixes #1553.

Change-Id: I94faa3c543bcca4c729753c8b5cdaf5a5775d0ff

8 years agoUpdate launch configuration for physical nodes
Berk Hess [Sun, 21 Jun 2015 09:02:10 +0000 (11:02 +0200)]
Update launch configuration for physical nodes

OpenMP thread count now prints thread count ranges over ranks.
GPU usage report adds host name with multiple MPI processes.

Change-Id: I9011415957ad5d875d2c215abb0f7f60810c372c

8 years agoFix GMX_ALIGNMENT for MSVC 2012 and 2013
Roland Schulz [Fri, 19 Jun 2015 03:37:16 +0000 (23:37 -0400)]
Fix GMX_ALIGNMENT for MSVC 2012 and 2013

Issue previously identified for 2010 is not fixed
until 2015.

Change-Id: I617ac9524a2e054b325fdc19675fdee0a60370c8

8 years agoAvoid fp exceptions in pair search debug
Berk Hess [Thu, 18 Jun 2015 09:42:40 +0000 (11:42 +0200)]
Avoid fp exceptions in pair search debug

Also extended GPU list statistics debug prints.

Change-Id: I8100aac2f3433bf06b3d11c8fedcdd2d3cf5c286

8 years agoFix compiler warnings in cmake tests
Erik Lindahl [Wed, 17 Jun 2015 06:54:20 +0000 (08:54 +0200)]
Fix compiler warnings in cmake tests

This will not be visible to users, and it won't make it
possible to run cmake with -Werror since lots of internal tests
do not work, but since I fixed a couple of them we might
as well put it in gerrit.

Known remaining issues:
- HAVE_LIBM

Refs #1750.

Change-Id: I734f83f229108e50e2914d455f4032137f924773

8 years agoUse MPI_THREAD_FUNNELED when available
Erik Lindahl [Thu, 18 Jun 2015 19:57:11 +0000 (21:57 +0200)]
Use MPI_THREAD_FUNNELED when available

We have never observed any problems with MPI and OpenMP,
but for compliance we should call MPI_Init_thread() and
try to get MPI_THREAD_FUNNELED support level. However,
if that level is not supported we simply call the old
MPI_Init() instead - at least for Gromacs that seems fine.
If we get an error return code we warn the user, but if
MPI_init_thread() still worked we hope for the best and
don't bother the user.

Fixes #1127.

Change-Id: I11b81a65125e32b95255dbb769cf86b835bd62ab

8 years agoFix cmake 3.1 warnings with MSVC
Roland Schulz [Thu, 18 Jun 2015 05:37:23 +0000 (01:37 -0400)]
Fix cmake 3.1 warnings with MSVC

Change-Id: I4c080cd547fdb36695d6d906ea56a1393e4f42aa

8 years agoFix segfault in random access XTC searching
Erik Lindahl [Sat, 20 Jun 2015 09:54:26 +0000 (11:54 +0200)]
Fix segfault in random access XTC searching

The XTC random access routine was accessing natoms
in a substructure that could be a null pointer. Fixed
by adding natoms as a separate field in the
high-level status, so we don't depend on frame data.

Fixes #1705.

Change-Id: I88c961b33ae21b16d64ed5d7514a1e0287c89baf

8 years agoFix argument order error for g_rmsdist
Erik Lindahl [Tue, 16 Jun 2015 22:18:27 +0000 (00:18 +0200)]
Fix argument order error for g_rmsdist

Incorrect argument order to calc_rms() caused
command options to be permuted.

Fixes #1709.

Change-Id: I82042dac463c8bb305ab3d3bc2a122b5409c55ef

8 years agoFix gro errors with PDB insertion codes
Erik Lindahl [Sat, 20 Jun 2015 14:01:46 +0000 (16:01 +0200)]
Fix gro errors with PDB insertion codes

The insertion codes are discarded when converting to GRO files,
which results in adjacent residues with different names but
identical numbers. The reading code has been altered to identify
new residues also when the resname changes; this does not fix
the duplicate numbers (it cannot be fixed in GRO files), but it
will correctly propagate all data so the correct labels can
be recovered by using gmx trjconv with the original PDB file for
the -s argument.

Fixes #1600.

Change-Id: Iaf79f3f9e548e8555d78cb39e869410aa8186029

8 years agoReplaced hardware threads by logical cores in output
Berk Hess [Sun, 21 Jun 2015 06:13:37 +0000 (08:13 +0200)]
Replaced hardware threads by logical cores in output

All output (except for debug output) now uses the term logical cores
to report the number of hardware threads.
Add indentation for per node hardware property prints.

Change-Id: I821c8d76ab498b37aa1b510d8a3dd67bb42ffdf9

8 years agofix CPU core oversubscription detection
Szilard Pall [Sat, 20 Jun 2015 23:04:28 +0000 (01:04 +0200)]
fix CPU core oversubscription detection

The detection became non-functional due to unlucky incorrect order in
which the arguments were passed.

Change-Id: Id29ff87e504585f783be742b92a861c06c5e42ac

8 years agoUpdated docs for g_gyrate
Erik Lindahl [Fri, 19 Jun 2015 08:02:26 +0000 (10:02 +0200)]
Updated docs for g_gyrate

Added the equations we use for the axis
components.

Fixes #1564.

Change-Id: Ifce17326f738a72386bf24f949e418d2550568b5

8 years agoFix potential buffer overflow in pdb2gmx
Erik Lindahl [Thu, 18 Jun 2015 12:44:14 +0000 (14:44 +0200)]
Fix potential buffer overflow in pdb2gmx

Residue rename database entries were read into 6-char
string variables. We now check and issue fatal errors
if the lengths are above 5 characters.

Fixes #1649.

Change-Id: Id4d88a565b212ef279d400f42b5f2732550eded6

8 years agoDisallow infinite epsilon with PME or GB.
Erik Lindahl [Fri, 19 Jun 2015 08:20:23 +0000 (10:20 +0200)]
Disallow infinite epsilon with PME or GB.

This leads to divide-by-zero errors, and since it just turns off
electrostatics it will be faster to use a plain cutoff, which we
now recommend instead.

Fixes #1297.

Change-Id: Ia5eba7a1d4bd3b387174c9cb4878a2d65ead2c6c

8 years agoRemove GMX_MAX_MPI_THREADS
Erik Lindahl [Fri, 19 Jun 2015 07:29:40 +0000 (09:29 +0200)]
Remove GMX_MAX_MPI_THREADS

This variable has been orpaned for quite a while, and
it's a good example how we introduce bugs by introducing
lots of ways to control the same functionality, and then
we forget to update some of them later. Let's focus on
the command line options as the single way to control
the number of threads in Gromacs.

Fixes #1550.

Change-Id: I37a87125b9dcac36362b561418d787167bb64cec

8 years agoFix reproducibility bug in fft5d
Erik Lindahl [Fri, 19 Jun 2015 10:16:23 +0000 (12:16 +0200)]
Fix reproducibility bug in fft5d

fft5d has been accessing FFTW directly instead of using the
Gromacs FFT interface, and while doing so the estimate flag was
not correctly set for reproducible runs. For now we have just
fixed it, but this FFTW-specific code should be removed from fft5d,
or we will likely see more fft bugs due to duplicated code paths.

Fixes #1690.

Change-Id: Ib03f7af710ed208d2824f105bd15712d32632cfa

8 years agoHandle multidir/multisim with single argument correctly
Erik Lindahl [Thu, 18 Jun 2015 17:26:27 +0000 (19:26 +0200)]
Handle multidir/multisim with single argument correctly

Mdrun would only initialize the multi option correctly
with more than one argument, which caused mdrun to fail
in strange ways since it looked for topol.tpr in the
current directory instead.

Fixes #1712.

Change-Id: Ib89860fdff5f8523eee6c2f5a068390b8d4e3c8d

8 years agoFix incorrect shift with g_density -center
Erik Lindahl [Tue, 16 Jun 2015 22:15:18 +0000 (00:15 +0200)]
Fix incorrect shift with g_density -center

Fixes #1698.

Change-Id: I22be246eded9c1fc6f421f14eb3938584afed0de

8 years agoFix missing include
Roland Schulz [Thu, 18 Jun 2015 05:58:23 +0000 (01:58 -0400)]
Fix missing include

Didn't compile with MSVC 2013

Change-Id: Ice8af840ba52dc7b6c9fe54c269a641f0ccc3c60

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

With more than 32 ranks, a sub-communicator will be used
for the pull communication. This reduces the pull communication
significantly with small pull groups. With large pull groups the total
simulation performance might not improve much, because ranks
that are not in the sub-communicator will later wait for the pull
ranks during the communication for the constraints.

Added a pull_comm_t struct to separate the data used for communication.

Change-Id: I92b64d098b508b11718ef3ae175b771032ad7be2

8 years agoFix typo in GMX_BUILD_OWN_FFTW message
Mark Abraham [Wed, 17 Jun 2015 21:16:04 +0000 (23:16 +0200)]
Fix typo in GMX_BUILD_OWN_FFTW message

Change-Id: Ieec8b7d1bccd7e9654a14091e42f5047d441db31

8 years agofix minor CUDA NB kernel performance regression
Szilard Pall [Wed, 17 Jun 2015 22:59:57 +0000 (00:59 +0200)]
fix minor CUDA NB kernel performance regression

Commit f2b9db26 introduced the thread index z component as a stride in
the middle j4 loop. As this index is not a constant but a value
loaded from a special register, this change caused up to a few %
performance loss in the force kernels. This went unnoticed because
some architectures (cc 3.5/5.2) and some compilers (CUDA 7.0) were
barely affected.

Change-Id: I423790e8fb01a35f7234d26ff064dcc555e73c48

8 years agoMinor clean up for refdata.*
Teemu Murtola [Wed, 17 Jun 2015 10:53:54 +0000 (13:53 +0300)]
Minor clean up for refdata.*

- Remove global functions that are no longer necessary.  All the state
  about the reference data mode is stored internally in refdata.cpp.
  These were remnants from an old implementation where the code was
  split into multiple .cpp files to support compilation of testutils/
  without libxml2 dependencies.
- Make the self-tests for the reference data code not use the source
  tree as a location for the transient data they create.

In addition to clarifying the code, these should make it harder to
misuse the constructor intended for self-testing, since it will be
difficult to pass Jenkins if someone tries to use it for other tests.

Change-Id: I204ddadfc224a79c587f0588a4d510b7b8486f9b

8 years agoImprove logic for automatic selection names
Teemu Murtola [Tue, 16 Jun 2015 09:53:02 +0000 (12:53 +0300)]
Improve logic for automatic selection names

If a selection is directly provided from an external index group, the
name of the selection is set to be the name of the group, irrespective
of the exact way the group is selected.  The code that did this was a
bit too eager, and used the name of the group that appeared around the
beginning of a more complex selection in some other cases, leading to
confusion.

Make the code only use the name of the group if the group is really used
as-is, and otherwise use the selection text.  Add explicit tests for
this behavior.

Change-Id: Ic7fe2626a07cfd3cac3773046ed9f83484ba4368

8 years agoRefactored pull data structures
Berk Hess [Mon, 13 Apr 2015 08:55:04 +0000 (10:55 +0200)]
Refactored pull data structures

Moved the pull work variables into a new pull_t struct.
Only the pull input parameters remain in (renamed) pull_params_t.
For the moment struct pull_t pull_work is still present in t_inputrec.
This should later be moved to a more appropriate place.

Change-Id: I78f6f9736d52514f0327c86e43d4fb2ac88d60cd

8 years agoStop people installing into the build tree
Mark Abraham [Fri, 22 May 2015 11:42:21 +0000 (13:42 +0200)]
Stop people installing into the build tree

Several users have tried this and run into problems.

Also patch the install guide so people can find useful information
about using CMAKE_INSTALL_PREFIX

Change-Id: I43b3d9959e0a2fc93dc1d80fb8fb0727cf459f11

8 years agoFix CUDA version info in NVML application clock warning
Erik Lindahl [Fri, 12 Jun 2015 21:16:07 +0000 (23:16 +0200)]
Fix CUDA version info in NVML application clock warning

Report driver and runtime versions, not the compute capability
of the card (since we already detected the card is recent enough).

Fixes #1706.

Change-Id: Ida8b36203f56dcda20dc367c69dc02586edf40e4

8 years agoAdd membrane embedding docs
Erik Lindahl [Sat, 13 Jun 2015 08:22:28 +0000 (10:22 +0200)]
Add membrane embedding docs

These were killed by mistake in 86601a237df when the
separate g_membed program was merged into mdrun.

Fixes #1724.

Change-Id: If97dbf13c269e0711cda9798fac03225920c0d6f

8 years agoAdded missing DD cycle counting
Berk Hess [Tue, 16 Jun 2015 18:16:56 +0000 (20:16 +0200)]
Added missing DD cycle counting

Cycle counting was missing for DD repartitioning after replica
exchange or coord swap. Removed DD cycle counting for initial DD.
Moved DD cycle counting into dd_partition_system and added
subract_cycles function with assertion to detect cycle wrapping.

Fixes #1677.

Change-Id: I7f1b19397b36456f1d120dbc0080146a384def5a

8 years agoUpdated FFTW recommendations in install-guide.
Erik Lindahl [Fri, 12 Jun 2015 21:32:56 +0000 (23:32 +0200)]
Updated FFTW recommendations in install-guide.

Both SSE2 and AVX should be used, and there is now
info about the upcoming FFTW-3.3.5 with more SIMD support,
as well as a link to an unofficial prerelease on the gmx site.

Fixes #1696.

Change-Id: I6413d5e0e06c78a3c9f62acbf6fa0bfc1bd0a561

8 years agoMove code for managing mdrun -cpi and -append
Mark Abraham [Tue, 20 Jan 2015 11:05:31 +0000 (12:05 +0100)]
Move code for managing mdrun -cpi and -append

Prepares for refactoring to simplify and fix this handling. Kept logic
peculiar to handling mdrun command-line options near other such code.
Renamed functions to better suit their roles. Renamed bAppend
variables, in particular to separate the role of "the user asked for
appending" from "whether mdrun is actually going to do appending."

Change-Id: I063138a49d210e92cebe19e290dc6a0e7b72b1cf

8 years agoAutomated the -gpu_id option
Berk Hess [Thu, 7 May 2015 20:28:06 +0000 (22:28 +0200)]
Automated the -gpu_id option

With #PPrank <= #gpu in a node, the GPU id's were already assigned
automatically. Now with #PPrank a multiple of #GPU they are assigned
automatically with GPU sharing.

Change-Id: I59079b542b5703553c3e1b841c47abdc65f64459

8 years agoFix segfault with timer reset and -nb cpu
Erik Lindahl [Fri, 12 Jun 2015 19:49:27 +0000 (21:49 +0200)]
Fix segfault with timer reset and -nb cpu

Fixes #1710.

Change-Id: I701b8bb6111fd43379997b7af0aedae7a5fe567a

8 years agoAvoid warning about affinity on Blue Gene, reduce warnings
Erik Lindahl [Fri, 12 Jun 2015 20:46:24 +0000 (22:46 +0200)]
Avoid warning about affinity on Blue Gene, reduce warnings

- Blue Gene does not migrate threads, so don't warn about
  affinity setting not being available.
- To avoid flooding users with warnings, just use warnings
  when it is very likely the user did something incorrect
  when setting pinning options, but notes when it might be
  a property of the platform, or when it is not severe.

Fixes #1703.

Change-Id: Idaa781959e0997f6737593a8fd9243d6a979a493

8 years agoFix pairs_nb not recognized as part of moleculetype
Mark Abraham [Thu, 28 May 2015 14:15:29 +0000 (16:15 +0200)]
Fix pairs_nb not recognized as part of moleculetype

Old code gives "unknown directive" error from the default of the
switch statement.

Fixes #1749

Change-Id: I54977f76f82cfdbfd4a7070129aa365d4fe5e188

8 years agoAdd unit tests for ArrayRef
Mark Abraham [Wed, 18 Mar 2015 08:52:15 +0000 (08:52 +0000)]
Add unit tests for ArrayRef

This fixes mdrun signalling on BG/Q. The templated constructor for
ArrayRef does not work with xlc 12 on BG/Q with array fields of
structs unless the base type has size equal to char. Presumably this
is another example of the way that attributes of struct fields just
get thrown away by compilers.

Changed name of local variable to sig, just in case "signal" clashes
with a preprocessor symbol somewhere...

Some changes to the arrayref.h implementation to make it easier to
write the tests as type-parameterized, by making the factory functions
also appear as members of the corresponding classes, with the same
name for both ArrayRef and ConstArrayRef. While there, remove some
documentation duplication.

Fixes #1701

Change-Id: I6894706b224dc5f3db7893503371107f1ff324d2

8 years agoFix warning in uncrustify
Roland Schulz [Tue, 16 Jun 2015 06:15:36 +0000 (02:15 -0400)]
Fix warning in uncrustify

Change-Id: I101a3fcfe4d50191a2237ac0743979a841349cce

8 years agoFix consts in bonded and clincs
Roland Schulz [Tue, 16 Jun 2015 06:29:53 +0000 (02:29 -0400)]
Fix consts in bonded and clincs

- binary constants are not valid C++03
- extra unnecessary bits give warnings with ICC 15

Change-Id: I7645e2c489e6371bfabcbbf460fb3acbda447108

8 years agoFix broken links from the old flow chart
Teemu Murtola [Mon, 15 Jun 2015 15:28:33 +0000 (18:28 +0300)]
Fix broken links from the old flow chart

The program help pages got moved from programs/ to onlinehelp/, but
these explicit links were forgotten.

Change-Id: Ia37f4b20d37f40f727835bca71d9b85f3260502c

8 years agoFix OS X FFTW build failures introduced 86a772
Erik Lindahl [Mon, 15 Jun 2015 09:16:49 +0000 (11:16 +0200)]
Fix OS X FFTW build failures introduced 86a772

The two avx/sse options needs to be a list, and
since FFTW always picks gcc by default we need
to disable FFTW AVX regardless of the compiler.

Change-Id: Ie82d7cc85de0715d5f2dd7a6198af079575fe891

8 years agoFixed SIMD detection and flags common for IBM archs
Erik Lindahl [Tue, 12 May 2015 07:07:58 +0000 (09:07 +0200)]
Fixed SIMD detection and flags common for IBM archs

At some point the entire SIMD detection code in
CMake had been turned off for all platforms except
x86, likely because it caused problems when cross-
compiling for BG/Q. This fixes it to avoid executing
a binary when cross-compiling, but re-enables the
automatic detection on all other non-x86 platforms.
Second, the IBM compilers are buggy _without_ -O3
for SIMD code, so we now add high optimization for
xlc by default. When using CUDA, we avoid propagating
CFLAGS since that causes problems with VSX "vector",
but we add the -O3 optimization level to nvcc.
Finally, at high optimization level xlc produces
incorrect sign for tan(0) when it is converted to
float. We fix this by using tanf() when the compiler
is xlc.

Change-Id: Ia4cb627e5c65b84fee87815fcb5f5c220f34c2f3

8 years agoBuilding own fftw now uses version 3.3.4
Rossen Apostolov [Tue, 3 Mar 2015 13:47:17 +0000 (14:47 +0100)]
Building own fftw now uses version 3.3.4

Uses --enable-avx when GMX_SIMD is also AVX-based (and not on Mac with
GCC, where the build runs into issues with which assembler to use).

Change-Id: I47bc33655970ba8fc4c005de00bad3c5cb06e763

8 years agoRefactored mdrun resource division
Berk Hess [Wed, 22 Apr 2015 09:42:57 +0000 (11:42 +0200)]
Refactored mdrun resource division

The functions concerned with divided MPI/thread resources have been
moved from runner.cpp to the new file resource-division.cpp.
Set min_atoms_per_mpi_rank to 1 for NM and TPI to avoid compiler
warning and for NM on systems of a few atoms.

Change-Id: I94f770c47b4b5ca03de8f5a29a165631796204ad

8 years agoHardware reporting now covers all nodes
Berk Hess [Wed, 29 Apr 2015 10:13:00 +0000 (12:13 +0200)]
Hardware reporting now covers all nodes

The CPU and GPU hardware reporting and checking were only printed
for the node(s) of the master rank(s) of each simulation.
Now the most important CPU and GPU information is reduced over
MPI_COMM_WORLD. These results are printed and checks/warnings are
now based on this.
Because this is now system wide, the printing is moved up to directly
after the detection and GPU info is printed together with CPU info.
The Gromacs reference printing is moved to after hardware printing.

Refs #1643.

Change-Id: I974871c9a293a922dd1db9dcf633d485f62996ae

8 years agoFix commandline test data
Mark Abraham [Fri, 12 Jun 2015 13:17:44 +0000 (15:17 +0200)]
Fix commandline test data

There was a recent change to the output routines, with a pending
commit of other code whose new reference data still used the old
output routines. Regenerated that data.

Change-Id: Ic25d10b74b70733b8aeb271a293d5580c745ca5d

8 years agoUpdate help output
Teemu Murtola [Thu, 23 Apr 2015 10:31:22 +0000 (13:31 +0300)]
Update help output

Various changes to console help output (and some to man output) based on
feedback in #1687:
 - People seem to prefer a centered startup header with some ASCII art,
   so made the first output line just like that (except if running with
   -quiet), and center the list of authors.
 - Always start the option description at a new line.
 - Give more space to various parts of the option list so that they are
   more likely to align up.
 - Split the file listing based on input/output type.  This causes,
   e.g., some logically related options (e.g., -cpi and -cpo) to get
   separated in the output, but this seems to be the preferred approach.
 - Add formatting to the synopsis on man pages (similar to how the
   options appeared in the 4.6-era man pages, except that reasonable
   line wrapping is still there).

Clean up the design for formatting the options list; now the actual
formatting code is better encapsulated in HelpWriterContext.

The user-visible scope of this change is limited to changing behavior
that changed between 4.6 and 5.0.  Thus, the changes here should be
sufficient to close #1687.

Change-Id: I349fd9021472f064f5797441090a3f3864868280

8 years agoTNG version 1.7.6
Magnus Lundborg [Fri, 12 Jun 2015 11:12:24 +0000 (13:12 +0200)]
TNG version 1.7.6

Fixed bug with reading and writing TNG compressed blocks
on big endian platforms.
Fixed compiler warning about potentially uninitialized values.

Fixes #1725.

Change-Id: I92062492116fa3044c3d1d0d0f920cfe42d21cbe

8 years agoImprove uncrustify Jenkins builds
Teemu Murtola [Fri, 5 Jun 2015 19:25:13 +0000 (22:25 +0300)]
Improve uncrustify Jenkins builds

Add a script to wrap uncrustify.sh for Jenkins, and make it produce
additional text files that can more easily be used for further
processing in Jenkins.

Change-Id: I3c25760eec4c37a07a7889f471eb5b61f9932a9c

8 years agoInitial docs for Jenkins integration
Teemu Murtola [Fri, 5 Jun 2015 11:20:41 +0000 (14:20 +0300)]
Initial docs for Jenkins integration

Add basic documentation for (some) of the Jenkins builds from the
perspective of how they interact with the build system.  This part
cannot change without changes in the build system and so can be
documented in the same repository as the build system.  And the
developer guide is a place where people would (hopefully) first look for
this kind of information.  Links can be provided to more documentation
on Jenkins usage and other configuration (e.g., on the wiki), once that
stabilizes.

Related to #1731.

Change-Id: I87e180d12a77c692ac4594b6c062fb6ca150aa5d

8 years agoInitial build system documentation in dev guide
Teemu Murtola [Fri, 22 May 2015 05:43:18 +0000 (08:43 +0300)]
Initial build system documentation in dev guide

Add some documentation for the build system from the developer
perspective.  The documentation is far from complete, but should provide
a scaffold into which more documentation can be added, and should
already document parts that may not be familiar for everyone.

Explicit TODO items listed are not intended to be addressed in this
change.

Change-Id: I85094549d28ffeaf7063b472e2873ea6396ea897

8 years agoImprove Jenkins docs build
Teemu Murtola [Fri, 5 Jun 2015 10:47:50 +0000 (13:47 +0300)]
Improve Jenkins docs build

- Use GMX_COMPACT_DOXYGEN=ON for per-patch set builds to save disk space
  and some running time.
- Build also the man and install-guide targets, which were previously
  missing.
- Make the build fail if it actually fails, and unstable if it just
  produces warnings.
- Make the end of the console output contain some useful information on
  what exactly failed.  This gets put into unsuccessful-reason.log,
  which can be used by Jenkins to show as the reason of the build
  failure when it reports back to Gerrit.
- Add options to the script to make it more convenient to test.

Fix some issues found in man page generation and in handling of
GMX_COMPACT_DOXYGEN.

Change-Id: Ice7622d7760c3dbd74f7b5b25700482d0a08e06b

8 years agoExtend source layout description in dev guide
Teemu Murtola [Mon, 11 May 2015 10:52:27 +0000 (13:52 +0300)]
Extend source layout description in dev guide

Move the contents of codelayout.rst into overview.rst (some parts to
naming.rst), and organize and extend it for better readability.
This should now provide quite a comprehensive overview of the layout of
the Gromacs repository.

Change-Id: Ib9045c5572a072dacb5f22a64f0af48385307677

8 years agoMerge "Merge branch release-4-6 into release-5-0" into release-5-0
Mark Abraham [Thu, 11 Jun 2015 20:46:57 +0000 (22:46 +0200)]
Merge "Merge branch release-4-6 into release-5-0" into release-5-0

8 years agoHandle timing better in Jenkins
Mark Abraham [Tue, 9 Jun 2015 14:37:43 +0000 (16:37 +0200)]
Handle timing better in Jenkins

Sometimes we get floating-point exceptions in Jenkins when timers get
strange values and e.g. the code divides by zero. Added several checks
for such behaviour, including a new early exit from the timing routine
when a non-positive number of CPU cycles were counted. Removed a
recently added check that is now redundant because of the early exit.

Added several assertions about numbers of threads and ranks, which
might help reducing future mysterious FP exceptions if things are
broken elsewhere.

Fixes #1677

Change-Id: I532e164fc13e91f5f109dd63bb99c1569bdc70cd

8 years agoScript for Jenkins documentation build
Teemu Murtola [Fri, 22 May 2015 13:39:48 +0000 (16:39 +0300)]
Script for Jenkins documentation build

Move the script to do the documentation build from Jenkins to the
repository to reduce coupling.  There is hardly any content in the
script that would need to change if something in Jenkins changes (and
those few details can easily be passed into the script), but a lot that
needs to be changed whenever the build system for the documentation is
refined.

For now, the contents are essentially the same as in the Jenkins job
configuration for Documentation_Gerrit_master or
Documentation_Nightly_master.  Having a script in the same repository as
the build system makes it easier to evolve the script and the build
system in sync without enforcing rebases for every change in Gerrit.

Change-Id: If5eda21c94bc7d4707d4716d4f54b2be3ae898cf

8 years agoClean up vsite interaction clean-up code
Mark Abraham [Mon, 25 May 2015 08:39:09 +0000 (10:39 +0200)]
Clean up vsite interaction clean-up code

Lists of atom indices in interactions were being copied simply so that
they could be compared later. Instead, use a pointer to the original
data. This code has caused issues with multiple compiler versions and
checkers, concerned about initialization state or possible over-run,
and the best fix is to stop copying data unnecessarily.

Some general grompp checks were skipped for F_VSITEN, those are now
activated. The clean-up might have done incorrect memory access when
both normal vsites and F_VSITEN were present in the same molecule,
this is now fixed, but interactions with F_VSITEN are not removed.

Added new assertions to keep compilers happy that the logic of the use
of vsnral and first_atoms is sound.

Removed an old assertion that was added to satisfy an earlier version
of gcc.

Noted several TODOs for future clean up.

Change-Id: Ia7a6b2310640d1c1ca73ff3223269339d595c67d

8 years agoDocument limitations of trjconv -dump
Mark Abraham [Thu, 28 May 2015 14:34:47 +0000 (16:34 +0200)]
Document limitations of trjconv -dump

Change-Id: I336791a2eeb84a773de1ea96b8e36a42ac3fc66e

8 years agoMisc. improvements to docs build system
Teemu Murtola [Wed, 13 May 2015 18:11:03 +0000 (21:11 +0300)]
Misc. improvements to docs build system

- Get rid of GMX_BUILD_WEBPAGE.  It did not disable any user-visible
  detection, but only affected what build rules were generated, and none
  of those affected the default 'all' target.  Now the webpage target is
  always created, and any informative messages that were previously
  given during CMake time with GMX_BUILD_WEBPAGE=ON are now given when
  the user tries to build the target.
- For all the documentation custom targets, create a dummy target that
  gives a message to the user when building if the tools required to
  build that target are not available.
- Reduce the required dependencies for the 'webpage' target.  If some
  non-essential parts cannot be built, just give a message to the user
  and build the remaining parts with some broken links.

These should make the build system easier to document and to understand
from the user's perspective.

Change-Id: Ib65e3348b88b1e0461f1f69ba1218f09d376a6dc

8 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Tue, 9 Jun 2015 12:41:38 +0000 (14:41 +0200)]
Merge branch release-4-6 into release-5-0

Conflicts:
src/gromacs/gmxlib/copyrite.cpp
New citations in release-5-0 branch adjacent to incoming
ones; kept all citations
src/programs/mdrun/mdrun.cpp
New please_cite calls next to a line removed in release-5-0;
retained the calls.

Change-Id: I463a598e32ffa82ebdd66211feba84635bc962b5

8 years agoAdd description of relocatable binaries
Teemu Murtola [Tue, 5 May 2015 10:55:23 +0000 (13:55 +0300)]
Add description of relocatable binaries

Add some explanation of the current implementation for relocatable
binaries to the developer guide.  This was requested in some Gerrit
comment quite some time ago, so hopefully it will be helpful.

Change-Id: I6216306900ab138d24f34e8c2b472c06430d1003

8 years agoResolve one TODO for command line help tests
Teemu Murtola [Wed, 3 Jun 2015 19:17:20 +0000 (22:17 +0300)]
Resolve one TODO for command line help tests

Make [PROGRAM] replacement respect the binary name passed to
CommandLineModuleManager, giving the tests full control over the help
output.

There are complications making this work nicely in the selection help
(requires some effort in propagating the information), so change the
wording there for now to avoid this tag.  Can be revisited at a later
time if/when the help writing context is more uniform for different
cases that can trigger the selection help ('gmx help ...' vs. 'help ...'
in the selection prompt).

Change-Id: I93e7dd8279d3730d38122c212174e533420859b9

8 years agoImprove user guide text for command line interface
Teemu Murtola [Wed, 3 Jun 2015 10:54:56 +0000 (13:54 +0300)]
Improve user guide text for command line interface

- Restructure the tools.rst to have all the content on a single page.
- Correct inaccuracies in the information about common options and
  general behavior, and extend the text to cover more cases.
- Include the list of common options on the HTML pages (somewhat ugly
  still).
- Restructure the Sphinx input for easier management and
  understandability: all pages generated from the gmx binary is now
  under onlinehelp/, and all rst fragments (whether generated or not)
  are under fragments/ to make it easy to apply the same rules to all of
  them.

Change-Id: I2d55281bfba7dc781afcc2b09a9fef843730de5f

8 years agoadd last two GROMACS paper citations
Szilard Pall [Tue, 2 Jun 2015 16:59:43 +0000 (18:59 +0200)]
add last two GROMACS paper citations

The 4.5 paper was only in the README file but not printed to the log
while the last (de-facto 4.6) LNCS paper was not mentioned anywhere.

Change-Id: I95e947564957ded0b7f76cb82c3fe4f69c72f85f

8 years agoFix out-of-range integer literals for threefry
Erik Lindahl [Sat, 6 Jun 2015 11:06:42 +0000 (13:06 +0200)]
Fix out-of-range integer literals for threefry

The 64-bit literals need to have LL suffixes, or
xlc will warn about out-of-range literals and generate
code that fails the unit test. There was also a
single 64-bit literal in the implementation. Other
compilers appear to have handled this correctly,
so it is unlikely to have caused any user bug.

Refs #1725.

Change-Id: I575b6c12ace14973d4fae1edc81836686a2ff9d5

8 years agoOptimize atomic accumulation in CUDA NB kernel
Szilard Pall [Tue, 21 Apr 2015 16:57:25 +0000 (18:57 +0200)]
Optimize atomic accumulation in CUDA NB kernel

As a result of this reorganization of the reduction, the final atomic
accumulation of the three force components can happen on three threads
concurrently. As this can be serviced by the hardware in a single
instruction, the optimization improves overall performance by a few %.
This also results in fewer shuffle operations.

Change-Id: I29519469b1e1848c026ee5b7a32256440031dbce

8 years agoUse stat to check that paths are equivalent
Roland Schulz [Tue, 26 May 2015 18:21:40 +0000 (11:21 -0700)]
Use stat to check that paths are equivalent

Replaces the previous approach of comparing path as string.
The previous approach didn't work reliable on case insenstive filesystems
or with symlinks.

Change-Id: Iee11c172db89b98a26b3592be2f285110a85a632

8 years agoMerge release-5-0 into master
Roland Schulz [Fri, 5 Jun 2015 18:15:33 +0000 (14:15 -0400)]
Merge release-5-0 into master

Conflicts:
src/gromacs/gmxlib/rbin.c
(added also ICC16)
src/gromacs/mdlib/tpi.cpp
(gmx_simd_check_and_reset_overflow was removed already
in master branch, so no changes needed here)
        src/programs/mdrun/runner.cpp
(adjacent additions)

Change-Id: I85d92bce71ebeb6e38ac63bb61c3931d5bb54c16

8 years agoReenable lincs/bonded SIMD for ICC on Windows
Roland Schulz [Sat, 30 May 2015 07:46:07 +0000 (03:46 -0400)]
Reenable lincs/bonded SIMD for ICC on Windows

It was accidentally disabled when disabling MSVC because ICC
also has _MSC_VER defined.

Change-Id: I7733b4af74a12dd0997ed22e86f2cdf459f08aba

8 years agoRemove gmx_simd_check_and_reset_overflow
Mark Abraham [Thu, 4 Jun 2015 11:32:32 +0000 (13:32 +0200)]
Remove gmx_simd_check_and_reset_overflow

We think this can only be implemented on x86, was only used for TPI,
and protected against an issue Berk can't reproduce. Thus best
removed.

Refs #1740

Change-Id: Ia8ca50b67683dab5a0e5e4a8b8485946edfd922a

8 years agoDon't use PME ranks with GPUs and -npme=-1
Berk Hess [Tue, 19 May 2015 09:10:06 +0000 (11:10 +0200)]
Don't use PME ranks with GPUs and -npme=-1

The code disabling the automated PME rank choice with GPUs was
accidentally moved after init_domain_decomposition. This caused
PME ranks to be set up, but later a fatal_error occured for
inconsistent PP rank and GPU counts.
Refs #1374.

Change-Id: I5f6bcc90fecac7f63b332b8f1acca7368b5f71bc

8 years agoFix naming from "Gromacs" to "GROMACS"
Mark Abraham [Mon, 18 May 2015 12:36:37 +0000 (14:36 +0200)]
Fix naming from "Gromacs" to "GROMACS"

A bunch of user-facing names used the wrong name, so improved the
consistency there.

Fixing naming within source-code comments is not targeted here.

There's one or two fixes in the Doxygen comments, but that's not
targeted here. In particular, many references to "Gromacs" are in the
SIMD module, which would be silly to bump right now, since there are
lots of patches in Gerrit possibly affected.

Change-Id: I83f1414bffa322dbe2756dc4e5902342ac5fa2a5

8 years agoMore new quotes
Erik Lindahl [Sun, 22 Feb 2015 12:00:07 +0000 (13:00 +0100)]
More new quotes

Change-Id: I582cc4b025bd4f18f358134d11980d90cd66f363

9 years agoFix potential FPE in selection tests
Teemu Murtola [Sun, 31 May 2015 03:21:40 +0000 (06:21 +0300)]
Fix potential FPE in selection tests

Always initialize dynamic evaluation results to zero during the static
analysis pass.  The old code tried to do that, but missed a few cases
where the same expression was evaluated more than once.  Even during
static analysis, some dynamic arithmetic expressions are actually
evaluated, which could lead to FPE if the memory was uninitialized, even
though the results of the evaluation were never used.

Part of #1677.

Change-Id: I0cf73eb656d58f7ad08f6e12705c6d8a273adf84

9 years agoRefactor rst parsing for console output
Teemu Murtola [Tue, 2 Jun 2015 10:26:30 +0000 (13:26 +0300)]
Refactor rst parsing for console output

Move code from helpwritercontext.cpp into a separate class in
rstparser.*, and structure it more cleanly.  The logic is mostly the
same as earlier, but the new structure also makes it easier to fix
some issues.  In particular, since the code now first identifies what
the next paragraph is, and uses a separate loop to format it, it is much
easier to adapt the formatting to the contents of the paragraph.
Add comments for the complicated paragraph parsing logic.

To support this change, make TextLineWrapper not produce whitespace-only
lines if requested to indent an empty line.

Add tests for fixed/enhanced functionality.

Change-Id: I690dcf1578780d5fb0016d41da1e67dca96bd08c

9 years agoReplace gromacs.7 man page with gmx.1
Teemu Murtola [Sat, 30 May 2015 06:24:31 +0000 (09:24 +0300)]
Replace gromacs.7 man page with gmx.1

The description is the same, and the command list is there, but other
content is omitted.  Useful parts can be added back later, when it is
clearer what we want to include here.  Also, the man page now contains a
synopsis and common options for the gmx binary, as is suitable for
gmx.1.

Part of #1437.

Change-Id: I4dbdf542dd2b8a0a7a2e734eebdf13d68483842e

9 years agoDocument current help formatting
Teemu Murtola [Fri, 29 May 2015 10:10:11 +0000 (13:10 +0300)]
Document current help formatting

Add basic Doxygen documentation for the onlinehelp module.  Most
notably, this describes the markup used for the in-source comments,
including the latest developments that allow bullet lists, enumerated
lists, and some titles.

Change-Id: I25be2bcd4c590356d4af0fa5671bbeddcd1afe1f

9 years agoBasic support for titles within tool help
Teemu Murtola [Wed, 27 May 2015 10:12:35 +0000 (13:12 +0300)]
Basic support for titles within tool help

Preserve reStructuredText title formatting within tool help texts when
printing to console.  For now, manual care is needed to properly nest
the sections in the rst help export (which means that the first
subsection needs to use an underline of ^'s).  This allows removal of
all remaining [BR] tags, improving the HTML help.

Remove extra indentation from gmx wham bullet lists; they result in
unnecessary indentation in the HTML output that looks bad.

Fix formatting of the known issues bullet list by just using the
existing formatting engine, now that bullet lists are properly
supported.

Change-Id: I38a4f442f590515dde724c0cf60f0a862dc9cde7

9 years agoSupport rst tables in tool help texts
Teemu Murtola [Wed, 27 May 2015 09:41:13 +0000 (12:41 +0300)]
Support rst tables in tool help texts

Make it possible to use reStructuredTables in the help texts for tools,
and replace some [BR] tags in gmx energy help with a proper table.  The
formatting in the HTML help is greatly improved.

Change-Id: Ib25f7366d3196ba10fbc6cbcd09a0edd8dd3daf5

9 years agoUse stack buffer for LINCS&bonded gather/scatter
Roland Schulz [Fri, 29 May 2015 20:06:43 +0000 (16:06 -0400)]
Use stack buffer for LINCS&bonded gather/scatter

Fixes #1726

Change-Id: Idd57adc02c8fc05529a50e75f3017475b476a90f

9 years agoConverted random module to C++.
Rossen Apostolov [Tue, 9 Sep 2014 12:38:33 +0000 (14:38 +0200)]
Converted random module to C++.

Removed ununsed variables. Changed gmx_rng_cycle_* functions
to use uint64 instead of int64. Fixed uninitialized return variable.

Change-Id: I41ba38f21a0560da1080c8f51bcb36c311783c89

9 years agoWork-around for ICC 15 on Phi
Roland Schulz [Thu, 5 Feb 2015 06:28:51 +0000 (01:28 -0500)]
Work-around for ICC 15 on Phi

Change-Id: Id72e6fb124974f0d8572a1715bc1f25e536f7c69

9 years agoImprove lists in user guide for selections
Teemu Murtola [Sun, 24 May 2015 03:33:08 +0000 (06:33 +0300)]
Improve lists in user guide for selections

- Support enumerated list formatting in console output to make it
  possible to use reStructuredText enumerated lists in help texts.
- Make the keyword list use a bullet list for the keyword groups,
  providing some visual structure for the HTML output.  The extra stars
  do not hurt in the console output, either, but changed the extra help
  indicator to be a + instead of * to reduce confusion with these other
  stars.

Change-Id: I4d5063d4f117a31ea31d8d78cd799dfbd0f1eac8

9 years agoAdditional selection examples
Teemu Murtola [Sat, 23 May 2015 03:57:09 +0000 (06:57 +0300)]
Additional selection examples

Add some examples with explicit tool references, in particular for how
to use selections with tools that require pairs of atoms (gmx distance
and vector options of gmx gangle).

Add examples to explain the difference between the various
center-of-mass keywords.

Fix old note about default index groups with selection tools
(defselections.dat is not currently used).

Change-Id: Ic9e723e6dd2f46f8f0f5a7e1c4127994577acc3e

9 years agoRefactoring of PME load balancing
Berk Hess [Fri, 6 Mar 2015 11:32:24 +0000 (12:32 +0100)]
Refactoring of PME load balancing

Moved all the higher level PME load balancing management code from
md.cpp to pme-load-balancing.c.

Change-Id: Ic9f4be7373ccaa40b3867af6facce66b873efab3

9 years agoFix warnings from GCC 5
Mark Abraham [Mon, 25 May 2015 15:43:45 +0000 (17:43 +0200)]
Fix warnings from GCC 5

Removed unnecessary ddata array from PME-spread spline
calculation. That might even be a useful optimization, for really bad
compilers. Moved declarations into the appropriate loops, so that
analyzers can work better here.

Added several other assertions to keep the code analyzers happy.

Reorganized implementation of get_vsite_masses to get cam declared and
used in a way that keeps analyzers happier. Removed a now useless
assert on j >= 1.

Change-Id: I9c5113f7e4013c629fca87614af4b74e249ee27a

9 years agoConverted pulling code to C++.
Rossen Apostolov [Wed, 3 Sep 2014 13:54:35 +0000 (15:54 +0200)]
Converted pulling code to C++.

Removed unused variables and changed some pointers to const char.
Added some static_cast to make explicit the old casting behaviour.

Added a missing default clause in pull code

Change-Id: I14708cf15799c564b77e466d73a9e8bc4488d192

9 years agoAvoid possible floating-point exception
Mark Abraham [Tue, 26 May 2015 01:20:48 +0000 (03:20 +0200)]
Avoid possible floating-point exception

Refs #1677

Change-Id: I7cc73d50a64ecfd05120ecfd464a47665f1e9df3

9 years agoDon't set CFLAGS for Phi in toolchain
Roland Schulz [Wed, 22 Oct 2014 01:23:29 +0000 (21:23 -0400)]
Don't set CFLAGS for Phi in toolchain

The recommended way to set those flags is with CMAKE_*_FLAGS_INIT but
that is only passible in a platform file because those set in a toolchain
file get overwritten.

This fixes that extra CFLAGS passed on the command line don't get ignored.
Also move setting of fftw out of platform file because those should
be project independent.

Change-Id: I5f4d70efd8369bdef5f5060959e3568026d6820c

9 years agoConvert ewald module to C++
Mark Abraham [Sun, 12 Oct 2014 18:21:18 +0000 (20:21 +0200)]
Convert ewald module to C++

Used std::min/max/pow, some static casts, eliminated unused variables,
defined module, added some Doxygen, initialized some tensors directly
with zero. Removed all C++ ifdef guards, since this module and all its
callers all now compile as C++!

Reworked the implementations of gmx_pme_pp_init(),
gmx_pme_send_force_vir_ener() and gmx_pme_recv_coeffs_coords() to
handle unused-variable warnings better. Such functions can only ever
be used when MPI is configured, but in that case, the old
implementations had variables whose values had to propagate across
ifdef-ed regions. Now, more of the function bodies are behind an ifdef
and the unused values are marked as such only on the code path where
they are unused.

Simplified logic in long-range-correction.cpp so that humans and the
clang static-analyzer can understand what is going on. Fortunately,
the death of the group scheme will eliminate much of the horror of the
ewald_LRcorrection() function, because calc_excl_corr will be always
false.

Replaced use of undocumented conjmul(a,b) with cmul(a, conjugate(b))
since the latter two are static functions in gmxcomplex.h.

Renamed tabulate_eir() as tabulateStructureFactors().

Removed mpi_type in favour of existing GMX_MPI_REAL

Replaced some macros with constants.

Converted comments into basic Doxygen, plus a suppression in
pme-internal.h because Doxygen seems to think struct fields are public
documentation no matter what you tell it.

Change-Id: Ic9f219cc73dbb586c58a78cdfcd17e2bc1fd7a19

9 years agoFix use of hard-coded temporary filename
Mark Abraham [Tue, 26 May 2015 00:53:42 +0000 (02:53 +0200)]
Fix use of hard-coded temporary filename

Using temp.top can run into a user file of the same name, which is
unfriendly. Instead, use the function we have for doing the job of
making a temporary filename.

Fixes #1747

Change-Id: Ia6266e5605dd14032743e11f5dc68a520c47ce06

9 years agoOverview docs for analysis nbsearch
Teemu Murtola [Mon, 25 May 2015 05:49:16 +0000 (08:49 +0300)]
Overview docs for analysis nbsearch

Add doxygen documentation that provides an overview of the analysis
neighborhood search, both from a usage perspective and from an
implementation perspective.  While the latter may not be that important
for using the API, it is probably of interest for people with general
background in MD.  And it shows the complexity of the implementation,
providing additional justification for having this as a shared
implementation for all the tools.

Change-Id: If52060b93601cbf051db6062ef644900dcb1f780