Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Don't know how to use a machine? Looking for efficient setups? Stuck in a mission?
vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

Tertius wrote:
Wed Mar 22, 2023 5:50 pm
Usually, you don't use 40 steam turbines in a row, however it's absolutely possible, given you are able to collect that much steam throughput from heat exchangers.
Yes, that was also an old idea from me that I've taken up -- and used in my new Nuclear Power Plant:

2023-03-23_172300.jpg
2023-03-23_172300.jpg (968.09 KiB) Viewed 2005 times

In this setup, all Turbines run @ maximum. There's exactly one Storage Tank for Steam in this line, directly after the Heat Exchangers, supplied via pumps at input & output. Every green lamp that is lit indicates that the storage tank has a level of 25k. The big green tick that indicates "System Ready" is only lit if every of the 50 Storage Tanks is completely full; exact value: 1,250,000.
If it comes to the fullness of tanks, this is what I analyzed. The display of "24k" is a result of rounding. Actually, the tanks are full with a value of 24999:
Impressive analysis, I salute you.
Tertius wrote:
Wed Mar 22, 2023 6:58 pm
It tells us there are basically 3 fluid levels. A "high" level used by generators. A "ground" level used by pipe systems. And an "underground" level used by consumers. A pump does nothing else but lift input fluid to high level.

[...]

You must not put an ordinary pipe in between. If you do, only the surplus of > 100 is floating over to that pipe and reaching what is behind that pipe. From this point, the limit table in the wiki is applied again.
The difference between "internal levels" instead of a proper pressure system is IMHO the Crux that leads to such unforeseen modes of behaviour.

To get most out of the fluid system, we must use Pumps whenever there's an input or an output (except long pipe lines, but they need a "refresh" in between). So I've developed the following Heat Exchanger setup:

