Version 2.9 (May 25, 2023)
Changes from version 2.8 which are relevant for users:
- Changes leading to differences with previous versions:
- Number of bins in METAD, PBMETAD and sum_hills is now computed correctly when setting a spacing that divide exactly the range. See #868.
- SAXS in the ISDB module does not have the
SCALEINT keyword anymore and the default normalisation of the intensity is to set the intensity at q=0 to 1.
- New contributed modules:
- A new pytorch module by Luigi Bonati
- A new membranefusion model by Ary Lautaro Di Bartolo
- Other improvements:
- PBMETAD now supports partitioned families bias thanks to @lemmoi @pfaendtner
- Construction of atom lists have been optimized (see #811).
- SimpleMD has been parallelized with OpenMP. Keyword
maxneighbor has been removed (not needed anymore). In addition, SimpleMD now supports custom values for epsilon and sigma
- CENTER and COM have new options
SET_CHARGE and SET_MASS to assign them ad hoc charge and mass values
- A tool to compute time-averaged bias potentials has been added in the python module (see
help(plumed.hills_time_average)).
- New in LogMFD module:
TEMPPD keyword has been newly introduced, which allows for manually setting the temperature of the Boltzmann factor in the Jarzynski weight in LogPD.
- The output format has been modified to present the CV data in a more consistent way.
- The algorithm for evaluating the mean force at the initial MFD step has been modified to handle a continued MD trajectory that begins with non-zero timestep number.
- New in ISDB module:
- the SAXS CV now includes a new very efficient and accurate hybrid SAXS (hySAXS) algorithm that can be activated using the keyword
ONEBEAD.
- a new SANS CV to calculate small-angles neutron scattering has been added, including both the
ATOMISTIC and hySAXS ONEBEAD approaches.
- New in DRR module:
- The module now writes the .zgrad file for inspecting and debugging the $\boldsymbol{\xi}$-averaged spring forces.
- New Patches:
- Patch for GROMACS 2023 (preliminary, in particular for replica-exchange, expanded ensemble, hrex features).
- Patch for QEspresso 7.0 has been added.
- Patch for GROMACS 2019 has been removed.
- Changes relevant for developers:
- Nested exception can be passed to calling codes using C/C++/Fortran/Python interfaces #879.
- Lepton has been updated with OpenMM 7.7.0
- All explicit destructors that could be removed were removed, including in contributed modules. This might guarantee basic exception safety. Notice that this is not enforced, so that new code might violate this.
- Improvements towards thread-safety:
- Added thread-safe reference counter to wrapper.
- Added locks for thread-unsafe molfile plugins.
- Plumed patch now accepts the
--include option. Might become the default in a future version.
- Python (cython) wrappers now only use plain C instead of C++. Plumed exceptions are mapped to python exceptions.
- Step number is now stored as a
long long int. Might facilitate Windows compatibility.
Version 2.9.1 (Jun 3, 2024)
- Includes all fixes up to 2.8.4
- Fixed a size check in python interface when passing native arrays.
Version 2.9.2 (Sep 3, 2024)
- Patch for GROMACS 2023 updated to the latest version
- new patch for GROMACS 2024
- Small optimization of COORDINATION and related collective variables (#1096).
Version 2.9.3 (Jan 15, 2025)
- Patch for GROMACS 2024 was updated to fix a big issue preventing its use
Version 2.9.4 (May 23, 2025)
- Fixed an issue that might lead to a crash when using multicolvars implemented with linked cells and no PBCs, apparently only showing up with Intel Mac. See #1181.
- Fixed compatibility with cython 3.11. See #1256.
- Small fixes to documentation.
- Code reformatting, to maintain mergeability with v2.10, see #1157.
Version 2.9.5 (Jul 1, 2026)
- Fixed bug in derivatives of COSINUS switching function (see #1317.
- Searching with bisection instead of linearly in the neigbourlist speeding up all CVs using NL.
- Added FMT keyword in METAINFERENCE
- Several fixes in regression tests and in CI
- Fixed an issue where the checkpoint step remains true forever, (see #1428)
Version 2.9.6 (Oct 19, 2026)
- Fixed an out-of-bounds receive-buffer access when domain-decomposition ranks send zero-length messages.
- Fixed the GROMACS 2024 patch so that the potential energy is computed on every step where PLUMED needs it (ENERGY CV, OPES multithermal, well-tempered ensemble). See #1205.
- Documentation: ENERGY does include the GROMACS long tail (
DispCorr) corrections, contrary to what the manual stated. See #567.
- Fixed OPES_METAD and OPES_METAD_EXPLORE derivatives of shifted Gaussian kernels. The constant cutoff shift no longer contributes to the force; bias values are unchanged, while forces can differ from previous versions.
- Stabilized OPES kernel merging for narrow kernels far from the CV origin by combining centered second moments instead of subtracting large squares.
- ENSEMBLE fixes and improvements #1462
- Fix multiple-replica issues in DIMER grid OUTPUT_ANALYSIS_DATA_TO_COLVAR #1483
- OPES_METAD fixes: restart from a KERNELS file with adaptive SIGMA gave the wrong weight to the new kernels; with WALKERS_MPI, the cost of writing the STATE file grew quadratically with the number of writes; a data race with NLIST and OpenMP when merging kernels; an integer overflow with more than 65535 kernels, which caused slow full updates of Zed.
- OPES_EXPANDED fixes: ECV_CUSTOM without ADD_P0 and with more than one ARG gave wrong ensembles; ECV_CUSTOM could not restart with an '_' in the ARG labels; writing the STATE file before initialization crashed with MPI; CALC_WORK was wrong with WALKERS_MPI; CUT_CORNER of ECV_MULTITHERMAL_MULTIBARIC kept some points below the cut line; with WALKERS_MPI, the cost of writing the STATE file grew quadratically.
- The OPES_METAD neighbor list (NLIST) is now exact: it is rebuilt before any kernel outside it can get within KERNEL_CUTOFF, and Zed is updated using all kernels. Previously, kernels within the cutoff could occasionally be missed, and Zed slowly drifted. Results with and without NLIST are now the same. The second value of NLIST_PARAMETERS is no longer used.
- Faster kernel sums in OPES_METAD and OPES_METAD_EXPLORE, with the same results up to round-off: e.g. 2x faster MD with OPES_METAD and 3 CVs on alanine tetrapeptide in vacuum.
- GROMACS patches: when the PLUMED input needs the potential energy, the forces that PLUMED applied on virtual sites were lost, in MD and in energy minimization. They are now spread on the constructing atoms.
- GROMACS 2021, 2022, 2023 and 2024 patches: with multiple time stepping, the forces that PLUMED applied when it needed the potential energy were lost on the slow steps, and the potential energy passed to PLUMED on the fast steps lacked the slow terms. The forces are now applied to the buffer used by the update (and to the one that GROMACS uses for the constraint virial and writes to the trajectory), and mdrun stops with an error if PLUMED needs the energy on a fast step.
- GROMACS patches: when PLUMED asked to stop the simulation (e.g. with COMMITTOR), multiple simulations (e.g. multiple walkers) hung, and with GROMACS 2022-2024 no checkpoint was written at the last step. The request now goes through the GROMACS stop handler, so that it reaches all the ranks and the simulations, and mdrun runs one more step after the next step at which GROMACS communicates signals (every nstglobalcomm steps, and between multiple simulations every 200 steps or more), writing a checkpoint at that last step.
- GROMACS 2020 and 2024 patches: mdrun -rerun with -plumed stopped with an error, as PLUMED was never initialized. The rerun is now patched as for the other GROMACS versions.
- GROMACS patches: in energy minimization with domain decomposition, PLUMED was not told when the atoms were repartitioned, so it then used the wrong atoms. Since GROMACS 2022, this happened also on a single rank, where domain decomposition is used by default. PLUMED now gets the atom indices before each evaluation.
- GROMACS patches: with -hrex, PLUMED calculated and updated a second time, for the previous step, when GROMACS computed the energy of the swapped coordinates: e.g. METAD deposited a second hill, and PRINT printed a second line, on the step before an exchange whenever their stride divided it.
- GROMACS patches: with shell (polarizable) particles or flexible constraints, PLUMED was silently not applied in MD and in reruns. mdrun now stops with an error.
- GROMACS patches (and those for older GROMACS versions, at least since 4.6): the virial of the forces applied by PLUMED was counted twice, so the pressure was wrong, e.g. in NPT simulations, with any bias that applies forces, unless the PLUMED input needed the potential energy. On the steps when GROMACS computes the virial, PLUMED now runs after do_force(), as it does when it needs the energy.
- GROMACS 2024 patch: with -hrex, the energy of the swapped coordinates was computed with the settings of the previous step (often without the energy), so the exchanges were almost never accepted.
- GROMACS 2024 patch: in expanded ensemble simulations, the
lambda passed to PLUMED lagged one expanded ensemble step behind the state of GROMACS.
- GROMACS 2022, 2023 and 2024 patches: in expanded ensemble simulations, the PLUMED bias replaced the lambda weights of GROMACS for all
lmc-stats but Wang-Landau, instead of only for lmc-stats = no, as in the GROMACS 2020 and 2021 patches; and, even without -plumed, Wang-Landau with lmc-forced-nstart did the forced initial pass through the lambda states, unlike GROMACS. Both are now as in the GROMACS 2020 and 2021 patches.
- GROMACS patches: with -hrex and more than one rank per replica, the atoms were repartitioned for the swapped coordinates without the updates that GROMACS does after repartitioning. With the GROMACS 2022-2024 patches the energy of the swapped coordinates could then be wrong (by up to thousands of kT for two identical replicas), and with the GROMACS 2024 patch mdrun could crash.
- GROMACS patches: replica exchange with multiple exchanges (-nex) ignored the PLUMED bias, and could hang with more than one rank per replica. mdrun now stops with an error.
- GROMACS patches: the check that -hrex is not used with exchange patterns set by PLUMED (RANDOM_EXCHANGES) never triggered.
- GROMACS patches: a request of PLUMED to stop (e.g. COMMITTOR) was ignored in reruns.
- GROMACS 2021-2024 patches: md-vv with PLUMED stopped with an error about the modular simulator, instead of falling back to the legacy simulator as with the GROMACS 2020 patch (and the GROMACS 2023 and 2024 patches also lifted the single-rank limit of -membed when PLUMED was used).
- GROMACS patches: with GROMACS built with thread-MPI, more than one thread-MPI rank shared the same PLUMED object. mdrun now stops with an error.
- GROMACS patches: with GPU force buffer operations on a single PP rank (e.g. with GMX_USE_GPU_BUFFER_OPS, or with direct GPU communication with a separate PME rank) and no other force computed on the CPU, the forces of PLUMED were lost on the steps without the virial. PLUMED now counts as force work on the CPU.