alexxy/gromacs.git
9 years agoMerge "Merge branch 'release-5-0'"
Roland Schulz [Wed, 17 Dec 2014 09:06:07 +0000 (10:06 +0100)]
Merge "Merge branch 'release-5-0'"

9 years agoFix cppcheck-1.67 warnings
Roland Schulz [Sun, 14 Dec 2014 20:25:53 +0000 (15:25 -0500)]
Fix cppcheck-1.67 warnings

Remove suppressions for previous cppcheck versions

Change-Id: Ifb03e7b2300b65ca8adb8e22b71da25ea472be52

9 years agoMake 'gmx sasa' volume computation translation-invariant
Teemu Murtola [Sat, 29 Nov 2014 05:48:10 +0000 (07:48 +0200)]
Make 'gmx sasa' volume computation translation-invariant

Compute the center of the molecule also when PBC is used, instead of
using the origin as the center.  The center is used for volume
computation, and this makes the output translation-invariant with PBC.
This also makes the results of PBC and no-PBC computation match for the
same structure in case there are no contacts over the PBC.

The whole volume algorithm is broken if the molecule is split across
PBC in the input structure (which is likely the case if one wants to use
-pbc), and that would require substantially more effort (essentially,
making each continuous surface whole before computing the volume), so
only added a note to 'gmx sasa -h' to explain this for now.

Change-Id: I1cf75505ceb403f5650f05453ec2bc7b979d1e9e

9 years agoMove code to prepare for GPU interface rework
Mark Abraham [Thu, 11 Dec 2014 16:31:25 +0000 (17:31 +0100)]
Move code to prepare for GPU interface rework

This is pure renaming, so hopefully rebases work better. Two of the
header files were being explicitly removed from the set installed, but
now that these headers are no longer in legacyheaders, this issue is
resolved.

Change-Id: I5bbc89c2e52e0d92704896c48eeed5d9c00fd61a

9 years agoMerge branch 'release-5-0'
Mark Abraham [Mon, 15 Dec 2014 23:29:20 +0000 (00:29 +0100)]
Merge branch 'release-5-0'

Conflicts:
CMakeLists.txt
Only changes from version numbers and test hashes, not relevant
for master branch

Change-Id: Ia10e2b82a4ffc3ac408813081c15fe6a858a93f3

9 years agoFix NVML detection on Windows
Roland Schulz [Mon, 15 Dec 2014 00:32:29 +0000 (19:32 -0500)]
Fix NVML detection on Windows

Change-Id: I681744dd21a8390cbe2b2ad23c1ad49f2633b241

9 years agoRemoving iteration + constraints framework
Mark Abraham [Sat, 29 Nov 2014 21:53:23 +0000 (22:53 +0100)]
Removing iteration + constraints framework

Getting rid of iteration + constraints required by the use of MTTK +
constraints, in order to simplify the main loop.

Eliminated related variables and arguments that are now unused.

Left some otherwise useless brace pairs in do_md(), so that
uncrustify-friendly formatting was preserved, so we can more easily
review this for correctness. Left TODOs to remove those braces later.

Implemented mdrun check so that an old .tpr with MTTK + any form of
constraints cannot be run.

Refs #1137

Change-Id: I22816de7db4420a66341fa8bf35d967a71ad6568

