[0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

This subforum contains all the issues which we already resolved.
malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

[0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

I noted some odd pump flow behavior and created the best-case scenario for max flow (full tank to empty tank):
Image

Additional observations:
- Wagon transfers are similar to the above:
-- From wagon>pump>tank, 6000/s steady, similar to what is indicated above.
-- From tank>pump>wagon, exhibits a toggling behavior, alternating between 12000 and some low value every other tick, netting close to 6000/s.
- I've also confirmed this by supplying a power plant with the above pump setup and getting 582MW (calculates out to 6001.8/s).

Back around 0.15, I was fairly certain I achieved full 12000/s from a pump while developing/testing my manifolds mod (1.1GW from the power plant using the same setup that now caps at 582MW and 6000/s).

Given flow mechanics, the max fluid possible at the pump's intake fluidbox is 1/2 of its total volume. Perhaps the pump code has been tweaked since 0.15 and any special case/coding for max flow was lost along the way). Given the current mechanics, the only way to achieve 12000/s with the pump is if its input fluidbox is set to 400, netting 200/tick at full flow.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

Rseding91
Factorio Staff
Factorio Staff
Posts: 14168
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by Rseding91 »

Thanks for the report however that's correct. The number is it's maximum. If it can ever reach that maximum is a completely different thing; since it's now shown in the tooltip people are reading it and generating bug reports like this so I'm in favor of just not showing it.
If you want to get ahold of me I'm almost always on Discord.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 3:35 am
Thanks for the report however that's correct. The number is it's maximum. If it can ever reach that maximum is a completely different thing; since it's now shown in the tooltip people are reading it and generating bug reports like this so I'm in favor of just not showing it.
I am measuring separately from the tooltip indication (via power generation, etc), and still only getting 6000/s. The 12000/s rating was based on tank/wagon to wagon/tank, and that's not happening currently.

Offshore Pump functions at its rated flow when not restricted by piping. So should the regular pump. Pump should be de-rated to 6000/s or fluidbox should be doubled to allow for a best-case possibility of 12000/s.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

I reverted to 0.15.18 and confirmed that a single pump could supply power generation exceeding 1GW (~12000/s).
I reverted to 0.17.2 and confirmed that a single pump could supply power generation of only 582MW (6001/s).

On 0.15.18, pump fluid = 200 (100%) at max flow.
On 0.17.2, pump fluid = 100 (50%) at max flow. This is tied to the cause for the flow to cut in half.

0.15.0 patch notes stated: 'Increased the pump pumping speed 4 times.' but at present, this is only '2 times'.

I've confirmed this was a regression that occurred between 0.15.18 and 0.17.2. Would you like me to narrow this down further?
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 3:35 am
so I'm in favor of just not showing it.
Please leave the indication present. It is welcome and accurate (minus the part where max flow is half of expected).
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

Rseding91
Factorio Staff
Factorio Staff
Posts: 14168
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by Rseding91 »

As far as I understand it the "max flow" is correct. Just that's: from source into pump. Then the standard flow logic says "max half of me flows into you" and so you get capped at half the flow rate of the pump for the exiting fluid.
If you want to get ahold of me I'm almost always on Discord.


User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2946
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by BlueTemplar »

To "narrow it down", see :
[0.17.7] Pumps substantially slower than 0.16.x, but no changelog entry -- intentional or bug?
Bilka wrote:
Tue Apr 09, 2019 10:20 am
So what exactly is the current speed of the pump?
Kingdud wrote:
Tue Apr 09, 2019 11:54 am
The upper bound seems to be 7133 units/s. It's not consistent, the pumps can easily end up deliver less than that (even between a full tank and an empty tank). If you download 'New Oil Layout - bugreport' from viewtopic.php?f=7&t=69045 and play with it, you can replace the fluid void with a pump then a fluid void and see how it changes the output. The two pumps going into the central tank will work at ~5500 unit/s, but if you place a pump extracting from the central tank then going into the fluid void, you'll see ~7133 unit/s on that single pump's throughput.
Ultros wrote:
Tue Apr 09, 2019 12:33 pm
I tested this based on a blueprint of a pump-bus nuclear reactor design from 0.16 (which used to do the full 12k water/s). The sum of the steam output after reaching equilibrium is around 6.8k per second going by the sum of the steam consumption from the turbines.
BobDiggity (mod-scenario-pack)

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 10:01 am
As far as I understand it the "max flow" is correct. Just that's: from source into pump. Then the standard flow logic says "max half of me flows into you" and so you get capped at half the flow rate of the pump for the exiting fluid.
Except that is not how it worked when the pump speed was increased to 12000/s back in 0.15. I’ve detailed this above, even rolling back to confirm that I wasn’t crazy :).
boskid wrote:
Wed Jan 29, 2020 10:04 am
Ref viewtopic.php?p=473205#p473205
The description at that link only further confirms that a bug is present:
Energy when pumping fluid to fluid wagon is not easy since there are in fact 2 pump operations: first is to take as much fluid from FB connected to pump input
The pump is no longer ‘taking as much fluid’ as it can from the source. It only takes 100 where on 0.15 it took 200, so it now can only pump 100/tick (6000/s), where it used to pump 200/tick (12000/s).

It’s fine if you guys don’t want to fix it, but if you don’t reduce the pumps rating to match it’s current maximum then you are just going to keep getting this report as each new person notes the disparity.

I do maintain that simply doubling the pump fluid box to 400 should restore the initially specified flow rate without the need to code any special case for the pump.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2946
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by BlueTemplar »

Except they've already stated that 12kL/s is waaaay too fast and that electric pumps would be nerfed in the future.
BobDiggity (mod-scenario-pack)

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

BlueTemplar wrote:
Wed Jan 29, 2020 2:57 pm
Except they've already stated that 12kL/s is waaaay too fast and that electric pumps would be nerfed in the future.
And that’s fine too. If anything the behavior change in 0.16 was an unintentional nerf, but if the devs are happy with that result then the rating should reflect the actual maximum of the pump (6000/s).
Last edited by malventano on Wed Jan 29, 2020 4:07 pm, edited 1 time in total.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2946
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by BlueTemplar »

Write it as 6000+/s ? :D
BobDiggity (mod-scenario-pack)

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

BlueTemplar wrote:
Wed Jan 29, 2020 4:05 pm
Write it as 6000+/s ? :D
Due to the current behavior, it is exactly 6000/s. The input fluid box can’t get more than half of its volume from its connection on a single tick (this behaved differently on 0.15, where the pump fluid box could draw from its connection to completely fill on each tick). This means the pump can only ever receive 200/2 on each tick, meaning max flow is 200/2*60=6000/s.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2946
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by BlueTemplar »

Are you absolutely certain that the discrepancies observed in 0.17.7 aren't any more in 0.18.2 ? (Or were faulty observations in the first place...)
BobDiggity (mod-scenario-pack)

Rseding91
Factorio Staff
Factorio Staff
Posts: 14168
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by Rseding91 »

malventano wrote:
Wed Jan 29, 2020 2:51 pm
Except that is not how it worked when the pump speed was increased to 12000/s back in 0.15. I’ve detailed this above, even rolling back to confirm that I wasn’t crazy :).
I know, I'm not describing how it worked in 0.15. I'm describing how it works now. The entire fluid logic system was changed in 0.17 when fluids got anti-fluid-mixing built into them and the pump no longer calls update() on the fluidbox(s) it owns. The fluid manager now does it. Before, the pump would actually call update() on the fluidboxes twice during its update which would cause it to flow out everything it could before pumping more into it.
If you want to get ahold of me I'm almost always on Discord.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 4:33 pm
malventano wrote:
Wed Jan 29, 2020 2:51 pm
Except that is not how it worked when the pump speed was increased to 12000/s back in 0.15. I’ve detailed this above, even rolling back to confirm that I wasn’t crazy :).
I know, I'm not describing how it worked in 0.15. I'm describing how it works now. The entire fluid logic system was changed in 0.17 when fluids got anti-fluid-mixing built into them and the pump no longer calls update() on the fluidbox(s) it owns. The fluid manager now does it. Before, the pump would actually call update() on the fluidboxes twice during its update which would cause it to flow out everything it could before pumping more into it.
I don't disagree with any of that, but given the current state of things, 12000/s is no longer the correct rating for the pump. It only does 6000/s. Why should the pump be the only thing in the game that has a rating that is 2x of what is actually possible? Here's the before and after:
Image

