Destructive Interference
From #openttdcoop wiki
Destructive Interference describes the situation where trains exiting a double-bridge or tunnel interfere with each other's progression in a manner destructive to their throughput. It is also referred to as Slow mode or Evil mode
Overview
The above picture shows a number of typical double bridges and tunnels. There is nothing wrong with them; they are our standard way of dealing with the inability to place signals on bridges or inside of tunnels.
However, there is an issue whenever we use multiple bridges or tunnels in order to handle the traffic of one line; namely, that they must eventually be merged together. At the merging point, a situation can occur where the two tracks each release a train in turn from a stand still, and these trains then proceed to destructively interfere with each other. This requires, of course, that the track leaving the merge is temporarily blocked.
Once destructive interference starts, the chain of events is quite simple:
- One track releases a train from standstill.
- Another train arrives at the merge just before the first train clears it. It is forced to stop.
- The second train is released from standstill
- Another train arrives at the merge from the first track just before the second train clears it. It is also forced to stop.
As can be seen, as long as traffic is sufficiently high, destructive interference can continue indefinitely.
Contributing Factors
The following factors, while not causing the occurrence of destructive interference outright, strongly increase its probability and/or longevity
- Proximity to merges (Particularly priority-less merges or those prioritized against the bridged track) or other situations which can cause the output line to become blocked
- Long bridges - in particular, those 1.5x the train length or longer
- High train holding capacity within the doubled system - approximately two or three trains per track or higher
Situations involving only one of these rarely exhibit symptoms; those involving two do only occasionally. Those involving three or more do regularly, particularly under high load.
Solution
There is no perfect solution. Those which do exist have side effects. However, this solution is mercifully simple, and in practice works quite well.
The above picture modifies the central double bridge in order to prevent destructive interference from beginning. What has been done?
- One track off the bridge has been given priority
- A signal has been removed so that the priority has sufficient look-ahead.
The fix works by allowing one of the tracks to empty at full speed, rather than causing both tracks to slow to a crawl.
Some important considerations:
- The prio look-ahead length is crucial. It must be ensured that trains entering the double bridge system cannot continually block the non-prioritized track, as this will cause the system to effectively revert to being a single bridge. In particular, the look-ahead cannot exceed the length of the longest bridge in the system.
- The experimentally observed ideal prio length is two tiles, that is, an exit signal, one empty track tile, normal signal.
As mentioned, this fix is not without a side effect: any blockages will cause the non-prioritized track to lose synchronization with the prioritized track and queue until there is a sufficient gap for it to join without blocking the prioritized track. In particular, this fix is pessimistic about whether a train can join without blocking the prioritized track, and this pessimism grows with the length of the look ahead.
Not all situations require this fix. In particular, those without contributing factors probably do not. If you are not sure it is broken, don't fix it. This is doubly good advice as, if destructive interference becomes a problem, the fix is rather trivial to apply