TY - JOUR

T1 - A portable and flexible implementation of the Wang–Landau algorithm in order to determine the density of states

AU - Moreno, Felipe

AU - Davis, Sergio

AU - Peralta, Joaquín

N1 - Publisher Copyright:
© 2022 Elsevier B.V.

PY - 2022/5

Y1 - 2022/5

N2 - 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 summary: 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.

AB - 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 summary: 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.

KW - Density of states

KW - Parallel computing

KW - Python

KW - Simulation

KW - Wang–Landau

UR - http://www.scopus.com/inward/record.url?scp=85123216896&partnerID=8YFLogxK

U2 - 10.1016/j.cpc.2022.108283

DO - 10.1016/j.cpc.2022.108283

M3 - Article

AN - SCOPUS:85123216896

SN - 0010-4655

VL - 274

JO - Computer Physics Communications

JF - Computer Physics Communications

M1 - 108283

ER -