KMCThinFilm: A C++ Framework for the Rapid Development of Lattice Kinetic Monte Carlo (kMC) Simulations of Thin Film Growth
Abstract
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.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 01, 2015
- Accession Number
- ADA622076
Entities
People
- James J. Ramsey
Organizations
- United States Army Research Laboratory