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 -