As a part of the tabulation the fast diffusion steps are identified.
Before the list is build, we calculate the rates and store them in the arrays difRate for diffusion and desRate for desorption. For the diffusion rates, we set the array difEq to indicate if the event should be treated as fast:
int difEq[NBRNUM+1];As each site can have 0, 1, ... NBRNUM occupied neighbors, difEq and difRate are of length NBRNUM+1. For more complicated encodings, longer arrays are necessary.for(i=0; i < NBRNUM+1; i++) difEq[i] = (difRate[i] > 5.*tstep);