app_style test/group N Nmax pmax pmin delta keyword value
lomem value = yes or no
app_style test/group 10000 30 1.0 1.0e-6 5 app_style test/group 10000 30 1.0 1.0e-9 10 lomem yes
This is a general application which creates and evolves an artificial network of coupled events to test the performance and scalability of various kinetic Monte Carlo solvers. See the paper by (Slepoy) for additional details on how it has been used.
The set of coupled events can be thought of as a reaction network with N different chemical rate equations or events to choose from. Each equation is coupled to M randomly chosen other equations, where M is a uniform random number from 1 to Mmax. In a chemical reaction sense it is as if an executed reaction creates M product molecules, each of which is a reactant in another reaction, affecting its probability of occurrence.
Initially, the maximum and minimum probability for each event is an exponentially distributed random value between pmax and pmin. If solve_style group is used, these values should be the same as the pmax and pmin used as parameters in that command. Pmin must be greater than 0.0.
As events are executed, the artificial network updates the probabilities of dependent reactions directly by adjusting their probability by a uniform random number betwee -delta and +delta. Since delta is specified as a percentatge, this means pold * (1 - delta/100) <= pnew <= pold * (1 + delta/100). Delta must be less than 100.
If the lomem keyword is set to no, then the random connectivity of the network is generated beforehand and stored. This is faster when events are executed but limits the size of problem that will fit in memory. If lomem is set to yes, then the connectivity is generated on the fly, as each event is executed.
This application can only be evolved using a kinetic Monte Carlo (KMC) algorithm. You must thus define a KMC solver to be used with the application via the solve_style command
When the run command is used with this application it sets the number of events to perform, not the time for the run. E.g.
means to perform 10000 events, not to run for 10000 seconds.
No additional commands are defined by this application.
The default value is lomem = no.
(Slepoy) Slepoy, Thompson, Plimpton, J Chem Phys, 128, 205101 (2008).