Self-learning kinetic Monte Carlo method: Application to Cu(111) | Synapse