9 years agoVersion bumps after new release
Mark Abraham [Wed, 1 Oct 2014 12:31:12 +0000 (14:31 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: I59bbe346656f1892e154f899bac361fcfeea65a1

9 years agoVersion 5.0.4
Mark Abraham [Tue, 9 Dec 2014 10:42:34 +0000 (11:42 +0100)]
Version 5.0.4

Removed -dev tags from versions. Bumped regressiontest hash.

Change-Id: Idcb1c288b0119c17a9ad644179e96c4734a798f6

9 years agoFix constraints checks in grompp
Mark Abraham [Sat, 29 Nov 2014 21:50:25 +0000 (22:50 +0100)]
Fix constraints checks in grompp

This adds F_CONSTRNC to the set of interactions that should trigger
checks on SHAKE and LINCS parameters, and permits the MTTK check to
test also for SETTLE for its warning. The latter will also be used to
prevent MTTK + any constraints in a subsequent patch.

Change-Id: I175a2f050623192ff35a4cf93605fcfdd909f41a

9 years agoMerge "Merge release-4-6 into release-5-0" into release-5-0
Mark Abraham [Mon, 15 Dec 2014 17:57:47 +0000 (18:57 +0100)]
Merge "Merge release-4-6 into release-5-0" into release-5-0

9 years agoUse new XML format with cppcheck
Teemu Murtola [Sun, 14 Dec 2014 15:10:54 +0000 (17:10 +0200)]
Use new XML format with cppcheck

The console output in Jenkins is full of warnings about the old format,
and apparently some issues are not reported in the old format.

Change-Id: I35a40444b39b697d765d65c14706ebe7d2dcf67d

9 years agoC++ interface for surface area calculation
Teemu Murtola [Sat, 29 Nov 2014 04:58:51 +0000 (06:58 +0200)]
C++ interface for surface area calculation

Convert nsc_dclm_pbc() to a C++ class that provides the same interface,
except that the number of surface dots is specified separately, not for
each calculation.  The internal implementation is still mainly the same,
but the new interface makes it possible to get rid of the global
variables storing the unit sphere surface dots.  This in turn is
requires for making the algorithm thread-safe.

Clean up the implementation a bit by making internal functions static
(they will later become members of the Impl class), and replacing some
error-handling-by-writing-to-stderr-using-global-variables with asserts
or silent proper behavior.

Add tests for all the different paths of the unit sphere surface dot
generation.  These help ensure that the algorithm stays unmodified when
it gets refactored for thread safety.

Change-Id: Icf39eb4d105555b2eafdfd70b219a73c294900af

9 years agoUse bitmask for bonded
Roland Schulz [Wed, 26 Nov 2014 01:40:30 +0000 (20:40 -0500)]
Use bitmask for bonded

Also move bitmask to utility and f_thread_t to forcerec-threading.h.
This introduces a cycle because listed-forces now depends on
mdlib/forcerec-threading.h. There is not yet a module where
forcerec-threading.h can go.

Change-Id: Ic220be2880f7263aa0e50b13f07ed509eb86e1b3

9 years agoFour new quotes from around the world.
David van der Spoel [Thu, 11 Dec 2014 19:54:05 +0000 (20:54 +0100)]
Four new quotes from around the world.

Change-Id: Ib2f597c1f0e55160365d9e074b02b7eacbb84298

9 years agoRemove heuristic group-scheme neighbour-list updates
Mark Abraham [Thu, 3 Oct 2013 19:05:00 +0000 (21:05 +0200)]
Remove heuristic group-scheme neighbour-list updates

-1 == nstlist used to trigger the use of an algorithm that did
neighbour searching only when particles had moved far enough that
there might be a need to update the list. This supported obtaining
better energy conservation with the group cut-off scheme. It has been
superseded by the Verlet cut-off scheme.

Part of #1292

Change-Id: I074790c1c5670e874b8b587a1d46e62e2edc8961

9 years agoFix latent bug in OpenMP initialization
Mark Abraham [Fri, 23 May 2014 19:07:54 +0000 (21:07 +0200)]
Fix latent bug in OpenMP initialization

mdrun worked fine because it only tries to call
gmx_omp_nthreads_init() once, but anybody trying to run thread-MPI
mdrun (e.g.) as a library or in tests would see a hang, because the
master rank never gets to the barrier because of the premature return.

Extracted a function, so that the return works as intended, which will
help us reason better about this code. Used quick return statements
for control flow, rather than nested conditionals, but there's no
other change to the functionality.

mdrun with OpenMP can now be called more than once. As a side effect,
even without OpenMP, the subsequent calls to mdrun now issue the
over-subscription warning - and all OpenMP runs report the OpenMP
settings.

Change-Id: Ie7019565ef9a513cf4dfb530e90452d4ef48289e

9 years agoAdd StringFormatter and formatAndJoin to stringutil
Mark Abraham [Sun, 18 May 2014 10:48:46 +0000 (12:48 +0200)]
Add StringFormatter and formatAndJoin to stringutil

The StringFormatter functor wraps formatString so that we can write
one-liners that take a container, format its objects to strings, and
join them with a separator into one string for e.g. logging output.

Re-implemented joinString in terms of formatAndJoin, by using an
IdentitfyFormatter, thus eliminating duplication of implementation.

Added some tests for joinString also.

Applied new functionality to reporting GPU status information.

Change-Id: I424543a1ca4e214c438cc39f104f087e7e70030a

9 years agoConvert gmx rdf to the C++ framework
Teemu Murtola [Thu, 26 Jun 2014 11:59:07 +0000 (14:59 +0300)]
Convert gmx rdf to the C++ framework

Convert the RDF calculation tool to the new framework.  Main changed
beyond mechanical conversion:
 - Remove -com and -rdf options in favor of using selections directly.
   Both functionality, and a lot more, is now directly supported with
   proper selections.
 - Remove -hq and -fade options, as both are just post-processing that
   can be trivially done based on the output xvg file alone.
 - Normalization is reworked to work with dynamic selections.
 - Add an -rmax parameter that allows specifying an upper cutoff for the
   RDF.  Combined with the use of the neighborhood search routines, this
   potentially makes the tool a lot faster if the RDF is not required up
   to half the box length.

Add basic unit/regression tests for a simple water box.  The reference
values are not verified in any way, so they mainly catch regression
bugs.

Change-Id: Ieed19fc39a84e299291232190333652ced26abee

9 years agoMerge release-4-6 into release-5-0
Mark Abraham [Thu, 11 Dec 2014 11:22:00 +0000 (12:22 +0100)]
Merge release-4-6 into release-5-0

Change-Id: I952a9b8dd61c0eb7456c640997093a1a5fea8fc3

9 years agoAdded grompp error for pulling to negative distance
Berk Hess [Thu, 11 Dec 2014 10:13:34 +0000 (11:13 +0100)]
Added grompp error for pulling to negative distance

Change-Id: Ida5f449709c95e7c89cff32957b9e57bc9d68212

9 years agoFix nstep command line override print
Szilard Pall [Wed, 10 Dec 2014 16:49:07 +0000 (17:49 +0100)]
Fix nstep command line override print

The commit addresses two issues:
- printing negative simulation length with "-nsteps -1";
- eliminates rounding when converting a non-integer time-step value from
  fs to ps units.

Fixes #1633

Change-Id: If1aac7e0f4e8e37f3e9777fa4eaa79744f3ccd65

9 years agoFix misc. analysis neighborhood search issues
Teemu Murtola [Sat, 6 Dec 2014 05:14:15 +0000 (07:14 +0200)]
Fix misc. analysis neighborhood search issues

- Avoid an overflow fp-exception in case of zero cutoff (original fix by
  Roland).
- If a bounding box of the reference positions has a zero size in
  some dimension, fall back to a single grid cell and simple searching
  in that dimension (this could possibly be improved after the search
  uses a rectangular grid).
- If the bounding box (or the PBC box) is very flat or has a forced
  single grid cell in some dimension, adapt the grid dimensions such
  that the cells really have ~10 particles on average.

Change-Id: I4f8e5df9c4c479e480052e575354c54319bac22f

9 years agoTrack locations for selection parsing products
Teemu Murtola [Wed, 5 Nov 2014 19:32:46 +0000 (21:32 +0200)]
Track locations for selection parsing products

SelectionTreeElement and all intermediate structures used for selection
method parameter parsing now track the location in the input string.
By itself, this change does nothing, but it enables the subsequent
change that switches to exceptions to use this information for much
better context information in the error messages.

The location is kept as a SelectionLocation instead of as a string to
avoid spending a lot of memory for these strings with complex
selections: in general, each node in the tree contains the concatenation
of the strings from its child nodes, and there can be quite a few nodes
at the top that all contain have the full selection as their location.

Related to #655.

Change-Id: I7b1a317e043c6ff791b25f5fa357d8166c577fae

9 years agoFix recent bug with trilinic 1D DD
Berk Hess [Mon, 8 Dec 2014 21:18:35 +0000 (22:18 +0100)]
Fix recent bug with trilinic 1D DD

A recent bug-fix (c8d919a3) for triclinic 1D domain decompostion
introduced a bug for boxes with box[YY][XX]!=0.
Fixes #1656.
Refs #1631.

Change-Id: I06b9376212390b73e90a3ce9704dee2bad9693fb

9 years agoVersion bumps after new release
Mark Abraham [Wed, 1 Oct 2014 12:31:12 +0000 (14:31 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: I823a0a79a805c67988a461d891771ff999c6548f

9 years agoVersion 5.0.3
Mark Abraham [Tue, 9 Dec 2014 10:42:34 +0000 (11:42 +0100)]
Version 5.0.3

Removed -dev tags from versions. Bumped regressiontest hash.

Change-Id: Ieb2588deeb5c866d621af7cbe7e5709ac6f53220

9 years agoMake tune_pme understand the "-nsteps" option. Fixes #1650
Carsten Kutzner [Wed, 3 Dec 2014 10:34:38 +0000 (11:34 +0100)]
Make tune_pme understand the "-nsteps" option. Fixes #1650

All command line arguments that tune_pme does not understand are passed over
to mdrun. For a quick sanity check the mdrun options are used together with the
additional option "-nsteps 1", which then appears twice on the command line.

The solution is to let tune_pme understand the "-nsteps" argument, so that it
only occurs on the mdrun command line at launch time. The option for that was
already there but before called "-simsteps".

Change-Id: I8362ced75e67b0e28b4a5e1bd427ae6ae4e0e758

9 years agoMerge "Merge release-5-0 into master"
Mark Abraham [Mon, 8 Dec 2014 23:14:56 +0000 (00:14 +0100)]
Merge "Merge release-5-0 into master"

9 years agoRectangular grid for analysis nbsearch
Teemu Murtola [Fri, 24 Oct 2014 17:45:21 +0000 (20:45 +0300)]
Rectangular grid for analysis nbsearch

Previously, the grid-based analysis neighborhood search used triclinic
grid cells covering the triclinic unit cell.  This made PBC handling
easy, but all other math is more complicated, and the volume where pairs
are searched is sub-optimal for triclinic boxes.  Now, the grid is
composed of rectangular cells that cover the rectangular unit cell.

The most significant change to support this is that most computation for
what cells to loop over is now done in fractional cell coordinates to
support for non-integral shift of the cell grid at the edges of
triclinic boxes.  The fixed list of cell neighbors is replaced with
on-the-fly computation, since the non-integral shifts mean that the list
of neighbors is not always the same.  This approach also allows the list
of cells in the loop to easily depend on the test position.  Any cells
that are completely outside the cutoff from the current test position
are skipped completely, improving the efficiency also for rectangular
boxes.

Currently, the list of cells looped over is still a rectangular
box, but with rectangular cells, the math to exclude corners should be
straightforward to add in subsequent changes.

Change-Id: I8bd4fa67e26e282cd5bd82dee5edfaf651e59a19

9 years agoFixed pull coord init with rate!=0, t_start!=0
Berk Hess [Tue, 2 Dec 2014 10:14:22 +0000 (11:14 +0100)]
Fixed pull coord init with rate!=0, t_start!=0

When the start time of a simulation is non-zero a pull setup with
coordinates with rate!=0 and pull-start, grompp would generate
incorrect pull init reference values.
Also fixed the layout of the grompp pull coord information table.

Change-Id: I992a40b098853aba0922ec1d596430eb229d64a8

9 years agoFix group-scheme bug with changing LJ parameters in FE
Mark Abraham [Mon, 13 Oct 2014 10:12:40 +0000 (12:12 +0200)]
Fix group-scheme bug with changing LJ parameters in FE

We don't optimize for the case when we have only changed one of charge
or type, so the other vector must always be valid even when it is not
changing. The logic of calling ewald_LRcorrection didn't do this
correctly, perhaps because the construction logic in md2atoms was
unclear.

Changed name, origin and logic for bFreeEnergy to
bHaveChargeOrTypePerturbed to better reflect the correct usage and
meaning. Avoided testing any pointers for NULL - we should use
explicit control-flow constructs.

Fixes #1596

Change-Id: I61172681048075d3022bd6c4b781c6c9153eeadd

9 years agoAdded PBC note to comm-mode=angular warning
Berk Hess [Tue, 2 Dec 2014 09:41:21 +0000 (10:41 +0100)]
Added PBC note to comm-mode=angular warning

Change-Id: Id397d51c05512427414aa7decea55fed83ff42ac

9 years agoFixed a typo in the manual.
Carsten Kutzner [Mon, 8 Dec 2014 16:34:58 +0000 (17:34 +0100)]
Fixed a typo in the manual.

Using > in Latex text mode gave an upside-down question mark instead...
Also used math mode in expression before, which seems more appropriate.

Change-Id: Iefce4768545e899e922e4fa932c67d222927cefe

9 years agoAdd basic GPU support for gmx tune-pme
Mark Abraham [Mon, 31 Mar 2014 13:54:12 +0000 (15:54 +0200)]
Add basic GPU support for gmx tune-pme

New functionality
* permits the user to specify a per-node list of eligible GPU ids (as
  distinct from mdrun, which permits the user to specify the array of
  actual GPU ids to use), which it will then map to the PP ranks
  in round-robin style during the optimization
* detects whether the mdrun is GPU-aware if the user specifies GPU ids
* handles error from mdrun when number of PP ranks does not match the
  GPU id string provided
* handles error from mdrun when GPU with given id is invalid
* runs check that a .tpr will work mdrun with -npme 0, which is less
  likely to run into issues at small scale with eligible partitioning
  issues than -npme -1; noted TODO to fix this for large scale also

This code does not do anything active about optimizing the use of
OpenMP, as current-generation tune-pme is basically designed to have
no ability to change the number of MPI ranks at all. However, if the
MPI system is set up such that mdrun's automatic allocation of OpenMP
threads to ranks will work, then the optimization can take place over
runs that actually trigger the use of OpenMP. (This was true before
this patch.)

Some TODOs noted inline for future clean up / feature addition.

Refs #1119

Change-Id: Ic1ea4e7524f62e7e7480b2e61a0c0afad41ca710

9 years agoMerge release-5-0 into master
Roland Schulz [Fri, 5 Dec 2014 23:31:17 +0000 (18:31 -0500)]
Merge release-5-0 into master

Conflicts (trivial):
src/gromacs/gmxlib/gmx_thread_affinity.c
src/gromacs/mdlib/clincs.cpp

Manual changes:
Removed config.h because not necessary anymore:
src/gromacs/mdlib/nbnxn_search_simd_4xn.h
src/gromacs/mdlib/nbnxn_search.c
Removed config.h supression:
docs/doxygen/suppressions.txt
uncrustify:
src/gromacs/mdlib/clincs.cpp

Change-Id: I00064120f12f609fabecac9b3c823d33c015e59c

9 years agoSimplify analysisdata parallelism model
Teemu Murtola [Mon, 27 Oct 2014 18:17:32 +0000 (20:17 +0200)]
Simplify analysisdata parallelism model

Instead of trying to hide all parallelism within the AnalysisData and
AnalysisDataStorage classes, add an AnalysisData::finishFrameSerial()
call and make higher-level code responsible of calling that in suitable
context to do serial processing for data frames.  This then needs to be
propagated to parallel-aware data modules.

This substantially simplifies the implementation and makes it easier to
argue about correctness, since now nearly all potentially parallel code
will operate on distinct data, reducing the need to think about
synchronization.  The drawback is that now the calling code needs to
think about this, but there will be very little code that this actually
affects, and that is in the framework, not in every analysis tool.
Further, this actually makes the parallelism easy to express in terms
of, e.g., tbb::parallel_pipeline(), so the clarity can actually improve
without too much complexity.

Update and improve related high-level documentation to make these
aspects easier to explain.

Change-Id: Ibbfb4b7aa3acf7fcda0bfdb4da7212f5b11c1fcb

9 years agoAdd optional NVIDIA Management Library (NVML) Integration
Jiri Kraus [Wed, 22 Oct 2014 15:08:51 +0000 (08:08 -0700)]
Add optional NVIDIA Management Library (NVML) Integration

NVML integration allows to automatically control GPUBoost from GROMACS
directly on supported GPUs. With this GROMACS either changes
application clocks automatically to the best performing setting or
informs the user that he should do it. The latter is done if permissions
do not allow to change application clocks.

Change-Id: I998e45596e2f556a5be7fa146fcd216ecae11452

9 years agoClean up non-PME part of ewald module
Mark Abraham [Sun, 12 Oct 2014 16:35:16 +0000 (18:35 +0200)]
Clean up non-PME part of ewald module

ewald/ewald and ewald/ewald-util code had several different kinds of
stuff in it. Separated code that does Ewald long-range and
Ewald-family charge correction from the code specific to the group
scheme.

Moved general-purpose routines that are used in a few other places to
calculate Ewald splitting parameters to the math module.

Minimized header dependencies.

Removed unused things: FLBS FLBSZ

Removed use of typedef for existing opaque struct ewald_tab, per
policy in #1490. Renamed to gmx_ewald_tab_t.

Change-Id: I1394bbd02aa92e6581d011e52c5bee12406a0144

9 years agoMake mdrun print the list of compatible GPUs
Mark Abraham [Sat, 17 May 2014 13:35:56 +0000 (15:35 +0200)]
Make mdrun print the list of compatible GPUs

This extends functionality so that the available, compatible, and
actually-used GPU IDs are reported when that makes sense. This will
help (e.g.) gmx tune-pme optimize resource usage by running mdrun
to probe for the available hardware.

The old implementation and documentation had a few issues that have
been corrected or updated. The major issue was that the list of
compatible device IDs was formed and then replaced by the list of
device IDs to use, so the former was no longer available during
subsequent output.

Change-Id: I3ca3e88054bd7d288f556af7e5d7704145ab6fca

9 years agoMove threading support into listed-forces module
Mark Abraham [Sun, 14 Sep 2014 16:30:55 +0000 (18:30 +0200)]
Move threading support into listed-forces module

Added Doxygen, converted a macro to a const int.

Change-Id: I1e5579b1f80aecaf46827704cf5fd3b6d6285d80

9 years agoCreated do_force_listed and moved code to the module
Mark Abraham [Mon, 15 Sep 2014 07:07:18 +0000 (09:07 +0200)]
Created do_force_listed and moved code to the module

This commit is almost pure code motion and renaming, modulo things
like changes to predicates because they've been handled earlier in the
call tree.

Converted the logic to return immediately if GMX_FORCE_LISTED is
false, to make understanding and indenting easier.

Also migrated position-restraints code to bonded module, and called it
from a sensible place together with the other code inside
GMX_FORCE_LISTED. Elapsed time for position restraints now accrues to
the listed sub-timer, instead of a catch-all.

Reorganized the foreign-lambda part of position restraints to be
called together with the other foreign-lambda bonded
interactions. Fixed benign bug introduced by the copy-pasting in the
Verlet-scheme monster commit, where dvdl was re-used for
foreign-lambda position restraints in the then-newly-created
posres_wrapper(), instead of the dummy dvdl_dum.

Made some more const correctness of x and pbc.

Cleaned up some include-dependency logic in files in the module.

Change-Id: I118af1d66da210e08d9ea065d1f431b7470742cc

9 years agoMake domdec a proper module
Berk Hess [Mon, 1 Dec 2014 21:40:40 +0000 (22:40 +0100)]
Make domdec a proper module

Now has
* Doxygen group definition
* initial Doxygen comments
* correct #include guards
* no export "C" for header used only in C++ code
* all relevant current files are declared as such in the module
* new domdec_constraints.h and domdec_internal.h
* split off domdec_specatomcomm.cpp and domdec_vsite.c from
  domdec_constraints.cpp

Change-Id: I7ed79c1654850df31e242aa1e907afd124e3ae1b

9 years agoClarified grompp pull error messages
Berk Hess [Tue, 2 Dec 2014 08:08:45 +0000 (09:08 +0100)]
Clarified grompp pull error messages

Change-Id: If0df3fcd0d034c4b4ced04eb32ed7bb74e596776

9 years agoImprove selection parsing error reporting
Teemu Murtola [Sun, 2 Nov 2014 13:45:21 +0000 (15:45 +0200)]
Improve selection parsing error reporting

Now the selection parser tracks the part of selection text that
contributes to the current parsing context, and uses that for more
useful error messages.  At least in some cases, there is now also
context information for syntax errors, although this could likely be
improved further.

Exception handling during selection parsing is also improved:
 - The above context is now added to the exception, similar to what the
   old reporting mechanism does.
 - The full selection is added to the exception as context, also for
   non-interactive parsing.
 - More consistent exception handling, e.g., in cases where an exception
   is thrown during error handling.

Improve documentation for related functions.

Part of #655.

Change-Id: Ib276ce4e219692c9819e45a1637e3660d958803f

9 years agoAvoid race on dvdl with Verlet+OpenMP+LINCS+FE+VV
Berk Hess [Wed, 26 Nov 2014 20:17:12 +0000 (21:17 +0100)]
Avoid race on dvdl with Verlet+OpenMP+LINCS+FE+VV

Also restructured the dH/dlambda reduction in do_lincs (used for
coordinates and not affected by the race issue) to work similar
do the do_lincsp code and properly use thread parallelization.
Fixes #1647.

Change-Id: I4eeb131018abca88b3635932491d99a779e16037

9 years agoNon-periodic nbsearch with grid based on bounding box
Teemu Murtola [Tue, 26 Aug 2014 04:19:40 +0000 (07:19 +0300)]
Non-periodic nbsearch with grid based on bounding box

For cases where there is no full PBC, the analysis neighborhood search
routines now allow constructing the grid based on the bounding box of
the reference positions.  This frees the caller from the need to provide
a reasonably sized box even without PBC to benefit from the grid
searching.

Change-Id: Ia14b7c584a6ca84a5f698c12dc1491dde78bfe6d

9 years agoMove/add uncrustify documentation to dev manual
Teemu Murtola [Sun, 23 Nov 2014 11:27:30 +0000 (13:27 +0200)]
Move/add uncrustify documentation to dev manual

Add some basic description of code indentation/formatting guidelines,
and move documentation of uncrustify and related scripts to the
developer manual.  Improve the documentation at the same time, and make
all script reference the developer manual for additional documentation.

Make uncrustify.sh work without explicitly setting the UNCRUSTIFY
environment variable if the pre-commit hook is already configured.

Change-Id: I81ae71fbcdae0e177cc7b05fe278f8c20a19fe7a

9 years agoAdd 'gmx pairdist' tool as partial g_mindist replacement
Teemu Murtola [Tue, 23 Sep 2014 14:24:36 +0000 (17:24 +0300)]
Add 'gmx pairdist' tool as partial g_mindist replacement

Add a new tool that can compute pairwise distances from one reference
selections to one or more calculation selections.  The tool can do
minimum or maximum distance over the whole selection, as well as between
each residue/molecule pair in the selections.  This should provide
(nearly) all the distance outputs that g_mindist has, and with a bit of
effort also be able to replace g_mdmat.

The tool intentionally does not compute contact counts; those should be
added into a separate tool to keep things simpler.

Update some documentation references.

Change-Id: I553c3477ae808a133a3cec2b46feaccc3420022f

9 years agoAnalysis grid nbsearch for more cases
Teemu Murtola [Sun, 24 Aug 2014 04:16:41 +0000 (07:16 +0300)]
Analysis grid nbsearch for more cases

Add support for grid neighborhood searching also for epbcXY and
epbcNONE, as well as the XY mode in the analysis neighborhood search.
The grid is done based on the input box size also for the non-periodic
dimensions, or a single grid cell is used if the box size is unknown in
that dimension.  In the future, an option could be added to determine
the grid automatically from the bounding box, but that is outside the
scope of this change.  For the XY mode, a single grid cell is always
used in Z.

Improved the logic of determining when grid search is possible and/or
reasonable and implemented the option to force the grid
searching (since the test data currently would not trigger it
otherwise).

Change-Id: I0c43bf95d7d5dd46e57923cdf0d6864fbb3dfe59

9 years agoAdded warning for unnecessary soft-core
Berk Hess [Thu, 13 Nov 2014 11:30:33 +0000 (12:30 +0100)]
Added warning for unnecessary soft-core

The sc-coul mdp option is, presently, only active with lambda states.
grompp now issues a warning when using soft-core without Van der Waals
decoupling without lambda states.
Also fixed an incorrect twin-range grompp check with PME.

Refs #1421.

Change-Id: I0605fe0f735d69f96f478612a00434eccef6232f

9 years agoBasic support for 'z of ...' selections
Teemu Murtola [Wed, 29 Oct 2014 18:44:07 +0000 (20:44 +0200)]
Basic support for 'z of ...' selections

Add basic support for selections of type 'z of ...', where "z" can in
principle be any keyword and "..." any expression.  However, currently
the only syntax that is actually supported is '[xyz] of co[gm] of ...',
because
 1) this is the original case that was discussed in gmx-users some time
    ago,
 2) only the x, y, and z keywords satisfy the constraints that the
    simplest possible implementation requires,
 3) there is no context that would accept multiple values as produced by
    an expression like 'z of resnr 1 to 3', and
 4) there is no mechanism to detect that 'z of atomnr 1' actually
    evaluates to a single value.
