Execution Configuration
The execution of the simulation can be defined globally or individually per agent type or instance. It specifies exactly how often an agent or the model should be executed.
Global Execution Time
The global settings affect the simulation time and include the definition of the simulation period and the step length (deltaT).
MARS distinct two different time models:
Step Based Execution
The step-based version is the simplest kind of execution. By setting the steps, the concrete amount of steps to be actually executed is determined.
This temporal execution is suitable for models that do not consider any kind of temporal relationships in their concept model.
In the simulation configuration the following must be specified under the global settings globals:
{
"globals": {
"deltaT" : 1,
"steps" : 1000
}
}
In the configuration above we have defined the simulation runs exactly 1000 steps.
❗❗❗ One simulation tick
tickis interpreted as1step.
Real-time based execution
The real-time based execution uses a concretely defined start and End time in which this simulation is executed.
This temporal execution is suitable for most models that want to react to calendar events within the model logic (e.g. in October it gets cooler ...).**
In the simulation configuration the following must be specified under the global settings ``globals'':
{
"globals": {
"deltaT" : 1,
"deltaTUnit": "minutes",
"startTime" : "10-10-1993T10:34:01",
"endTime" : "10-10-2003T12:00:00"
}
}
The real time is set as the validity period. By specifying the step length deltaT and a concrete time unit minutes real-time step is specified.
❗❗❗ One simulation tick
tickis interpreted as1 minute.
The following time units are available:
deltaTUnit |
|---|
microseconds |
milliseconds |
seconds |
minutes |
days |
weeks |
months |
years |
Due to the existing real time, a further attribute DateTime is created in the output of the results, which assigns the corresponding validity time to the version of an object.
Individual Execution Time
The frequency of execution of concrete agent and active layer instances can be set.
The setting always refers to the simulation tick that maps to the logical simulation step or the real-time step (see above).
In the simulation configuration, the so-called executionFrequency can be specified under the type mapping (agents or layers). This specifies an integer value, which tells after how many ticks, instances of these types should be executed.
{
"globals": {
"deltaT": 1,
"deltaTUnit": "minutes",
"startTime": "10-10-1993T10:34:01",
"endTime": "10-10-2003T12:00:00"
},
"agents": [{
"name": "Marula",
"count": 1180,
"executionFrequency": 10
},
{
"name": "Citizen",
"count": 105610
}
]
}
In conjunction with the global real-time based execution every minute, this setting means: Every Marula is executed after each passed 10 minutes and every citizen is executed after every minute.
The executionFrequency applies to all instances of the type Marula and can be individually assigned to an output group for selected instances when registering to the runtime system (more about spawning and registering here.