test/performance: measure allocation of halmd::raw_array
H5MD: rename root group "trajectory" to "particles"

The renaming reflects a change in the H5MD draft.

This commit refs #198804.
revise mdsim/box to (almost) comply with H5MD v1.0

Note: writing string arrays as attributes is not yet implemented in
h5xx. This is needed for box/boundary.

- make reader/writer better configurable by revising the function
  interfaces to use keyword arguments. Location is no longer hard-wired
  to "observables/box".

- support output of box data that are either fixed in time or vary

- drop redundant Lua bindings for "edges" and "offset"
  These functions were bound both as property (to query the value) and
  as free functions (to yield a data slot) which was a source of
  potential confusion.

- add missing attribute "volume" in documentation

This commit refs #198804.
observables/phase_space: add box data to H5MD particles group

Currently, box data are written in the time-dependent format. For a
static box this leads to the repeated storage of the same edge and
offset data.

Whether the box changes in time or not depends on the user script and on
the integrator chosen (e.g., constant volume or constant pressure). A
possible robust solution would be to select upon creation of the box
whether it will change in time or not.

Adjust the continuation tests since "box/value" does not exist.

This commit refs #198804.
H5MD readers and writers: revise H5MD metadata

Comply with H5MD version 1.0.

Arrange metadata in subgroups, include optional author email.

Let readers::h5md::file::check() test for the presence and type of the
metadata.

Adjust unit test.

This commit refs #198804.
doc/faq: add note on linking error due to wrong Boost ABI
mdsim.box.reader: use new attribute "dimension"

The attribute has been added recently to H5MD saving us from
investigating the number of box edges.

This change amends commit:e5e335f.
observables/dynamics/blocking_scheme: fix doc

The separation parameter is given in sampling steps, while `every` is
given in integration steps.

Add logging info on the sampling interval.
observables.thermodynamics: adjust output to H5MD spec

The dimension, particle number, and box volume are always stored in a
thermodynamics group. Use of the H5MD module "thermodynamics" has to be
declared in the metadata.

Rename nparticle() to particle_number() to reflect the H5MD name of the
field.

Bind data slot volume() to Lua. Do not query mdsim.box as the volume of
a particle group may be smaller than that of the whole box.

This commit refs #198804.
box: drop output to "/observables", read from "/particles"

In H5MD, the box is no longer mandatory in "/observables", but
accompanies each subgroup in "/particles".

Write the box as fixed-in-time data.

Adjust comparison of box data in continuation test.

This commit refs #198804.
io.readers.h5md: clean-up Lua script, emit error message in check()

Emitting the error message here helps simplifying the user script. If
needed we may introduce an optional parameter to suppress the error
message.
thermodynamics: remove evaluation of hypervirial

The hypervirial can be used to determine the compressibility. The
results, however, suffer from poor statistics and a superior method is
provided by extrapolation of the static structure factor to zero
wavenumber.

The method has been marked in commit:deec62b as "to be deprecated" for
the next release (after 0.3). Dropping it now is actually not a good
habit, but the quantity was not used by anybody so far to my knowledge.
packages.mk: update several packages

Update the following packages to their recent versions:

    Lua (5.2.2)
    Git (1.8.4)
    GCC (4.8.2)

Encode inline patches using base64 to avoid inconsistencies with regard to
escaping with different versions of GNU make.

Install GMP header files to include directory for GCC plugins. Retrieve
GNU MP from http mirror.

The update follows git://git.colberg.org/packages.git, which is
maintained by Peter Colberg.
packages.mk: fix lib path in GCC prerequisites

If libdir is omitted during configuration, it is either lib or lib64
depending on the architecture. Then packages depending on GMP, PPL, ...
do not find the respective libraries.

The issue appeared on OpenSuSE 12.3 and may be related to
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53798.

In cloog-ppl, adding linkage against libm.a resolved the following
error:

ld: .../.ppl-0.11.2/lib/libppl.a(Init.o): undefined reference to symbol 'fegetround@@GLIBC_2.2.5'
ld: note: 'fegetround@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so
try adding it to the linker command line
/lib64/libm.so.6: could not read symbols: Invalid operation
add test modularity/two_particles

The purpose of the test is to check the usability of several particle
instances. The scripts setup, equilibrate, and simulate a binary mixture
where each species is kept in a separate particle instance.

Creating particle instances from subsets of particle is not yet
possible. Even a workaround in Lua via observables.phase_space is
prohibited since the data slot returned by acquire() can not be called
from Lua. Another possible workaround would use {set,get}_{position,…}
and extract the data (nested tables!) by hand. (Which I'm not going to
implement in Lua.)

Actual checks of the final result are missing though.

This commit refs #198261.
remove dependency of potentials on mdsim::particle

C++ classes: drop explicit specification of number of species types in
the constructor. These numbers are implied by the shape of the parameter
matrices.

Check matching parameter matrices and number of particle species in the
constructor of the force classes.

Lua: provide optional parameters "species", "memory", and "label"
instead of the dependency on an instance of mdsim::particle.
fix compiler warnings due to commit:dd75b7c

http://my.cdash.org/viewBuildError.php?type=0&buildid=539121

 Große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten

 Warnung: Variable »nspecies« wird nicht verwendet
packages.mk: disable parallel build for HDF5, add ninja

By default, HDF5 is now configured without the --enable-parallel flag,
as it requires MPI to be installed which is not required by HALMD. It
can be enabled by "ENABLE_PARALLEL_HDF5=1", though.

Further, add ninja - an alternative to GNU make to the packages. In
order to generate ninja build files with cmake, use
  cmake -GNinja <source-dir>
doc/pdf: fix build for ninja

Split the LaTeX and PDF generation into separate commands and explicitly
call "make" instead of ${CMAKE_MAKE_PROGRAM} because sphinx will always
generate a Makefile and the make program can be different.
observables/sampler: reintroduce on_prepare() signal

After being removed in commit 9360386, it is needed for the new forces
implementation again.