Some of these limitations can be lifted in the future with reasonable
effort, though.

Change-Id: I6b87ce8d5c93e1ad05722dd59a66375b52b8e363

9 years agoAdd kernel and compiler suport for CC 3.7 devices
Szilárd Páll [Sat, 8 Nov 2014 02:05:31 +0000 (03:05 +0100)]
Add kernel and compiler suport for CC 3.7 devices

On compute capability 3.7 NVIDIA GPUs we can make use of the increased
register size by running 128 threads/block with keeping the minimum
number of blocks per multiprocessor at 16.

Change-Id: I84ec179a409668fe44fb9183cf3485c21bd53254

9 years agoFixed typo in amber99sb-ildn force field
Christian Wennberg [Mon, 24 Nov 2014 13:55:47 +0000 (14:55 +0100)]
Fixed typo in amber99sb-ildn force field

Torsion calculations for N- and C-terminus ILE tries to find a non-existing atom type

Change-Id: Ibdc6ecc88e0c4da304b97f092d0a908451e12ac4

9 years agoClarify memory management for selection values
Teemu Murtola [Sat, 1 Nov 2014 10:57:00 +0000 (12:57 +0200)]
Clarify memory management for selection values

Add asserts for cases where memory would be leaked when assigning the
storage pointer for gmx_ana_selvalue_t.  Add functions for cases where
the assignment is combined with some other operation that takes care of
the memory deallocation or ownership transfer to make the asserts not
give false positives.

