Kinetic Monte Carlo of a fixed number of carriers with site exclusion in a periodic box (bulk transport, calculator kmcmultiple).
More...
Kinetic Monte Carlo of a fixed number of carriers with site exclusion in a periodic box (bulk transport, calculator kmcmultiple).
Each run places the carriers on distinct random injection sites at t = 0 and propagates them with KMCEngine on a bulk ToFGraph (ToFGraph::BulkOptions) until a limit (simulated time, events or wall time). Observables are taken over the window [equilibration, end of run]:
- drift velocity: unwrapped displacement per carrier over the window;
- diffusion tensor: the window is cut into J blocks of equal length tau (blocks <= J < 2 blocks); the increments d of all carriers over the blocks give D = Cov(d) / (2 tau), with the mean (drift) removed. This is the long-time D if tau is longer than the memory of the motion (trapping times); compare runs with different numbers of blocks. Block boundaries are found during the run by doubling tau, so the positions at the boundaries are exact also when the length of the run is set by the number of events;
- occupation probability of every site (summed over carriers, so the sum over sites is the number of carriers).
Several runs are independent (random numbers from (seed, run)), done in parallel and reduced in run order; with more than one run the standard errors of velocity and D are taken over the runs, otherwise the velocity error comes from the block increments.
Definition at line 65 of file bulksimulation.h.