alexxy/gromacs.git
10 years agoMade ORCA compile.
Justin Lemkul [Thu, 24 Apr 2014 14:45:41 +0000 (10:45 -0400)]
Made ORCA compile.

There are probably larger issues here with the QM/MM interface.
I made no effort to test the validity of any simulation done with
ORCA (since I don't have ORCA and I don't do QM/MM), so issues
definitely remain.

Change-Id: Ibd5dd83d05a3b42c641f0fc9def75c4641e3a7d4

10 years agoMore efficient TNG selection group creation
Magnus Lundborg [Wed, 16 Apr 2014 06:29:18 +0000 (08:29 +0200)]
More efficient TNG selection group creation

Do not create a TNG selection group if no selection is specified
explicitly, or if the selection contains all atoms in the system.

Change-Id: Ibe2a14e55aff829fdb74de074447f00f0e85f090

10 years agoFixed nbnxn FE list allocation issue
Berk Hess [Wed, 16 Apr 2014 08:11:50 +0000 (10:11 +0200)]
Fixed nbnxn FE list allocation issue

With free-energy calculations, the nbnxn search code could write
beyond the list bound, which could cause a segv.
Fixes #1474

Change-Id: I4c202fc14b04980f05ad1b3ea001732fdfaa9f00

10 years agoFixed bug inverting compression precision.
Magnus Lundborg [Wed, 16 Apr 2014 06:23:03 +0000 (08:23 +0200)]
Fixed bug inverting compression precision.

In the TNG library the compression precision was modified to
suit GROMACS compression precision better (i.e. indicating
the multiplier applied to the compressed value). There was no
change in GROMACS to reflect this, meaning that compressed TNG
would have 0 coordinates for almost all atoms. That is fixed
in this commit.

Change-Id: Id906c710deb68d172a38acec34892aa4823c039d

10 years agoFix whitespace
Roland Schulz [Wed, 16 Apr 2014 06:45:52 +0000 (02:45 -0400)]
Fix whitespace

Change-Id: Ib5cba2818ae0ae5cbf40634fc85a20ca196e70d9

10 years agoFix and simplify version matching for running tests
Mark Abraham [Fri, 11 Apr 2014 12:11:00 +0000 (14:11 +0200)]
Fix and simplify version matching for running tests

The version strings that might need bumping for releases and branch
forks are now all maintained in one place, and are always
defined. Correct behaviour follows from whether the "-dev" tag is
present in PROJECT_VERSION.

When this patch is merged with master branch, preserve the bump
to PROJECT_VERSION that is already in master branch, and change
release-5-0 to master branch for REGRESSIONTEST_BRANCH.

Change-Id: I4a5579f00e487273f8e08bad5613ecceac7bf682

10 years agoImprove language choice
Roland Schulz [Mon, 14 Apr 2014 16:47:02 +0000 (12:47 -0400)]
Improve language choice

Fixes #1480

Change-Id: I45d26cd329c8c358852dc759270ffbac54728d27

10 years agoMerge branch 'release-4-6' into release-5-0
Mark Abraham [Thu, 10 Apr 2014 16:40:29 +0000 (18:40 +0200)]
Merge branch 'release-4-6' into release-5-0

Change-Id: Icd1eafab98512328523a3ea788626b3fb415b0a8

10 years agoFurther fix to gmx tune-pme
Mark Abraham [Sun, 6 Apr 2014 15:04:14 +0000 (17:04 +0200)]
Further fix to gmx tune-pme

We need to ignore the column of total time, before reading the total
number of gigacycles. This was also broken before the recent patch to
this line that removed a spurious read of a %d for the number of
ranks.

Change-Id: I1ce7f378069c319e03fe9c0691193bd09a8a209f

10 years agoFix invalid dereference in g_tune_pme
Mark Abraham [Sun, 6 Apr 2014 11:40:38 +0000 (13:40 +0200)]
Fix invalid dereference in g_tune_pme

Change-Id: If4c999e22799ab2087ff1a1d74d8e5b50ddddd57

10 years agoMake sure water optimization is disabled for esoteric interactions
Erik Lindahl [Wed, 19 Mar 2014 16:16:18 +0000 (17:16 +0100)]
Make sure water optimization is disabled for esoteric interactions

This fixes a bug where the generic NB kernel could be called with
a water-water neighborlist for a few special combinations where
no C kernels existed (e.g. switch/shifted plain-cutoff coulomb).
This would typically lead to virtually no nonbonded interactions
being calculated and the simulation crashing rapidly, so it is
unlikely to have affected any results silently, but was noticed
when testing interaction forms.

Change-Id: I634fc4ab78b54281c89333299975e25883dc1f2c

10 years agoVersion bump for 5.0-rc1
Mark Abraham [Mon, 7 Apr 2014 15:37:18 +0000 (17:37 +0200)]
Version bump for 5.0-rc1

Change-Id: I2e855832ce3d8301a63fe32ea8e5077ad7c082c6

10 years agoDoxygen documentation for version.h
Teemu Murtola [Tue, 1 Apr 2014 15:47:15 +0000 (18:47 +0300)]
Doxygen documentation for version.h

This allows removing one suppression from the new checker, and it is
anyways nice that the documentation can actually be linked from relevant
parts of earlier documentation.  Some of the mentions of 4.6 could
perhaps be removed as obsolete in the future, but left them there for
now.

It requires extra investigation how to make the Doxygen build pick the
file up with an out-of-source build (if at all possible).

Change-Id: I196e89d1193cb8034580aee7d0d0bd5196ac176d

10 years agoRemove ancient SGI-specific code
Teemu Murtola [Fri, 4 Apr 2014 17:29:19 +0000 (20:29 +0300)]
Remove ancient SGI-specific code

Change-Id: I32aa353faf8848690e1ae931e958d04aff10c121

10 years agoClean up gmx_fatal.*
Teemu Murtola [Fri, 4 Apr 2014 04:02:25 +0000 (07:02 +0300)]
Clean up gmx_fatal.*

- Remove unused functions and macros.
- Replace some one-use wonders with a direct call to gmx_fatal().
- Add basic Doxygen documentation.
- Clean up some (but not all) gmx_fatal.h includes, removing unnecessary
  ones and adding some transitively covered ones.  Didn't go through all
  the files, and didn't do this very carefully, so some are still left.
  but as long as vec.h includes gmx_fatal.h, it doesn't really matter...

Preparation for moving gmx_fatal.h away from legacyheaders/.