The above clarifies the memory management and makes it less prone to
errors, but does not fix the memory leak that was revealed by "z of ..."
implementation.  To actually fix that, additionally split the logic for
freeing memory for gmx_ana_selparam_t, and call that also from the place
that earlier set the value pointer to NULL.

Move Doxygen documentation for some of the affected methods and their
neighbors to the header per newer guideline.

Add some extra debug output.

Change-Id: I4e5dfa1248a20cab8a242be7209b5b0779204e64

9 years agoHelper function for grouping selection positions
Teemu Murtola [Tue, 2 Sep 2014 17:20:21 +0000 (20:20 +0300)]
Helper function for grouping selection positions

Add a helper function that can be used to divide selection positions
into groups based on residues and/or molecules.
Currently, 'gmx sasa' uses a construct like this, and 'gmx rdf -surf'
will require it as well, as will a replacement for 'gmx mindist', so it
makes sense to have a common helper function.  The helper function can
then do extensive checking on the input just in one place, and it keeps
the tool code more readable by removing some complicated loops from
there.  Also, a single set of tests is necessary to cover all the paths,
and the tool tests can focus on the tool-specific functionality, without
needing to test also the different groupings.

Improve related documentation.

Change-Id: Iaa6904c4b4b7ff5b824f37d264c327bdf52da273