If you devs want 12000/s, just fix (double) the fluidbox. If you're happy with 6000/s, just fix the rating. I'm just trying to get resolution either way so that we can update the Factorio Cheat Sheet accordingly, because that doc states "Pumps and Storage Tanks have a maximum throughput of 12,000 fluids/s.", which is no longer the case. The flow rate chart would also need to be updated.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

Rseding91
Factorio Staff
Factorio Staff
Posts: 14168
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by Rseding91 »

If you put a pump next to a storage tank it will pull 12,000 in the first second - up until its internal fluidbox is > half full. It's max speed *is* 12,000/second. There's nothing wrong with that; the issue is the rest of how fluid flows. The pump can't pump at its max speed because fluid isn't flowing out of it fast enough.
If you want to get ahold of me I'm almost always on Discord.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 5:43 pm
If you put a pump next to a storage tank it will pull 12,000 in the first second - up until its internal fluidbox is > half full. It's max speed *is* 12,000/second. There's nothing wrong with that; the issue is the rest of how fluid flows. The pump can't pump at its max speed because fluid isn't flowing out of it fast enough.
Respectfully, you are incorrect. Please believe me when I say that I've spent several hours trying to get the pump to move 12,000/s. It just doesn't happen anymore, not since ~0.17.2. Put a pump between a full and an empty tank and slow the game to 0.1. You will observe that the fastest possible flow (at the very beginning of the transfer, where you are transferring from a full to an empty tank), that the maximum rate of fill is 100/tick. Not 200/tick. It does not move 12,000 in the first second as you claim.

