KMCThinFilm: A C++ Framework for the Rapid Development of Lattice Kinetic Monte Carlo (kMC) Simulations of Thin Film Growth
ARMY RESEARCH LAB ABERDEEN PROVING GROUND MD COMPUTATIONAL AND INFORMATION SCIENCES DIRECTORATE
Pagination or Media Count:
A new C library for the rapid development of lattice-based kinetic Monte Carlo kMC simulation codes, KMCThinFilm, has been introduced. This library implements versions of the Bortz-Kalos-Lebowitz BKL algorithm for choosing sequences of random events on a lattice in a kMC simulation, and these implementations have been optimized so that only a subset of the cells of the lattice has to be scanned at each time step of the simulation. Researchers who wish to implement kMC models of some physical processes can use this library for the BKL algorithm rather than program an ad hoc and possibly na ve implementation of it, and focus on writing the code needed to determine the propensities for the possible events in their kMC model and the means of executing them. Example applications, one of a patterned substrate and one of ballistic deposition of a pseudo-polycrystalline film, demonstrate the flexibility of the library. The KMCThinFilm library is also capable of approximate parallel kMC simulations, and its parallel efficiency appears to be near the same or better than a previous parallel implementation described in a 2007 article by F Shi, Y Shim, and JG Amar, Parallel Kinetic Monte Carlo Simulations of Two-Dimensional Island Coarsening, Physical Review E, volume 76, 031607. However, parallel scalability for simulations on smaller lattices tends to be poor, so it is recommended that parallelism only be used for simulations that are too computationally intensive to run on a workstation.
- Electrical and Electronic Equipment
- Statistics and Probability
- Computer Programming and Software
- Solid State Physics