9 years agoFixes recently introduced bug in gmx analyze.
David van der Spoel [Fri, 28 Nov 2014 06:40:42 +0000 (08:40 +0200)]
Fixes recently introduced bug in gmx analyze.

Since the introduction of a separate module for autocorrelation
and related algorithms the program gmx analyze did not work anymore
due to a typo introduced, such that the acf related command line
arguments were not properly added to the others.

Change-Id: If79adc761de397e42c387d1aa6bd53d565b02820

9 years agoConvert remaining callers of do_force to C++
Mark Abraham [Thu, 4 Sep 2014 21:39:15 +0000 (23:39 +0200)]
Convert remaining callers of do_force to C++

Major callers are converted in other patches.

Removed unused variables, used std::min/max, named constants, put
maximum length on sscanf floats.

Introduced an instance of bMaster. Initialized gstat to and later
checked for NULL before use. These help static analysis reason
correctly. Previous code functioned correctly in practice, but correct
analysis would require cross-function analysis that cr, when passed as
non-const, is not actually modified. Fixed a warning about stepsize
not being used in L-BFGS, and added more comments to this algorithm
while editing the code to help us understand what it does.
The predict_shells() function has been modified to use the
gmx_mtop_atomnr_to_atom() call for case 2; the previous version would
use an uninitialized pointer.

