Two main kMC algorithms have been proposed: i) kMC with rejection (r-kMC) and ii) rejection-free kMC (rf-kMC) . The former algorithm is similar to the Metropolis algorithm which can select or reject a transition event using a probability estimate. In rf-kMC, a transition event is always executed based on a "list" of probabilities. Thus, rf-kMC is computationally efficient compared to r-kMC, especially when transition rates are low (i.e., event rejection rates are high). There are several software packages to perform kMC simulations , including codes that target higher ef-ficiency kMC algorithms , and those that construct novel models to compute accurate transition rates .