Change-Id: I96934ac6ce6bca1e4e8473bdee2b8fec036b0f76

10 years agoMove string-parsing code to where it can be reused
Mark Abraham [Mon, 31 Mar 2014 15:19:14 +0000 (17:19 +0200)]
Move string-parsing code to where it can be reused

Change-Id: Ie043e403828237ee3a58baaa1521df2ea58d2f6d

10 years agoAdd doc for spec. values of GMX_MAXBACKUP
Roland Schulz [Tue, 1 Apr 2014 13:51:02 +0000 (09:51 -0400)]
Add doc for spec. values of GMX_MAXBACKUP

Change-Id: Ibea096daa61e08e32f8dba05ba6afc5c7fbbb28c

10 years agoRemoved possibility of compiling with GSL.
David van der Spoel [Fri, 7 Feb 2014 09:45:37 +0000 (10:45 +0100)]
Removed possibility of compiling with GSL.

Cleanup up of programs that are not functioning well anyway
will be done in conjunction with a move to the new analysis
framework. Removed g_kinetics.

Refs #1472

Change-Id: Ic948e239fd77d8ae519a6462c1e25f908a5de014

10 years agoMove string2.* to utility/cstringutil.*
Teemu Murtola [Tue, 1 Apr 2014 04:04:59 +0000 (07:04 +0300)]
Move string2.* to utility/cstringutil.*

Another common header away from legacyheaders/.
Some associated #include cleanup.
This reintroduces some unwanted dependencies (like utility -> fileio),
but those need to be fixed separately.

Part of #1415.

Change-Id: Iffb2820019e2b41ef74bcabcd202364917e43d58

10 years agoFixes for g_tune_pme for 5.0
Mark Abraham [Mon, 31 Mar 2014 13:43:38 +0000 (15:43 +0200)]
Fixes for g_tune_pme for 5.0

Removed unused variable procs, particularly because mdrun
no longer writes such a quantity on the "Total" line of
the walltime reporting section.

Change-Id: Ib49afc25c7d5119da7e315fab45d33cb64629b63

10 years agoFix bug accumulating nrank_pp_intranode on PME ranks
Mark Abraham [Mon, 31 Mar 2014 14:28:36 +0000 (16:28 +0200)]
Fix bug accumulating nrank_pp_intranode on PME ranks

The old code led to cr->nrank_pp_intranode=zero on PME ranks, which
meant that a command line of mpirun -np 4 mdrun -npme 2 on a two-GPU
node would fail, because gmx_select_gpu_ids() runs on all ranks, and
it calls limit_num_gpus_used() which thinks 0 PP ranks and 2 GPUs is
silly. Adding -gpu_id 01 works, of course, but that takes a different
code path in gmx_select_gpu_ids().

Change-Id: Iecd43ef9b71e2cc0339e93724b6b1071f0a159f6

10 years agoAdded LJ-PME and LJ Pot-switch to PME load estimate
Berk Hess [Tue, 3 Dec 2013 08:54:35 +0000 (09:54 +0100)]
Added LJ-PME and LJ Pot-switch to PME load estimate

Change-Id: I7f032fffb0a26d40914740c1180c4137c0b95653

10 years agoRe-use gmx_greatest_common_divisor()
Mark Abraham [Mon, 31 Mar 2014 16:11:33 +0000 (18:11 +0200)]
Re-use gmx_greatest_common_divisor()

Change-Id: Iee3a7b3bc339639360eed3498769efe64dd7dbf8

10 years agoMove smalloc.h to utility/
Teemu Murtola [Mon, 31 Mar 2014 18:20:05 +0000 (21:20 +0300)]
Move smalloc.h to utility/

One common header away from legacyheaders/.
Mostly mechanical replacement for the include paths, but removed a few
instances where the header was included more than once.  Also, reordered
the headers a bit, mainly in C++ files.

Part of #1415.

Change-Id: Ic438d501ebf5eccc285655a9e8f2f625eb12f1d1

10 years agoRemove #include <...> for local files in gmx-view
Teemu Murtola [Mon, 31 Mar 2014 17:26:26 +0000 (20:26 +0300)]
Remove #include <...> for local files in gmx-view

There were only a few remaining, and those don't seem to be necessary
for the headers that were including them.

Change-Id: I99c6663edc0e608fe349206d9a9ecdd2d61faea2

10 years agoFixed compilation issue in fgrid.cpp due to int/enum
David van der Spoel [Mon, 31 Mar 2014 19:52:36 +0000 (21:52 +0200)]
Fixed compilation issue in fgrid.cpp due to int/enum

gcc 4.8 is somewhat more picky about enums, and this
patch fixes an issue where an enum variable was used
outside of the defined range.

Change-Id: Ibfd7720d1d3e575c45bc1d5dbd30daad6391400c

10 years agoRemove quote
Mark Abraham [Mon, 31 Mar 2014 14:04:14 +0000 (16:04 +0200)]
Remove quote

"No gentleman wears a beard" would be ridiculous, and so is
the quote removed here.

Change-Id: Iac8aec72776dfe0147db15c32e7170004b168cab

10 years agoAdded CMake support for Extrae.
Rossen Apostolov [Wed, 5 Mar 2014 16:12:05 +0000 (17:12 +0100)]
Added CMake support for Extrae.

Website of the project is http://www.bsc.es/computer-sciences/extrae

Change-Id: Ifc71637ae7fbe855f3879b19f0968e929a92daf0

10 years agoClean up smalloc.h
Teemu Murtola [Sun, 30 Mar 2014 04:05:34 +0000 (07:05 +0300)]
Clean up smalloc.h

- Remove unused maxavail() and memavail().
- Remove unused scalloc().
- Remove srealloc(), which was only used in gmx_bar.c, and even there
  incorrectly.
- Move scoped_ptr_sfree to a separate header (this also potentially
  postpones issues that boost causes in CUDA code, since this is the
  only part that currently was pulling boost into CUDA).
- Convert all documentation to Doxygen.
- Fix some system header dependencies that were previously covered
  transitively, and fix some stylistic issues in the touched files.

Preparation for moving smalloc.h from legacyheaders/.

Change-Id: I89d6445799d818ccdb2bd93b6592eff1ccc618a7

10 years agoFix documentation of swap/enums.h
Carsten Kutzner [Fri, 28 Mar 2014 14:23:35 +0000 (15:23 +0100)]
Fix documentation of swap/enums.h

Another issue picked up by the doxygen documentation checker.

Change-Id: Ieaad04e713bb045a018823d26983dea1d52b202f