Fixes #1593.

Change-Id: I54f238cedc78aadb0dad080ea3b28f001dce8d94

9 years agoRemove use of interaction_mask_indices on BG/Q
Mark Abraham [Wed, 12 Nov 2014 02:41:15 +0000 (02:41 +0000)]
Remove use of interaction_mask_indices on BG/Q

This field was degrading cache performance ~1% on x86. It probably
made little difference on BG/Q, because the extra integer operations
can use the second instruction-issue port, assuming the use of OpenMP
to use more than one hardware thread per core. Overall, this code is
about 1% faster on BG/Q.

Minor fix to the gmx_load_simd_4xn_interactions() function that looks
up the exclusion masks, so that new non-x86 platforms won't silently
fail for want of an implementation of this function.

Minor simplication to always pass simd_interaction_indices to
gmx_load_simd_4xn_interactions(), since it is only used on BG/Q and
then it is non-null.

Change-Id: I140a11607810e9cf08b702cae0b48426c3592fec

9 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Thu, 27 Nov 2014 17:04:46 +0000 (18:04 +0100)]
Merge branch release-4-6 into release-5-0

Conflicts:
src/gromacs/gmxpreprocess/readir.c
(added content at same point in both branches)

Change-Id: I9df7cef8c2e4920461fb3d84806c58cf07c645e2

9 years agoClean up gmx solvate
Teemu Murtola [Fri, 10 Oct 2014 04:06:47 +0000 (07:06 +0300)]
Clean up gmx solvate

- Remove unused code.
- Remove help text that did not have corresponding implementation.
- Remove paths in addconf.c that were no longer triggered now that
  gmx insert-molecules doesn't use it (will remove the whole file next,
  though, so careful review may not be warranted).
- Fix most memory leaks outside add_conf (add_conf still leaks several
  MB during the unit tests...).
- Consolidated memory management and reduced the scope of some
  variables.

Change-Id: Ibf570247a7e91bc028401165000142b03baebe4d

9 years agoPort gmx-solvate tests to use CommandLineTestBase
Teemu Murtola [Thu, 9 Oct 2014 18:59:57 +0000 (21:59 +0300)]
Port gmx-solvate tests to use CommandLineTestBase

This makes the tests relatively easily extendable to support checking
the output.

Change-Id: Icf835aa143d3832a340d156327c0aee6c80ef4ea

9 years agoMerge "Merge release-5-0 into master"
Mark Abraham [Thu, 27 Nov 2014 16:55:56 +0000 (17:55 +0100)]
Merge "Merge release-5-0 into master"

9 years agoMore control over file backups
Teemu Murtola [Fri, 10 Oct 2014 04:03:54 +0000 (07:03 +0300)]
More control over file backups

Add a gmx_set_max_backup_count() to specify how many backups should be
made, instead of just relying on the environment variable.  Make the
default to be no backups: now tests and FAHCORE do not need special
treatment.  Instead, make the command-line initialization specify the
maximum backup count, and add a command-line option that also allows
disabling backups as an alternative to the environment variable.

This also allows removing a valgrind suppression for memory leaks from
the test code.

Change-Id: Ib512eb2a491691c76404aacbf93b67087a1afe41

9 years agoFurther insert-molecules cleanup
Teemu Murtola [Tue, 30 Sep 2014 03:55:37 +0000 (06:55 +0300)]
Further insert-molecules cleanup

- Run insert-molecules tests under valgrind, and fix (most) memory
  leaks.
- Clarify memory management by moving memory allocation of some arrays
  into functions where they are actually used.
- More sensible status output.
- Additional tests.

Change-Id: I7bc2f7b4b155ac650235da00b414561b963d347c

9 years agoMerge release-5-0 into master
Christoph Junghans [Wed, 26 Nov 2014 22:18:01 +0000 (15:18 -0700)]
Merge release-5-0 into master

Change-Id: If41f9c458e5d3aa5f841afcd71bc7f72a1f312c7

9 years agoFix clang with boost 1.46.1 and 1.47
Roland Schulz [Wed, 26 Nov 2014 21:19:18 +0000 (16:19 -0500)]
Fix clang with boost 1.46.1 and 1.47

Change-Id: I53b9fcb1bcf553ea128f7edb2d15bec87fd4f9e9

9 years agoConvert surface area calculation to C++
Teemu Murtola [Mon, 17 Nov 2014 19:07:19 +0000 (21:07 +0200)]
Convert surface area calculation to C++

Minimal conversion to make min/max work, and remove a few unused
variables.  This enables writing a C++ wrapper over the functionality,
as well as using the analysis neighborhood search internally to fix
several issues with the original algorithm.

Change-Id: If5089a749c8db9630e33edab3d2b79968a28a921

9 years agoAdd some unit tests for surface area calculation
Teemu Murtola [Fri, 28 Feb 2014 04:37:13 +0000 (06:37 +0200)]
Add some unit tests for surface area calculation

There are a few real unit tests that compare the results against
analytical calculation for trivial cases, but the rest of the tests are
more of regression tests, designed to catch changes in the output.
I have not actually checked that the reference values for the more
complex values are correct.

Put the tests in surfacearea.cpp instead of nsc.cpp and renamed the
implementation to match in preparation for future cleanup.

The volume computation with PBC is not tested, since it is broken.

Change-Id: I18e3baa899b1c10fec0c8b43d8dd76a357297005

9 years agoFix trjconv modifying fr.time unnecessarily
Mark Abraham [Sat, 14 Jun 2014 01:07:43 +0000 (21:07 -0400)]
Fix trjconv modifying fr.time unnecessarily

The was a bug where trjconv modified the input frame time, which
caused issues with xtc seeking. This has recently been fixed
by commit 81d10b25, but it's better not to mess with the input
frame and only modify the output frame.

Refs #1405, #1406

Change-Id: Ibf7c8655e916c12f8cc51523a67556cc7988e6e6

9 years agoFix problem with mixed affinity mask on different nodes.
Ake Sandgren [Thu, 2 Oct 2014 15:29:46 +0000 (17:29 +0200)]
Fix problem with mixed affinity mask on different nodes.

If task distribution (with slurm for instance) causes both fully
allocated and not-fully allocated nodes to be assigned to the job then
there may be tasks with a all-cores affinity mask and tasks with a
not-all-cores affinity masks.

