Jump to content

Liquid lost/not pumped correctly when small amount is going to another pipe


Ildefonse
  • Branch: Live Branch Version: Steam Pending

Consider the following setup, focus on the insulated (orange) pipe:

image.thumb.png.4c4101d8162413da6125128aad850492.png

I have the pump pumping at full capacity 10kg/s, the liquid is then passed through a filter and splits in two lines, one going left (to oxygen generation) and one going right (to a liquid vent). There are no blockages.

The oxygen generators only use a small amount of water, far less than 10kg/s, and you can see this reflected by the animated smaller "dots" of water, in the left hand pipe. 

However, a side effect appears to be that I lose half the liquid output in the right hand side pipe, as you can see there are only 10kg/s dots of water every other pipe tile. So even though the left hand branch uses only say 1kg/s, the remaining 9kg/s is not pumped into the right hand pipe.

I assume this has to do with how a liquid/air is modelled, e.g. individual blobs that split 50% left, 50% right when at a junction. However, this is unrealistic and should probably be modelled differently.

Especially when one of the pipes is blocked, or has a smaller output (e.g. due to less consumption or due to a liquid valve), the split should be according to capacity. If 10kg/s is coming in, and the left hand pipe can only take 1kg/s, then 9kg/s should flow into the other pipe, so that you don't lose the 4kg/s of pressure in the pipes.


Steps to Reproduce
Construct T junction, have one end consume very little like 1kg/s, and the other end be free flowing



User Feedback


To clarify, I don't think the liquid is actually lost, it's just the pressure that gets lost, because the pump stops pumping every second or so to allow for the lesser usage in the left hand pipe.

The only solution I see currently in this situation is to have two pumps?

Share this comment


Link to comment
Share on other sites

Even two pumps would not fix this problem as having multiple outlet paths means that each split creates a choice resulting in a "slow down" as each packet goes left or right, when a side is completely blocked the pump normally starts putting everything through the remaining path, however when one side is partially used then on its tick it gets its remainder and on the other tick whats left of the 10k block (9k and some change) heads on to the new destination, iirc

Share this comment


Link to comment
Share on other sites

No it would, I would just make two pumps with unconnected lines. It's a brute force fix, but the only one that I see right now that would ensure 10kg/s going up to the right.

If the remainder (9kg) would be pushed into the right side on the same tick that wouldn't be a problem, but the fact that it's delayed by one tick and added to the next batch of 10kg and them limited to 10kg, causes the overall pressure in the right hand pipe to be 5kg/s instead of 9.5kg/s ((10 + 9) / 2), because you get these empty spaces in between each packet.

A better approach, if working with packets, would be to split the packet at the junction and make it go simultaneously left and right. All things being equal, 10kg that arrives at a junction would be split into 5kg for each side. But if the left is blocked and only 1kg/s can pass, then the remainder is passed on with the 5kg that goes to the right.

The pump would then continuously be pumping 10kg/s, with the left pipe getting 1kg in each tick and the right pipe 9kg in each tick.

Currently the left pipe gets 1kg per tick and the right pipe on average 5kg, causing the pump's capacity to be diminished.

Edited by Ildefonse
  • Sad 1

Share this comment


Link to comment
Share on other sites

It took me a little while to come up with a solution but I have it now, image.thumb.png.9df970dadcb375c7688bc25f8ff348c9.png

anywhere there is gonna be a backup or build up in the line but you want flow past stick a valve, you can even leave it wide open and just let the buildings keep it full.  Its funny but I use valves for so many things and have a bunch of semi closed loops running now thanks to saturnis that its just unreal XD

Edited by Kabrute

Share this comment


Link to comment
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...