If you want to get really into the weeds with the fluidbox, since it is sized at 200, and we know that a fluidbox can only change by half in a given tick, there is no single tick where that fluidbox can fill at a rate greater than 100/tick. The only way it will ever see a rate of 12,000/s is if the fluidbox is double the current size.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

malventano
Filter Inserter
Filter Inserter
Posts: 342
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by malventano »

Rseding91 wrote:
Wed Jan 29, 2020 5:43 pm
If you put a pump next to a storage tank it will pull 12,000 in the first second
Here is the first second of your tank to tank transfer, recorded and plotted:
Image

At no point in the first second does flow rate exceed 6,000/s. Not even for a single tick of it. Due to the (expected) falloff as the tank fills, the total amount transferred after 60 ticks is 5,769. Again, if your intention is for the pump flow to match its rating, you will need to double the fluidbox to effectively match the behavior specified back when the pump speed was changed to 12,000/s. Alternatively, if you are ok with 6,000/s, then the rating needs to be corrected.
Last edited by malventano on Wed Jan 29, 2020 8:37 pm, edited 1 time in total.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.18.2] Pump maximum flow is 6000/s (rated 12000/s)

Post by TruePikachu »

Two notes:
  • The statement that a fluidbox can only change by half per tick is incorrect. I don't have the source code for my accurate fluid sim in front of me right now (it's on another machine), but IIRC the formula used is, per tick, 0.4 times the pressure difference plus either 0.59 times the total flow on the previous tick or 1/10 the size of the destination source fluidbox, whichever is less. Under vanilla, a full pump with height=2 base_area=1 base_level=0 connected into let's say an empty boiler with height=2 base_area=1 base_level=-1 has a pressure difference of 3 (source pressure is 2, destination pressure is -1) which would transfer somewhere from 1.2 to 1.318 1.4 internal fluid units per tick (multiply by 6000 for the number of in-game units per second).
  • The rate was set "crazy high so they basically never bottleneck or make additional problems", and will be changed to something reasonable once the fluid rework has been finished
Last edited by TruePikachu on Wed Jan 29, 2020 10:31 pm, edited 2 times in total.

Post Reply

Return to “Resolved Problems and Bugs”