Async Simulation
The Async Simulation plugin contains a snippet and a script template to simulate all the trains of a timetable independently.
Quick start
- Install or enable the Async Simulation plugin.
- Right-click the icon of a Scripted Simulation project, New, Other..., Async Simulation script.
- Customize the script.
rollingStock,timetableandmicro: the projects to be used for the simulation.- In the default slot, you can configure other characteristics of the script. advanced
- Execute the script.
How it works
This is the template of the script:
snippet('lib/AsyncSimulation',
// snippet configuration
rollingStock: 'RollingStock',
timetable:'Timetable',
micro: 'Micro'
) {
// default slot
}
All the logic is contained in the lib/AsyncSimulation.snippet snippet, the body of the script contains only the configuration.
The lib/AsyncSimulation.snippet does not create outputs, as they are suppressed. It is necessary to modify the script in order to generate outputs from the asynchronous simulation. See examples below.
Tutorials
Examples
Minimum time, without stops
snippet('lib/AsyncSimulation',
// snippet configuration
rollingStock: 'RollingStock',
timetable:'Timetable',
micro: 'Micro'
) {
// default slot
withTimetableTransformations {
timetableTransformations { setEntryType(pass).withEntryMatcher('not origin and not destination')}
}
}
Calculation of minimum TSAR
snippet('lib/AsyncSimulation',
// snippet configuration
rollingStock: 'RollingStock',
timetable:'Timetable',
micro: 'Micro'
) {
// default slot
withTimetableTransformations {
timetableTransformations { setEntryType(pass).withEntryMatcher('not origin and not destination')}
}
snippet('lib/TimeSignalAtRed')
}