2023-03-23_173919.jpg
2023-03-23_173919.jpg (888.09 KiB) Viewed 2005 times
It was quite difficult to find a setup in which I have 100% coverage of electricy (pumps don't run without) as well as a modular system that doesn't look like an accident.

But, what I've wanted to mention a little time ago but then forgot it:

Not only the fluid system has these issues, but the Heat Exchange System as well IMHO. Because we don't have any "Heat Pumps" we can use, we have to handle the things given with a little cheating (taking Nuclear Reactors as a "Heat Pipe" with much better stats but not fueling it). Also, the line segments/stretch has to be as short as possible. Due to the large setup of Nuclear Reactors, this was not an easy point. But I think I've managed it.

Don't forget that this fluid "disadvantages" also affect Oil Processing. The only workaround available are -- Pumps.
mmmPI wrote:
Thu Mar 23, 2023 9:18 am
You could link all storage tanks with the same wire, to read the sum of them all, if you want to buffer say 200 000 steam more or less, you could always trigger an alarm or a refuel or allow water in when the number is under 200 000 as was suggested instead of doing something when the steam quantity is exactly 200 000 that maybe missed due to relying on reading 25000 and not 24999 in some tanks.
That's not satisfying. Of course I've wired every tank to get the overall content (surprisingly, by clicking on a tank it shows me its content as well as the overall content -- but I cannot read it by circuit). What's missing that is an "I am full" notice, if there's no consumption, for example, so there must be something wrong in the overall system, especially in end-game with automatic rocket launches for research.
When you try to read fluid quantity with circuit network with precision, you may need to keep in mind that circuit numbers are only integers, but fluids are not. If you have a fluid quantity between 0 and 1, it will show up as 1 in the circuit network, but if you have 1.3 or 1.7 fluid, it will also show up as 1.
The decimal part is always hidden by the circuit even though the fluid is present. Except between 0 and 1, i think to allow player to detect those very small quantity that could cause problems of fluid (not) mixing. The decimal part is visible by the player when you hover your mouse around a pipe or a tank that has a very low quantity of fluid. "3.7" fluid can show up in the tooltip because the number is small and has few digits. 1405.3 will never show, instead it would be 1.4K
I don't care if integer or floating numbers: a full system is a full system, and if it doesn't fill up completely if it should, then there's something wrong. A tank patch that has a maximum of 24,999 each is...weird.
This look like a lot of operation when you factor in the number of pipes and pumps that is dealt with 60 times per second, i think for the game it's still better to do it as few calculation as possible by reducing the amount of things, including pumps for UPS purpose.
Just my words, so a system that tries permanently to balance directly under the highest level while it should have been full can only impact on UPS, not the other way round.
Also reducing the overkill in pumps for steam progressively, is still safer for power generation than adding them when there are power shortages to try and fix things on the fly whereas for crude oil the matter is less important.
A pump is not really a bulk consumer of electricity, so using them to ensure a constant flow with the fastest speed possible contributes much more to a stable & relieable power production. And if someone likes to avoid such inconsistencies at all, then there're solar panels & accumulators available.

mmmPI
Smart Inserter
Smart Inserter
Posts: 2739
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by mmmPI »

vangrunz wrote:
Thu Mar 23, 2023 5:12 pm
When you try to read fluid quantity with circuit network with precision, you may need to keep in mind that circuit numbers are only integers, but fluids are not. If you have a fluid quantity between 0 and 1, it will show up as 1 in the circuit network, but if you have 1.3 or 1.7 fluid, it will also show up as 1.
The decimal part is always hidden by the circuit even though the fluid is present. Except between 0 and 1, i think to allow player to detect those very small quantity that could cause problems of fluid (not) mixing. The decimal part is visible by the player when you hover your mouse around a pipe or a tank that has a very low quantity of fluid. "3.7" fluid can show up in the tooltip because the number is small and has few digits. 1405.3 will never show, instead it would be 1.4K
I don't care if integer or floating numbers: a full system is a full system, and if it doesn't fill up completely if it should, then there's something wrong. A tank patch that has a maximum of 24,999 each is...weird.
I agree it is "weird". There were arbitrary decisions taken, and there is technical/mathematical limitations. I think the fluid system is a very complicated piece of code that need to be somewhat realistic, AND fast AND reliable/not-buggy.
It is not "perfect", there are roundings and approximations which you may need to know about if you want to go around the weirdness/ make more sense of the weird situation to avoid them occuring in your designs or even exploit them !

Most players don't care about tanks not being at 25000 but 24999 i think, it only takes someone with the will to really be precise :) or the inaccuracies to cascade into a problem as when combining circuit detection of fluid level which is why i'm mentionning the floating thing. In case it can help predictions but i'm still advising to design as if it was not possible to precisely math things out, because it's deceptively difficult.

Just my words, so a system that tries permanently to balance directly under the highest level while it should have been full can only impact on UPS, not the other way round.
I agree with what you say alone. But in game it may be that the costly part for UPS is more iterating through the list of pieces rather than doing 1 or 2 additionnal calculation per piece. As such it is not so straightfoward to answer if adding pumps would help for UPS because it stabilize fluid level when full or because every frame the game has to now check each pump for energy, and extra iteration on a more populated list to do calculation for fluid flowing IN the pump and OUT the pump which may cancel the gain from stable fluid. It may depend on how often do you expect fluid to have a stable level in your game, like do you have tanks used as emergy reserve ? or are they only used in busy train station ? UPS optimization require testing particular design
Also reducing the overkill in pumps for steam progressively, is still safer for power generation than adding them when there are power shortages to try and fix things on the fly whereas for crude oil the matter is less important.
A pump is not really a bulk consumer of electricity, so using them to ensure a constant flow with the fastest speed possible contributes much more to a stable & relieable power production. And if someone likes to avoid such inconsistencies at all, then there're solar panels & accumulators available.
[/quote]

I agree here too, using solar pannel and accumulators i've seen quite often to power up the pumps inside a nuclear power plant, in a separate electric network, to make sure that a power shortage on the main grid wouldn't have as consequences a reduction in fluid flow in the power plant due to pumps being impacted.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2540
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by FuryoftheStars »

Re: UPS impact, as assemblers and other entities with fluid boxes never go to sleep (due to lack of events regarding fluids), this makes me think that pipes, tanks, etc also never go to sleep, even when completely full. Thus, I do not believe that getting a tank to 25k exactly vs 24999 will actually save you anything there. If anything, having so many pumps around will increase UPS impact as now you have more fluid based entities around that are never going to go to sleep.

Further, even if a tank, etc can go to sleep when at full level, this will only remain true so long as there is no consumption from the system. As soon as there is, you have fluid flow and thus the entities will be awake, transferring fluid. IE, a tank of steam feeding (for simplicity sake) one turbine running at max is always going to have an update cycle where 60 fluid is removed and 60 replaced. Keeping that tank at 25k at all times isn't going to do anything for UPS.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

FuryoftheStars wrote:
Thu Mar 23, 2023 7:23 pm
Re: UPS impact, as assemblers and other entities with fluid boxes never go to sleep (due to lack of events regarding fluids), this makes me think that pipes, tanks, etc also never go to sleep, even when completely full.
I see what you mean:
Having more entities to workaround a probable bug can, of course, affect UPS. BUT: They were not necessary if the system is working as expected. Since people report of megabases and do not mention UPS problems, I don't think that on modern computers this would have a negative impact. Instead, using fewest parts as possible in a fluid system decreases overall entities that need to be calculated.
Thus, I do not believe that getting a tank to 25k exactly vs 24999 will actually save you anything there. If anything, having so many pumps around will increase UPS impact as now you have more fluid based entities around that are never going to go to sleep.
Well, what's more consuming computation time? A fluid setup that is filled in a minute or a fluid setup that needs two and a half minutes? I only can conjecture how the code base works behind the lines, but the simplest thing would be a check, before doing anything else, if the storage tank is full and if there are other adjacent entities which could affect the level, and, if that's not the case, save the rest of the code, responsible for fluid level compensation.
Further, even if a tank, etc can go to sleep when at full level, this will only remain true so long as there is no consumption from the system. As soon as there is, you have fluid flow and thus the entities will be awake, transferring fluid. IE, a tank of steam feeding (for simplicity sake) one turbine running at max is always going to have an update cycle where 60 fluid is removed and 60 replaced. Keeping that tank at 25k at all times isn't going to do anything for UPS.
If there's no UPS impact, the better! Give me 25k instead of 24,999k! ;)

A few words to a Pressure System instead of Levelling:
Since a pipe without a pump can never fill a Steam Turbine line to their maximum of 200 Steam units because it only has an availability of 100, I suggest to cancel level calculation, instead add a pressure system. So, in theory, a pipe, having only an amount of 100 Steam, can fill a steam engine to its maximum, though, if its pressure is higher, which it receives from attached assemblers, oil refineries, chemical plants and pumps -- and even oil pumps.

A pressure system would be "tier independent", meaning that you define how much pressure a factory or a pump can deliver, and if it has a valve or not, to prevent flowbacks. A pipe and a tank instead are passive entities which calculate their pressure via incoming fluid units only.

So, we have a mix of units, eg. steam, and in the background a tag for how high the pressure is now (we could display that as well, of course, what's good for bug hunting in my own setup).

As an example, we have a pump with a pipe adjacent that supports a tank. The pump takes care that the pressure in the pipe is as high as steam comes in. Now, we have to convert 1 unit of a tank to 1 unit of a pipe: 1/250 -> 0.04:1. So a pipe that is filled with 1 unit of steam results the tank being filled by 250 units; 10 units result in 2,500 and a full pipe with 100 units fills the tank at 25k. The pressure is passed on every attached unit with a little loss, so if the input pressure is high enough, it could fill a good load of a tank patch completely. Just add flow speed, and you're done.

I hope I explained my idea good enough.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2540
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by FuryoftheStars »

vangrunz wrote:
Thu Mar 23, 2023 8:03 pm
FuryoftheStars wrote:
Thu Mar 23, 2023 7:23 pm
Re: UPS impact, as assemblers and other entities with fluid boxes never go to sleep (due to lack of events regarding fluids), this makes me think that pipes, tanks, etc also never go to sleep, even when completely full.
I see what you mean:
Having more entities to workaround a probable bug can, of course, affect UPS. BUT: They were not necessary if the system is working as expected. Since people report of megabases and do not mention UPS problems, I don't think that on modern computers this would have a negative impact. Instead, using fewest parts as possible in a fluid system decreases overall entities that need to be calculated.
Except you're putting pumps between each and every turbine, which is not needed, thus you are putting in extra entities. You are also putting a pump on the backside of every heat exchanger, which is also not needed. Tertius already demonstrated this earlier with an image.
vangrunz wrote:
Thu Mar 23, 2023 8:03 pm
Thus, I do not believe that getting a tank to 25k exactly vs 24999 will actually save you anything there. If anything, having so many pumps around will increase UPS impact as now you have more fluid based entities around that are never going to go to sleep.
Well, what's more consuming computation time? A fluid setup that is filled in a minute or a fluid setup that needs two and a half minutes? I only can conjecture how the code base works behind the lines, but the simplest thing would be a check, before doing anything else, if the storage tank is full and if there are other adjacent entities which could affect the level, and, if that's not the case, save the rest of the code, responsible for fluid level compensation.
If you're filling tanks that are just for show or something? The slower filling will use more CPU (barely: math).
But if you're filling tanks that are inline with consumers (and thus the consumers are also taking from the tanks): Neither. They're both going to be constantly performing all math checks:
FuryoftheStars wrote:
Thu Mar 23, 2023 7:23 pm
Further, even if a tank, etc can go to sleep when at full level, this will only remain true so long as there is no consumption from the system. As soon as there is, you have fluid flow and thus the entities will be awake, transferring fluid. IE, a tank of steam feeding (for simplicity sake) one turbine running at max is always going to have an update cycle where 60 fluid is removed and 60 replaced. Keeping that tank at 25k at all times isn't going to do anything for UPS.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

Tertius
Filter Inserter
Filter Inserter
Posts: 669
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by Tertius »

I'm sorry, but you don't need any pumps at all for a nuclear power plant.

I'm unable to find the original design or author on the web, but this is picture of a remake of a pumpless infinite tileable Nx2x6 power plant I found somewhere on Reddit or wherever. The first tile provides 11*160 = 1760 MW, every additional tile provides additional 12*160 = 1920 MW.
Although it isn't wasteless (it doesn't buffer steam, so it doesn't stop fueling the reactors if there is less than maximum load), it is one of the most beautiful designs I've ever seen due to its simplicity. In my memory it's even more simple than this picture, but unfortunately I didn't keep a blueprint or link.
Screenshot 2023-03-23 212331.jpg
Screenshot 2023-03-23 212331.jpg (1003.7 KiB) Viewed 1973 times

If you want to add steam buffers, you could add them at the (currently open) ends of the steam turbines, still without pumps. If there is less power demand than steam generation, the steam level will rise and the tanks will begin to fill up to some level depending on the whole plant load. If there is more power demand than steam generation (if you throttled fueling), the tanks will empty themselves into the steam turbines. All still without pumps.

However, the higher the general load, the lower the maximum level the tanks can be filled, because the higher the current tank level, the more pressure (or "height") of the steam level at the heat exchangers is required to fill more. At some point, some heat exchangers begin to stay full, because the steam cannot flow away and the output isn't maximum any more, so the tanks cannot be filled more. At that point, the plant begins to heat up to 1000°C without generating more steam pressure to fill the tanks more. This will of course also happen with pumps, only a bit later.

I didn't test if there is a sane threshold for the steam tanks in this pumpless design. At near full load, with 3 tanks at the end, each will fill up to about 11k. At low load, they fill up to 20-24k. It's not clear if a steam threshold of 10k can keep up power generation until the reactors are heated up again.

In a different nuclear power plant design, this time made by me, with pumps at the start of the steam engine lines, I was able to get sane thresholds for good buffering and wasteless operation, so it's of course possible. Only for this pumpless design it's not clear.

@vangrunz, you seem to be obsessed with filling storage tanks up to maximum. Let it go. It might look nice, however, it fits no practical purpose. If you're able to fill one tank half without effort, use 2 tanks to store 25k. You need only half the fluid level, which makes it much easier to achieve.
vangrunz wrote:
Thu Mar 23, 2023 8:03 pm
A few words to a Pressure System instead of Levelling:
Since a pipe without a pump can never fill a Steam Turbine line to their maximum of 200 Steam units because it only has an availability of 100, I suggest to cancel level calculation, instead add a pressure system. So, in theory, a pipe, having only an amount of 100 Steam, can fill a steam engine to its maximum, though, if its pressure is higher, which it receives from attached assemblers, oil refineries, chemical plants and pumps -- and even oil pumps.

A pressure system would be "tier independent", meaning that you define how much pressure a factory or a pump can deliver, and if it has a valve or not, to prevent flowbacks. A pipe and a tank instead are passive entities which calculate their pressure via incoming fluid units only.
The current fluid system isn't a toy. It isn't made up for the purpose of a game. It's a simulation of real world fluid mechanics. It uses the same scientific formula as water will flow in the real world, and water in the real world behaves the same as in Factorio. You can probably even create kind of waves within the pipe system of Factorio, however it's difficult to actually see them. What you probably can see is very low frequency waves swash back and forth from reservoir to reservoir connected by some very long pipe. You see the waves by observing oscillating fill states of the entities here and over there.

vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

FuryoftheStars wrote:
Thu Mar 23, 2023 8:20 pm
Except you're putting pumps between each and every turbine, which is not needed, thus you are putting in extra entities. You are also putting a pump on the backside of every heat exchanger, which is also not needed. Tertius already demonstrated this earlier with an image.
In my understanding, a Steam Turbine cannot output maximum load if its steam level is < 200 so you can reach it only with pumps currently.
If you're filling tanks that are just for show or something?
Like said Steam Turbines, I've implemented a fluid handling system that can match different load scenerios, including full load and null load. Also, completely filled Storage Tanks are a clean indicator that the fluid input is higher than its output consumption. The game is all about balancing input's & output's, so why should the fluid handling be an exception or should be treated less accurate? Everything else is a mood's decision.
Tertius wrote:
Thu Mar 23, 2023 8:35 pm
I'm sorry, but you don't need any pumps at all for a nuclear power plant.
Yes, you need in fact no pumps in such a setup if you never plan to run your power factory at 100%:
However, the higher the general load, the lower the maximum level the tanks can be filled, because the higher the current tank level, the more pressure (or "height") of the steam level at the heat exchangers is required to fill more. At some point, some heat exchangers begin to stay full, because the steam cannot flow away and the output isn't maximum any more, so the tanks cannot be filled more. At that point, the plant begins to heat up to 1000°C without generating more steam pressure to fill the tanks more. This will of course also happen with pumps, only a bit later.
Said level can never reach maximum in a passive system that permanently tries to equalize itself -- and generating backwater in certain setups.
I didn't test if there is a sane threshold for the steam tanks in this pumpless design. At near full load, with 3 tanks at the end, each will fill up to about 11k. At low load, they fill up to 20-24k. It's not clear if a steam threshold of 10k can keep up power generation until the reactors are heated up again.
That should be a calculation about time and consumption. However, if the reaction time of equalization is too low for the demand, then you can get turbines that stand still which results in a lack of electricity. A possible setup (as an idea of mine) is: turbine - tank - turbine - tank - ...
In a different nuclear power plant design, this time made by me, with pumps at the start of the steam engine lines, I was able to get sane thresholds for good buffering and wasteless operation, so it's of course possible. Only for this pumpless design it's not clear.
Even one pump at the start of the steam turbines (you've meant? not engines?) is much better than a completely passive system with pipes.
@vangrunz, you seem to be obsessed with filling storage tanks up to maximum. Let it go.
My point of view is purely technical, and my intention is to help improving Factorio's gameplay with suggestions.
It might look nice, however, it fits no practical purpose.
See above.
If you're able to fill one tank half without effort, use 2 tanks to store 25k. You need only half the fluid level, which makes it much easier to achieve.
It's nonsense to install double of a capacity and fill it only half while I can have a single capacity at full level with a pump.
The current fluid system isn't a toy. It isn't made up for the purpose of a game. It's a simulation of real world fluid mechanics.
That makes no sense, sorry. No offence.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2540
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by FuryoftheStars »

vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
FuryoftheStars wrote:
Thu Mar 23, 2023 8:20 pm
Except you're putting pumps between each and every turbine, which is not needed, thus you are putting in extra entities. You are also putting a pump on the backside of every heat exchanger, which is also not needed. Tertius already demonstrated this earlier with an image.
In my understanding, a Steam Turbine cannot output maximum load if its steam level is < 200 so you can reach it only with pumps currently.
This is incorrect.
vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
My point of view is purely technical, and my intention is to help improving Factorio's gameplay with suggestions.
It seems as though your suggestions are coming from a flawed understanding of the game mechanics.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

FuryoftheStars wrote:
Thu Mar 23, 2023 11:08 pm
vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
In my understanding, a Steam Turbine cannot output maximum load if its steam level is < 200 so you can reach it only with pumps currently.
This is incorrect.
How much steam level do you need to ensure a maximum consumption of 60/s?
vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
My point of view is purely technical, and my intention is to help improving Factorio's gameplay with suggestions.
It seems as though your suggestions are coming from a flawed understanding of the game mechanics.
This is incorrect.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2540
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by FuryoftheStars »

vangrunz wrote:
Thu Mar 23, 2023 11:27 pm
FuryoftheStars wrote:
Thu Mar 23, 2023 11:08 pm
vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
In my understanding, a Steam Turbine cannot output maximum load if its steam level is < 200 so you can reach it only with pumps currently.
This is incorrect.
How much steam level do you need to ensure a maximum consumption of 60/s?
It needs to have an input flow rate of 60/s to maintain a maximum consumption of 60/s. This means that during the fluid level updates, it will need to have a net gain of 60 fluid move into the fluid-box by the end of the update, then the turbine will consume it in the same tick, causing you to see an end level of 0. That's all that is required.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

mrvn
Smart Inserter
Smart Inserter
Posts: 5704
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by mrvn »

Tertius wrote:
Thu Mar 23, 2023 8:35 pm
I'm sorry, but you don't need any pumps at all for a nuclear power plant.

...
I didn't test if there is a sane threshold for the steam tanks in this pumpless design. At near full load, with 3 tanks at the end, each will fill up to about 11k. At low load, they fill up to 20-24k. It's not clear if a steam threshold of 10k can keep up power generation until the reactors are heated up again.
It's good practice to power the nuclear reactor itself (inserters, control logic, any pumps) with a separate power supply. Possibly solar cells + accumulator.

But you can also just add one extra heat exchanger at the end of a row. Connect that to a tank and 2 extra turbines. One to generate internal power and one connected to external power. You then have a steam tank to measure consumption. As soon as it drops below 49990 throw in some fuel.

vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

FuryoftheStars wrote:
Thu Mar 23, 2023 11:37 pm
vangrunz wrote:How much steam level do you need to ensure a maximum consumption of 60/s?
It needs to have an input flow rate of 60/s to maintain a maximum consumption of 60/s. This means that during the fluid level updates, it will need to have a net gain of 60 fluid move into the fluid-box by the end of the update, then the turbine will consume it in the same tick, causing you to see an end level of 0. That's all that is required.
That was not my question:

2023-03-24_004253_2.jpg
2023-03-24_004253_2.jpg (848.01 KiB) Viewed 1931 times

It's logical that you need an input of 60/s to be able to consume 60/s. We're talking about Steam Level. If that's up to the max, there isn't a problem to provide constant flow needed (or we'll see if it drains that there's something wrong).

mrvn
Smart Inserter
Smart Inserter
Posts: 5704
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by mrvn »

vangrunz wrote:
Thu Mar 23, 2023 11:27 pm
FuryoftheStars wrote:
Thu Mar 23, 2023 11:08 pm
vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
In my understanding, a Steam Turbine cannot output maximum load if its steam level is < 200 so you can reach it only with pumps currently.
This is incorrect.
How much steam level do you need to ensure a maximum consumption of 60/s?
You need 60 steam, which is basically a level of 0. Hover over a steam turbine. Only if the consumption is below 60/s AND the steam level is 0 then you have a problem. As long as consumption is 60/s the level is basically irrelevant.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2540
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by FuryoftheStars »

vangrunz wrote:
Thu Mar 23, 2023 11:47 pm
FuryoftheStars wrote:
Thu Mar 23, 2023 11:37 pm
vangrunz wrote:How much steam level do you need to ensure a maximum consumption of 60/s?
It needs to have an input flow rate of 60/s to maintain a maximum consumption of 60/s. This means that during the fluid level updates, it will need to have a net gain of 60 fluid move into the fluid-box by the end of the update, then the turbine will consume it in the same tick, causing you to see an end level of 0. That's all that is required.
That was not my question:


2023-03-24_004253_2.jpg


It's logical that you need an input of 60/s to be able to consume 60/s. We're talking about Steam Level. If that's up to the max, there isn't a problem to provide constant flow needed (or we'll see if it drains that there's something wrong).
I know what your question was. You're not understanding the answer.

Edit to include some images. I used steam engines and a boiler because they have a perfect 2 engines to 1 boiler ratio, thus is easier to show and demonstrate. But the mechanics behind it is the same. You can let this run indefinitely and provided they stay at max load, the steam level will never raise (or decrease) and you can clearly see from the image that they are consuming 30/s each and are producing at max capacity.
Steam Engine 1.jpg
Steam Engine 1.jpg (249.44 KiB) Viewed 1916 times
Steam Engine 2.jpg
Steam Engine 2.jpg (249.55 KiB) Viewed 1916 times
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

robot256
Filter Inserter
Filter Inserter
Posts: 596
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by robot256 »

vangrunz wrote:
Thu Mar 23, 2023 11:47 pm

It's logical that you need an input of 60/s to be able to consume 60/s. We're talking about Steam Level. If that's up to the max, there isn't a problem to provide constant flow needed (or we'll see if it drains that there's something wrong).
The fluid level in a flowing pipe is a stable equilibrium that the player doesn't have to worry about. It's true that there is a minimum fluid level required before 60/s outflow can be obtained (it's small, but for the sake of argument consider it to be nonzero). Now assume we start with 0 fluid and potential demand of 60/s at the outlet. When we start supplying 60/s at the input, it can't immediately flow out because the level is 0, so it starts to accumulate in the pipe. As the level increases, the outflow increases too, and eventually it reaches equilibrium where 60/s comes in, 60/s goes out, and the level is just enough to support that.

However, the level is only at the minimum because we started at 0 and equal supply and demand. As soon as demand reduces, the excess inflow will increase the level in the pipe. When demand starts again, the pipe is refilled as fast as it is emptied, and the level will not change very much no matter how much flow is present.

Tertius
Filter Inserter
Filter Inserter
Posts: 669
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by Tertius »

vangrunz wrote:
Thu Mar 23, 2023 10:51 pm
Tertius wrote:
Thu Mar 23, 2023 8:35 pm
I'm sorry, but you don't need any pumps at all for a nuclear power plant.
Yes, you need in fact no pumps in such a setup if you never plan to run your power factory at 100%:
The pumpless power plant I showed above actually runs at 100%. 1760 MW. That works. Here is the blueprint. The one test consumer pulls 29333333 joule per tick, which is 60 * 29333333 = 1760000000 Joule/s = 1760 MW.

You need to put it over water. The required water holes for the offshore pumps are surrounded with landfill. Either create corresponding holes in a lab environment or put the hole outline into a lake and build landfill where the items are supposed to go or use some waterfill mod to directly create water holes on solid ground.

The plant itself will run on any ordinary map, however the supply surroundings to provide fuel and the test consumer are items from the map editor, so the most easy thing is to use it from sandbox+everything researched+cheat mode+map editor (with /editor).


Screenshot 2023-03-24 030526.png
Screenshot 2023-03-24 030526.png (112.99 KiB) Viewed 1899 times



It's tileable as I said. 3 Tiles, producing theoretically and actually 5.6 GW, look like this:
Screenshot 2023-03-24 031714.png
Screenshot 2023-03-24 031714.png (4.5 MiB) Viewed 1899 times
It's heating up from zero to its maximum of 5.6 GW in about 8 minutes:
Screenshot 2023-03-24 031744.png
Screenshot 2023-03-24 031744.png (139.98 KiB) Viewed 1899 times
No pumps. Not a single one (except the obligatory offshore pumps).


If you run this example, you might find a few heat exchangers not outputting full 103/s and a few steam turbines not consuming full 60/s. This is because theoretically the long turbine lines need 200 MW / 5.82 MW = 34.364 turbines, so I had to round up to 35. And the short lines need 160 MW/5.82 MW = 27.49 turbines, so I use 28.
Also I supplied 192 heat exchangers, that's actually only required for the middle tile. The 2 outer tiles lack 2*40=80 MW neighbor bonus each, together 160 MW, so there are 16 heat exchangers too many. They're just included to have the same blueprint for the inner and outer tiles for simplicity.

All this is only an example. For actual use in an actual factory you need to arrange an independent secondary solar powered power grid to supply the inserters and roboports for initial startup and protection against brownout. It's also not perfect for build from roboports - the turbine lines cannot have roboport coverage, so they can only be built from a personal roboport.

vangrunz
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue Dec 26, 2017 1:26 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by vangrunz »

Thanks for the explanations and the blueprint, that's an interesting one. I've noticed that the heat exchanger pipelines are divided, so it isn't possible to support all turbines with a single line?

User avatar
disentius
Filter Inserter
Filter Inserter
Posts: 694
Joined: Fri May 12, 2017 3:17 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by disentius »

Here is an in depth explanation of the fluid system (this is how it still works.)
https://web.archive.org/web/20171227174 ... 18&t=19851

User avatar
disentius
Filter Inserter
Filter Inserter
Posts: 694
Joined: Fri May 12, 2017 3:17 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by disentius »

20 turbines produce 2060 fluid/s to sustain that flow you need to limit your pipe segment count to 3. this doesn't work with a line of 20 HE's.
the throughput table and some other details are here:
https://wiki.factorio.com/Fluid_system

Tertius
Filter Inserter
Filter Inserter
Posts: 669
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Fluid system: only 1st Storage Tank is filled to 25k and only with a pump

Post by Tertius »

vangrunz wrote:
Fri Mar 24, 2023 3:31 am
Thanks for the explanations and the blueprint, that's an interesting one. I've noticed that the heat exchanger pipelines are divided, so it isn't possible to support all turbines with a single line?
If you create longer heat exchanger lines, one limiting factor is water supply. One offshore pump gets up to 1200/s, which supports 11.65 heat exchangers. Trying to funnel the output of more than 1 offshore pump into one line is difficult. The given length of 10 exchangers is also limited by the length of the underground pipe. You will notice the last 3 heat exchangers have their own steam drain. The first 7, then the next 3. Longer than 7 is only possible by using pumps to upkeep throughput. If you do use pumps as I did in some previous post in this thread, there is another constraint: If you create a nice solid tiled field of heat exchangers as in that 5.6 GW example, there is no space left to supply electric power to the pumps in the center of such a field.
Finally, a heat exchanger line has a length limit due to the heat not being able to get that far. The limit is reached, if the reactor is heated up to 1000°C and the last heat exchanger in the line doesn't get enough heat to get to 500°C. Possible max length is discussed in this wiki article. However, it's not feasible to let the reactors heat up that much, because this limits the possibility to use steam buffers and circuit-controlled fuel insertion.

I encourage you to play with that example design, for example how it will change behavior if you insert pipes, pumps and tanks in the middle or at the end. Map editor mode recommended and its tick acceleration. It could be a challenge to add steam buffers and circuit-controlled fuel insertion while at the same time keeping it tileable and not increasing its size too much. There are more compact setups possible, 2/3 of the width of the example, however only with the use of a few pumps.

Post Reply

Return to “Gameplay Help”