Sign in to follow this  

Pump destroys 1.06% of Water

  • Pending

It's a commonly encountered bug that pumps, pipes, and liquid vents destroy liquids. For example, a loop consisting of: pump1->pipe1->vent1->back to pump1 will slowly destroy the entire contents of the tank. I did some testing to determine whether this was caused by the pump, the pipe, or the liquid vent, or some combination of both. I believe that the pump that is destroying 1.06% of each water tile.

My test methodology is shown in the attached picture. One tile of water is 1000 kg. Each packet of water that flows through a pipe is 10kg, resulting in 100 packets per tile of water. Using the debug tools, I created a pump with a 100-tile long pipe and an output tank. To test the liquid vent, I filled the pipe with 100 packets of water (approximately 1000 kg, or 1 tile), and removed any extra water from the input using the debug tools (The pump and vent must be connected for liquid to flow in the pipe. I measured the volume of water dumped in the output tank, which was 6 squares of 165.5-167 kg each, or approximately 1000 kg, which is about what should be expected.

Next, I destroyed the entire system (to delete any water stored by the pump or vent). I put 1 tile of water (1000 kg) in the pump, and disconnected the outlet when all of the water had been consumed (see picture). While 1000 kg of water was available, the pump left 62.2 grams (intaking 999.9378 kg of water). The pump put 101 packets of water into the pipe. Each of the packets were 10 kg, except for 5 packets, which were 5 kg (#51), 7.5 kg (#63), 7.5 kg (#73), 7.5 kg(#83), and 1.825 kg (#101). Thus, for reasons unknown, a total of 10.675 kg of 1000 kg (1.0675%) of the water tile was missing. Noticeably, three of the five occurred every 10 packets (#63, #73, and #83). It would appear that for some reason, the pump does not always grab all of the available water, or destroys some of the available water.

I tested the pipes for leakage using a liquid filter and series of pipes that looped contaminated and clean water in a closed-loop without a pump or vents. It did not appear that fluid was created or destroyed.

I hope this testing is helpful in narrowing down the issue causing this.


 water destroy.jpg


The save file is attached.



[Edited to correct math -> 10.675/1000 = 1.0675%]

Steps to Reproduce
Create a pump connected to a 100-tile long segment of piping and a liquid vent. Provide 1 tile of water (1000 kg) to the pump. The amount of water the pump inserts into the pipe is demonstrably less than the water removed from the environment by the pump.
Sign in to follow this  

User Feedback

Repeated your test with 4000 kg of water after removing water spread and found 4000.4 kg of water at the end
(1000 + 1000 + 983 + 983 + 34.4).20170308161236_1.jpg

Share this comment

Link to comment
Share on other sites

I tried it too got 2x1000kg and 2x721.2kg and leftover 2813.5g. When you got more then you had it also not a good thing.

Tested something similar, but with short pipe and valve(5kg) in middle. I had 4x1000kg but in output got 2x1000kg and 2x225.7kg on other side leftover was 38.9g. Then i pumped it all back and got 783.4kg and 783.3kg.
That bottle in screenshot dropped from destroyed pipe or liquid vent.


Share this comment

Link to comment
Share on other sites
13 hours ago, alex707 said:

10kg of 1000kg is 1%.

Dang, and I was trying to be so careful with my math.

But from the testing done by @Risu and @supo92, it does appear that there is an inconsistency in the flow calculation.

Share this comment

Link to comment
Share on other sites

Guys this isn't a bug, it's a design flaw.

It's caused by underflow in floating point arithmetic and can't be fixed unless they make some really big fundamental changes.

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