Fixes #1613

Change-Id: I71c0daa43a5dd42da57bfd09037806ce1d9334b5

9 years agoFixed triclinic 1xNx1 domain decomposition
Berk Hess [Fri, 24 Oct 2014 13:42:38 +0000 (15:42 +0200)]
Fixed triclinic 1xNx1 domain decomposition

With the Verlet scheme, 1D triclinic domain decomposition along
dimension y produces incorrect bounding boxes for the non-bonded grid.
This led to a lot of missing non-bonded interactions, which quickly
crashes any simulation affected by this.
Fixes #1631.

Change-Id: I9bd1fc9d983be839e0c9a8e62d47f6cf17684a03

9 years agoMerge release-5-0 into master
Roland Schulz [Wed, 26 Nov 2014 01:10:03 +0000 (20:10 -0500)]
Merge release-5-0 into master

Conflicts:
src/gromacs/mdlib/domdec.cpp (std::max)

Change-Id: Iaa77c561f52cf5815c35cb08008cf578d1be2314

9 years agoMove code to domdec module folder
Mark Abraham [Tue, 18 Nov 2014 19:46:26 +0000 (20:46 +0100)]
Move code to domdec module folder

It's not a module yet, but here's where it will be. Updated
suppressions for module cyclic dependency warnings for domdec and
mdlib.

Change-Id: Ibe449ec8078fb7f25c4e95ebae28bac74db4f577

9 years agoFixed twin-range + freeze + constraints
Berk Hess [Mon, 24 Nov 2014 14:36:13 +0000 (15:36 +0100)]
Fixed twin-range + freeze + constraints

With twin-range cut-offs, atoms which are both frozen and constrained
would experience very large or NaN forces, leading to constraint
warnings and errors.
Fixes #1639.

Change-Id: I1871a87054fec1149c9ed75872451df79a8ac2d2

9 years agoAvoid NaN in rlist buffer calculation
Berk Hess [Thu, 16 Oct 2014 12:03:49 +0000 (14:03 +0200)]
Avoid NaN in rlist buffer calculation

With constraints on large masses and very low tolerance, the Verlet
buffer calculation could produce 1/0. This could lead to a somewhat
too smaller buffer.
Also added a missing scaling factor to the contribution of the third
derivative of the potential. This issue only caused a minor
overestimate for systems with constraints and without electrostatics.

Change-Id: I97e9d428a83f1b4954012ebd39bc49d397574f8c

9 years agoWhen writing TNG the input must contain molecule data.
Magnus Lundborg [Fri, 24 Oct 2014 08:24:22 +0000 (10:24 +0200)]
When writing TNG the input must contain molecule data.

When using trjcat to write TNG the input must also be TNG since
no tpr file is used.

Fixes #1626

Change-Id: I060e0174f9a471e134a4a899f83afaf02f4fce00

9 years agoAdded warnings for ewald-geometry and surface-epsilon
David van der Spoel [Sun, 23 Nov 2014 11:01:02 +0000 (12:01 +0100)]
Added warnings for ewald-geometry and surface-epsilon

ewald-geometry and surface-epsilon require the system dipole,
which will be incorrect when charge groups with net charge cross pbc.
grompp now checks and warns for this.
Refs #1645.

Change-Id: I02e317cbddb47256f942312ec53c5bab2b13be2a

9 years agoRename doc-* targets to be less generic
Teemu Murtola [Fri, 21 Nov 2014 18:26:42 +0000 (20:26 +0200)]
Rename doc-* targets to be less generic

Now that there are a lot of other documentation targets as well, rename
the targets that generate Doxygen documentation to doxygen-*.
Also, rename the doc-check target to source-check, since it has evolved
to more than just a Doxygen documentation checker.

There is some backwards-compatibility glue for Jenkins that expects to
execute the doc-check target with the old name, but otherwise this
change should only be visible to those few developers that may generate
the Doxygen documentation themselves or run the check-source target.

Change-Id: If69b4becc2bdc17899fa17ffd12ea1516133457b

9 years agoSet GMX_SIMD to MIC for Xeon Phi
Roland Schulz [Fri, 10 Oct 2014 07:10:15 +0000 (03:10 -0400)]
Set GMX_SIMD to MIC for Xeon Phi

The reason GMX_SIMD wasn't set the same wasy as it is for other architectures,
was that we wanted it to also work for offload. But for offload it is easy to
overwrite it for a compilation unit being offloaded. Setting it normally for
native mode makes it more consistent and lets the user disable SIMD.

Change-Id: Id660a6560278039673ce0a4feaea3261647f40e8

9 years agoAdded .travis.yml
Christoph Junghans [Tue, 9 Sep 2014 17:57:40 +0000 (11:57 -0600)]
Added .travis.yml

* make use of travis-ci.org once a commit is pushed to github

Change-Id: I96673fb392a49d842ae6d959ce844e727def0d26

9 years agoDescribe doc-check in developer manual
Teemu Murtola [Tue, 16 Sep 2014 04:13:06 +0000 (07:13 +0300)]
Describe doc-check in developer manual

Move existing documentation for the doc-check target into the developer
manual, and extend it to cover also the include sorter.  Add a separate
page that explains the include order enforced by the checker.
Various updates to make the description match better the current state
of affairs, with the module dependency graph embedded into the Doxygen
documentation.

Change-Id: I570e4f6af78453cffea89855f294a599f28dedd9

9 years agoSkeleton for a developer manual
Teemu Murtola [Mon, 15 Sep 2014 18:49:54 +0000 (21:49 +0300)]
Skeleton for a developer manual

Add a skeleton for a developer manual, mostly focusing on the used tools
for now.  Some existing content from Doxygen is linked from the new
pages, but subsequent changes will add more content (with initial focus
on explaining the formatting and documentation checking that Jenkins
does) and reformat the existing content to better fit in the new guide.

Additional sections can be added when a need is identified.

Change-Id: Id28daa9effe93fb66d03ef7b696b14ff2554e602

9 years agoAllow increasing CUDA thread block size
Szilárd Páll [Fri, 24 Oct 2014 00:37:34 +0000 (02:37 +0200)]
Allow increasing CUDA thread block size

This change parametrizes the CUDA kernel to allow increasing the number
of threads per block by processing multiple j-clusters concurrently on
additional pairs of warps. The change supports 1-, 2-, and 4-way
concurrent j-cluster processing resulting in 64, 128, and 256 threads
per block, respectively.
Due to register limitations, on current CUDA architectures the version
with 64 threads/block (equivalent with the original kernels) is fastest.
The latter configurations using 128 and 256 threads are 3-4% and 10-13%
slower on CC 3.5/5.2, respectively.

