A portable and flexible implementation of the Wang–Landau algorithm in order to determine the density of states - Moreno, Felipe; Davis, Sergio; Peralta, Joaquín (Computer physics communications, 2022)
In this work we develop an implementation of the Wang–Landau algorithm Wang and Landau (2001) [4]arXiv e-prints. This algorithm allows us to find the density of states (DOS), a function that, for a given system, describes the proportion of states that have a certain energy. The implementation uses the Python and C++ languages for the algorithm itself, and it can take advantage of any library, such as the powerful LAMMPS library, for the computation of energy. Therefore, the resulting implementation is simple and flexible without sacrificing efficiency. This implementation also considers recent developments in the parallelization of the code for faster computation. We establish the soundness and effectiveness of our implementation by studying well-known systems such as the Ising model, the Lennard–Jones and EAM solids. We have found that our implementation can find the DOS with very good precision in a reasonable amount of time. Therefore, we are equipped with a very powerful and flexible implementation that can be easily used in order to study more realistic models of matter. Program Title: Republica Wang–Landau (RWL) CPC Library link to program files:https://doi.org/10.17632/gcx9k8wnhh.1 Licensing provisions: GPLv3 Programming language: Python, C++ Nature of problem: An implementation of the WL algorithm that is flexible enough to be used for a large variety of systems. Solution method: This implementation separates the actual Wang–Landau code of the abstract implementation of the system. Therefore, any system can be attached as a walker—a Python class that represents the system. Additional comments including restrictions and unusual features: As examples, basic systems such as the Ising model are included plus a wrapper class for a LAMMPS walker to be used for any system supported by LAMMPS.