So a while ago, it came to my attention that boilers are now implemented differently, as of Factorio 0.15.xx. As such, the previous steam engine designs are no longer applicable. 30/60 boiler/engine rows have since become considered optimal, so I'm happy to say that I've worked out how to nearly double that length, to 59/118. Picture below:
Shown above are 4 rows of boilers/steam engines, stacked for your understanding on how to stack one row with another, as well as how to stack pairs of rows with each other. Each row's engine count is maximized to utilize the full throughput of a fast belt. To overcome the water pressure issues required to make such long rows work, I had to introduce several new designs never needed before - carrying water beyond the initial boilers with underground pipes, and compacting pipes as close as possible to the boilers, with help of offshore pumps on landfilled ground. The underground pipes carrying water are essential for this design to work, since as row length is so long, one must distribute water pressure beyond just the initial boilers.
The compacted pipes provide two benefits - it greatly shortens the distance the underground pipes need to carry water to, from the expected 30th boiler or so to just the 15th. It is also critical for vertically compacting the belts, pipes, and offshore pumps between each pair of rows enough for express underground belts to clear, allowing for one to weave fast/express belts on the same lane, which enables this design to stack more than twice as much as the setup shown. As the shore between the engines and water is 3 tiles wide, up to 3 express belts may be used. This is equivalent to 4.5 fast belts, hence, supplying coal via the shore side of the setup supports a maximum limit of 118 * 8.5 = 1003 engines. I have also kept the high emphasis on resource efficiency and low tech requirements (with fast belt tech being the highest needed) present in previous designs and discussions, so power pole usage continues to be only a minimal number of small poles.
If you're wondering why the design uses 59/118 instead of 60/120 rows, the reason may be found in fast belt throughput. To calculate how many steam engines worth of coal a fast belt can support, you may use the following formula: 8000 KW (Fuel value) * 0.5 (Boiler efficiency) * 26.67 items/s (Fast belt throughput) / 900 KW (Steam engine output) = ~118.53 engines. As discussed on page 14 of this thread, the number aesthetics and tiny increase in energy production from 60/120 rows is generally not worth losing the permanent sustainability of a 59/118 setup. However, depending on your situation, you may find that having a slight, temporary burst of power from having more engines may be more favorable by default, such as when shore length is severely limited and you must prioritize maximizing burst over sustainable power production.
And finally, an ongoing bug is causing the ratio of boilers/engines to be slightly lower than 1:2. As such, any 1:2 steam engine setup, including this one, will eventually run out of steam. After approximately 20 minutes, the steam buffers in the boilers and engines will deplete in this setup, causing average power production to drop by roughly 1 MW per row. As a result, boilers will also consume less coal than usual, so at least while this bug is present, the setup will actually support 119 engines per row (albeit not at a sustainable 900 KW per engine). For the sake of keeping this design future-proof though, I have decided to keep it at 118 engines, for when the bug eventually gets fixed. The bug report for this issue may be found here.
Suggestions on further improvement are always welcome.
Continued thanks to:
- Aru, for originally convincing me of the importance of having low resource costs and tech requirements in a design, and increasing stackability.
- Qon, for originally introducing me to the concept of having more engines per row than usual, via landfill usage and compacted offshore pumps.
- Everyone else who took the time to discuss this design with me!
Previous versions may be found below, for your reference: