Version 2.3

Version 2.3 (Dec 12, 2016)

Version 2.3 contains several improvements with respect to 2.2. Users currently working with 2.2 should have a look at the section "Changes leading to incompatible behavior" below and might need tiny adjustments in their input files.

Below you find a list of all the changes with respect to version 2.2. Notice that version 2.3 includes already all the fixes in branch 2.2 up to 2.2.3 indicated in Version 2.2 .

Changes from version 2.2 which are relevant for users:

  • Changes leading to incompatible behavior:
    • COMMITTOR can now be used to define multiple basins, but the syntax has been changed
    • Syntax for SPRINT and DFSCLUSTERING has changed. We have separated the Actions that calculate the contact matrix from these actions. These actions thus now take a contact matrix as input. This means that we these actions can be used with contact matrices that measures whether or not a pair of atoms are hydrogen bonded. For more details on this see Exploiting contact matrices. For clustering the output can now be passed to the actions CLUSTER_PROPERTIES, CLUSTER_DIAMETER, CLUSTER_NATOMS, OUTPUT_CLUSTER and CLUSTER_DISTRIBUTION. These provide various different kinds of information about the connected components found by clustering
    • In driver masses and charges are set by default to NaN. This makes it less likely to do mistakes trying to compute centers of mass or electrostatic-dependent variables when masses or charges were not set. To compute these variables from the driver you are now forced to use --pdb or --mc.
    • In rational switching functions, by default MM is twice NN. This is valid both in switchingfunction with expanded syntax and when specifying MM on e.g. COORDINATION
    • Patch script plumed patch now patches by default with --shared. This should make the procedure more robust (see #186).
    • Faster GYRATION but new default behavior is not mass weighted
    • When using HISTOGRAM you now output the accumulated grid using DUMPGRID or DUMPCUBE to get the free energy you use the method CONVERT_TO_FES. These changes allow one to use grids calculated within PLUMED in a work flow of tasks similarly to the way that you can currently use Values.
    • The way that reweighting is performed is now different. There are three separate actions REWEIGHT_BIAS, REWEIGHT_TEMP and REWEIGHT_METAD. These actions calculate the quantities that were calculated using the keywords REWEIGHT_BIAS and REWEIGHT_TEMP that used to appear in the old HISTOGRAM method. Now those these methods can be used in any methods that calculate ensemble averages for example HISTOGRAM and AVERAGE
    • Manual is now build with locally compiled plumed
    • Removed CH3SHIFT
    • CS2BACKBONE is now native in PLUMED removing the need to link ALMOST, small syntax differences
    • CS2BACKBONE, NOE, RDC, removed the keyword ENSEMBLE: now ensemble averages can only be calculated using ENSEMBLE
    • RDC, syntax changes
    • It is not possible anymore to select modules using modulename.on and files. Use ./configure --enable-modules instead.
    • Removed IMD modules. In case someone is interested in restoring it, please contact the PLUMED developers.
  • New actions:
  • New features in MD patches (require re-patch):
    • Patch for amber 14 now passes charges with appropriate units (fixes #165). Notice that the patch is still backward compatible with older PLUMED version, but the charges will only be passed when using PLUMED 2.3 or later.
    • Patch for GROMACS 5.1 incorporates Hamiltonian replica exchange, see Using Hamiltonian replica exchange with GROMACS
    • Gromacs 2016, 5.1.x, 5.0.x, flush the plumed output files upon checkpointing
    • Added patch for Gromacs 2016.1
    • gromacs 5.1.x patch updated to 5.1.4
    • Removed the patch for Gromacs 4.6.x
    • LAMMPS patch updated to support multiple walkers and report plumed bias to LAMMPS (thanks to Pablo Piaggi).
  • New features for existing actions:
    • The SPECIES and SPECIESA keyword in MultiColvars can now take a multicolvar as input. This allows one to calculate quantities such as the Q4 parameters for those atoms that have a coordination number greater than x.
    • Added MATHEVAL type in switchingfunction
    • Added Q type native contacts in switchingfunction (thanks to Jan Domanski).
    • COMMITTOR can now be used to define multiple basins
    • The number of atoms admitted in BRIDGE has been significantly increased, see #185.
    • driver now allows –trajectory-stride to be set to zero when reading with –ixtc/–itrr. In this case, step number is read from the trajectory file.
    • METAD and PBMETAD can now be restarted from a GRID
    • Added keywords TARGET and DAMPFACTOR in METAD
    • When using METAD with file-based multiple walkers and parallel jobs (i.e. mpirun) extra suffix is not added (thanks to Marco De La Pierre).
    • ENSEMBLE added keywords for weighted averages, and calculation of higher momenta
    • MOLINFO now allows single atoms to be picked by name.
    • FIT_TO_TEMPLATE now supports optimal alignment.
    • CONSTANT added the possibility of storing more values as components with or without derivatives
    • PUCKERING now supports 6 membered rings.
    • Extended checkpoint infrastructure, now METAD and PBMETAD will write GRIDS also on checkpoint step (only the GROMACS patch is currently using the checkpointing interface)
  • Other features:
    • Added a plumed-config command line tool. Can be used to inspect configuration also when cross compiling.
    • Added a --mpi option to plumed, symmetric to --no-mpi. Currently, it has no effect (MPI is initialized by default when available).
    • PLUMED now generate a VIM syntax file, see Using VIM syntax file
    • The backward cycle is now parallelized in MPI/OpenMP in case many collective variables are used.
    • GSL library is now searched by default during ./configure.
    • Tutorials have been (partially) updated to reflect some of the changes in the syntax
    • Parser now reports errors when passing numbers that cannot be parsed instead of silently replacing their default value. See #104.
    • More and more documentation
  • Bug fixes:
  • Fixed a bug in PBMETAD that was preventing the writing of GRIDS if a hill was not added in that same step

For developers:

  • IMPORTANT: BIAS can now be BIASED as well, this changes can lead to some incompatibility: now the "bias" component is always defined automatically by the constructor of Bias as a componentWithDerivatives, derivatives are automatically obtained by forces. The main change is that you don't have to define the bias component anymore in your constructor and that you can use setBias(value) to set the value of the bias component in calculate.
  • Added new strings for plumed cmd: setMDMassUnits, setMDChargeUnits, readInputLine, performCalcNoUpdate, update and doCheckPoint.
  • Easier to add actions with multiple arguments
  • New functions to access local quantities in domain decomposition
  • Active modules to enable regtests are chosen using plumed config.
  • A script is available to check if source code complies plumed standard. Notice that this script is run together with cppcheck on travis-ci.
  • Cppcheck on travis-ci has been updated to 1.75. Several small issues triggering errors on 1.75 were fixed (e.g. structures passed by value are now passed by const ref) and false positives marked as such.
  • Added coverage scan.

Version 2.3.1 (Mar 31, 2017)

  • Fix to FIT_TO_TEMPLATE as in 2.2.5. Notice that in 2.3.0 also the case with TYPE=OPTIMAL was affected. This is fixed now.
  • small change in CS2BACKBONE to symmetrize the ring current contribution with respect to ring rotations (also faster)
  • fixed plumed-config that was not working.
  • log file points to the config.txt files to allow users to check which features were available in that compiled version.
  • make clean in root dir now also cleans vim sub-directory.
  • Updated gromacs patch to version 2016.3

For developers:

  • Cppcheck on travis-ci has been updated to 1.77.
  • Doxygen on travis-ci has been updated to 1.8.13

Version 2.3.2 (Jun 12, 2017)

See branch v2.3 on git repository.

  • Resolved problem with nan in SMAC with SPECIESA and SPECIESB involving molecules that are the same
  • PDB reader is now able to read files with dos newlines (see #223).
  • Fixed bug in CS2BACKBONE (v2.3.1) related to ring currents of HIS and TRP
  • Fixed bug in if condition in PCAVARS so that you can run with only one eigenvector defined in input
  • Fixed bug with timers in sum_hills #194.
  • Fixed bug when using MOVINGRESTRAINT with periodic variables such as TORSION #225.
  • Fixed bug in HBOND_MATRIX that used to appear when you used DONORS and ACCEPTORS with same numbers of atoms
  • Fixed bug in DISTANCES that appears when using BETWEEN and link cells.
  • Prevented users from causing segfaults by storing derivatives without LOWMEM flag. In these cases PLUMED crashes with meaningful errors.
  • Fixed bug in HISTOGRAM that causes NaNs when using KERNEL=DISCRETE option
  • Fixed a bug in the parser related to braces, see #229
  • Fixed a bug that appeared when using Q3, Q4 and Q6 with LOWEST or HIGHEST flag
  • Fixed a bug that appears when you use MFILTER_LESS as input to COORDINATIONNUMBER with SPECIESA and SPECIESB flags
  • Fixed a bug that was making flushing when gromacs checkpoints not functional (thanks to Summer Snow).
  • Fixed a bug affecting EXTENDED_LAGRANGIAN and METAD with ADAPT=DIFF when using an argument with periodicity (min,max) such that min is different from -max. This does not affect normal TORSION, but would affect PUCKERING component phi with 6-membered rings. In addition, it would affect any variable that is created by the user with a periodicity domain not symmetric around zero. See #235 (thanks to Summer Snow for reporting this bug).
  • Fixed numerical issue leading to simulations stuck (LatticeReduction problem) with intel compiler and large simulation cells.
  • Fixed a bug affecting LOCAL_AVERAGE and outputting all multicolvars calculated by Q6 with DUMPMULTICOLVAR
  • plumed info --user-doc and plumed info --developer-doc now fall back to online manual when local doc is not installed, see #240.

For developers:

  • IMPORTANT: we started to enforce code formatting using astyle. Check the developer documentation to learn how to take care of not-yet-formatted branches.
  • plumedcheck validation has been made stricter. All the checks are now described in the developer manual.
  • New flag --disable-libsearch for configure, allowing an easier control of linked libraries when installing PLUMED with a package manager such as MacPorts.
  • Added --disable-static-patch to ./configure to disable tests related to static patching. It can be used when static patching is not needed to make sure a wrong c++ library is not linked by mistake.
  • Using install_name_tool to fix the name of the installed library on OSX. Allows linking the PLUMED shared library without explicitly setting DYLD_LIBRARY_PATH.
  • Added environment variable PLUMED_ASYNC_SHARE to enforce synchronous/asynchronous atom sharing (mostly for debug purpose).
  • On travis-ci, using ccache to speedup builds.
  • On travis-ci, added a regtest using Docker with gcc6 and MPI.
  • On travis-ci, docs for unofficial or unsupported branches are set not to be indexed by search engines (see #239)
  • Cppcheck on travis-ci has been updated to 1.79.

Version 2.3.3 (Oct 3, 2017)

For users:

  • Fixed a bug in switchingfunction MATHEVAL, leading to inconsistent results when using OpenMP with multiple threads (see #249).
  • FIT_TO_TEMPLATE now reports when it is used with a reference file with zero weights.
  • Fixed logging of UNITS (thanks to Omar Valsson).
  • Fixed a possible bug with EFFECTIVE_ENERGY_DRIFT and domain decomposition with a domain containing zero atoms.

For developers:

  • Fixed a bug in ./configure --disable-libsearch when searching for molfile plugins.
  • Cppcheck on travis-ci has been updated to 1.80.
  • Configure script now has a list of better alternatives to find a working ld -r -o tool to merge object files. This solves linking issues on some peculiar systems (see #291, thanks to Massimiliano Culpo).
  • Using install_name_tool also on non-installed libraries. This makes it possible to link them and later find them without explicitly setting DYLD_LIBRARY_PATH. This should also make the DYLD_LIBRARY_PATH irrelevant. Notice that DYLD_LIBRARY_PATH is not well behaved in OSX El Capitan.

Version 2.3.4 (Dec 15, 2017)

For users:

  • GROMACS patch updated to gromacs-2016.4. This patch was also fixed in order to properly work with ENERGY (see #316) and to implement -hrex option (see #197).
  • Patch for GROMACS 5.1.4 updated to fix an error with ENERGY (see #316).
  • Solved a bug in ERMSD leading to incorrect results when using non-default length units (e.g. with UNITS LENGTH=A).

For developers:

  • Regtest script also reports when exitcode different from zero is returned.
  • Patch script reports errors returning a nonzero exit code.
  • cppcheck update to 1.81
  • Solved small bug in stored PLUMED_ROOT directory as obtained from statically patched MD codes. Namely, the compilation directory was stored rather than the installation one.

Version 2.3.5 (Mar 2, 2018)

For users:

  • Fixed plumed partial_tempering to agree with GROMACS conventions for the choice of dihedral angles (see #337). Should be irrelevant for the vast majority of cases.
  • Fixed small bug in regexp parser - the part outside the parentheses was just ignored.

For developers:

  • Doxygen on travis-ci has been updated to 1.8.14.
  • Embedded astyle updated to 3.1.
  • make clean now correctly removes the src/lib/plumed executable.

Version 2.3.6 (Jul 2, 2018)

For users:

  • Fixed a problem leading to NaN derivatives of switchingfunction Q when distance between two atoms is large.
  • GROMACS patch updated to gromacs-2016.5.
  • ./configure crashes if prefix is set to present working directory (notice that this choice was already leading to issues).
  • DUMPATOMS reports an error when trying to write xtc/xdr files without the xdrfile library installed.
  • Fixed a bug appearing when using PATH or GPROPERTYMAP with virtual atoms without simultaneously using the same atoms in a different action.
  • Fixed incorrect format of the pdb file written by PCA (see #363).
  • Fixed behavior of natural units. When an MD code asks for natural units, it is not necessary to also set units within PLUMED using UNITS (see #364).

For developers:

  • Fixed small issue in debug options of driver (see #245).
  • plumed patch -e now accepts a name closely matching the patch name (e.g. plumed patch -e gromacs2016.5 will try to patch even if the stored patch is for gromacs-2016.4). This simplifies managing Portfiles. Nothing changes when picking the patch from the interactive menu.
  • Install newer ccache on travis-ci, build faster.
  • Small fix in provided env modules (PLUMED_VIMPATH is set also when shared libraries are disabled).

Version 2.3.7 (Oct 5, 2018)

For users:

  • Fixed flag DETAILED_TIMERS in DEBUG (flag was ignored and detailed timers always written).
  • Small fix in DUMPMASSCHARGE (atoms are now correctly requested only at first step).

Version 2.3.8 (Dec 19, 2018)

This branch is not maintained. Users are invited to upgrade to a newer version

For users:

  • Fixed some openMP regression (some related to the whole codes and some specifics for Coordination and Multicolvar), this were compiler dependent so not all users may have experienced them
  • Fixed an issue with CS2BACKBONE when more than 2 chains were used
  • Fixed memory leak in RDC.
  • Fixed segmentation fault with more than two CVs in reweighting METAD (see #399, thanks to Fiskissimo).

For developers:

  • Small fix in LDFLAGS when enabling coverage.
  • Fixed order of flags in tests for static linking done by configure (see #407).
  • Fixed the way paths are hard-coded so as to facilitate conda packaging (see #416).