Change-Id: I7c12a826f9347f724827320184628d6b310c1424

9 years agoAdd CUDA compiler support for CC 5.0
Szilárd Páll [Sat, 8 Nov 2014 03:47:03 +0000 (04:47 +0100)]
Add CUDA compiler support for CC 5.0

With CUDA 6.5 and later compute capability 5.0 devices are supported, so
we generate cubin and PTX for these too and remove PTX 3.5.
This change also removes explicit optimization for CC 2.1 where
sm_20 binary code runs equally fast as sm_21.

Change-Id: I5a277c235b873afb2d1b2b12b5db64b370f1bade

9 years agoRefactor position-evaluated selection keyword handling
Teemu Murtola [Fri, 31 Oct 2014 18:34:04 +0000 (20:34 +0200)]
Refactor position-evaluated selection keyword handling

Now the keywords themselves only return one value per position, not one
value per atom.  The expansion to atoms is instead done by the caller in
evaluate.cpp.  This makes it easier to reuse the methods for
implementing syntax like "z of ...", where the expansion is not
appropriate.

Also, add an additional unit test for code around this path.

Change-Id: Ida74244fe1c76eaf89c3d2e1ca9b6f6784b0476d

9 years agoStart nvprof profiling at counter reset
Szilárd Páll [Thu, 23 Oct 2014 23:49:46 +0000 (01:49 +0200)]
Start nvprof profiling at counter reset

When running in the NVIDIA profiler, to eliminate initial kernel
performance fluctuations, load balancing effects, as well as
initialization API calls from the traces, we now start the NVIDIA
profiler through the CUDA runtime API at the performance counter
resetting. This has an effect only if mdrun is started in nvprof with
profiling off.

Change-Id: Idfb3c86a96cb8b55cd874f641f4922b5517de6e3

9 years agoUse stat to check that paths are equivalent
Roland Schulz [Sat, 8 Nov 2014 16:16:08 +0000 (11:16 -0500)]
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

9 years agoCorrected parameter for sorting on search grid
Berk Hess [Fri, 31 Oct 2014 18:10:13 +0000 (19:10 +0100)]
Corrected parameter for sorting on search grid

The nbnxn grid search sorting range parameter used the whole box
height instead of the local DD cell height with domain decomposition
along z. This could not cause errors, but the search used O(N^2) time
with more than 4 domains along z, instead of O(N).

Change-Id: I324df6b15635a5ecff7c8bfeb124fdb933e5f845

9 years agoFix DD bonded interaction range print
Berk Hess [Fri, 17 Oct 2014 13:33:46 +0000 (15:33 +0200)]
Fix DD bonded interaction range print

A recent fix caused the DD setup printing of the maximum bonded
distance to instead print the max of the bonded and the list buffer
to the log file. This was a printing issue only.
Refs #1607.

Change-Id: I685e2e5e07f2f1a0a39c5eef4264a77ddfcecb31

9 years agoAdd bitmask type
Roland Schulz [Mon, 25 Nov 2013 21:06:26 +0000 (16:06 -0500)]
Add bitmask type

Adds support for arbirtrary number of OpenMP threads

Fixes #1386

Change-Id: I3747b4c7cd4b45d5901f710fcab47984c8913bc6

9 years agoUpdated some .mdp file variables to use "-" instead of deprecated "_"
Carsten Kutzner [Wed, 5 Nov 2014 14:53:34 +0000 (15:53 +0100)]
Updated some .mdp file variables to use "-" instead of deprecated "_"

In the .mdp file, now a minus sign instead of an underline is
generally used. Some sections of the manual still listed .mdp
variable names in the old notation.

- three manual sections (pulling, enforced rotation and computational
  electrophysiology) now use "-" instead of "_" in .mdp file variable
  names
- updated output of rotation code to reflect this up-to-date notation
- no functional changes are in this patch

Change-Id: I7b00193d3e3d549ce8c9a728b307280c0bdd35ce

9 years agoRemoved spurious GLY dihedral in AMBER03.
Justin Lemkul [Wed, 29 Oct 2014 13:10:36 +0000 (09:10 -0400)]
Removed spurious GLY dihedral in AMBER03.

Fixes #1632

Change-Id: I7302e42558454d546e14d7784077fb72c0dbfad7

9 years agoFixed typo in cmake warning.
Viveca Lindahl [Fri, 31 Oct 2014 17:09:10 +0000 (18:09 +0100)]
Fixed typo in cmake warning.

Change-Id: Id096ed65567fa671dce40970948b6435d9c357a0

9 years agoBackport valgrind suppression
Roland Schulz [Sun, 9 Nov 2014 07:42:58 +0000 (02:42 -0500)]
Backport valgrind suppression

Was added to master by 106ca9e6 and is now also required by
Jenkins for 5.0. Unclear what triggered that it is required.

Change-Id: I272600716fc986fe77a03fb86da827ba40d17adf

9 years agoFix CMP0054 cmake 3.1.0 warnings
Roland Schulz [Tue, 28 Oct 2014 21:49:08 +0000 (17:49 -0400)]
Fix CMP0054 cmake 3.1.0 warnings

Change-Id: I5d91289a543240fa6f493b7f7738522f3c268c07

9 years agoMinor update of boost README
Roland Schulz [Wed, 5 Nov 2014 00:01:29 +0000 (19:01 -0500)]
Minor update of boost README

Change-Id: Ib6017efd89225771cea4f56d9e18994c25b8361e

9 years agoAdd more selection unit tests
Teemu Murtola [Thu, 30 Oct 2014 18:45:52 +0000 (20:45 +0200)]
Add more selection unit tests

Add tests for syntax like
  res_com x < 5
  res_com distance from ...  < 5
as these were not covered well with earlier tests.  Subsequent changes
will refactor the code responsible for evaluating these to allow syntax
like "z of com of ...".

Change-Id: I63b60cc2958fcf919a82b809f60465b8444904d2

9 years agoFix more memory leaks in default group creation
Teemu Murtola [Thu, 30 Oct 2014 18:41:14 +0000 (20:41 +0200)]
Fix more memory leaks in default group creation

Free temporary arrays and strings allocated during the processing.
Don't know why these were not spotted in my earlier valgrind run (all of
these fixes are from working with the interactive selection tester).

Remove one unused array that was allocated and freed, but never used.

Change-Id: Ib78b6366bb5230499a77717f36afed652a1ec7fd

9 years agoFix memory leak in default index group creation
Teemu Murtola [Wed, 29 Oct 2014 18:40:34 +0000 (20:40 +0200)]
Fix memory leak in default index group creation

Temporary memory should be deallocated in the scope where it is
allocated, not only within some conditional paths.

Change-Id: I102d2b82ba531c25dd26728729b46c0b99c124e4