After determining V orbit and V 0 in Eq. 9, one proceeds with kMC simulations, whose workflow is shown schematically in Fig. . In kMCpy, we have implemented the rf-kMC method, also known as the Bortz-Kalos-Lebowitz (BKL) algorithm . Specifically, we list the set of all possible migration events in a given solid and their corresponding probabilities, amongst which one migration event is selected. Once a hop is selected, the hop is always executed, and subsequently, the list of possible migration events is updated.