A Cyclotron is a priority merge -or rather a fail-safe joiner- with a loop, so a train can wait at full speed for an opportunity to join a high-speed line. They are most useful to inject trains from a side line into a main, high-speed line, and at junctions between main lines.
"Consider a sideline that loops back on itself after a failed priority merge. A train in this loop would continue to re-test the mainline for entry conditions, once every 8 * 'TL tiles until it found a space large enough to merge with the main line. After the cyclotron was empty, the next waiting train could pre-accelerate and be injected into the cyclotron, ready to continue the cycle. This system has some flaws, however, as it has a capacity of one train and there will be many missed opportunities due to the train being in the wrong position in the accelerator. Junctions are a large and well-trodden area of openttd; I have restricted myself to unbranched feeder structures. You will find that a highly-optimised stream of trains does NOT weather a junction well."
The design actually includes two trains in the loop, thus increasing the chance to find a slot on the high-speed line, but consider injecting trains into the cyclotron from a standstill, with an acceleration bay.
- Smaller cyclotrons increase the chance to find a slot on the high-speed line.
- One should not allow a train to enter a cyclotron while not at full speed. Injecting a slow train on a high-speed line would cause a traffic jam.
Refinements on those two points lead to the following design:
The size of the loop is tailored to the train size. This one is specific for 7-tiles (14 cars) trains.
Let's explain all the details from the mainline up to the side line, so that one can make the necessary changes for a specific train length.
The mainline has the necessary crossings that feed the priority merge's two-sided entry pre signal. One should not allow a gap between signals of more than 1 tile, otherwise a train following too closely another one would come to a stop, causing a traffic jam. Then length of the priority merge depends on the train length.
The first parallel line contains combo signals. Those signals forward the presence of a train on the mainline to the two-sided entry pre signal. When there is a train on the main line in the priority merge, the two-sided entry pre signal is red, forbidding the train in the cyclotron to enter the main line. The two-sided entry pre signal allows for a train to choose another path when red, so the train loops instead of stopping at the signal.
There is another two-sided entry pre signal at the entrance of the loop. It forbids other trains to enter the loop when a train is already inside. Two signals in the loop allow for a train to enter the loop when the train that is already inside is on its way out.
With those signals in the loop, others are necessary to allow the train to loop and not stop at a signal.
There is one connection lane from the loop to the first parallel lane. This one prevents a subtle bug. Let's suppose this lane does not exist. Consider that the train in the loop decides to enter the main line. It is but one pixel into the entrance line when a train crosses the first connection lane on the main line. The two-sided entry pre signal turns red before the train in the loop has crossed it, so it stops there, loosing its speed. After the train on the main line has passed, the train in the loops goes ahead and enters the main line at low speed, causing a traffic jam.
The connection lane between the loop and the first parallel forces the two-sided entry pre signal to stay green after the train in the loop has taken the decision to enter the main line, thus forcing it to go on even if a train has come on the main line. The position of this connection lane on the loop must be very precise. It should force the two-sided entry pre signal green as soon as the train in the loop has taken the decision to enter the main line, but no sooner, otherwise the train would always enter the main line, regardless of the presence of a train on it.
There is another connection lane between the loop and the two-sided pre signal before the loop, so that it stays red when a train is in the loop, but not when the train is on its way out.
That was the actual cyclotron.
Now for the waiting bays. A train must not enter the cyclotron while not at full speed. If it did so, it could join the main line while too slow, causing a traffic jam. To allow for full speed waiting, waiting bays are added. There is no need for cyclotrons here, since there is no joining involved. Two-sided pre signals are used with the same purpose of forcing the train to loop instead of stopping at the signal.
The wating bays should be as small as possible -just enough to hold one train- to allow for more frequent testing of the signal. Add as many waiting bays as needed, depending on your network's load. If too many trains come into the waiting bays, fill it, and end up stopped before the waiting bays, your network is probably overloaded.
The waiting bays are so organized to allow for a maximum gap of 1 between signals. This way, trains that are well-packed arriving at the waiting bay will not suffer from stoppings and nicely fill the waiting bays while remaining at full speed.
- This design does not allow for any different train length
- When all waiting bays are full, a train may stop at a previous signal then enter the mainline without having reached its full speed
- Complex to build without clipboard
- The loop is not as small as it could be (see waiting bays), so trains may still miss slots on the main line
- Multiple well compacted trains arriving from the feeder line won't keep their compactness when entering the mainline, even if the main line is empty. Some waiting in the waiting bays will happen, breaking the stream
- When there is a traffic jam on the main line -which should never happen-, the cyclotrons worsen it by injecting trains at full speed into gaps between still-accelerating trains. The train from the cyclotron comes to a stop and prevents the trains coming after it to go on accelerating.
The following design features a smaller loop, increasing tests for slot by a third.
A train that has choice will chose cyclotron 0 -which is optional- if it is empty, because it is the shortest route -no to the main line but to the final destination. Otherwise, they will enter cyclotron 1. Unline all previous cyclotrons including cyclotron 0, trains loop counterclockwise in cyclotron 1. This allows for an elegant factorization. The only connection line (crossing the loop at 90 degrees) has both purposes of allowing a train that is engaged on its way to the mainline to go ahead even if a train has arrived on the main line, and keeps the two-way entry pre signal always red when there's a train in the loop.
With this design, trains take more time (i.e. the distance is greater) from the last waiting bay to the cyclotron's exit. This is due to the fact that
- trains have to execute a full loop even the first time
- there is no signal that enables a train to enter the cyclotron when the previous one is not fully out yet
As a consequence, the troughput is lesser than in the previous design. This is to be balanced by the higher slot testing. This design is probably more suited for high-traffic main lines, where slots are scarce, while the previous design may be more suited to low-traffic main lines, where the distance between trains allows for more than one train to enter the main line successively.
It will be possible to use the cyclotron to accelerate trains up to their maximum speed before allowing them onto the mainline, thus using the cyclotron for what its name suggests. Programmable or conditional signals, which are in development, are required to keep the exit two-sided entry pre signal red while the train in the loop is not at full speed.
This will further prevent traffic jams from happening on the main line by enforcing full-speed on it.
There is still another source of traffic jams at junctions. The main line splits and the right-hand lane joins the other main line through all the waiting bays and cyclotron apparatus. When it is already filled up, trains start to wait on the lane that leads to the waiting bays, then, when it is full, on the main line itself. More waiting bays could solve the problem, but at some point, the need for too many waiting bays should indicate that the main line is fully loaded and can't take any more traffic.
If the main line is not fully loaded (there still enough is space between trains), but the looping train can't get a slot because of synchronization mishaps, one may consider adding another cyclotron in parallel. This would give twice as many chances to get a slot.
The waiting bay apparatus can be used on main lines where traffic jams are frequent to ease resolution and save time for debugging. The train density would plummet though, as many more rail pieces would be required for mains lines.