Jump to content

Water plumbing heat experiment


Recommended Posts

Edit: Finished compact and efficient water boiler design with max throughput of 5000 g/s (including savegame) in this post!

Alternatively, Final Boiler Fantasy V can do about 3750 g/s but produces very cold water!

While working on a polluted water boiler design in debug mode, I ran into a bit of a snag. (well, several but I'll focus on the relevant one here which is heat) It seems like the machine as a whole is not heat neutral but actually destroys heat on a massive scale, as the throughput rate is much less than expected and it requires painting hot clean water over the output tank regularly to prevent it from freezing over. The biggest suspect here is my countercurrent flow heat exchanger, as it stays suspiciously close to the temperature of the input water even after a long time of running.

I remember some old threads mentioning bugs in heat conservation when cold water drops onto hot water from high above, but this wasn't quite the same situation. I decided to conduct a little test to see what happens when you pump a small amount of cold water into a large volume of hot water

Here is the test setup:

heat-experiment-1.thumb.jpg.6e1020eb42cadbaa051f3d5071021fa1.jpg

There's 5 chambers of polluted water, all at 380 K temperature. The first 1-block chamber has 780 kg, the other chambers have 800 kg in the bottom tile and 10g in the top tiles, an insignificant amount compared to the bottom tile.

To conduct the test, I painted in 20 kg of water at 280 K into each of the pump chambers. Based on the relative masses, a result temperature of about 377.5 K (104.4 C) would be expected.

heat-experiment-2.thumb.jpg.1ef3e9b16a84c18d85c9ded27b0d4ac0.jpg

In the first two chambers where the vent drops the water straight into the big volume, the final temperature is 104.4 C as expected.

The other experiments show a staggering amount of heat lost, with the 1-block long channel losing the most. The longer the channel, the lower the temperature loss. This is the same sort of channel I was using in my heat exchanger, which confirms my suspicions about the heat exchanger I was using.

So the way to avoid heat destruction is to put the liquid vent over the deepest part of the pool, but I wonder what exactly the heat bug here is... Would anyone who likes to dive into the code be able to shed some light on this?

Link to comment
Share on other sites

I've done the same test as above, but this time with the temperatures reversed. The water in the test pools is now 280 K:

heat-experiment-3.thumb.jpg.181f9b824eaf6f3293e837ed8dd2034e.jpg

There's one extra experiment now, a vertical drop after the 1 block channel. In the original setup (dropping cold onto hot) the vertical drop had an end temperature of about 14 C, so in between the 2-long and 4-long channel experiments.

For the reverse experiment, 20 kg of 380 K polluted water was painted into all the pumps. Based on the relative masses, an end temperature of 9.3 C is expected.

heat-experiment-4.thumb.jpg.487eeb16450bbe8dbbd1e86b4fd7092f.jpg

I was half expecting most of the experiments to be heated up like crazy, but instead most of the tests give the expected result, when allowing for slight inaccuracy due to the wolframite liquid vent and 10g of PWater in the tiles. The vertical drop test left some heat behind in the Wolframite liquid vent and 33g of polluted water at 100 C, which explains the 9.1 C there.

The second test, with the 2 high pool and no channel surprised me though. Again heat is lost here, even though this time we were dropping hot water on cold water.

Link to comment
Share on other sites

Firstly, I have no idea what's going on here, but in the topic of heat loss: 

I recently excavated a rather unpleasantly situated steam geyser - it was at the bottom of a swamp biome and on top of a cold biome all butted up against nutronium.

It was a huge mess when I got to it - ultimately it had broken through and flooded the child biome to the point where swamp water had flooded in as well. That's when I noticed clean water floats on top of polluted.

About the dripping:

I set things up with the geyser enclosed and a mesh tile as an overflow. The nearly boiling fresh water overflows into an area I have set up to chill down water in the cool biome. It's a vertical setup. This dripping water goes from nearly 190f to 72f as soon as it hits the cold polluted water mix ... it flows across a few barriers and back into polluted water where it flash freezes on the surface and forms ice balls...I pump geyser water out of the resevoir, so this isn't always going on. 

These get swept up and taken to an underwater locker I have in the central part of my base - this water stays around 44f. It only took about 6000kg of ice to drop the temperature from 72f

My advice would be to copy your designs into the different biomes and see if the different biome locations are dictating the temperatures of the water drops. Sort of like a biome default temperature. This doesn't exactly solve the volume related problem but I've seen water look much bigger than it actually is in enclosed spaces.

Link to comment
Share on other sites

Hmm... so basically, the heat transfer bug also differs in situations of hot into cold and cold into hot...

I was a bit surprised to see, but not unexpected, that direct vertical drip of cold into hot would yield no heat loss.  This is the most common setup for collect large pool of liquid, and if any thing funny were to happen to this, it'd be widely noted by now.

However, the direct drop of hot into cold causing heat loss was really unexpected.  This difference could very well help us figuring out this bug.

Link to comment
Share on other sites

2 minutes ago, Reaniel said:

Hmm... so basically, the heat transfer bug also differs in situations of hot into cold and cold into hot...

I was a bit surprised to see, but not unexpected, that direct vertical drip of cold into hot would yield no heat loss.  This is the most common setup for collect large pool of liquid, and if any thing funny were to happen to this, it'd be widely noted by now.

However, the direct drop of hot into cold causing heat loss was really unexpected.  This difference could very well help us figuring out this bug.

I'm not in a position to upload any pictures at the moment but i would be happy to later on, I need to sort out a few things to make sure it's doing this reliably.

Link to comment
Share on other sites

13 minutes ago, The Plum Gate said:

Firstly, I have no idea what's going on here

The experiments in my original post are designed to show that some interactions between fluids are not energy conserving. Their purpose is to figure out which interactions are, and are not energy conserving. This should help avoid some pitfalls when designing a boiling or other system where heat exchange between fluids is involved. It's probably related to some older posts I've seen on the forum about heat destruction and perhaps this thread can draw some dev attention to this bug.

Your anecdote about your steam geyser doesn't really contain enough detail to know exactly what's going on and it's also not a closed experiment, but it doesn't sound to me like there's a heat loss glitch involved since you are dropping hot onto cold water, which seems to work mostly fine from my tests above. The large heat capacity of the ice biome is probably keeping your polluted water below 0 which causes your fresh water to freeze, but the entire biome will eventually warm up if you keep doing that.

2 minutes ago, The Plum Gate said:

My advice would be to copy your designs into the different biomes and see if the different biome locations are dictating the temperatures of the water drops. 

To my knowledge biome doen't affect the temperature system in any way other than the starting temperature of the blocks in it. I've never seen anything mentioned on these forums to suggest otherwise. Also, my experiments are set up to eliminate outside influences completely, as they're surrounded by abyssalite tiles.

Link to comment
Share on other sites

@Sevio

Without going into the coding (since I'm pretty much a novice when it comes to looking through ONI codes), my preliminary conclusion is that the heat bug is caused not by a buggy code somewhere, but rather the unintended interaction between two independent systems, namely the heat transfer system and liquid dynamics system.

The part that lead me to such conclusion is the unexpected result of cold-into-hot and hot-into-cold being basically completely opposite.  The only thing I can think of that's causing this discrepancy would be the heat transfer mechanism, where, as previous experiments by Kasuha showed, that it favors heavily on vertical-single-directional transfer (heat traveling upward).  When the two bodies are both at rest and undisturbed, the heat transfer would work fine.  However, in cases where two bodies are actively mixing and tiles changing mass constantly, it lead to this "heat bug" where there's a potential of massive heat loss in certain situations.

Without going into the codes, here are my guesses as to what's happening:

As a certain Magical Squirrel would say:  It's caused by lag.

In situations of direct vertical drip, cold-into-hot conserved most of the heat because every drip is an independent "object", and as soon as it touches the surface and combines with the large body, each drip is almost instantly warmed, so no heat is lost.  However, in the case of hot-into cold, the heat is trying to travel upward when it combines with the large body instead of downward and mix, due to the heat transfer engine design.  So basically, heat is destroyed because it had no where to go, but mass checker couldn't stop it in time because of tick latency.

The situation of horizontal flow to vertical is a bit more complicated, but it appears that in these cases, the entire water body is connected (not visually, but within the liquid dynamics engine when simulating).  This creates an interesting situation where the heat from the cold-into-hot scenario is actually trying to travels up (instead of staying in the large body and slowly mixing with the new mass), but the mass above is too small to handle the heat (or even being destroyed instantly because of ticks latency).  The result is the massive heat loss.  However, when it comes to hot-into-cold, the heat stayed within each tile until it reaches the cold mass, where it would mix normally.

This explains why it was almost impossible to do a battery boiler after they toned down the heat produced by batteries.  Most setups, including mine, involves multiple levels/steps, and this caused the situation where at each "drop", heat is destroyed.  The heat generated by the batteries couldn't really compensate the heat that was destroyed, and this created an infinite loop where water barely heats up no matter how many batteries you add to the system.  Looking back, it was especially apparent because a lot of my batteries were actually creating steam "midway" of the contraption, but would actually cool down as it go on the line.  If heat is not lost, steam should be created from the end of the line instead.

It also accounts for the popular the cooling system, dubbed "the magical wheezewort waterfall". Many on the steam forum insisted was solely the power of wheezework, when in reality it was caused by the cooling bug.

Again, this is without going into the codes, and purely my educated guess from my understanding of the engine mechanics, but I do hope this would provide those who know the codes a starting point to look into the bug.

Link to comment
Share on other sites

2 hours ago, Reaniel said:

my preliminary conclusion is that the heat bug is caused not by a buggy code somewhere, but rather the unintended interaction between two independent systems, namely the heat transfer system and liquid dynamics system.

...

This creates an interesting situation where the heat from the cold-into-hot scenario is actually trying to travels up (instead of staying in the large body and slowly mixing with the new mass), but the mass above is too small to handle the heat (or even being destroyed instantly because of ticks latency).  The result is the massive heat loss.

That's an interesting way of looking at it, and I hadn't yet considered the tendency of heat to travel upwards as a possible part of this bug. I did some experimenting  with painting cold areas inside a warm polluted water tank and arrived at something peculiar when I made the top layer of the tank a thin 20g layer.

heat-experiment-5.thumb.jpg.e9288b082383c2f0f98368fd24e2f11d.jpg

The tank started at 310 K (36.9 C) and to start it, I painted the very top layer with a temperature of 260 K (-13.15 C). I then stepped through the simulation in thermal overlay, shown in top middle and right is the frame right after the temperature change. What's really strange about this is that the top layer appears completely unchanged but the layer below is now extremely cold! It's as if the simulation instantly swapped the temperatures of the two layers without considering their mass.

The bottom 3 pictures show the next 3 simulation steps, with the cold quickly traveling downward. At the end, it had stabilized to the following:

heat-experiment-6.thumb.jpg.89e2aebcf962410b4805ce08e0e19bbe.jpg

There's still a thermal gradient left in the tank, except hot and cold have now swapped places despite the cold wave traveling down from above. I would guess the average temperature is now 31.5 C, so 305 K.

The full part of the tank (minus top layer) is 8x9 so that's a little over 57.6 tons of polluted water. And it was cooled down 5k by 180 grams of 260 K water.

Link to comment
Share on other sites

2 hours ago, Sevio said:

The experiments in my original post are designed to show that some interactions between fluids are not energy conserving. Their purpose is to figure out which interactions are, and are not energy conserving. This should help avoid some pitfalls when designing a boiling or other system where heat exchange between fluids is involved. It's probably related to some older posts I've seen on the forum about heat destruction and perhaps this thread can draw some dev attention to this bug.

I didn't mean to sound like I didn't know what you were doing, I simply don't know why it would be doing what it is that you've shown. I do agree with your observation about the 'deepest part' of the pool - I have been regularly laddering into pockets of polluted water in the slime biome - collecting them into pits and I can actually watch the water droplets fall all the way down the ladders, though the surface of the water, and splash on tiles at the bottom of the ladder ( under water ). It is as if the droplets are going all the way to the bottom of the pools - this may or may not have anything to do with your experiments. I understand that this might not directly correlate to your findings.

This kind of leads me to speculate about where the heat is being transferred in a hot into cold situation - things appear to be behaving normally, or maybe not, I'll just have to pay more attention. The geyser has a tendency to overflow the room, this is why I  stuck a mesh tile in on the left and just started dumping the overflow - I couldn't use it fast enough.

As I had describer, before, the interesting thing to me is that the warm clean water floats along this setup from left to right through the mesh tile layer and eventually, that clean water freezes as it reaches the lower left area. I'll have to watch this for a few more cycles to see if it's dumping the heat at the top or the bottom of the ladder when. This isn't the most isolated of experiments since I'm not in debug mode and have no control to reference. For all practical purposes - what I'm seeing is perfectly normal. That body of polluted water below is as large as the entire upper portion of the this installation so I'm not surprised it's still cold.

20170902071725_1.jpg

Link to comment
Share on other sites

19 minutes ago, Sevio said:

The full part of the tank (minus top layer) is 8x9 so that's a little over 57.6 tons of polluted water. And it was cooled down 5k by 180 grams of 260 K water.

This must be the explanation of why my clean water basin got so cold when I stored/melted such a relatively small amount of ice in it...

Link to comment
Share on other sites

Wow, huh, now that's...  truly unexpected for sure.  I've also tried what you did and we're literally seeing how the heat bug is playing out in front of us.  Doing the opposite (hot into cold) gave pretty normal heat exchange and correct temperature drop. but cold into hot is bugged for sure.  

 

Link to comment
Share on other sites

I don't understand your initial experiment, what temp is the inbound liquid? Where is it coming from? How much was coming in?

 

Aside from venting the liquid, i found something that allows me to chill a steam geyser to 5-30c (depending on timing) that has nothing to do with water dropping, as changing specific things and leaving the output where it was altered the heat loss significantly...

Link to comment
Share on other sites

Using what I've learned from the experiments above, I was able to improve my boiler design without scrapping the countercurrent heat exchanger. The key is to avoid having any tiles lower than the channel of the heat exchanger itself so the heat destruction bug can't happen. Here's what it looks like now:

Aquatuner-boiler-1.thumb.jpg.71f60edfb172e5f38101d851fc315f9a.jpg

Stats and features:

  • Input temperature: 26.9 C - vaporization temperature: 122 C - resulting thermal gradient: ~ 95.1 K
  • Throughput: 1750 g/s polluted water
  • Power usage: 1.4 - 1.6 kW, roughly 1.3 kW on average (the Aquatuner doesn't quite run 100% of the time)
  • Water output temperature: Diminishing (see caveat)
  • Maximum Aquatuner effectiveness through use of a polluted water cooling loop
  • Polluted oxygen siphon

Overlays in the spoiler:

Spoiler

Aquatuner-boiler-2.thumb.jpg.b37fb1d54e3aba5af1527bf0397c7f05.jpg

Aquatuner-boiler-3.thumb.jpg.87b95f4f9b44ba2f04c6302d94489cbe.jpg

Caveat

When left to run for a long time, the cooling tank temperature gradually diminishes and will lead to freezing and pipe breakage if left unattended, so I think there might still be a minor heat destruction bug occurring. I'm suspecting the clean water that drops from the heat exchanger into the cooling tank is losing some of its heat, as in experiment 2 of my second post (dropping hot onto cold liquids) It's not as severe as my earlier attempts, so it could probably be mitigated in a survival world by connecting the cooling tank to waste heat from the base.

Link to comment
Share on other sites

It has nothing to do with falling water. It's the large temperature difference and low mass.

20170902144850_1.thumb.jpg.6163c1354c2ba27f9e03cc5aca9cd84c.jpg

20170902144854_1.thumb.jpg.40e5a48ca93d208f9557dec4d814977b.jpg

20170902144904_1.thumb.jpg.e4eb5f19c13e21b53a2045686c8ff9ae.jpg

20170902145012_1.thumb.jpg.c88709962bd0550000cd8c3b25d85c6e.jpg

Took a few tries to get it to do it but it's definitely doing something there.

Like it's taking the temperature of the melting ice and then merging the mass of the state change and the cell it's entering THEN doing the temperature change. Falling water simulates this by spawning water cells into another water cell.
 

Link to comment
Share on other sites

3 hours ago, Grimgaw said:

Well, I'm talking about the caveat from 2 posts up. Not to mention that it explains the whole point of this post.

Ah, ok, sorry about the mistake on my part.  And yes, you're right. The heat that's destroyed in Sevio's system would be more likely coming from the difference in specific heat of Water and Polluted Water instead of hot-into-cold heat bug.

Link to comment
Share on other sites

7 hours ago, Risu said:

Took a few tries to get it to do it but it's definitely doing something there.

Like it's taking the temperature of the melting ice and then merging the mass of the state change and the cell it's entering THEN doing the temperature change. Falling water simulates this by spawning water cells into another water cell.

A little goes a long way.

Link to comment
Share on other sites

7 hours ago, Grimgaw said:

Isn't the heat destroyed due to specific heat difference between clean water and polluted water? (some worked examples)

My initial boiler design had a heat exchanger with a deeper pool of polluted water that the channel then flowed into, which triggered the heat loss bug as shown in the original post and prevented the exchanger from heating up to an average between the steam and polluted water. That was an issue I was able to find and fix with the experiments I did.

I've read that example you posted and it does indeed explain how boiling polluted water leads to a fundamental loss of heat. Well, almost. Boiling polluted water also produces dirt, which is presumably where the rest of the heat is going. Unfortunately that heat can't be practically reclaimed so we're left with an unavoidable heat deficit. Even when I teleported the generated dirt at 120 C into the cooling chamber, it gives off its heat far too slowly to keep the water from cooling down.

Link to comment
Share on other sites

Taking on board the heat loss inherent in boiling polluted water, I've further refined my boiler design:

Aquatuner-boiler-mk2-1.thumb.jpg.9e54aa13f774e25e8a232834b9cae70f.jpg

Overlays in the spoiler:

Spoiler

Aquatuner-boiler-mk2-2.thumb.jpg.a76819f2e1630e822f16d801aff24395.jpg

Aquatuner-boiler-mk2-3.thumb.jpg.3d6f72b43ac353f3b6034795fea183a0.jpg

The goal was to compact it as much as possible, but reducing the heat exchanger in size as part of that caused a massive steam bottleneck. Instead, I made the design a bit more vertical and increased the heat exchanger to 10 tiles instead of 8, but I still managed to keep the width and height dimensions lower than the original, the new build is 16 wide and 18 tall. The increased heat exchanger size has also allowed me to increase throughput to just over 2 kg/s.

To deal with the heat deficit that builds up, I made three changes:

  • The cooling tank now has airlock door walls to maximize heat exchange with the environment. This could be further increased with more wire bridges sticking out of the tank but the increase in build dimensions and visual complexity didn't seem worth it for now.
  • Aquatuner's cold output is now further away from the pump that pulls the cooling medium in. The cold liquid vent is also wire bridged to the tank with the clean water pump to maximize cooling of the fresh water, rather than keeping the cold in the cooling medium.
  • The heat exchanger now has a tepidizer. It is hooked to the thermo switch in the cooling tank, and will start heating the exchanger to 85 C if the cooling tank drops below -2 C. This is enough to counter the heat deficit in the cooling tank and increases power efficiency.

Stats and features:

  • Input temperature: 26.9 C - vaporization temperature: 122.3 C -  thermal gradient: ~ 95.4 K
  • Two modes available: Cold and Power
  • Throughput: 2250 g/s polluted water in Cold Mode, 3250 g/s in Power Mode (Tested for 3500 g/s, steam started to build up in the exchanger after a few cycles so a little below that should be safe)
  • Power usage: 1.61 kW in Cold Mode, 1.70 kW in Power Mode. (Power usage tracked with a large battery bank and averaged over 1 cycle)
  • Water output temperature: ~ 2.5 C in Cold Mode, ~ 14 C in Power Mode (depends somewhat on environment temperature around the cooling tank)
  • Maximum Aquatuner effectiveness through use of a polluted water cooling loop
  • Power mode also doubles as Efficiency Mode due to Tepidizer preheating being more efficient than relying mostly on the Aquatuner.
  • Polluted oxygen siphon

It's probably possible to push this design's power mode a bit further by increasing the size of the heat exchanger but for now I'm quite happy with the performance I've managed to squeeze out of it. :)

The First Law.sav

Link to comment
Share on other sites

I was wondering why @Misha_SOS and you were using electric bridges and manual airlocks. I know it is for heat conductivity but I didn't understand why these and not other buildings. So I did some testing and the results were not very convincing 20170904114142_1.thumb.jpg.c7399521df7cc9c3b3fd40c583345c55.jpg20170904114143_1.thumb.jpg.2c3840a4ee8a863ab75b5078e12527c3.jpg

I put water at 300°K in each left cell and 370°K in each right cell and let the simulation run. The cells are separated by manual airlock, granite tile or insulated abysallite tiles. I've used iron wire bridges or granite liquid pipe bridge on the four top experiments. What I did found :

  • Manual airlock doesn't conduct better than granite. This is probably because they are both more conductible than water.
  • Bridges do most of the transfer. The solid separation doesn't conduct much.
  • Granite pipe conducts much more than electric pipe. Perhaps it has to do with the greater (4x) mass of the water pipe bridge ?
  • Very strangely, granite wall + granite pipe bridge works better than those two alone but iron wire bridge + iron airlock is less efficient than iron wire bridge alone.

Still, using bridges to conduct heat really bother me. But since filled pipes does not even compete with a granite wall, I don't see any alternative. I've seen strange results with pipes filed with mercury though. I need to investigate a bit further.

Link to comment
Share on other sites

10 minutes ago, Cilya said:

Still, using bridges to conduct heat really bother me.

Each building that occupies more than one tile exchanges heat with all tiles it covers but keeps single temperature value; there's nothing like temperature slope over the building. And bridges are the only multi-tile buildings that can pass through walls.

Note that pipes and wires do not conduct temperature along their lengths - there's no heat exchange between connected pipe or wire segments and there's even no heat exchange between neighbor packets in a pipe unless they exchange material.

 

Link to comment
Share on other sites

@Cilya Some good science here, thanks for doing those experiments! :)

I was surprised at your finding that the granite liquid pipe bridge is actually better than wire bridges. It does make sense given the increased mass and fits earlier observations that iron wire bridges transfer heat better than wolframite, which must be due to the increased heat capacity.

There is a good reason why there are no liquid pipe bridges in my heat exchanger above though: They would break quite easily inside a heat exchanger with steam because they have a base overheat temperature of 75 C, which is increased to 90 C for some materials like granite and obsidian. Wire bridges are the only bridge that don't have this problem.

If you're going to continue investigating this, I would be interested to see how gas pipe bridges compare to liquid pipe bridges and to wire bridges!

10 minutes ago, Cilya said:

Very strangely, granite wall + granite pipe bridge works better than those two alone but iron wire bridge + iron airlock is less efficient than iron wire bridge alone.

I can't be sure what causes this but the wire bridge and the manual airlock both span multiple tiles, and I wonder if this might be what causes some strange interactions in the tile that they both share.

Your findings do mean that my cooling tank can get rid of the manual airlocks, and could perhaps do with some liquid bridges (where piping allows) and/or gas bridges to help cool the clean water and the environment.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...