October 4, 2013 | Gareth A. Tribello, Massimiliano Bonomi, Davide Branduardi, Carlo Camilloni, Giovanni Bussi
PLUMED 2 is a complete rewrite of the original PLUMED code, designed to address its limitations and improve flexibility, modularity, and efficiency. PLUMED 1 was a plug-in for molecular dynamics (MD) codes that allowed users to implement enhanced sampling algorithms and collective variables (CVs). However, maintaining interfaces with multiple MD codes and the lack of a developer manual hindered its growth. PLUMED 2 is written in C++ and uses an object-oriented approach, enabling dynamic polymorphism and easier integration of new methods and CVs. It provides a single software library containing tools and core facilities, simplifying the interface with MD engines and allowing for on-the-fly biasing/analysis and post-processing. PLUMED 2 also supports a wide range of CVs, including path CVs, and allows for the calculation of complex functions of CVs using the MATHEVAL Action. The code is modular, with a kernel of core functionalities that enables developers to contribute new features without modifying the core. PLUMED 2 includes standalone tools for analyzing trajectories and performing MD simulations, and it supports multiple replica schemes such as parallel tempering metadynamics. The code is designed to be easily integrated into various MD engines and is now compiled as a dynamic library, making it more flexible and easier to maintain. PLUMED 2 also provides extensive documentation and regression tests to ensure the reliability of new features. The paper describes the theoretical background of PLUMED 2, its operation, and provides examples of its use in enhanced sampling and analysis of MD trajectories. It also discusses the development of new functionalities and the future potential of PLUMED 2 in the field of molecular simulation.PLUMED 2 is a complete rewrite of the original PLUMED code, designed to address its limitations and improve flexibility, modularity, and efficiency. PLUMED 1 was a plug-in for molecular dynamics (MD) codes that allowed users to implement enhanced sampling algorithms and collective variables (CVs). However, maintaining interfaces with multiple MD codes and the lack of a developer manual hindered its growth. PLUMED 2 is written in C++ and uses an object-oriented approach, enabling dynamic polymorphism and easier integration of new methods and CVs. It provides a single software library containing tools and core facilities, simplifying the interface with MD engines and allowing for on-the-fly biasing/analysis and post-processing. PLUMED 2 also supports a wide range of CVs, including path CVs, and allows for the calculation of complex functions of CVs using the MATHEVAL Action. The code is modular, with a kernel of core functionalities that enables developers to contribute new features without modifying the core. PLUMED 2 includes standalone tools for analyzing trajectories and performing MD simulations, and it supports multiple replica schemes such as parallel tempering metadynamics. The code is designed to be easily integrated into various MD engines and is now compiled as a dynamic library, making it more flexible and easier to maintain. PLUMED 2 also provides extensive documentation and regression tests to ensure the reliability of new features. The paper describes the theoretical background of PLUMED 2, its operation, and provides examples of its use in enhanced sampling and analysis of MD trajectories. It also discusses the development of new functionalities and the future potential of PLUMED 2 in the field of molecular simulation.