10 years agoMove some math headers away from legacyheaders/
Teemu Murtola [Thu, 27 Mar 2014 04:12:48 +0000 (06:12 +0200)]
Move some math headers away from legacyheaders/

- Move nrjac.* to linearalgebra/
- Move do_fit.* to math/

Also some minor associated clean-up.

Change-Id: I11943d5c9a0150133ca0a0d9bc36aceb06fb8bca

10 years agoDisable shared libraries by default for mdrun-only
Roland Schulz [Thu, 6 Mar 2014 22:30:48 +0000 (17:30 -0500)]
Disable shared libraries by default for mdrun-only

Shared libraries don't have any advantage for mdrun-only
build.

Also, add warning that someone re-using a normal build tree for a
subsequent mdrun-only build may want to manage this aspect explicitly.

Documented all this behaviour in the install guide.

Change-Id: I65fad0df8e54003599544903276a2be0ac61bbc2

10 years agoRemove dependency on commandline/ from oenv.cpp
Teemu Murtola [Thu, 27 Mar 2014 04:22:49 +0000 (06:22 +0200)]
Remove dependency on commandline/ from oenv.cpp

This was unnecessary, and this simplifies the module dependency graph.
With some simple changes, oenv only needs to use
utility/programcontext.h.

Change-Id: I794b15cee88bf49379fd8c783672df5f57628c97

10 years agoClean up string2.h-related includes
Teemu Murtola [Sat, 29 Mar 2014 13:20:49 +0000 (15:20 +0200)]
Clean up string2.h-related includes

- Remove unused split().
- Remove string2.h includes from files that were not using any function
  from there.
- Remove unnecessary system headers from string2.h, and add them to
  files where they are needed.  Some transitive dependencies can be
  left, since some headers actually require string.h etc.
- Add/remove ctype.h such that exactly those files that use functions
  from it actually include it.

There can be a few files now that use ctype.h without including
string2.h, which may trigger warnings on Cygwin, but those can be fixed
if we get around to properly supporting and testing Cygwin.

Preparation for moving string2.h from legacyheaders/.

Change-Id: Id9c441d2159ac3f06e088d6d7e0f05ffadb450cb

10 years agoFree-energy support for LJ-PME
Christian Wennberg [Tue, 11 Mar 2014 14:44:45 +0000 (15:44 +0100)]
Free-energy support for LJ-PME

Free energy calculations is now supported together with
LJ-PME.

Change-Id: I8f30bbf565d06bb10a5b6be37a3680fbd5cef6af

10 years agoOptimize intermodule dependencies
Teemu Murtola [Wed, 26 Mar 2014 04:35:44 +0000 (06:35 +0200)]
Optimize intermodule dependencies

- Move genconf from gmxana to gmxpreprocess.  sortwater.* is used by
  genconf and grompp, so moving them to the same place allows moving
  these files as well, removing all dependencies between gmxana and
  gmxpreprocess.
- Move utility/path.* to fileio/.  This removes a cyclic dependency
  between utility and fileio modules.  Can be moved back if #950 gets
  resolved such that nothing in path.h no longer depends on futil.h.

Change-Id: Ia81173d4845143dc3cc94e0c200cab96c87308a5

10 years agoImprove version information handling
Teemu Murtola [Wed, 26 Mar 2014 19:44:26 +0000 (21:44 +0200)]
Improve version information handling

- Always use the same mechanism (a generated source file) to communicate
  the version information from the build system to the source, even when
  not using git to generate the info.  This allows removing several
  variables from config.h.
- Rename the generated file from gitversion.c to baseversion-gen.c to
  better reflect its new role.  Rename the header correspondingly.
- Add utility/baseversion.h to provide functions to access the version
  information, and use the new functions in a few places that were using
  copyrite.cpp only for GromacsVersion().  This removes some cyclic
  dependencies and warnings from the new Doxygen checker.
- Make checkpoint.c use the full version string in the checking instead
  of VERSION, which is now removed from config.h.  It is anyways
  checking also the build time, so it doesn't hurt even if the version
  string is more specific.

Change-Id: Ie85bab434a5e8c7e4e1a72b0af726ea4ea1f8d6f

10 years agoBetter include dependency graph generator
Teemu Murtola [Sat, 22 Mar 2014 20:16:51 +0000 (22:16 +0200)]
Better include dependency graph generator

Rewrite the include dependency graph generator to use the scripts used
for the doc-check target.  Most of the graph generation code is still
the same as in the old includedeps.py (except for some renaming and
other cleanup), but it now uses the data structures in gmxtree.py as
input instead of custom parsing.  Only real differences in the output
for now:
 - The module graph colors nodes based on the group they are documented
   in.  All modules that don't have explicit documentation are now
   marked as "legacy".
 - The file graphs don't use clusters for subdirectories, but instead
   only color tests differently.  Not sure which one is clearer; the
   answer may even depend on the module.

However, the new code is much cleaner and easier to extend than the old
one was, so improving the graphs further should be much easier now.

The generated graph is also laid out differently, but that may just be
by chance; because of existing cyclic dependencies, dot doesn't produce
stable layouts, and the layout can depend on the order of things in the
generated graph.  Since the internal data structures are now mainly
dicts, stuff is likely in a different order than what it used to be.

doxygen.md now also has a bit more documentation for the graphs.

Change-Id: I0530c8e4278890fdb5b5d874bda6fef3521a704e

10 years agoFix documentation issues for interactive MD module.
Carsten Kutzner [Fri, 28 Mar 2014 13:32:57 +0000 (14:32 +0100)]
Fix documentation issues for interactive MD module.

This patch fixes three warnings reported by Teemu's doxygen documentation
checker (gerrit.gromacs.org/#/c/3213/13). I additionally added a
\libinternal to the module_imd in imd.h to suppress an (empty) IMD module
from occurring in the user documentation.

Change-Id: I01324ec17692419274a605745716f25321d5d729

10 years agoNew VDW kernel flavour for LJ-PME and updated group kernels
Christian Wennberg [Fri, 13 Dec 2013 10:49:56 +0000 (11:49 +0100)]
New VDW kernel flavour for LJ-PME and updated group kernels

Group-scheme LJ-PME now calculates the same properties as Verlet-scheme

The previous group kernels implemented the non-bonded interactions
as described in J. Chem. Theory Comput., 2013, 9 (8), pp 3527–3537,
These are now updated to subtract the grid contribution in real
space, which corrects for any difference in the reciprocal-space
part from the use of approximate LJ parameters.

Group kernels + LJ-PME now supports modifiers

Added a new interaction type "LJEwald" which is used in the
group scheme for simulations with LJ-PME.

Change-Id: I4c9394381bf813082afe1fdbc168659de2412da6

10 years agoMove include dependency checks to doc-check
Teemu Murtola [Thu, 20 Mar 2014 18:21:32 +0000 (20:21 +0200)]
Move include dependency checks to doc-check

The new doc-check target now contains all the checks that were
previously in depcheck and doccheck.  Remove the old targets.

Update the documentation to describe the new checker.

Change-Id: I3cd6b916507a9d21318914dbf88a8431b2a12149

10 years agoBetter automated Doxygen documentation checker
Teemu Murtola [Mon, 3 Mar 2014 19:06:37 +0000 (21:06 +0200)]
Better automated Doxygen documentation checker

Add a completely rewritten checker to replace 'make doccheck'.
This is based on first generating and then parsing the Doxygen XML
output.  It is somewhat slower than the old approach, but more robust
(exact format of the comments no longer matters) and allows relatively
easily checking all the documentation.  As a side effect, the XML
extraction also makes Doxygen parse those comments that appear in
undocumented files, so that at least syntax errors in them can be
spotted from warnings (the checker can also check them otherwise, and
even warn about them getting ignored).

The new check can be run with 'make doc-check'.  Not all functionality
from the old checker is available; documentation of the new checks in
doxygen.md follows when that is done, as well as some additional cleanup
of the code.

Currently, the new checker produces some warnings, which are suppressed
using suppressions.txt.

Short-term, this could be used to check for most common issues like
missing brief descriptions.

Medium-term, we could implement our own logic for enforcing what needs
to be documented, and disable all Doxygen-provided warnings about
undocumented members (by turning HIDE_UNDOC_MEMBERS=ON).  This would
remove the need for most \cond directives.

Long-term, we could even consider generating some extra member listings
or such from the XML output, and/or use it to patch the HTML pages
generated by Doxygen such that they would be more useful for our uses.

Change-Id: I25262b28699e10547e2116a50d3a9d8d5aa966a6

10 years agoMisc. Doxygen fixes
Teemu Murtola [Tue, 25 Mar 2014 20:13:01 +0000 (22:13 +0200)]
Misc. Doxygen fixes

- Fix some issues in Doxygen-formatted comments that are currently
  ignored by Doxygen.  These were still causing warnings in XML
  extraction.
- Document pargs.h, and make one function from there static as it is no
  longer used outside the source file.
- Fix some other issues that the new Doxygen checker complains about.

Change-Id: I611ee3f9dbaf8a4406b4cba1f8b29aee5b5a4843

10 years agoMove thread_mpi to src/external/
Teemu Murtola [Tue, 25 Mar 2014 04:10:31 +0000 (06:10 +0200)]
Move thread_mpi to src/external/

Now that thread-MPI headers are no longer installed, the whole thing can
be easily moved to src/external/, which better resembles its status
until it is decided what we really want to do with it.  There, it is
excluded from checks that are done for other parts of the source, as
well as from Doxygen, removing the need to treat it specially in all
these cases.

This also removes a large number of headers from legacyheaders/ with a
relatively simple change, advancing this effort.

Related to #1411.

Change-Id: I64d202eb61dc2c61668ad5858d551add6578cb97

10 years agoFix use of inline in IMD
Mark Abraham [Wed, 26 Mar 2014 21:22:00 +0000 (22:22 +0100)]
Fix use of inline in IMD

Change-Id: I2390f7df2becb260d1a4f8c4ad74676c997e9437

10 years agoAdd Cray compiler support
Daniel Landau [Mon, 24 Mar 2014 16:01:22 +0000 (11:01 -0500)]
Add Cray compiler support

 * Add support for SIMD intstructions with the Cray compiler with
   -hgnu. This is a general GNU compatibility mode so there
   also has to be a guard in the atomics section in threadMPI.
 * Add support for atomics with the Cray compiler.
 * Add Cray compiler support for cycle counting.
 * OpenMP detection for the Cray compiler in CMake before
   version 3.0 is broken, so refuse to proceed with that
   combination.

Change-Id: I1209f3a61ed1d4d49e56dacbb315235088c5eea6

10 years agoDocumentation house-keeping in file swapcoords.c
Carsten Kutzner [Tue, 25 Mar 2014 16:56:36 +0000 (17:56 +0100)]
Documentation house-keeping in file swapcoords.c

Modified Doxygen documentation of functions such that they now have
\brief descriptions. This way, Teemu's automated Doxygen documentation
checker won't complain about many missing brief descriptions in that
file. I am not making this patch dependent on the documentation
checker (gerrit issue #3213) because the brief descriptions should be
there anyway.

Change-Id: I4fc2c9de17b5ce8e9abdcd8fc51d002a245fbf2a

10 years agoInteractive Molecular Dynamics (IMD)
Martin Hoefling [Thu, 7 Jun 2012 11:07:21 +0000 (13:07 +0200)]
Interactive Molecular Dynamics (IMD)

IMD allows to interact with and to monitor a running molecular dynamics
simulation. The protocol goes back to 2001 ("A system for interactive
molecular dynamics simulation", JE Stone, J Gullingsrud, K Schulten,
P Grayson, in: ACM symposium on interactive 3D graphics, Ed. JF Hughes
and CH Sequin, pp. 191--194, ACM SIGGRAPH). The user can watch the
running simulation (e.g. using VMD) and optionally interact with
it by pulling atoms or residues with a mouse or a force-feedback
device.
Communitcation between GROMACS and VMD is achieved via TCP sockets
and thus enables controlling an mdrun locally or one running on a
remote cluster. Every N steps, mdrun receives the applied forces from
the VMD client and sends the new positions to VMD.
Other features:
- correct PBC treatment, molecules of a (parallel) simulation are made
  whole (with respect to the configuration found in the .tpr file)
- in the .mdp file, one can define an IMD group (including the protein
  but not the water for example is useful). Only the coordinates of
  atoms belonging to this group are then transferred between mdrun and
  VMD. This can be used to reduce the performance impact to an almost
  negligible level.
- adds only two single-line function calls in the main MD loop
- and mdrun test fixture checks whether grompp and mdrun understand
  the IMD options

Change-Id: I235e07e204f2fb77f05c2f06a14b37efca5e70ea

10 years agoAdds cut-off checks for triclinic domain decomposition
Berk Hess [Mon, 24 Mar 2014 14:33:52 +0000 (15:33 +0100)]
Adds cut-off checks for triclinic domain decomposition

With domain decomposition and 2 decomposition cells in a trilinic
dimension, the cut-off could be longer than the size of the
communicated domains. This could lead to some pairs close to cut-off
distance to be ignored in the force/energy calculations.
Fixes #1467

Change-Id: Id7e16d7f8fa0796d6adcf48ad6e8bbb0b88039ff

10 years agoRemove gmxpreprocess from include path
Teemu Murtola [Mon, 24 Mar 2014 15:44:30 +0000 (17:44 +0200)]
Remove gmxpreprocess from include path

One step closer to the final goal of only having src/ there.
This wasn't even necessary except for a few rare cases.
Also cleaned up the cppcheck rules slightly.

Change-Id: Ifc65fbb48699d0e4bb5c55b90a2c41b0255d353d

10 years agoKeep CMake quiet about non-detection of optional stuff
Mark Abraham [Sat, 22 Mar 2014 17:21:15 +0000 (18:21 +0100)]
Keep CMake quiet about non-detection of optional stuff

Repeated calls to cmake would otherwise warn every time that these
optional things were not detected. That lack is only rarely a problem
that needs solving, so they should not be emitting status messages all
the time.

Change-Id: Iad6f0bdf72ba7848bcc819db6937b70b37900148

10 years agoMerge branch release-4-6
Mark Abraham [Sun, 23 Mar 2014 11:00:07 +0000 (12:00 +0100)]
Merge branch release-4-6

Change-Id: Ie4431fb0002cd36799c8e664dcf4e096e66bc0ea

10 years agoFixed bug in parallel v/f constraining
Berk Hess [Mon, 17 Mar 2014 15:48:53 +0000 (16:48 +0100)]
Fixed bug in parallel v/f constraining

Constraining v or f with 3 or more decomposition domains in one
or more dimensions could lead to modification of communicated
v and f components by the box size for inter charge-group constraints.
Fixes #1462

Change-Id: Idece9d2d0d8f48e65a654d5c2892fbe1ff836ba0

10 years agoCUDA cut-off kernels now shift exclusion energies
Berk Hess [Wed, 12 Mar 2014 07:23:19 +0000 (08:23 +0100)]
CUDA cut-off kernels now shift exclusion energies

This is to make the GPU kernels consistent with the CPU nbnxn
kernels, which for eeltype=cut-off modifier=potential-shift
effectively do reaction-field with epsilon_rf=1.
Also implemented shifting of the Coulomb potential for the group
cut-off scheme for non-excluded pairs only.
The manual now explains these details.

Also fixed the generic group kernel with an exact cutoff for
either Coulomb or VdW. I think this was supposed to not be supported
but neither grompp nor mdrun checked for this. The fix is trivial.

Change-Id: I48bff73587e43338162f90fa7d526e1909ce5ad1

10 years agoFix print_date_and_time
Mark Abraham [Sat, 15 Mar 2014 09:40:32 +0000 (10:40 +0100)]
Fix print_date_and_time

The old call signature and lack of documentation of this function made
it easy to misuse, and (e.g.) mdrun was reporting the same initial and
final time stamp. Fixed signature and documented.

Change-Id: Ib4d9a07bc6e1165affa3bfdf7cd3b54c615d4765

10 years agoFix dependencies on config.h for typedefs.h
Roland Schulz [Fri, 7 Mar 2014 00:28:39 +0000 (19:28 -0500)]
Fix dependencies on config.h for typedefs.h

The include in simple.h hid other dependencies and was only
used for gmx_inline and gmx_restrict. Defining those
in just one place simplifies it.

Also fix missing includes in public headers.
All public headers should be able to be compiled by themselfes
and shouldn't rely on other headers aready being included.

Also fixes that math module headers were installed to maths.

thread-mpi headers and commrec.h are not installed anymore.
The installed headers have no dependency on GMX_LIB_MPI and
GMX_THREAD_MPI anymore.

Change-Id: Ie1f26913739d3e42d653a51fa2c2d71e6ea3ef7a

10 years agoRevert "Added new amber99sb-ildn-bsc0 force field."
Mark Abraham [Wed, 12 Mar 2014 15:19:14 +0000 (16:19 +0100)]
Revert "Added new amber99sb-ildn-bsc0 force field."

This reverts commit 3f7bdff15b41f7e0ffbfd0bf86b9c677ae51db77.

This is a temporary measure, pending testing of this variant
that is comparable with that for other AMBER forcefields, and/or
resolution of questions raised on gmx-developers.

Also removed line from the manual that was generated when this force
field was in the repo.

Change-Id: I1c2269d2ed554b827fb183d54f1db789a5762a8f

10 years agoRenaming in PME-routines
Christian Wennberg [Thu, 13 Mar 2014 16:31:53 +0000 (17:31 +0100)]
Renaming in PME-routines

Fixes naming issues in PME-routines by renaming variables
and functions to be more general, and not using names specific
to electrostatics

Fixes #1459

Change-Id: I7abb624b9f3d31e247404007dbe5d9c4e475687e

10 years agoBugfix in LJ-PME without electrostatics
Christian Wennberg [Wed, 12 Mar 2014 14:27:21 +0000 (15:27 +0100)]
Bugfix in LJ-PME without electrostatics

Simulations using cut-off for electrostatics, and
PME for LJ resulted in segfault since pme.c tried
to access non-existing grids.

Change-Id: Ic32c8cd2eb6afb3e49265d6c9a7da81418b18dca

10 years agoRemoved more stuff related to gmx.ff and gmx2.ff
Mark Abraham [Tue, 11 Mar 2014 08:37:20 +0000 (09:37 +0100)]
Removed more stuff related to gmx.ff and gmx2.ff

Code and documentation no longer refers to these force fields. There
are corresponding changes to examples in the manual.

Updated list of force fields in the manual, plus minor correction
to description of CHARMM27 there and in the forcefield.doc.

It would be nice to leave gmx2?.ff/forcefield.itp intact with an error
message, but this means gmx pdb2gmx continues to show these force
fields. Instead, I made a README to note that these force fields have
gone.

Change-Id: I10480a0fad169493d13a743c43e8b2321128155d

10 years agoRemove interactive help from core selection parser
Teemu Murtola [Fri, 14 Mar 2014 18:19:55 +0000 (20:19 +0200)]
Remove interactive help from core selection parser

The help is now handled in the loop that processes user input, and it
never gets into the parser itself.  This removes several special cases
from the parser and simplifies it.

Add a few string utilities and tests for them to make it easy to handle
the help commands.

Change-Id: Ida58bccd3b9ced4b7060485cc2f064b73796c996

10 years agoImprove interactive selection input
Teemu Murtola [Wed, 12 Mar 2014 19:47:42 +0000 (21:47 +0200)]
Improve interactive selection input

- Print the static index groups always at the start of the prompt.
- Add a hint for that an empty line provides information about the
  available index groups.
- Print the whole prompt again after an empty input line.
- Print only the selections from the current interactive prompt in the
  output.  This makes the listing clearer for commands like
    gmx sasa -surface -output
  when providing the latter set of selections interactively.
- Print the number of selections still required after the above list.
- Work better (on Unix) if stdin is from a pipe (using the same
  mechanism that was there in 4.5 and 4.6).

Change-Id: I38152fb4fccd142aeee318739ab3782fa6a775d8

10 years agoCleaned up endif/else-s in CMakeLists.txt and *.cmake files
Rossen Apostolov [Fri, 7 Mar 2014 18:14:03 +0000 (19:14 +0100)]
Cleaned up endif/else-s in CMakeLists.txt and *.cmake files

Removed FindBLAS/LAPACK.cmake files which come anyway with
CMake > 2.8.8. Included properly the licenses in some of the
BlueGene*.cmake files.

Change-Id: I69d68566865facf0af759526a579f32c5c444464

10 years agoHouse-keeping for MTTK
Mark Abraham [Mon, 17 Mar 2014 17:46:59 +0000 (18:46 +0100)]
House-keeping for MTTK

Leapfrog + MTTK silently produced a .tpr that is probably broken;
certainly the documentation only states support for Velocity-verlet
integrators.

Added note about deprecation and planned removal of MTTK + constraints.

Refs #1292

Change-Id: Iec2cf0dd866242735ce04a954e585b2461f6e701

10 years agoMerge "Merge branch release-4-6"
Mark Abraham [Mon, 17 Mar 2014 17:06:04 +0000 (18:06 +0100)]
Merge "Merge branch release-4-6"

10 years agoMerge branch release-4-6
Mark Abraham [Fri, 14 Mar 2014 18:08:48 +0000 (19:08 +0100)]
Merge branch release-4-6

Conflicts:
src/gromacs/pulling/pull_rotation.c
Adopted the bugfixes from release-4-6

Uncrustified incoming code

Change-Id: I7d90bb49ef83750b9607f677e97a94f2b5793eeb

10 years agoFix perturbation to Verlet scheme when not perturbing
Mark Abraham [Sun, 16 Mar 2014 12:05:28 +0000 (13:05 +0100)]
Fix perturbation to Verlet scheme when not perturbing

A .top that has B-state parameters for non-bonded interactions
should run the same with free-energy = no as a .top that has no
B-state parameters. Renamed variable to better reflect its use,
and used it to correctly trigger the FEP code path.

Change-Id: I47656b29ef4ca2462af0fb587e0424d0eab3d5c4

10 years agoUpdate manual analysis section
Teemu Murtola [Sat, 15 Mar 2014 05:00:41 +0000 (07:00 +0200)]
Update manual analysis section

- Reference tools as 'gmx <tool>' instead of the old names.
- Expand the section on selections now that there actually are some
  tools that can use the full power.
- Rewrite sections that were referencing obsolete tools (g_bond and
  g_sgangle).
- Remove references to tools that aren't there.

Change-Id: Iee99f69e2d4effa585d98930ef1d78c1367e2ec0

10 years agoUse a constant instead of sizeof(int) for SSE2 immediate constant.
Erik Lindahl [Sun, 16 Mar 2014 09:13:11 +0000 (10:13 +0100)]
Use a constant instead of sizeof(int) for SSE2 immediate constant.

Apparently gcc-4.8.2 was not able to evaluate sizeof(int) to the
constant 4 at compile time, but thought it was either a 64-bit
value or a non-const value. Since the register sizes are fixed
we simply hardcode the value 4 bytes instead.

Change-Id: If739b733727b032eb7e5b7fa0a75e7cd51989a0b

10 years agoAvoid cross product with zero vector in rotational pulling.
Carsten Kutzner [Wed, 12 Mar 2014 15:14:04 +0000 (16:14 +0100)]
Avoid cross product with zero vector in rotational pulling.

Fixes #1431 (rotation/flex-t regression test failing on BG/Q)

In do_flex_lowlevel() we checked (by mistake!) for xj-xcn being
zero, although we need to check for yj0-ycn being zero, since
we use yj0-ycn in a cross product in the following lines of code.
I now also replaced the direct check (0 == norm(...)) by checking
what gmx_numzero(norm(...)) returns. The latter replacement
was also applied in the do_flex2_lowlevel() routine. Note that there
the check for small xj-xcn was and is actually correct.

Change-Id: I972b6d67a81e30f297db286cd2224f66753a20aa

10 years agoThe van der Waals radius must equal the Coulomb radius with Verlet
Carsten Kutzner [Fri, 14 Mar 2014 10:27:36 +0000 (11:27 +0100)]
The van der Waals radius must equal the Coulomb radius with Verlet

This patch fixes an issue that can occur when using g_tune_pme
with a Verlet pair-list .tpr input file. If the .tpr itself has
large cutoffs (e.g. 1.2 nm) and one asks g_tune_pme to scale
_down_ the Coulomb radius, the van der Waals radius is not
scaled down with the Coulomb radius (only upscaling worked).
One ends up with an unusable .tpr file because rVdW != rCoul.
This patch ensures that van der Waals and Coulomb radii
are always equal with Verlet pair-lists. Fixes #1460. Thanks
to Joao Rodrigues for reporting the issue!

Change-Id: I5ef30e71a35cd83838040057e16e52e09ea82e9a

10 years agoInstall enums.h
Christoph Junghans [Tue, 11 Mar 2014 16:31:22 +0000 (10:31 -0600)]
Install enums.h

Related to #1452

Change-Id: I94db8d0f9661b7398e5924f4adefbfdcc82da483

10 years agoFix MKL linking
Mark Abraham [Thu, 6 Mar 2014 17:42:31 +0000 (18:42 +0100)]
Fix MKL linking

Setting the same for CMAKE_STATIC_LINKER_FLAGS broke because that
variable got applied to calls to ar for linking libgmock.a. Probably
not important because Intel probably encourages shared linking for
MKL.

Change-Id: I6816d8ba318c704a0efad7659f5afecaeb48b092

10 years agoAvoid array-bounds warnings with gcc 4.8.2
Mark Abraham [Wed, 26 Feb 2014 14:58:50 +0000 (15:58 +0100)]
Avoid array-bounds warnings with gcc 4.8.2

The asserts fix RelWithAssert build and for Relase
build the warning is suppressed.

Change-Id: I0a7e6576014bd32648a1e2f08d88e1f2eef3335e

10 years agoRemoved .itp files from top level directory.
Rossen Apostolov [Thu, 20 Feb 2014 15:48:29 +0000 (16:48 +0100)]
Removed .itp files from top level directory.

There is no need for these files, the water models
should be included from the corresponding .ff directory.
Since many users are likely to still use those files,
an error message is printed.

Also re-added ions.itp and treated it similarly.

Also update an integration test that was using a one of the top-level
water .itp files that is now removed.

Change-Id: I599e203329340587afa7fc5efced485d09b9ce1c

10 years agoSimplify gmxTestLibXml2
Roland Schulz [Sat, 1 Mar 2014 06:43:37 +0000 (01:43 -0500)]
Simplify gmxTestLibXml2

Change-Id: Ia652633f529cc1cf6ba09e29159025ff762efad2

10 years agoPME load balancing now works with LJ-PME
Berk Hess [Fri, 28 Feb 2014 22:03:09 +0000 (23:03 +0100)]
PME load balancing now works with LJ-PME

PME load balancing only works with LJ-PME when PME is also used
for electrostatics.

Change-Id: I7145b242fd5dd00690e6b789b9cc6f3e147d430b

10 years agoFix misc. Doxygen issues
Teemu Murtola [Sat, 8 Mar 2014 11:10:34 +0000 (13:10 +0200)]
Fix misc. Doxygen issues

- Fix some missing brief descriptions.
- Fix some function definitions so that Doxygen correctly pairs them
  with the corresponding declarations.
- Fix some documentation visibility issues.  Not all these are strictly
  required, in particular in the SIMD parts, where \cond is used to
  exclude full classes.  But the presence of \cond is
  difficult/expensive to test automatically.
- Also some misc.  other fixes.
- Document some of these issues better on the Doxygen page.
- Exclude parser.h from Doxygen, since it doesn't contain any meaningful
  comments, and confuses Doxygen at least with the XML output.

Also, explicitly list input file extensions for Doxygen.
This excludes some random Python files from the documentation.  At least
for now, we probably want to keep the documentation such that it applies
mainly to the C/C++ code, and not bother how to also document Python
code in a Doxygen-compatible way.
CUDA files are still left out, as they were previously, since they
currently produce several warnings.

Most of these were found by the current work-in-progress checker script.
After these, the checker mainly complains about a lot of missing brief
descriptions in thread-MPI headers and in swapcoords.c.

Change-Id: Ib8a492fde6327ce3d814a23d887b05323bd6d334

10 years agoDon't disable MSVC warnings in config.h
Roland Schulz [Fri, 7 Mar 2014 08:38:35 +0000 (03:38 -0500)]
Don't disable MSVC warnings in config.h

All other warning flags are passed as compiler flags, thus this
was inconsistent. Also didn't work correctly if source file
doesn't include config.h.

Also makes ICC warning flags consistent between Linux and
Windows.

Change-Id: Ic52f6eb3c2dc5751b8aac1bba836ad5ff7d7c3cf

10 years agoFix CheckCXXCompilerFlag
Roland Schulz [Sun, 9 Mar 2014 01:00:49 +0000 (20:00 -0500)]
Fix CheckCXXCompilerFlag

ICC on Windows was always failing the CheckCXXCompilerFlag.
This was caused by the warning:
LINK : warning LNK4224: /INCREMENTAL:YES is no longer supported;  ignored
being matched by the compiler fail_regex for aix because of a missing
escale for the semicolon. A single escape isn't sufficient. Using double
escape ("\\\;") doesn't produce this problem, but I'm not sure whether it
always matches correctly thus instead a "." is used (works because it is
a regex). This fix doesn't address either the fact that the deprecated
linker flag is used nor does it address the problem that if incorrect
flags are somehow added (either by cmake or the user), this macro
fails without a diagnosible error message or fatal error (to notice it).

Change-Id: Ia45d6cd4fbf4f464bcb03e0d945085987a97aaad

10 years agoBump required CUDA version to 4.0
Szilárd Páll [Fri, 28 Feb 2014 12:21:39 +0000 (13:21 +0100)]
Bump required CUDA version to 4.0

- Added warning with CUDA 4.0;
- Fixed some typos in comments;
- Fixed the comment referring to GPU code generation with CUDA v5.0+.

Fixes #1382

Change-Id: Iee182ace765022fc6a179531d42e965594cff104

10 years agoReplace inline with gmx_inline
Roland Schulz [Fri, 7 Mar 2014 06:06:41 +0000 (01:06 -0500)]
Replace inline with gmx_inline

We always try to avoid defining std names in our headers.
Thus we shouldn't define inline for those C compilers (=MSCC)
which don't have it.

Change-Id: Ia2023435c916892cdaf2ce97905b55ec10cd1a08

10 years agoFix dependency on swapcoords enums
Mark Abraham [Sun, 9 Mar 2014 21:02:30 +0000 (22:02 +0100)]
Fix dependency on swapcoords enums

state.h needs these enums, but it seems wrong to introduce
a header dependency on the whole enums.h, when so few places need
these enums at all.

Change-Id: Ia8f080d5c0dc73b19a54f5ff77fbf7ef76f16139

10 years agoRemove some unnecessary declarations
Teemu Murtola [Sat, 8 Mar 2014 11:27:59 +0000 (13:27 +0200)]
Remove some unnecessary declarations

- topexcl.h was an outdated copy of gpp_nextnb.h, and wasn't used
  anywhere.  Rename the source file to gpp_nextnb.c to match the header.
- Remove one declaration from gpp_nextnb.h, which wasn't used outside
  the source file.  Make it static in the source file.
- Remove duplicate declarations of (init|done)_top().
- Remove unused create_visibility() from src/programs/view/.

Change-Id: I87982e5581aff8caca3dc753492e01ee457ab694

10 years agoRemove KERNEL_WIDTH
Roland Schulz [Thu, 6 Mar 2014 07:46:51 +0000 (02:46 -0500)]
Remove KERNEL_WIDTH

Wasn't used anywhere

Change-Id: I579297d71225ba3c0360f8419856b0f5e72a4b5a

10 years agoRemoved the deprecated gmx.ff and gmx2.ff.
Rossen Apostolov [Thu, 20 Feb 2014 15:34:45 +0000 (16:34 +0100)]
Removed the deprecated gmx.ff and gmx2.ff.

There are still a few places in the manual that need to be fixed.

Change-Id: I5c265470c1b73cb755918c5a000208da3d1e7b22

10 years agoFix formatting in install guide
Mark Abraham [Thu, 6 Mar 2014 13:51:16 +0000 (14:51 +0100)]
Fix formatting in install guide

Change-Id: I28833dee21220aacbf06ccc7d06f8f5e6a328352

10 years agoFix CMake syntax error
Mark Abraham [Tue, 4 Mar 2014 15:18:48 +0000 (16:18 +0100)]
Fix CMake syntax error

Change-Id: I8a39e50a741a23da3640fe7ccbcd83c844bf0d69

10 years agoUse gmx_int64_t for gmx_off_t
Roland Schulz [Wed, 5 Mar 2014 06:34:53 +0000 (01:34 -0500)]
Use gmx_int64_t for gmx_off_t

We anyhow require 64-bit file support and 64-bit integer
support. Thus the defintion of gmx_off_t can be dont
trivially.

Partial fix for #1452

Change-Id: I6ae70454cfa8ace3ca84a047149b6f4648e84b00

10 years agoFixed exit with FEP with PME nodes without LJ-PME
Berk Hess [Tue, 4 Mar 2014 12:01:19 +0000 (13:01 +0100)]
Fixed exit with FEP with PME nodes without LJ-PME

With FEP runs with separate PME nodes without LJ-PME, mdrun would
exit with a gmx_incons.
Reorganized the PME some flags and conditionals for clarity.

Change-Id: I04513a2d84682617b36c0c8ad4afe632ce3f7ee1

10 years agoMartini CG - Combined angle-torsion potentials
ngoga [Tue, 25 Feb 2014 16:27:29 +0000 (17:27 +0100)]
Martini CG - Combined angle-torsion potentials

- Potential important for Martini
- Most Important diffence: bondfree.c
- Rest of files: definition of types
- Different MD groups want to have it
- Avoid the numerical instabilities
of having three beads in a row and
therefore an undefined dihedral
angle. This might not happen easily
at the atomistic level, but for coarse-grain
models this is a real pain.
- Paper at
http://md.chem.rug.nl/~monica/Bulacu_Marrink_2013.pdf

Adopted new tpx_version scheme.

Paper published.
Change-Id: I8ed470c464d843eb0218c87aeea3a44c3a1f64f8

10 years agoSix new quotes from classic literature.
David van der Spoel [Wed, 5 Mar 2014 20:08:18 +0000 (21:08 +0100)]
Six new quotes from classic literature.

Change-Id: Id881baea8d6eeedc70dec3975a4c3e20e788285a

10 years agoAdd RelWithAssert build type
Roland Schulz [Sun, 2 Mar 2014 19:40:47 +0000 (14:40 -0500)]
Add RelWithAssert build type

Works mostly like Release just without -DNDEBUG.

Also generalized some machinery for managing compiler/linker flags so
that we can have an easier time later when we reconsider how to manage
all of our build types.

Also minor corrective changes to the behaviour of other build types.

Change-Id: I70283cb6069cb772c287c0aef329d95b8eacd987

10 years agoRemove dependency on TNG in trxio.h
Roland Schulz [Wed, 5 Mar 2014 07:34:17 +0000 (02:34 -0500)]
Remove dependency on TNG in trxio.h

Partial fix for #1452

Change-Id: I59474ea08d40362fa9d10745a5fb1d4e12254b68

10 years agoReport MIC SIMD correctly
Roland Schulz [Thu, 27 Feb 2014 06:41:41 +0000 (01:41 -0500)]
Report MIC SIMD correctly

Avoid cmake warning because SIMD cannot be detected. And
avoid that version information prints "None". This is
needed because MIC doesn't use GMX_SIMD so that the same
setting (__MIC__) can be used both for native and (future)
offload.

Also added installguide section.

Change-Id: I4af3b13678aa5c3c69c60bda499c3691ac83dc53

10 years agoMerge "Merge release-4-6 into master"
Mark Abraham [Wed, 5 Mar 2014 06:23:00 +0000 (07:23 +0100)]
Merge "Merge release-4-6 into master"

10 years agoBuffer estimate now works with rvd-switch=0
Berk Hess [Fri, 28 Feb 2014 11:37:29 +0000 (12:37 +0100)]
Buffer estimate now works with rvd-switch=0

With rvdw-switch=0, the Verlet buffer estimation code would divide
by 0. The estimate for vdw-switch functions now use the exact 3rd
derivative of the potential at the cut-off iso estimating the 2nd.
grompp now prints a note with rvdw-switch < 0.5*rvdw.
Updated estimate formula in the manual and added a missing factor
of 2 (the code did use the factor of 2).

Change-Id: Ia259d703515f69b0ed3390e2f7be671e0a15bd5f

10 years agoCheck zlib can actually be linked
Roland Schulz [Thu, 27 Feb 2014 05:53:18 +0000 (00:53 -0500)]
Check zlib can actually be linked

Only use zlib compression in tng if zlib can really be linked.
This is equivalent to ee26e1264 for libxml2.

It is slightly simpler than the approach in gmxTestLibXml2
and CheckLibraryExists could be used there too.
This does not detect potential linking errors with shared
libraries similar to those solved in #740 for FFTW.

Fixes #1435

Change-Id: I5009e50b6caf810a12e71ecd83bde2edb21a2b32

10 years agoAvoid segfault when comparing tpr
Roland Schulz [Mon, 3 Mar 2014 23:22:31 +0000 (18:22 -0500)]
Avoid segfault when comparing tpr

Segfault was possible if number of idef didn't match

Change-Id: I62315e3340eec8acf14c01d14917392bc63e46e0

10 years agoAdd enum and docs for using tpx_version
Mark Abraham [Sun, 2 Mar 2014 16:53:40 +0000 (17:53 +0100)]
Add enum and docs for using tpx_version

Documented procedure for having hassle-free feature branches and
ensuring merges into main branch cannot silently cause problems.
Added an enum to make the process work smoothly.

Change-Id: I69b87f9bac0b51784e70f8a618808ef086951343