Optimizing the nuclear reactor
Moderator: bobingabout
Optimizing the nuclear reactor
In vanilla the best way to build a nuclear reactor is a 2xN grid. This gives the maximum neighbour bonus while still allowing automation.
But with Bob's adjustable inserters fuel can be inserted diagonally. One still can't do a NxN grid but one can for example build 8 nuclear reactors in a 3x3 grid and still automatically fuel all of them.
So have any of you come up with interesting shapes for your reactor with more neighbour bonuses than the vanilla 2xN grid pattern? What's the optimal pattern making the most of your fuel?
But with Bob's adjustable inserters fuel can be inserted diagonally. One still can't do a NxN grid but one can for example build 8 nuclear reactors in a 3x3 grid and still automatically fuel all of them.
So have any of you come up with interesting shapes for your reactor with more neighbour bonuses than the vanilla 2xN grid pattern? What's the optimal pattern making the most of your fuel?
Re: Optimizing the nuclear reactor
You could fuel it diagonally, but how do you get the heat out? Assuming you need 1 side open for heat pipes, you end up back at the 2xN pattern with reactors on 3 sides. Unless I'm missing something.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
With a hole in the middle every reactor has only 2 neighbours, losing 4*40MW output compared to 2*4. The only thing i can think of that has might have more efficiency is a square with 2 reactor wide edges, which gains a lousy 40MW in each of the four corners regardless of square size.mrvn wrote:But with Bob's adjustable inserters fuel can be inserted diagonally. One still can't do a NxN grid but one can for example build 8 nuclear reactors in a 3x3 grid and still automatically fuel all of them.
Reactors share heat, so theoretically you only need one output pipe for the whole thing. But then you hit the transfer speed limit and need more again.xfir01 wrote:You could fuel it diagonally, but how do you get the heat out? Assuming you need 1 side open for heat pipes, you end up back at the 2xN pattern with reactors on 3 sides. Unless I'm missing something.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Optimizing the nuclear reactor
I did look into it before, but due to the placement of heat pipe connections on each reactor, it's not easy to connect them together in a way other than 2xN and have them all connect.
Now if you had modded reactors where the heat pipes were in different positions, or simply just had 5 heat pipes per side instead of only 3, it could be possible to offset them by just 1 tile so that they're slightly staggered, and have a 2xN where one is connected to 5 neighbours instead of the 3
you can stagger them by 2 tiles now and still have it work, but there's no "diagonal" interaction due to heat pipe locations.
Either way, bob's inserters doesn't change much, if anything about your layout.
Now if you had modded reactors where the heat pipes were in different positions, or simply just had 5 heat pipes per side instead of only 3, it could be possible to offset them by just 1 tile so that they're slightly staggered, and have a 2xN where one is connected to 5 neighbours instead of the 3
you can stagger them by 2 tiles now and still have it work, but there's no "diagonal" interaction due to heat pipe locations.
Either way, bob's inserters doesn't change much, if anything about your layout.
Re: Optimizing the nuclear reactor
The only layout I can think of is like this:
If you repeat that (overlapping the edges) using roboport to deliver to the hole you get slightly more neighbor bonus than 2xN. I have no idea how you'd get the heat out fast enough though, 2xN is already fairly thermally challenging.
Code: Select all
#####
#####
## ##
#####
#####
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
Neighbour bonus only works for exactly aligned reactors.bobingabout wrote:you can stagger them by 2 tiles now and still have it work, but there's no "diagonal" interaction due to heat pipe locations.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Optimizing the nuclear reactor
I did not know this, I thought they only needed to be directly connected.eradicator wrote:Neighbour bonus only works for exactly aligned reactors.bobingabout wrote:you can stagger them by 2 tiles now and still have it work, but there's no "diagonal" interaction due to heat pipe locations.
Re: Optimizing the nuclear reactor
I wasn't aware of this either.bobingabout wrote:I did not know this, I thought they only needed to be directly connected.eradicator wrote:Neighbour bonus only works for exactly aligned reactors.bobingabout wrote:you can stagger them by 2 tiles now and still have it work, but there's no "diagonal" interaction due to heat pipe locations.
That's another +1 for the Realistic Reactors mod which combines reactor bonuses just by having heat pipes connected between them up to a balanced limit. This allows reactor setups to be spaced out without losing their bonus, which gives more freedom to build unique designs instead of the same 4x2 brick which we now know is unavoidable and dull.
Re: Optimizing the nuclear reactor
I thought about that shape too but with a power pole and logistics zone expander I didn't have enough space left for inserters for all reactors. A 2x2 hole in the middle works though.BlakeMW wrote:The only layout I can think of is like this:
If you repeat that (overlapping the edges) using roboport to deliver to the hole you get slightly more neighbor bonus than 2xN. I have no idea how you'd get the heat out fast enough though, 2xN is already fairly thermally challenging.Code: Select all
##### ##### ## ## ##### #####
As for the thermal challenge you can always run the reactor less than 100% of the time. Let it cool down between fuel so it doesn't overheat on the next.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
Witout a method to measure heat you don't know how much the reactor has cooled down yet though, as that depends on the factories power consumption. So you'd need an above average sized buffer tank/accumulator to measure when the plant is completely shut down.mrvn wrote:As for the thermal challenge you can always run the reactor less than 100% of the time. Let it cool down between fuel so it doesn't overheat on the next.
Re: Optimizing the nuclear reactor
Normally I simply add fuel when one of the steam tank goes below a trigger, say 100k steam left. At that point I know I have enough steam and heat capacity left to store another fuel cells worth of heat.
But more control should be possible. The temperature falls from the reactor to the last heat exchanger. You can measure the steam output from any of them. The number of heat exchangers still giving you steam should give you a temperature estimate.
But more control should be possible. The temperature falls from the reactor to the last heat exchanger. You can measure the steam output from any of them. The number of heat exchangers still giving you steam should give you a temperature estimate.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
Yea, i just meant to say that it requires a disproportionately larger control mechanism.
On second thought though...what's the point of even having a reactor that can't run 100%? Reactors not currently burning fuel give no neighbour bonus. So unless you're planning on running the whole plant in short bursts to get 5% more fuel efficiency you're better of with a smaller plant.mrvn wrote:As for the thermal challenge you can always run the reactor less than 100% of the time. Let it cool down between fuel so it doesn't overheat on the next.
Re: Optimizing the nuclear reactor
20x5 reactors with holes give 4*3 + 70*4 + 24*5 = 412, 2x49 gives 4*3+94*4 = 388. That's 6.2% better. Indeed, not much. It would have to run 93.8% of the time for the same energy. I was hoping for more.eradicator wrote:Yea, i just meant to say that it requires a disproportionately larger control mechanism.
On second thought though...what's the point of even having a reactor that can't run 100%? Reactors not currently burning fuel give no neighbour bonus. So unless you're planning on running the whole plant in short bursts to get 5% more fuel efficiency you're better of with a smaller plant.mrvn wrote:As for the thermal challenge you can always run the reactor less than 100% of the time. Let it cool down between fuel so it doesn't overheat on the next.
Re: Optimizing the nuclear reactor
Actually, you can just observe what edge of the heat pipe network cools down most quickly (or pick a random edge, or engineer a longer heat propagation distance to "canary" heat exchangers) and attach your steam measuring setup to those specific heat exchangers which will lose heat first. Once that most distant heat exchanger stops producing steam the tank will immediately start to empty - but at this point nearly all the other heat exchangers will still be generating steam so the power plant only loses a few percent of steam production. With a rapid fuel-insertion response to the falling steam level at the fringe there is very little extra buffering required.eradicator wrote: Witout a method to measure heat you don't know how much the reactor has cooled down yet though, as that depends on the factories power consumption. So you'd need an above average sized buffer tank/accumulator to measure when the plant is completely shut down.
That is always how I make fuel-saving power plants, with direct feed from heat exchangers to turbines except for a single steam tank at a set of "canary" exchangers to give early warning of heat loss. Whenever I see players with large batteries of steam tanks I think they're crazy.
(to be fair, this kind of low-buffer fuel-saver is more prone to reaching full heat, but in practice it has a working range of say 0-80% of full load where it doesn't waste any fuel at all, and then at 80%+ load it might waste a little fuel to overheating especially if load suddenly drops just after fuel insertion, but I'm willing to accept losing a few percent of the fuel value at high loads, the point of a fuel-saver for me is not losing 70% of the fuel value at low loads and a smaller and simpler setup that achieves that is good enough)
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
That's an interesting idea. I used to have lots of tanks because they are more space efficient than accumulators. And a large buffer can help average out the consumption of your factory, so the plant doesn't go full power on every little spike. Currently i'm running a no-tank layout thought hoping to save a few UPS (close-enough-ratio).BlakeMW wrote: That is always how I make fuel-saving power plants, with direct feed from heat exchangers to turbines except for a single steam tank at a set of "canary" exchangers to give early warning of heat loss. Whenever I see players with large batteries of steam tanks I think they're crazy.
Re: Optimizing the nuclear reactor
I also use 1:2 nearly exclusively.
One of the nice things about 1:2 is it's slightly turbine rich meaning it can act as a buffer. Each exchanger+2 turbines stores 600 steam, this is only enough for about 5s at full load, but if the heat exchanger is still pumping out steam it allows the turbines to run at full power for about a minute. So a nuclear plant using 1:2 can cover spikes of ~116% load for ~1 minute. In the context of a factory that is really quite a lot of spike accommodation, a factory running at full production doesn't tend to fluctuate by more than a few percent over a few seconds, and a massive surge from say construction bot activity could potentially cause a big spike, but then the question is how much buffer is enough? 1 minute? 10 minutes? 1 hour? There quickly comes a point where you just want to treat the increased load as an increased average rather than a spike (for example bots laying huge amounts of concrete could stay busy for half an hour, you'd probably want to accommodate that in the baseline power generation).
Another cool thing about 1:2 is you can stick a storage tank on the end of some pair of turbines, that tank will remain nearly full as long as the reactors are keeping up with the load. Once demand starts to exceed 100% the steam level starts dropping, but the system continues to provide full power for quite some time (like if it's only on average 1% overloaded it could go for about 10 minutes on stored steam). Basically, that tank makes an ideal place to attach a preemptive low power alert.
One of the nice things about 1:2 is it's slightly turbine rich meaning it can act as a buffer. Each exchanger+2 turbines stores 600 steam, this is only enough for about 5s at full load, but if the heat exchanger is still pumping out steam it allows the turbines to run at full power for about a minute. So a nuclear plant using 1:2 can cover spikes of ~116% load for ~1 minute. In the context of a factory that is really quite a lot of spike accommodation, a factory running at full production doesn't tend to fluctuate by more than a few percent over a few seconds, and a massive surge from say construction bot activity could potentially cause a big spike, but then the question is how much buffer is enough? 1 minute? 10 minutes? 1 hour? There quickly comes a point where you just want to treat the increased load as an increased average rather than a spike (for example bots laying huge amounts of concrete could stay busy for half an hour, you'd probably want to accommodate that in the baseline power generation).
Another cool thing about 1:2 is you can stick a storage tank on the end of some pair of turbines, that tank will remain nearly full as long as the reactors are keeping up with the load. Once demand starts to exceed 100% the steam level starts dropping, but the system continues to provide full power for quite some time (like if it's only on average 1% overloaded it could go for about 10 minutes on stored steam). Basically, that tank makes an ideal place to attach a preemptive low power alert.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
I thought your argument was to not use tanks :D. Tanks after turbines is what i usually do. The gual with 1:3:1 used in above picture was to always keep the fluid boxes full to the brim in normal situations. Hoping that less fluctuation -> more UPS.BlakeMW wrote:Another cool thing about 1:2 is you can stick a storage tank on the end of some pair of turbines, that tank will remain nearly full as long as the reactors are keeping up with the load. Once demand starts to exceed 100% the steam level starts dropping, but the system continues to provide full power for quite some time (like if it's only on average 1% overloaded it could go for about 10 minutes on stored steam). Basically, that tank makes an ideal place to attach a preemptive low power alert.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Optimizing the nuclear reactor
If stock had something like Angel's check valve I'd use that instead. You only need to measure 1 turbine pair to know what all of them are doing (unless something wonky is going on).
I somehow doubt that keeping fluid boxes full makes any difference to UPS because I'm pretty sure the game is emptying and refilling them each tick even if they appear full by the time you get to see them. Probably the best way to maximize UPS is to have each turbine running at close to 100% as you can tolerate without actually getting power spikes (or accommodate spikes with accumulators), after all a turbine running at 30% and one running at 90% both have to do just as much work each tick, it's not like a 30% turbine gets to go to sleep two-thirds of the time, it's just removing 1/3rd as much steam each tick. Heat exchangers also never get to sleep, it's readily demonstrated by using low game speed or frame by frame analysis that a boiler which is running at say 1% load, is still depleting the fuel bar each tick, just by a very small amount. So it's doing every bit as much work as a boiler running at full bore and it would be reasonable to think heat exchangers work in the same way as boilers. So the only way you're going to get UPS wins is by having the entire setup run at as close to 100% load as possible.
I don't know if it'd be better to have 16% more turbines than necessary or the extra pipes required to make perfect ratios, I'm sure pipes use less UPS than turbines, but you need a whole lot of pipes for each turbine saved.
I somehow doubt that keeping fluid boxes full makes any difference to UPS because I'm pretty sure the game is emptying and refilling them each tick even if they appear full by the time you get to see them. Probably the best way to maximize UPS is to have each turbine running at close to 100% as you can tolerate without actually getting power spikes (or accommodate spikes with accumulators), after all a turbine running at 30% and one running at 90% both have to do just as much work each tick, it's not like a 30% turbine gets to go to sleep two-thirds of the time, it's just removing 1/3rd as much steam each tick. Heat exchangers also never get to sleep, it's readily demonstrated by using low game speed or frame by frame analysis that a boiler which is running at say 1% load, is still depleting the fuel bar each tick, just by a very small amount. So it's doing every bit as much work as a boiler running at full bore and it would be reasonable to think heat exchangers work in the same way as boilers. So the only way you're going to get UPS wins is by having the entire setup run at as close to 100% load as possible.
I don't know if it'd be better to have 16% more turbines than necessary or the extra pipes required to make perfect ratios, I'm sure pipes use less UPS than turbines, but you need a whole lot of pipes for each turbine saved.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Optimizing the nuclear reactor
I think one of the issues is that the heat exchangers want to use 10MW, but the steam turbines want to use 5.8MW, so you can't power 2 from 1. This is one of the reasons why I plan to (when I get back into modding) change the steam turbine to use 6MW (by increasing the temperature from 500C to 515C(Because the actual formula is temp - default temp, which is 15, so 500 temperature units of power is actually 515C)), and the heat exchanger to use 12MW(Again, using the 515 temp), to create that perfect 2:1 balance. It also requires the reactor being retuned, it's currently 40MW (powering 4 heat exchangers) but I'm thinking of dropping it to 36MW (powering 3 of the new type), but plan to, at some point, add to reactors based on Thorium stuff.
It's all explained in here viewtopic.php?f=51&t=60357
This is a discussion, so the final plan isn't in the first post.
It's all explained in here viewtopic.php?f=51&t=60357
This is a discussion, so the final plan isn't in the first post.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Optimizing the nuclear reactor
[Advocatus Diaboli] Changing the numbers to be exactly 2:1 is a double-edged sword. (Don't let me talk into your mod design, though...i'm just writing down some thoughts ;). Part of the joy of factorio comes from fiddling all those different numbers to be close enough to some ratio that each person considers "optimal". Be it space-efficiency, assembler count, max beacon bonus etc. So every time you make a recipe inheritely "perfect" you imho remove a tiny bit of the puzzle. Before the new 2x3 boilers there was no mathematically perfect ratio. Now everyone builds 2:1 boilers without thinking, because they're just perfect. Removing the ratio decision from the early game was probably not too bad. But reactors aren't early game. [/Advocatus Diaboli]
@BlakeMW:
"Too few turbines" does make it easier to always have them fully running. And i was speculating that maybe if the input pipes are always full they only flow "in one direction" and not in both. Also other machines have certain optimations if they run "at full speed" so maybe turbines do too? But without actual measurements that's just wishful thinking on my side :).
@BlakeMW:
"Too few turbines" does make it easier to always have them fully running. And i was speculating that maybe if the input pipes are always full they only flow "in one direction" and not in both. Also other machines have certain optimations if they run "at full speed" so maybe turbines do too? But without actual measurements that's just wishful thinking on my side :).
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.