KMC algorithmΒΆ
Form and maintain a list of all possible rates \(r_j\) in system
\[r_j\;\mbox{for all}\;\; j=1,2,\ldots,M\]\(M\) – number of possible events
Calculate the cummulative function
\[R_m=\sum_{j=1}^{m}r_j, \;\;\mbox{for all}\;\; m=1,2,\ldots,M\]Generate random number \(\rho_1\in[0,1)\)
Select event \(i\)
\[\begin{split}R_{i-1}\leq \rho_1 R_M < R_i\end{split}\]Carry out event \(i\)
Generate random number \(\rho_2\in(0,1)\)
Compute time increment \(\Delta t\)
\[\Delta t=-\frac{ln(\rho_2)}{R_M}\]Update time: \(t=t+\Delta t\)
Update list of events and goto next step