Atoms in a crystal move only by jumping into empty sites. Heat sets how many vacancies exist and how often they hop. Watch vacancies wander, atoms creep along in correlated steps, and read the activation energy from the temperature dependence.
The science
Equilibrium vacancies: each site is empty with probability c = 1 / (1 + exp(Ev / kT)) ≈ exp(−Ev/kT) (Boltzmann, independent sites). A Metropolis occupancy simulation without hopping reproduces it.
Hopping: a vacancy exchanges with one of its z = 6 neighbours at rate k = ν exp(−Em/kT), ν = 10¹³ s⁻¹ (an attempt frequency, typical order). Events are rejection-free kinetic Monte Carlo with an exponentially distributed waiting time 1 / (6 Nv k).
Diffusion: vacancy hop rate Γv = 6k(1 − c) and Dv = a²Γv/6. Atoms move only when a vacancy passes, so the tracer self-diffusion coefficient is D = f c Dv with correlation factor f = 0.6531 for the simple-cubic lattice (a tagged atom tends to jump back into the vacancy it just left). From MSD = 6Dt. Because c ∝ exp(−Ev/kT) and Dv ∝ exp(−Em/kT), ln D is a straight line against 1/kT with slope −(Ev + Em): the activation energy Q.
Simplifications: simple-cubic lattice (real metals are fcc/bcc), one vacancy species, no vacancy–vacancy binding, fixed vacancy number in the dynamics (vacancies are created and annihilated at surfaces, grain boundaries and dislocations, not in the bulk), no lattice relaxation. Energies default to toy values (Ev = 0.35 eV, Em = 0.30 eV) so that a 1,728-site crystal holds visible vacancies; real copper is roughly 1 eV and 0.7 eV (typical values, check a data table).