Adds a new event to the simulation's event queue, updating the simulation object.
scheduleEvent( sim, eventTime, moduleName, eventType, eventPriority = .pkgEnv$.normalVal, .skipChecks = FALSE )
sim | A |
---|---|
eventTime | A numeric specifying the time of the next event. |
moduleName | A character string specifying the module from which to
call the event. If missing, it will use
|
eventType | A character string specifying the type of event from within the module. |
eventPriority | A numeric specifying the priority of the event.
Lower number means higher priority. As a best practice, it is
recommended that decimal values are conceptual
grouped by their integer values (e.g., 4.0, 4.25, 4.5 are conceptually
similar).
See |
.skipChecks | Logical. If |
Returns the modified simList
object.
Here, we implement a simulation in a more modular fashion so it's easier to add submodules to the simulation. We use S4 classes and methods, and use `data.table` instead of `data.frame` to implement the event queue (because it is much faster).
Matloff, N. (2011). The Art of R Programming (ch. 7.8.3). San Francisco, CA: No Starch Press, Inc.. Retrieved from https://nostarch.com/artofr.htm
Alex Chubaty
if (FALSE) { scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn") # default priority scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn", .normal()) # default priority scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn", .normal()-1) # higher priority scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn", .normal()+1) # lower priority scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn", .highest()) # highest priority scheduleEvent(x, time(sim) + 1.0, "firemodule", "burn", .lowest()) # lowest priority }