Plumed is an open source library which allows to implement several kind of enhanced sampling methods and contains a variety of tools to analyze data obtained from molecular dynamics simulations. With this calculator can be carried out biased simulations incluing metadynamics or its variation well-tempered metadynamics, among others. Besides, it is possible to compute a large set of collective variables that plumed has already implemented for being calculated on-the-fly in MD simulations or for postprocessing tasks.


Typically, plumed simulations need an external file, commonly called plumed.dat for setting up the plumed functions. In this ASE calculator interface, plumed information is given to the calculator through a string list containing the lines that would be included in the plumed.dat file. Something like this:

setup = ["d: DISTANCE ATOMS=1,2",
class ase.calculators.plumed.Plumed(calc, input, timestep, atoms=None, kT=1.0, log='', restart=False, use_charge=False, update_charge=False)[source]

Plumed calculator is used for simulations of enhanced sampling methods with the open-source code PLUMED (

[1] The PLUMED consortium, Nat. Methods 16, 670 (2019) [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)

  • calc (Calculator object) – It computes the unbiased forces

  • input (List of strings) – It contains the setup of plumed actions

  • timestep (float) – Timestep of the simulated dynamics

  • atoms (Atoms) – Atoms object to be attached


For this case, the calculator is defined strictly with the object atoms inside. This is necessary for initializing the Plumed object. For conserving ASE convention, it can be initialized as atoms.calc = (…, atoms=atoms, …)

kT: float. Default 1.

Value of the thermal energy in eV units. It is important for some of the methods of plumed like Well-Tempered Metadynamics.

log: string

Log file of the plumed calculations

restart: boolean. Default False

True if the simulation is restarted.

use_charge: boolean. Default False

True if you use some collective variable which needs charges. If use_charges is True and update_charge is False, you have to define initial charges and then this charge will be used during all simulation.

update_charge: boolean. Default False

True if you want the carges to be updated each time step. This will fail in case that calc does not have ‘charges’ in its properties.


In order to guarantee a well restart, the user has to fix momenta, positions and Plumed.istep, where the positions and momenta corresponds to the last coniguration in the previous simulation, while Plumed.istep is the number of timesteps performed previously. This can be done using ase.calculators.plumed.restart_from_trajectory.