Building a 1TW nuclear reactor
Posted: Fri Jan 05, 2018 12:29 am
I was wondering if I could build a nuclear reactor that outputs over 1TW (=1000GW) worth of power. So I built one:
To produce 1TW worth of power, solar panels isn't going to work. It would require ~16.7 million solar cells, which would result in ~146.500 chunks paved with solar panels. Steam engines is slightly more feasible with 1.1 million reactors and half as many boilers, resulting in ~19.500 chunks paved with steam power and would require 250.000 coal or 80.000 solid fuel per second (note the 50% efficiency of boilers). So for 1TW nuclear power is obviously the way to go. With neighborhood bonuses, A perfect square would be the most efficient. A 71×71 setup would work, but I doubt the heat pipes can be extended far enough to dissipate all the generated heat (I'm running the latest Factorio version, currently 0.16.13, which includes the heat pipe fix from 0.15.11). So I settled for a 2×N design.
Some numbers:
The design:
To build something this large, I've chosen a row based design that I could repeat vertically as much as necessary. Furthermore, I wanted to keep it as small as possible, which meant I had to get the ratio's right. So, per 30 tile rows I have 12 reactors generating 12×40MW×4 = 1920MW worth of heat. To convert that heat into steam, I need to fit 1920MW / 10MW = 192 heat exchangers within those 30 tile rows. To convert that steam into energy, I need 1920MW / 5.82MW = 330 steam turbines. And of course, everything must be properly connected with fluid and heat pipes. So it's a tight fit.
Reactor core This one is relatively simple. It has two reactors, belts, inserters to insert full and remove empty fuel cells and heat pipes to dissipate the heat. It seems that having double width heat pipe helps the heat dissipate faster. When multiple reactors are chained, part of the heat wire will overlap. The inserter has stack size set to 1 and is attached to a red wire so it can respond to a signal to grab a fuel cell (signal G, condition >0). The combinator is hooked to the belt piece and checks whether there are at least 3 fuel cells available, indicating that the inserter would be able to grab one, and sends a ready signal to the controller (signal R, value 1). The constant combinator is used to count the number of reactors (signal N, value 1) in the layout.
Heat exchanger Here I've chosen a 6 rows high layout (the heat pipes overlap), which would result in 19.2 heat exchangers (per side). I've rounded this up to 20. This one required a lot of experimentation to get right. Apparently, heat exchangers output fluid at ~102.5 units per second, so 20 heat exchangers, will output 2050 units of steam per second. To maintain such a high flow rate, a pump is needed after every 3 segments of pipe. After some trial and error I found that this was the simplest design that would output a steady 2050 units of steam per second. I've created a flow meter for testing the output.
. There is also a constant combinator, used for counting the number of 'heat exchanger & steam turbine'-arms there are in the reactor (signal M, value 1). Roboports are included in the design to support autonomous building.
Controller Being combinator heavy, this is the most complicated part of the reactor. In the lower part are two progress bars, the red one indicates the amount of full cell that is still active inside the reactors. The white one shows the amount of excess steam within the reactor. The last 5 lights are cyan colored, indicating that steam is above the threshold value of 150.000 per arm. There are 4 conditions which must be met to inject a new fuel cell. From left to right: the reactor must be enabled (combinator is switched on); excess steam within the reactor must be below the threshold (steam/signal M < 150.000); every reactor must have a fuel cell available for pick-up (signal R = signal N); the reactors must not already be processing a fuel cell (signal T = 0). When all conditions are met: signal T is set to 12.000, the number of ticks required for processing a fuel cell; and signal G is set to 20 to signal the inserters to inject a new fuel cell. Both are reduced by 1 every tick until they're 0. In the top right there is a passive circuit that checks whether the heat exchangers & steam turbines have enough capacity ( signal M × 5.82MW × 33 turbines / 10kW ) to deal with the heat generated by the reactor cores ( (signal N - 1) × 40MW × 400% / 10kW ). If not, the 4 lamps color red.
Energy storage:
The system can contain 1.3G units of steam, or 126TJ worth of steam. The heat pipes, reactors and heat exchangers have a total heat capacity of 449480 MJ/°C. Assuming an effective working range of 400°C, this is ~180TJ worth of heat. During a single fuel cell cycle, the reactor generates (6542-1) × 400% × 8GJ = 209TJ of energy. With a total energy capacity of ~306TJ can easily store that. However, the reactor already switches on when there is still 66.6% steam in the system, reducing the free steam energy capacity to 42TJ. As the heat pipes need to be fully drained before the steam can drop below the threshold of 150.000, that leaves ~222TJ in total, which is still sufficient.
As it takes some time for the heaters and heat pipes to heat up sufficiently to get the heat exchangers running at full capacity, the 67% of steam is needed to prevent brownouts. With 126TJ × 67% = 84TJ worth of steam energy left in the system, that leaves 84TJ / 1032GW = 81 seconds for the reactor to heat the heat exchangers up to full capacity.
No! Your factory will die of fps death long before you reach the point that you need 1TW. Merely running the reactor caused my frame rate to drop to 3fps. Luckily it only requires 2 fuel cells to get running at fuel capacity, which at 3fps takes 2 hours.
Fortunately, the design is modular, so you could create a reactor as small as 2 reactors + 1 arm and add additional reactors and arms as necessary (add reactors first and then add arms until the red light of the capacity check turns of). With respect to ratios, 2+6n reactors with 1+5n arms is pretty well balanced. In its smaller forms, it can also be used in normal gameplay. Just find a large enough lake and terraform the parts that don't need water. Also, the heat exchangers and steam turbines are separate, so you can put those as far from each other as you want (as long as you add a pump after every 3 segments of pipe) and use a different means to provide water.
What is needed?To produce 1TW worth of power, solar panels isn't going to work. It would require ~16.7 million solar cells, which would result in ~146.500 chunks paved with solar panels. Steam engines is slightly more feasible with 1.1 million reactors and half as many boilers, resulting in ~19.500 chunks paved with steam power and would require 250.000 coal or 80.000 solid fuel per second (note the 50% efficiency of boilers). So for 1TW nuclear power is obviously the way to go. With neighborhood bonuses, A perfect square would be the most efficient. A 71×71 setup would work, but I doubt the heat pipes can be extended far enough to dissipate all the generated heat (I'm running the latest Factorio version, currently 0.16.13, which includes the heat pipe fix from 0.15.11). So I settled for a 2×N design.
Some numbers:
- 6252 nuclear reactors = 1TW / 40MW / 400% + 1 rounded up to the next even number (153 chunks).
- 31.25 fuel cells per second = 6252 reactors / 200 seconds per fuel cell (I used the creative mod).
- A means to transport these fuel cells over up to 31.000 tiles distance = 6252 reactors × 5 tiles.
- At worker robot speed 15 and cargo size 3 and ignoring time spend on recharging, this could be done by 8.200 logistic bots = 31.000 tiles on average × 31.25 fuel / ( 3 tiles per second × 990% ) / 4 items per robot.
- Or simply with 4 transport belts: on each side, one for delivering fuel cells and one for collecting the emptied ones. Note that 31.25 per second is more than what would fit on 2 transport belts (each 13.33/s), so at least fast transport belts (26.66/s) are required.
- 100.000 heat exchangers = 1TW / 10MW (586 chunks).
- 172.000 steam turbines = 1TW / 5.82MW (5034 chunks).
- 8.600 offshore pumps = 172.000 steam turbines × 60 water per second / 1200 water per second (34 chunks).
- To store one fuel cell worth of energy: 82.500 storage tanks = 1TW × 200sec / 2.425GJ or ~700.000 pieces of heat pipe = 1TW × 200sec / ~300MJ.
The design:
To build something this large, I've chosen a row based design that I could repeat vertically as much as necessary. Furthermore, I wanted to keep it as small as possible, which meant I had to get the ratio's right. So, per 30 tile rows I have 12 reactors generating 12×40MW×4 = 1920MW worth of heat. To convert that heat into steam, I need to fit 1920MW / 10MW = 192 heat exchangers within those 30 tile rows. To convert that steam into energy, I need 1920MW / 5.82MW = 330 steam turbines. And of course, everything must be properly connected with fluid and heat pipes. So it's a tight fit.
Reactor core This one is relatively simple. It has two reactors, belts, inserters to insert full and remove empty fuel cells and heat pipes to dissipate the heat. It seems that having double width heat pipe helps the heat dissipate faster. When multiple reactors are chained, part of the heat wire will overlap. The inserter has stack size set to 1 and is attached to a red wire so it can respond to a signal to grab a fuel cell (signal G, condition >0). The combinator is hooked to the belt piece and checks whether there are at least 3 fuel cells available, indicating that the inserter would be able to grab one, and sends a ready signal to the controller (signal R, value 1). The constant combinator is used to count the number of reactors (signal N, value 1) in the layout.
Heat exchanger Here I've chosen a 6 rows high layout (the heat pipes overlap), which would result in 19.2 heat exchangers (per side). I've rounded this up to 20. This one required a lot of experimentation to get right. Apparently, heat exchangers output fluid at ~102.5 units per second, so 20 heat exchangers, will output 2050 units of steam per second. To maintain such a high flow rate, a pump is needed after every 3 segments of pipe. After some trial and error I found that this was the simplest design that would output a steady 2050 units of steam per second. I've created a flow meter for testing the output.
Flow meter
This blueprint is used for measuring flow rates. Connect something that outputs fluid to the storage tank on the right. Once the stream is flowing steadily, rotate or disable the pump (signal T, value non-zero), which is keeping the storage tank drained. Once the tank contains 5000 units, the circuitry will count the number of ticks it takes to increase the tank to 20.000 units of fluid (this range is set in the constant combinator with signals L=5000 and M=15000). And then displays the flow rate in units per second. I've included it in the blueprint book.
Steam turbines
To match with the heat exchanger layout, this one is also 6 rows high. Hence it must contain 33 steam turbines per side. After the underground segment from the heat exchangers, a pump must immediately follow, to maintain the 2050 flow. After the pump it should again be at most 3 segments until the turbine (turbines seem to have a pump-like effect). At the end, there are 9 storage tanks to temporarily store excess steam. They're hooked up to the circuit network to report the amount of steam stored, which is used to throttle fuel cell input, in case power demand is less than 1TW 
Controller Being combinator heavy, this is the most complicated part of the reactor. In the lower part are two progress bars, the red one indicates the amount of full cell that is still active inside the reactors. The white one shows the amount of excess steam within the reactor. The last 5 lights are cyan colored, indicating that steam is above the threshold value of 150.000 per arm. There are 4 conditions which must be met to inject a new fuel cell. From left to right: the reactor must be enabled (combinator is switched on); excess steam within the reactor must be below the threshold (steam/signal M < 150.000); every reactor must have a fuel cell available for pick-up (signal R = signal N); the reactors must not already be processing a fuel cell (signal T = 0). When all conditions are met: signal T is set to 12.000, the number of ticks required for processing a fuel cell; and signal G is set to 20 to signal the inserters to inject a new fuel cell. Both are reduced by 1 every tick until they're 0. In the top right there is a passive circuit that checks whether the heat exchangers & steam turbines have enough capacity ( signal M × 5.82MW × 33 turbines / 10kW ) to deal with the heat generated by the reactor cores ( (signal N - 1) × 40MW × 400% / 10kW ). If not, the 4 lamps color red.
Circuit network signals
The result:
The bottom part repeats for another 1000 chunks. As I didn't want to count the 6252 reactors carefully, I ended up building a reactor with 6452 cores and 5376 arms. In parts, that is:
- 277440 heat pipes
- 247296 pipes
- 177408 turbines (1032GW), 60 turbines (0.056%) more than the optimal ratio.
- 107520 heat exchangers (1075GW), 4304 heat exchangers (4.2%) more than the optimal ratio.
- 68816 underground pipe segments
- 53788 small electric poles
- 48384 storage tanks
- 25812 underground belts
- 16128 pumps
- 12956 belt segments
- 11844 medium electric poles
- 11828 constant combinators
- 10752 offshore pumps, 1884 offshore pumps (21%) more than the optimal ratio.
- 6460 decider combinators
- 6452 long-handed inserters
- 6452 fast inserters
- 6452 reactors (1032GW)
- 40 lamps
- 6 arithmetic combinators
- 1 substation
Energy storage:
The system can contain 1.3G units of steam, or 126TJ worth of steam. The heat pipes, reactors and heat exchangers have a total heat capacity of 449480 MJ/°C. Assuming an effective working range of 400°C, this is ~180TJ worth of heat. During a single fuel cell cycle, the reactor generates (6542-1) × 400% × 8GJ = 209TJ of energy. With a total energy capacity of ~306TJ can easily store that. However, the reactor already switches on when there is still 66.6% steam in the system, reducing the free steam energy capacity to 42TJ. As the heat pipes need to be fully drained before the steam can drop below the threshold of 150.000, that leaves ~222TJ in total, which is still sufficient.
As it takes some time for the heaters and heat pipes to heat up sufficiently to get the heat exchangers running at full capacity, the 67% of steam is needed to prevent brownouts. With 126TJ × 67% = 84TJ worth of steam energy left in the system, that leaves 84TJ / 1032GW = 81 seconds for the reactor to heat the heat exchangers up to full capacity.

Blueprint book
Would you ever need such an amount of power?No! Your factory will die of fps death long before you reach the point that you need 1TW. Merely running the reactor caused my frame rate to drop to 3fps. Luckily it only requires 2 fuel cells to get running at fuel capacity, which at 3fps takes 2 hours.
Fortunately, the design is modular, so you could create a reactor as small as 2 reactors + 1 arm and add additional reactors and arms as necessary (add reactors first and then add arms until the red light of the capacity check turns of). With respect to ratios, 2+6n reactors with 1+5n arms is pretty well balanced. In its smaller forms, it can also be used in normal gameplay. Just find a large enough lake and terraform the parts that don't need water. Also, the heat exchangers and steam turbines are separate, so you can put those as far from each other as you want (as long as you add a pump after every 3 segments of pipe) and use a different means to provide water.