Gromacs

Versions 5.0.x

    Please note that more details are available from links to Redmine issues, or in the original git commit messages, which have been abbreviated in this summary.

    Release notes for 5.0.6

  • Fixed bug that prevented using multiple dihedrals in RTP entries in the GROMACS 5.0 series. Before GROMACS 5.0, RTP entries could contain multiple interactions of the same type on the same set of atoms. This was not intended to work, but it did and several force field implementations have used it for dihedrals (including AMBER99sb-ILDN and GROMOS force fields). For GROMACS 5.0, the code was modified (probably while fixing #1395) and now pdb2gmx would only consider the first entry when several explicit bonds were listed for the same atoms in an RTP entry. This produces a different .top file. Using grompp from 5.0.x on a .top from an earlier version of pdb2gmx was fine. For further details, and some analysis of possible impact upon sampling, see #1704, #1755, #1778.
  • Fixed CUDA error with empty domains. A bug fix in 5.0.5 (#1721) introduced the possibility for CUDA kernel calls to do zero work when there are empty domains. This seems not be allowed by CUDA (we get errors). Fixed #1734.
  • Fixed latent bug in GPU list balancing. The function split_sci_entry could produce empty lists. This seems not to have caused incorrect results, only slight extra processing of empty workunits in the CUDA kernel. Incorrect Coulomb energies could appear for empty lists with shift=CENTRAL, but that does not seem to happen. #1767.
  • Fixed CUDA inter-stream synchronization issue. When running with more than one domain, GROMACS separates non-bonded work into two streams according to whether the results must be passed to another "non-local" domain. With the introduction of multiple hardware queues in CC 3.5 and later NVIDIA GPUs, the implicit dependency between tasks in the local and non-local streams got eliminated. Under rare circumstances, the non-local kernel could start before the local coordinate transfer completes. This would lead to non-local interactions being calculated using coordinates (and charges) for local atoms from the previous MD step. We have not yet succeeded in producing a version of GROMACS that could perhaps be used to probe whether (and how often) such an event might have affected simulations (and if so, by how much), but informally we expect the impact to be negligible.
  • Ensured we do not launch non-bonded GPU work units without work to do.#1734
  • Fix mdrun -confout sometimes affecting final .edr frame. This makes a two-part run write .edr files that can be concatenated to be identical to that from a one-part run. Otherwise, a single-domain run might make molecules whole for the -confout file, do an update with the modified x vector, and write a slightly different final .edr frame, even though the .trr and .cpt (and thus the restart) were always fine.
  • Fix .edr appending and exact continuation. The nsteps field was not written to checkpoint files when nstcalcenergy=nstenergy. This caused differences in nsteps in appended energy files, which in turn caused issues in averages and RMSD in gmx energy (which is now fixed by another patch). Also added the nsteps_sim field to the checkpoint file for consistency. #1342.
  • Fix binary exact continuation for trajectories. The initial call to compute_globals() after continuation would remove COM motion, which meant trajectories would not be exactly (binary) identical to a single trajectory - it was likely introduced with the Velocity Verlet code. #1342.
  • Fixed Verlet buffer estimate with 2-wide SIMD. grompp now estimates the size of the Verlet buffer assuming a CPU-only run with 4x4 kernels. mdrun anyhow redetermines rlist at run time, and was always correct. #1757.
  • Used MPI_THREAD_FUNNELED when available We have never observed any problems with MPI and OpenMP, but for compliance we should call MPI_Init_thread() and try to get MPI_THREAD_FUNNELED support level. #1127.
  • Removed orphaned GMX_MAX_MPI_THREADS #1550.
  • Fixed reproducibility bug in fft5d, which was accessing FFTW directly instead of using the GROMACS FFT interface, and while doing so the estimate flag was not correctly set for reproducible runs. For now we have just fixed it, but this FFTW-specific code should be removed from fft5d, or we will likely see more fft bugs due to duplicated code paths. #1690.
  • Handled multidir/multisim with single argument correctly. mdrun would only initialize the multi option correctly with more than one argument, which caused mdrun to fail in strange ways since it looked for topol.tpr in the current directory instead. #1712.
  • Don't use PME ranks with GPUs and mdrun -npme -1. The code disabling the automated PME rank choice with GPUs was accidentally moved after init_domain_decomposition(). This caused PME ranks to be set up, but later a fatal_error occured for inconsistent PP rank and GPU counts.#1374.
  • Fixed misuse of gmx_simd_check_and_reset_overflow. Only x86 has useful definitions of this function. The check will be entirely removed in master branch.#1740
  • Fixed own-FFTW build. Recent changes broke the expectation that the own-FFTW build attempts to pretend to have run SIMD-support tests on the build that it has not yet performed. #1735
  • Disallowed infinite epsilon with PME or GB. This leads to divide-by-zero errors, and since it just turns off electrostatics it will be faster to use a plain cutoff, which we now recommend instead. #1297.
  • Updated advice about grompp -t state.cpt, which does not copy coupling-algorithm state from a .cpt into the new .tpr, even though grompp -e can do so. #1775
  • Fixed gmx sasa output residue numbering gmx sasa with -or was writing the wrong residue numbers
  • Fixed broken PME load and I/O estimates when doing FEP.
  • Fixed where the output of gmx distance -oxyz option goes.
  • Fixed bugs in gmx dos - Velocity autocorrelations were not normalized by default, so they did not agree with gmx velacc. #1608
    • The normalize option had no effect on the VACs.
    • The index group option was available, but no index groups were processed.
    • Since the DoS is calculated from the mass-weighted VAC and by default only from the real part, it was not clear why these results would differ from data obtained with gmx velacc. There is at least a note about this now, and more docs will be added in the future.
    • The hidden option to dump some plots has been removed since it was not documented what these contained (beyond a paper reference), and the contents was not based on any data from the trajectory, but rather plotting a custom function.
  • Avoided gmx x2top accessing hackblocks. Previous fixes for generating dihedrals would cause us to access the hackblock even when using x2top, which we should not do. #1711.
  • Removed buggy -smooth hack in hbond module As discussed in redmine #1553, this was a hack added a while ago, but apparently it leads to segfaults. We should avoid hacks in the first place, and since nobody has been interested in fixing it for the last year it's time to kill it. #1553.
  • Fixed gmx energy average/RMSD bug. Made gmx energy produce correct output for energy files from continued and appended runs with nstcalcenergy=nstenergy. In that case a count in the energy file is/was incorrect, but that entry is actually not necessary for determining the average and RMSD of energy terms. The RMSD would be NaN and the average would be off in the last decimal. #1342.
  • Fixed segfault in random access XTC searching. #1705.
  • Fixed argument order error for gmx rmsdist. Incorrect argument order to calc_rms() caused command options to be permuted. #1709.
  • Fixed .gro errors with PDB insertion codes The insertion codes are discarded when converting to GRO files, which results in adjacent residues with different names but identical numbers. The reading code has been altered to identify new residues also when the resname changes; this does not fix the duplicate numbers (it cannot be fixed in GRO files), but it will correctly propagate all data so the correct labels can be recovered by using gmx trjconv with the original PDB file for the -s argument. #1600.
  • Updated docs for g_gyrate Added the equations we use for the axis components. #1564.
  • Fixed potential buffer overflow in pdb2gmx. Residue rename database entries were read into 6-char string variables. We now check and issue fatal errors if the lengths are above 5 characters. #1649.
  • Fixed incorrect shift with g_density -center #1698.
  • Stopped people installing into the build tree. Also patched the install guide so people can find useful information about using CMAKE_INSTALL_PREFIX
  • Fixed pairs_nb not recognized as part of moleculetype. Old code gives "unknown directive" error from the default of the switch statement.#1749
  • Documented limitations of trjconv -dump
  • Fixed use of hard-coded temporary filename. #1747
  • Avoided crash with empty reference for 'same as' selection Make 'same ... as none' selections not segfault. If there were no atoms in the reference group, the code that sorted the values and removed duplicates incorrectly set the number of values as one, resulting in incorrect memory access later.#1742 (segfault part).
  • Fixed handling of real-valued 'to' selection ranges Two adjacent ranges were incorrectly merged to a single range if the difference between their nearest endpoints was less than one. Added tests for handling overlapping and near-overlapping ranges. #1743.
  • Suppressed GCC5 warnings with internal Boost. GCC 5 warns that auto_ptr is deprecated, which we know and don't care to hear about.
  • Release notes for 5.0.5

    • Fixed rare issue with GPUs. Only for systems with partially empty DD cells, sometimes forces from interactions handled on GPUs on other domains were added to the forces for the correct step, and a subsequent step. Or if there were no interactions computed for this DD cell, then none would be added from neighbouring cells either. Neither condition will arise in normal condensed-phase simulations. #1721
    • Fixed rare issue where some forms of replica exchange could have written to unallocated memory when permutations of all replicas formed a single cycle (only likely for very low numbers of replicas) #1697
    • Fixed pbc=xy with 2 walls under the Verlet scheme, which was broken #1660
    • Fixed free-energy calculations with GPUs and 2D or 3D domain decomposition, which was broken. 1D DD is used much more frequently, and is unaffected. #1661
    • Fixed Andersen thermostats, where the logic for which type of Andersen thermostat has which implementation got swapped #1695
    • Fixed use of SIMD in TPI calculation #1673
    • Re-enabled FMA support on AMD, accidentally removed before 5.0. Simulations were correct, but not as fast as they should have been. #1719
    • Corrected -ntmpi auto for Intel Nehalem CPUs (and older). Thread-MPI mdrun used to automatically choose 1 MPI rank with up to 16 OpenMP threads on all Intel family-6 CPUs, whereas this was only intended for Sandy Bridge and later.
    • Changed configure-time FFTW warning against --enable-avx to one against using --enable-avx without --enable-sse (for AVX builds). With FFTW 3.3.4, the performance of FFTW with both SSE and AVX enabled is often a bit better and never much worse than SSE alone. You may get better performance on all kinds of AVX hardware with ftp://ftp.gromacs.org/pub/beta/fftw-...tersimd.tar.gz. These improvements may appear in future releases of FFTW.
    • Re-fixed PME bug with high OpenMP thread count #1572.
    • Correct CUDA kernel energy flag The CUDA kernels calculated energies based on the GMX_FORCE_VIRIAL flag. This did not cause wrong results, since (currently) GMX_FORCE_ENERGY is always set when the virial flag is set. But using the latter flag gives a small performance improvement when using pressure coupling.
    • Fix segmentation fault in gmx covar. With fewer trajectory frames than degrees of freedom in the analysis group, gmx covar would print a warning to a NULL pointer instead of stderr. #1733
    • Fixed trjconv -box -1. When using -1 in the -box specification, box vectors were instead set to zero rather than being preserved. A fatal error is triggered if the user is trying to preserve a non-existent box to avoid repeating the undesired behavior.
    • Fixed some error handling code, which might solve some long-standing unknown issues with (e.g.) DSSP mysteriously not working even when the user had done everything right. #1717
    • gmx hbond no longer removes PBC when none is present #1662
    • Avoided near-silent generation of zero energies during reruns. There is note printed about this case for Verlet+GPU+energy groups, and this is OK for normal simulations because the decomposition of the energy into groups is unimportant. However, a user doing such a rerun is probably seeking the energy decomposition, and in that case getting zeroes is unexpected behaviour. Instead, default to not using GPUs with mdrun -rerun -nb auto and more than one energy group. In that case with mdrun -rerun -nb gpu, give a fatal error and suggest the probable solutions.
    • Fixed incorrect output of gb_algorithm as sa_algorithm.
    • Fixed make uninstall not being able to remove of symlinks created during installation.
    • Fixed memory-allocation issue with vv and vv-ak integrators. #1669
    • Corrected RDTSCP warning text.
    • Fixed convenience feature for developers doing auto-downloaded of the regression test tarball version matching the current source.
    • Made various minor fixes to test cases and error messages
    • Facilitated easier linking of fully static binaries. The user has to manually set both -DBUILD_SHARED_EXE=no and perhaps CFLAGS=CXXFLAGS=-static, perhaps manage their own toolchain, and certainly make static libraries available for all dependencies. See install guide. #911 Related to #1641
    • Fixed linking with static libxml2, which can dependend on libz.
    • Fixed test for C++11 regex support #1692
    • Fixed bugs in FindCUDA.cmake when cross compiling (the fix has been passed on to CMake)
    • Added a note about sc-coul being automatically turned on. The documentation didn't mention that the soft-core potential is automatically switched on in the case of a single-component lambda. #1421
    • Clarified documentation for time-dependent electric fields.
    • Corrected force-switch manual section There was a factor alpha missing in the formulas for parameter A and B for the force-switch function (the code was correct). Also removed the introduction and formulas for switching the Coulomb function, since that's a bad thing to do.
    • Fixed default optimization level for xlc on BG/Q.

    Release notes for 5.0.4

    • Added grompp error for pulling to negative distance
    • Fixed some output reporting number and size of simulation steps #1633
    • Fixed bug with trilinic 1D DD for boxes with box[YY][XX]!=0 that was introduced in another recent bug-fix for triclinic 1D domain decompostion #1656 (previous issue was #1631).

    Release notes for 5.0.3

    • Fixed race on dH/dlambda with Verlet + OpenMP + LINCS + free-energy + velocity-Verlet integrator. #1647.
    • Fix group-scheme bug with changing LJ parameters in FE #1596
    • Fixed triclinic 1xNx1 domain decomposition producing 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. #1631.
    • Avoided NaN in rlist buffer calculation with constraints on large masses and very low buffer tolerance, the Verlet buffer calculation could produce 1/0 and produce a buffer that was too small. Also added a missing scaling factor to the contribution of the third derivative of the potential. This issue only caused a minor overestimate in the buffer size for systems with constraints and without electrostatics.
    • Fixed issue with vsiten and Verlet-scheme buffers Part of #1579.
    • Removed unnecessary MPI reduction from Verlet scheme
    • Minor performance enhancement on all platforms from improved cache use by removing a BlueGene-specific feature
    • Fixed performance-only bug in neighbour search with more than 4 domains along z.
    • Fixed DD bonded interaction range printing issue. #1607.
    • 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. #1421.
    • Clarified grompp pull error messages
    • Added warnings for ewald-geometry and surface-epsilon because they require the system dipole, which will be incorrect when charge groups with net charge cross pbc. grompp now checks and warns for this. #1645.
    • Added PBC note to comm-mode=angular warning
    • Avoided common.h inclusion in CUDA code which may fix compilation problems with some nvcc/boost combinations.
    • Fixed clang with boost 1.46.1 and 1.47
    • Fixed 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. #1613
    • Fixed pull coord init with rate!=0, t_start!=0 Also fixed the layout of the grompp pull coord information table.
    • Fixed twin-range + freeze + constraints. #1639.
    • Fixed order of ED/swap blocks during checkpoint reading.
    • Fixed trjconv -split not closing files With long trajectories, the number of file handles will run out.
    • Fixed gmx freevolume by back-porting some improved analysis neighbour searching #1611
    • Fixed gmx trjcat to only write TNG output when it has TNG input. #1626
    • Removed spurious GLY dihedral in AMBER03. #1632
    • Fixed typo in amber99sb-ildn force field Torsion calculations for N- and C-terminus ILE tries to find a non-existing atom type
    • Updated some .mdp file variables and documentation to use "-" instead of deprecated "_"
    • Minor enhancements to documentation and testing

    Release notes for 5.0.2

    • Fixed major bug that affects simulations that:

      • use versions 5.0 or 5.0.1 and
      • use GPU acceleration and
      • use PME electrostatics and
      • were run with the default mdrun option -tunepme, and did actually change the electrostatics cut-off as a result of the PP-PME tuning.
      The bug means the effective LJ cutoff is the same as the tuned electrostatics cutoff, which will break most model physics.

      The bug does not affect simulations that:

      • use only CPUs or
      • use LJ-PME or
      • use mdrun -notunepme or did not change the electrostatics cut-off as a result of the PP-PME tuning.

      Your log file will show whether you are affected, because it reports the progress and result of the tuning. Near the end of the log file, you might see:

      P P   -   P M E   L O A D   B A L A N C I N G
      PP/PME load balancing changed the cut-off and PME settings:
                  particle-particle                    PME
                   rcoulomb  rlist            grid      spacing   1/beta
          initial  1.000 nm  1.118 nm     120 120  96   0.115 nm  0.320 nm
          final    1.368 nm  1.486 nm      84  84  64   0.164 nm  0.438 nm
        cost-ratio           2.35             0.33
        (note that these numbers concern only part of the total PP and PME load)
      If, for your simulation, the final rcoulomb value (1.368 here) is different from the initial one (1.000 here), then so was the LJ cutoff for short-ranged interactions, and the model physics was not what you asked for.

      If your log file is truncated somehow, you could grep your saved stderr output with

      $ grep "timed with pme grid" your-stderr.txt
      to see mdrun report on the tuning while it is in progress, and the optimum.

      In affected runs, you might observe an incorrect density under NPT. Generally, all ensembles will show a higher LJ potential energy.

      If the PME tuning decided not to shift any load to the GPU (e.g. because the GPU is relatively weak compared to the CPU) then you may observe that the initial and final rcoulomb values are the same. In that case, the earliest part of the simulation may have tried different rcoulomb values (examine for output after "Step 0"), which would have also changed rvdw. If you plan to discard the first part of the simulation as further equilibration, then we expect the system to re-equilibrate quickly from this small perturbation.

      Simulations using vdwtype force-switch are affected, but less severely because of the shape of the force curve as it rises from zero after the intended cutoff distance.

      Some background information can be found via #1603
    • Fixed a malformed CUDA version macro check #1594
    • Improved reporting and functioning of DLB with separate PME ranks and/or GPUs
    • Fixed domain decomposition to check the rlist buffer size for the limit it creates on DD cell size #1607.
    • Fixed DD state collection issue in code that was probably never executed.
    • Prevented PME tuning from ever decreasing rcoulomb #1606.
    • Fixed issue where a PME grid with a dimension of size 84*2^n would not be tried in PME tuning. #1605.
    • Fixed minor potential bug in group-scheme neighbor searching.
    • Implemented SIMD acceleration for Ryckaert-Belleman dihedrals, improving performance #1598.
    • Fixed message about usage of dihedral type 9 (multiple proper dihedrals).
    • Worked around broken static anonymous namespaces on Pathscale compiler.
    • Prevented grompp from constructing .tpr files for implicit solvent + Verlet scheme, which is not implemented #1570
    • Allowed gmx tune_pme to skip the check for mdrun working in parallel. Fixes part of #1609
    • Removed outdated documentation references to optimize-fft
    • Added other minor fixes to build system (unnecessary duplicate linking, shared libs on Mingw, warnings, use and implementation of RelWithDebInfo build type, fixes for icc idiosyncracies, warning suppressions for icc 15, erroneous use of Boost exception/detail header)
    • Added Valgrind suppression needed on OS X 10.9

    Release notes for 5.0.1

    Fixes and enhancements to mdrun functionality

    • Fixed PME bug with high OpenMP thread count PME energies and forces #1572.
    • Fixed overflow in LJ-PME nbnxn kernels for pair distances far beyond the cut-off #1552
    • Avoided possible division by 0 in nbnxn_search (previous results are unaffected)
    • Fixed an issue where with LJ-PME and DD domains with 0 atoms, mdrun could hang #1571.
    • Added preventative checks for TPI + Verlet scheme
    • Halved the cost of the pull communication
    • Fixed wallcycle counting with md-vv, sd and sd2 to count more applicable time
    • Fixed sc_power==48 crash from excessive use of single precision #1580.
    • Fixed issues with Verlet scheme and N-body virtual sites Part of #1579.
    • Fixed two PME issues with MPI+OpenMP #1578 #1388 and #1572.
    • Initialize unused velocity constraint components With domain decomposition, velocity components for communicated atoms could be uninitialized. These components were never used, but this could lead to valgrind warnings and floating point exceptions. #1576.
    • Changed an error message about missing OMP_NUM_THREADS to a warning in cases where that still works
    • Fixed memory-allocation debugging output with PRINT_ALLOC_KB.
    • Fixed a matrix-pointer dereferencing bug in update stage.
    • Fixed issue arising from use of the wrong number of OpenMP threads when GMX_NONBONDED_NUM_THREADS != GMX_PAIRSEARCH_NUM_THREADS

    Fixes for other tools

    • Updated x-axis label for g_wham.
    • Fixed gmx tune_pme with LJ-PME by extending the range of vdwtype for which tune_pme will scale rvdw.
    • Fixed output of eigenvalues in g_covar. #1575
    • Reinstantiated check for unsorted index groups, so that providing an index group with duplicate atoms or atom indices does not silently produce wrong results.
    • Fixed formatting of fatal errors in g_bar. #1531.
    • Fixed and documented issues with the user-analysis-tool template. Boost is a requirement for the template, so the FindGROMACS.cmake now handles that. #1554
    • Fixed HTML links that contain file extensions.
    • Made selections ignore \r in input #1555

    New and enhanced tests

    • Added tests for denormal and underflow for simd exp().
    • Add support for int64 in machinery for test reference data
    • Added unit test for random/Threefry

    Fixes/portability-enhancements/work-arounds found with unusual/broken architectures/toolchains

    • Added SIMD support and build-system fixes for the K-computer
    • Fixed MingW build
    • Fixed and updated BlueGene/Q support
    • Added negative zero preprocessor constants.
    • Added _GNU_SOURCE=1 to find clone() with PGI to support GMock.
    • Enabled SIMD register calling convention with gmx_simdcall which should enable 32-bit MSVC 2013 to accept our SIMD routines. #1541.
    • Added cycle counters for 64-bit ARM.
    • Suppressed various Intel command-line warnings. Related to #1483
    • Fixed warnings from Portland Group compilers.
    • Disable analysisdata generic tests if not compilable.
    • Added a generic compiler definition fallback for boost, so it will work on unidentified compilers.
    • Added a define for gmock-1.7.0 to handle the case where wcscasecmp() is not available.
    • Added warnings and mutex fallbacks if we do not find atomics for sparc64.
    • Updated and added to compiler-flag checks from cmake-3.0
    • Changed to use the internal tr1/tuple definition in Gmock by default, since some non-GCC compilers set _GNUC_ without actually supporting tr1.
    • Added checks that sched.h affinity functions are supported
    • Replaced __LP64__ with a check for pointer size.
    • Fixed portability issue with ArrayRef initializer overloading.
    • Changed names of test files to avoid Fujitsu compiler bugs.
    • Workaround for ICC 14 with BUILD_SHARED_LIBS=no
    • Workaround for ICC 14 bug where name-mangling is incorrect for static variable in static member in anonymous namespace. #1558
    • Removed Random123/feature auto-detection and replaced with hard-coded values and gmx_inline so it should now compile on any hardware / compiler. Correctness is guaranteed (as is custom in all of Gromacs) by unit tests (separate commit).
    • Fixed Cygwin+Shared-Libs+FFTW, as Cygwin doesn't have or require -fPIC.
    • Fixed GMX_BUILD_OWN_FFTW for Cygwin.
    • Avoided clang/32 optimization affecting IEEE endian detection.
    • Make AVX2 check more robust.
    • Fixed Cygwin build (but still doesn't work with AVX - GCC Bug 61730).
    • Fixed IEEE754 check to fix (e.g.) compilation on Power7.

    Fixes for trajectory handling

    • Fixed behaviour with GMX_DOUBLE builds, where ZLIB is and is not available, and where the user name cannot be retrieved.
    • Fix data block length when uncompressing TNG data.
    • Fixed handling of large files on 32 bit systems.
    • When writing TNG, included file-closing time in wallcycle accounting because the compression takes time.
    • Fixed some TNG tests that were not being run (or run correctly).
    • Fixed TNG memory alignment issues #1542, #1546, #1547 and #1559.
    • Fixed selection of xtc groups not starting at index 0 #1561.
    • Fixed bug causing reading next frame to never stop.
    • Fixed tng_num_frame_sets_get() with no frame sets. When there are no frame sets the function returned an error. #1540
    • Fixed GMock to work on MSVC.

    Enchancements to documentation

    • Introduced new and changed old machinery for building documentation automatically in subsequent releases.#1242
    • Corrected SIMD math overflow documentation Added more details to the SIMD pmecorr and exp documentation.
    • Fixed HTML help and man pages for commands with dashes.
    • Fixed tarball generation and installation, particularly for generating INSTALL from the new Markdown.
    • Added hint to run tests to install-guide.
    • Added a warning if unit tests cannot be build because libmxl2 wasn't found. Partial fix for #1548
    • Added comments for installation-related variables in CMake, in particular the RPATH section that has caused some confusion.
    • Documented those few variables that can be used to alter the installation tree structure in the install guide.
    • Reworded some parts in the install guide about CMake iteration.
    • Removed GMX_INSTALL_PREFIX, as there are other approaches to get the desired result with CPack that are less confusing. This variable wasn't documented or probably used anywhere outside some dormant Jenkins jobs.

    Fixes and enhancements to the CMake build system

    • Shortened configuration message about dlopen plugins for VMD I/O.
    • Changed behaviour to not build tests until the user asks them to be run. Added a GMX_DEVELOPER_BUILD option which restores the old behavior.
    • Make messages about falling back on internal BLAS/LAPACK messages less noisy.
    • Added check of md5sum for regressiontest tarball.
    • Added step to properly verify the MD5 sum for FFTW download.
    • Fixed logic that controlled libxml2 linking behaviour.
    • Named the tarball how we like it.
    • Quieted repeated cmake runs.
    • Adjusted include directory order for some corner cases #1539
    • Fixed missing quotes if CMAKE_BUILD_TYPE is empty by default.
    • Fixed mis-use of fabs in LAPACK
    • Replaced use of deprecated CMake string variable-interpolation construct.

    Release notes for 5.0

    Note that the release notes for the earlier 5.0 release-candidate and beta releases are also applicable

    • Add 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. #1467
    • 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.
    • Fixed g_rmsdist NOE calculation This fix solve a series of bugs in NOE calculations: 1) incorrect number of frames in the calculation of the average distance 2) wrong selection of equivalent atoms 3) -equiv was wrongly documented
    • Issue warnings for potential switch w/o defining switch regions. If either older style switches or new potential-switch modifiers are used, issue a warning if the PME regions is too long, resulting in inaccurate energies. Also issue a warning if rvdw_switch is 0, which occurs if no value is specified. Discussion is in redmine #1463
    • 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. #1474
    • Made ORCA compile.
    • Removed truncation of nrdf in v-rescale thermostat The resampling function for the v-rescale thermostat expected an integer value for nrdf, but a real was passed, which was truncated. With a single coupling coupling group nrdf is analytically an int, but could be off by a bit. The could lead to incorrect kinetic energy fluctuations (averages were correct). Now fractional nrdf's are properly handled for nrdf > 3. For nrdf < 3 a check is added for integer values with a small margin for rounding. #1218
    • cmake: enable shared libraries by default on Hurd Since the toolchain is mostly the same as used on e.g. GNU/Linux (glibc, gcc, binutils, etc), they can be safely enabled.
    • Fix OpenMP unproteced update bug
    • Fix OpenMP scope error
    • Fix comparison of array to NULL Static char array is never NULL. Detected by clang 3.5. Also fixes output of read_atype and print error for incorrect format.
    • Minor tweaks to the DD setup Dynamic load balancing is now turned on when the total performance loss is more than 2% (lower than that will not help). The check for large prime factors should be done on the PP node count when -npme is set by the user.
    • Prohibit AVX_256 with buggy gcc 4.6.1 #1259
    • Fixes a complicated bug in g_anaeig. If the number of frames for a covariance analysis is fewer than the number of degrees of freedom, g_covar would happily print nonsense eigenvalues in the eigenval.xvg file. This would then lead g_anaeig to give NaN entropy values. By limiting the number of output lines in the eigenvalue file this should be resolved. In addition a warning is printed.
    • Fix static group list indices in selection prompt #1506
    • Fix memory issue in solvate #1499
    • Allow trjconv to keep some box dimensions unchanged. #871.
    • Permit trjconv to read and write velocities with TNG files #1502
    • Fix bug writing TNG output from dump.
    • Added grompp checks for zero atom masses in state B #1433.
    • Fixed g_energy Einstein viscosity #1516
    • Updated C-/N-terminal partial charges in Amber03.ff. At the time of porting the AmberFFs were validated against AMBER 8 and the results have matched precisely. However, that specific AMBER version had a bug due to which CT/NT charges in ff03 were in fact using ff94 charges. The bug correspondingly propagated to the Gromacs ports. In newer versions of AMBER this has been fixed. The current GROMACS patch uses charges as specified in the all_aminoct03.lib and all_aminont03.lib files as taken from the AmberTools14 distribution. In that distribution (14) seem to be no updates to the ff9x parameters. #1466.
    • Fix constraint virial with multiple time stepping #1400
    • Fixed shift and switch modifiers, particularly for free-energy #1463.
    • Fixed the output format of g_principal Gromacs-4.6 and earlier versions had the output transposed. #1441, related to #609.
    • Install libraries in correct directories on multiarch systems. #591 and #623.
    • Process negative sigma correctly with combrule 2 or 3#1391.
    • Print in higher precision repl_ex timestep. #1486.
    • Avoid writing xvgr formatting with -xvg none #1407, #1479.
    • Mapped HIS1 to HSD in charmm27. #1133.
    • Decoupled repl_ex_nst from nstcalcenergy The replica exchange frequency is automatically changed by mdrun to a multiple of nstcalcenergy, which is annoying. It turns out that it doesn't need to be a multiple, so this changing has been removed. #1494
    • Always write output from genion #1458.
    • Removed undocumented -map and -mdata options from g_sham. #812.
    • Make sure genrestr uses the disre_up2 parameter #1357.
    • Made gmxcheck -rmsd work again with forces
    • Fixed perturbed wall interactions With free-energy calculations, the B-state wall force and potential were set to zero. #1501
    • Added dummy mass for charmm TYR aromatic vsites pdb2gmx was not able to create aromatic vsites for charmm27 since this dummy mass center was missing. Note that aromatic vsites are still largely untested, and not recommended for general usage. #587.
    • Cleanup environment variables. Renamed variables to more descriptive names and removed unused ones. #976.
    • Made shells work with the Verlet scheme #1429.
    • Force g_bond to use structure file #834.
    • Fix memory-usage error in g_chi #1503
    • Changed appending file name error message #1497.
    • Make sure figure legends are adapted to xmgr/xmgrace A few programs were not using the xvgr_legend call. g_mdmat has been modified to use it, and for g_analyse and g_enemat I at least fixed the existing direct-writing code by adding a conditional. #783.
    • Added tip5pe water model to oplsa. #1016.
    • Fix that skipping fails if target is 2nd frame With bSeekForwardOnly the current file position should be an inclusive boundary, but because the binary search stops if the search region (high-low) becomes header_size, the current frame wasn't found. Because trjconv always reads the first frame before calling seek, it failed if the target was the 2nd frame. #1154
    • Updated mdrun -npme documentation The number of nodes at which PME nodes are used has increased. Added note on PME nodes not being selected automatically with GPUs. #1374.
    • Fix a Replica Exchange output problem when running NPT simulations a "b" was added at the beginning of the Repl Ex line thus breaking demux.pl
    • Disabled replica exchange when T not in order There are issues when the replica property is not increasing with the replica index. This patch has a partial fix. But since there are still issues, unordered replicas now lead to a fatal error. #1377.
    • Fixed sign error in posres dvdl #1408.
    • Fixed CMake 2.8.12+ CUDA dylib bugs and warnings on OS X #1471.
    • Add ASAN build configuration
    • Fix ref error in constraint pull code
    • Fix that seeking was wrong if frame time was modified #1405, #1406
    • Fixed typo in oplsaa ASPH charges. Part of #1395.
    • Fix g_mindist with pbc=XY #1189.
    • Make sure masses are copied from termini databases Masses should always be copied from termini databases, where they are mandatory since they are specified before the charge, rather than picking them from atomtypes.atp. This patch also adjusts a few of the default CHARMM27 charges in atomtypes.atp that deviated in the 3rd decimal. #1207.
    • Use ${CMAKE_INSTALL_LIBDIR} as lib directory for tng_io library.
    • Make log file option listing similar to mdp names #1514.
    • More clear message for undefined pullgroups. #1446.
    • Disallow extracting V/F from XTC files in g_traj #1298.
    • Enable xvgr output and labels for g_principal #609.
    • Detect non-fatal warnings when trying CFlags for source We now first check the flag itself (and catch warnings), after which we check if our SIMD source compiles with it. #1461.
    • Enable 4-letter resname in PDB output, keeps more pdbinfo. This still fully adheres to the PDB standard since column 21 is not used by the standard. All common programs (PyMol, VMD, etc) understand the 4-letter format, and programs that only read three letters will still read the same filename as they used to. In particular, this conserves most residue names during pdb<->gro format conversions. We have also killed the non-standard wide pdb format to avoid writing broken PDB files. #725. #917.
    • Added tip5p to the list of watermodels in some FF. #1348.
    • Enable terminus-specific atom translation #567.
    • Extend version checking/warnings for checkpoint continuation #1230.
    • Fixed recent bug with disp.corr. and vdwtype=shift The very recent commit dced970a introduced a small error in the dispersion correction with vdwtype=shift.
    • Make sure duplicates bondeds are set from hackblocks #1395.
    • Fixed GROMOS assignment of PRO-NH terminus torsions #1022.
    • Fixed the sign of mass perturbed contribution Corrected the sign of the kinetic energy contribution to dHdl and dH. #1527.
    • Added check in grompp for shells and inputrec issues. Some combinations of inputrec settings do not work with shells, in particular nstcalcenergy > 1 or use of a twin range cutoff. This is now checked for in grompp. #1376.
    • Improved check to decide if to add chain/residue. Together with the latest TNG library updates this #1507
    • Manual fixes * updates for cut-off schemes * used more Roman fonts for abbreviations that are not algebraic * fixed layout and bounding boxes of figures * removed references to removed GROMACS-87 force fields * changed formatting of column of [moleculetype] parameter-listing table because we now have some interactions with really long names (and some consequent changes to how footnotes and labels have to work) * removed out-of-date appendix B section on Modifying GROMACS * fixed aspects of CHARMM description, including adding the second reference for nucleic acids, and adding a link to the CHARMM36 port
    • Added check for domain decomposition and shells. #1376 in as much as that it prevents incorrect calculations. Can be left out when merging to 5.0 that does not support particle decomposition. In 5.0 we can write a message about OpenMP if that works with shells.
    • Make source compile under Linux X32 ABI The X32 ABI uses 32-bit pointers in combination with all other features of x86-64 to save memory. This requires two minor changes to x86 inline assembly macro checks, where we need check for __LP64__ (64-bit pointers) rather than __x86_64__ (which is set for X32). The resulting binaries run approximately 2% faster, but since it requires all dependent libraries to be available in X32 format it is not something we will enable with a simple setting for now. To use it manually, set CFLAGS and CXXFLAGS to "-O3 -mx32". #1263.
    • Updated Amber GBSA parameters Updated parameters according to Per Larsson's post on gmx-users in November 2012 (076230.html) that found energies to agree to at least within 0.2kJ/mol (OK, not great). #1161.
    • Added information about dihedral restraints. #1149.
    • Avoid warnings about coupling when free_energy=no At least during free energy testing it is irritating to get a new warning about the molecule listed in couple-mol not being decoupled when we disable free energy - that is why we are disabling it. Changing the warning to a note, since it is really a note to to help, not something that will result in a bad simulation.
    • Fix Phi Platform file for MPI
    • Improve PDB I/O (keep occupancy, b-factor, element) Retain the extra PDB info such as occupancy, b-factors, and element name columns with trjconv when providing a PDB structure file. If you use a TPR file, we still write the (given atomnumbers being present). However, we deliberately don't store the pdbinfo in the TPR file since that is a specification for a particular experiment, rather than something that's valid in the simulation. #917, #1307.
    • Update g_density to handle bilayers better #1168.
    • Always set b-state posres, even if identical to a-state Previously we did not read the b-state position restraint file (option -rb) if the name was identical to the a-state, which caused the position restraints to be zero. Rather than trying to be smart, we now always read it. #1399.
    • Remove overeager selection index group check
    • Default SD integrator is now sd1 by Nicu Goga The default SD integrator is now sd1, sd2 is deprecated. #1496
    • Fixed CMAP generation for alanine dipeptide special residue #824.
    • Allow printing potential energies to dhdl.xvg file #1329
    • Enable rtp angle/dihedral entries not connected by bonds pdb2gmx has previously silently ignored any angles or torsions not connected by bonds. This patch adds code to mark with RTP/hackblock entries that have been assigned in this search, and afterwards we add those that have not yet been matched. In particular, this makes it possible to have angles or torsions in RTP entries even if those atoms are not connected by bonds.#1276.
    • Fix detection of i386 in thread-MPI #1533

    Release notes for 5.0-rc1

    • Added full support in nbnxn kernels for perturbed non-bonded interactions in free-energy calculations
    • Added full support in nbnxn kernels for LJ force and potential switching, which are selected through vdw_modifier
    • Added full support in nbnxn kernels for LJ-PME
    • Fixed Verlet-scheme buffer estimate when rvdw-switch=0. Updated estimate formula in the manual and added a missing factor of 2 (the code did use the factor of 2).
    • Added 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 CUDA GPU LJ-PME nbnxn kernels (geometric as well as Lorentz-Berthelot (LB) combination rules)
    • Added CUDA GPU kernels for force and potential switching
    • Improved CUDA non-bonded kernel performance slightly
    • Bumped the required CUDA version to 4.0 #1382
    • 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.
    • Fixed bug leading to fatal failures when -gpu_id was not specified
    • Redesigned SIMD module to support all x86 SIMD (including Xeon Phi and AVX2), and BlueGene/Q, and added unit tests
    • Added AVX2 detection to cmake
    • Add cmake option for Reference SIMD type
    • Added message to warn that group kernels are deprecated
    • Replaced all mdrun random number generators with a cycle-based random number generator, to enhance reproducibility in parallel or after continuations. State no longer needs to be stored in the checkpoint file #995
    • Use pseudo-random instead of random streams to intialize seeds
    • Changed behaviour to use random seeds by default, rather than the same default seed, because a stocastic simulation not being reproducible by default is less surprising
    • Made ld-seed a 64-bit integer, so more than 4 billion sequences are potentially available
    • Added informational messages for leapfrog + MTTK to prevent silently producing wrong results. Added note about deprecation and planned removal of MTTK + constraints. #1292
    • Added combined angle-torsion potentials for use with Martini force field
    • Added Interactive Molecular Dynamics (IMD) to allow interaction with and monitoring of a running molecular dynamics simulation.
    • Finished support for Xeon Phi in native mode (when completed, offload mode will work better)
    • Added SIMD reduction in PME
    • Fixed seperate PME nodes without LJ-PME
    • Fixed aligned store to unaligned memory in PME
    • Minor improvements to ewald_LRcorrection for LJ-PME
    • Fixed free-energy perturbation with separate PME nodes
    • Fixed bug in LJ-PME when running with no electrostatic interactions
    • PME load balancing now works with LJ-PME
    • Added LJ-PME and LJ Potential-switch to PME load estimate
    • Bumped TNG to latest version.
    • Removed dependency on TNG in trxio.h #1452
    • Removed option to use OpenMP with the TNG library #1432
    • Enabled TNG on Windows builds by default
    • Added check that zlib can actually be linked when required for TNG #1435
    • Cleaned up .log file dump of inputrec New wide name made formatting ugly. Renamed a few things to follow .mdp convention.
    • Improved wallcycle reporting Removed reporting of MPI and thread counts on each row, in favour of a header with that information #1188
    • Fixed segfaults when comparing .tpr files from different generations if number of interaction types didn't match
    • Add enum and docs for using tpx_version
    • Fixed incorrect grid cell size in gmx sas -nopbc #1445
    • Converted gmx sas to the C++ framework, some minor changes in behaviour and user interface
    • Add support for non-uniform X axis in array data
    • Added safety check for fitting group in anaeig
    • Removed gmx kinetics (and support for linking to GSL). #1472
    • Added various improvements for keeping compilers happy and productive
    • Added Cray compiler support (SIMD, atomics, cycle counting, OpenMP)
    • Updated internal Boost to latest 1.55.0
    • Removed deprecated Encad FF
    • Added new amber99sb-ildn-bsc0 force field. It extends the original amber99sb-ildn with new parameters for nucleic acids, while the protein parameters are the same in both force fields.
    • Removed ions.itp from GMX/share/top directory
    • Removed the deprecated gmx and gmx2 force fields.
    • Removed support for .g87 and .xyz I/O formats
    • Removed particle decomposition #1292
    • Renamed ffopen and ffclose to gmx_ff* #1250
    • Fixed printing of integers with MSVC
    • Fixed mdrun crash when rdtscp is not supported by the CPU and exposed CMake variable GMX_USE_RDTSCP to control its use #1428
    • Fixed harmless bug with combination of group and twin-range
    • Fixed segfault with genbox and added integration tests for its major functionality #1393
    • Fixed several issues with using the vmd I/O libraries
    • Fixed and simplified use of rpath
    • Fixed issue with GMX_BUILD_OWN_FFTW where cmake was eating slashes
    • Fixed that expanded ensemble dhdl header should not specify a single lambda
    • Fixed issue with allocating 1MB on heap for MD5 sum while checkpointing on Windows
    • Updated stuff for old BlueGene - L and P are no longer supported
    • Removed Cygwin+MingW from installguide, neither are supported
    • Updated and improved Andersen thermostat documentation
    • Add fatal error for Andersen+constraints+domain decomposition
    • Clarified use of table-extension
    • Added documentation for using Doxygen
    • Added notes on portability aspects in install guide #1428
    • Cleaned up and documented options for domain decomposition
    • Added minor fix to permit warning-free use of Andersen thermostat
    • Split genbox into 'solvate' and 'insert-molecules', cleaning up, retaining all old working functionality and improving documentation
    • Made 'gmx -h' invariant wrt. provided options
    • Improved floating point comparisons in unit tests
    • Added integration tests for replica exchange
    • Added some overview docs for unit testing, wrapper binary implementation, and using Gromacs as a library
    • Added gmx_is_{single,double}_precision to allows easy detection by third-party code of the precision with which GROMACS was compiled
    • Fixed build of share/template when installed
    • Implemented new shell completion generation for command-line options #969 and #1410
    • Fixed shell completions of ffMULT options #1159, related to #1410, and other filename completions
    • Added new quotes
    • Added "release with asserts" build type, mostly for use in automated testing
    • Added ThreadSanitizer build type for helping detect misuse of thread operations
    • Fixed Reference Build
    • Added fixes to keep clang Address Sanitizer happy
    • Disabled shared libraries by default for the mdrun-only build
    • Added support for linking to profiler Extrae.

    Release notes for 5.0-beta2

    • Fixed bug in forces for long-range correction for LJ-PME
    • Fixed memory leak writing xtc-groups, simplify and test XTC writing
    • Fixed checkpoint reading for essential dynamics data, #1392
    • Fixed non-working flat-bottom posres code.
    • Fixed precision in thermal expansion coefficient calc.
    • Fixed checkpointing with Google Native Client
    • Stopped printing quotes on gmx_fatal()
    • Made shell detection in GMXRC more robust #1213
    • Fixed Google Native Client build.
    • Changed use of compiler flags with GPU + C++11 #1390
    • Pass on the default value of radstep in make_edi -radfix is chosen without -radstep
    • Fixed aspects of essential dynamics
    • Fixed essential dynamics (ED) continuation from .cpt for reference=average
    • Fixed various compilation warning issues
    • Automated selection of rlist for Verlet-scheme NVE simulations
    • Implement "computational electrophysiology" simulations to maintain steady-state ionic concentration between the two comparments of a double-membrane system.
    • Added initial support for trajectories in the new TNG format. So the XTC format is no longer synonymous with the output of compressed positions. Further completion work is required.
    • Added nbnxn tree force reduction (intended to suit future Xeon Phi implemention) #1420
    • Added SIMD support for Intel MIC
    • Added helpful note about changed default behaviour for cutoff-scheme #1414
    • Added requirement for 64-bit integer
    • Bumped GMX_BUILD_OWN_FFTW to version 3.3.3, corrected user messages, permitted supplying a local file URL, avoided problems with FFTW wanting a Fortran compiler by default
    • Updated libxml2 CMake detection
    • Added updates for checking that the system FFTW works correctly
    • Implemented new bash shell completion export. No support for other shells for now. #685 #1410.
    • Clarified OpenMP-related things in mdrun help/man
    • Various updates to documentation
    • Improved file name option help #969
    • Extended version information output
    • Fixed installation of HTML manual
    • Added quotes from the 2013 Nobel Prize addresses
    • Added ASPP and GLUP to residuetypes.dat to suit CHARMM force fields
    • Lots of refactoring and initial code modularization #1415
    • Removed hidden option gmx dump -xvg -f a.xtc (duplicates gmx traj -ox a.xtc)
    • Removed "gmx trjconv -app" that duplicates functionality present in gmx trjcat
    • Renamed "gmx tpbconv" to "gmx convert-tpr"
    • Removed useless "trjcat -prec" option
    • Added lots of various kinds of tests
    • Cleaned up list of GROMACS authors
    • Removed RPM spec files, until someone wants to work out how to maintain them automatically.
    • Fixed installed headers
    • Reset SOVERSION for libgromacs #1147

    Release notes for 5.0-beta1

    • Removed legacy CUDA non-bonded kernels #1382.
    • Removed restriction of one reference pull group #1346.
    • Made Verlet cutoff-scheme=Verlet the default. A few remaining unsupported cases.
    • Renamed verlet-buffer-drift to verlet-buffer-tolerance. Old mdp files are still processed correctly.
    • Let mdrun tune nstlist with CPU-only runs.
    • Added mdrun option -nstlist to set nstlist manually.
    • Added code for first stage of calculating LJ-interactions using Particle mesh Ewald.
    • Removed mdrun -ionize feature #1292.
    • Removed General Coupling Theory code #1292.
    • Removed forcefield-scan feature #1292.
    • Removed OpenMM code.
    • Made many changes to handling and form of documentation #685 #1242.
    • Moved manual repository into code repository.
    • Fixed manual for sc-coul description. #1331.
    • Updated bundled gmock to 1.7.0.
    • Added many new quotes .
    • Removed GMX_DOUBLE and unused #defines from config.h.
    • Installed fewer GROMACS header files. In particular, not those that are internal file-handling implementation details.
    • Fixed many problems with redundant, missing and transitive #include statements. Many remain.
    • Fixed many warnings that used to be suppressed, and removed the suppressions.
    • Removed lots of unused/duplicated/outdated/broken code, headers, documentation, variables, macros...
    • Added license for Sun XDR routines #1241.
    • Bumped CMake requirement to 2.8.8. Permits use of CMake "object libraries," and CMake-based detection of compiler ID and version. Avoids bug in add_library(GLOBAL).
    • Removed obsolete bundled CMake modules.
    • Made many minor rearrangements to CMake build system.
    • Added enumeration of valid build types for CMake GUI.
    • Added CMake helper for tracking cache variable changes.
    • Added CMake helper for dependent cache variables.
    • Added CMake helper for multichoice options.
    • Reorganized static/shared library CMake management.
    • Added CMake option to build a standalone mdrun binary only #685.
    • Re-implemented initialization routines to support invoking GROMACS binaries via "gmx toolname".
    • Documented how to add C++ tools using new framework.
    • Moved ngmx to C++, renamed it to view. Part of #673.
    • Added support for parallelized analysis data modules #869.
    • Made gmx-gangle more flexible with multiple angles.
    • Improved diagnostics with empty selections.
    • Updated g_cluster Rewrote the monte-carlo algorithm to do something useful, namely generate a smooth trajectory through all the frames where the ends of the trajectory are at maximum RMSD from each other.
    • Various clean-up and improvements in C++ tools. - Make gmx-select accept multiple selections for all output options. - Make gmx-gangle and gmx-distance accept dynamic selections. - Remove -dump option from gmx-select and remove commented code related to the same in the other tools. Part of #665.
    • Added statistics for gmx-distance.
    • Added lifetime statistics into gmx-select.
    • Replaced g_bond and g_dist #665.
    • Added new analysis tool to compute the free volume and total volume.
    • Added histogram output for 'gmx gangle'.
    • Added tool gmx sans.
    • Added pdbname selection keyword.
    • Allowed 'atomname' and 'atomtype' in selections.
    • Added flat-bottomed position restraints.
    • Extended g_wham to allow the selection of the pull groups to be applied in WHAM Also did a lot of minor cleanup and documentation to move to C++.
    • g_wham: fixed pullx.xvg reading issue with pull_geometry=cylinder.
    Page last modified 11:17, 26 Jul 2015 by mabraham