SpaDES (version 1.2.0)

scheduleEvent: Schedule a simulation event

Description

Adds a new event to the simulation's event queue, updating the simulation object.

Usage

scheduleEvent(sim, eventTime, moduleName, eventType, eventPriority)
"scheduleEvent"(sim, eventTime, moduleName, eventType, eventPriority)
"scheduleEvent"(sim, eventTime, moduleName, eventType, eventPriority)
"scheduleEvent"(sim, eventTime, moduleName, eventType, eventPriority)

Arguments

sim
A simList simulation object.
eventTime
A numeric specifying the time of the next event.
moduleName
A character string specifying the module from which to call the event.
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.

Value

Returns the modified simList object.

Details

Based on code from chapter 7.8.3 of Matloff (2011): "Discrete event simulation". 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).

References

Matloff, N. (2011). The Art of R Programming (ch. 7.8.3). San Fransisco, CA: No Starch Press, Inc.. Retrieved from https://www.nostarch.com/artofr.htm

Examples

Run this code
## Not run: 
#  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
# ## End(Not run)

Run the code above in your browser using DataCamp Workspace