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.

mathmanican

Let's finally figure out the Steam Turbine Heat Deletion Issue

Recommended Posts

wachunga    467
13 minutes ago, TripleM999 said:

Now i only need to find out, what is this shortcut on a german keyboard, as = is Shift + 0 :lol:

Check the key bindings for debug. It's called "Debug Game Step". Some of the other things may be useful as well, I've never really used them so dunno.

Share this post


Link to post
Share on other sites
TripleM999    285
34 minutes ago, wachunga said:

It's called "Debug Game Step"

It is indeed bound to ALT =, but i can find another key for it.

Now to my cross test

CrossStart.png.3012c4d783952d2219f09f3cd8f57723.pngCross1Tick.png.d804d752a15970c173571fe52ec5cc27.png

 

Everything gas related, i have found so far is always reducible to a two tile interaction:

A` = A - (A - X) * 10%

B` = B - (B - X) * 10%

C` = C - (C - X) * 10%

D` = D - (D - X) * 10%

X` = X - (X - A) * 10% - (X - B) * 10% - (X - C) * 10% - (X - D) * 10%

No influence at all from tiles not directly adjacent.

For heat it is similar.

After this would come the special treatment. Possibilities:

A<>X

B<>X

C<>X

D<>X

Only one of this will happen, if at all, cause X is part in every. I think, they flag a tile, which already got special treatment to avoid double treatment.

Share this post


Link to post
Share on other sites
mathmanican    3396
12 minutes ago, TripleM999 said:

Everything gas related, i have found so far is always reducible to a two tile interaction:

That is what I thought with liquid. And then edge cases created problems. If the adjacent tile receives or gives so much gas that what should happens reverses because of the change, then the game has to account for this. In liquids they had to make adjustments so that liquid could not flow right more than one tile. It got messy.

Share this post


Link to post
Share on other sites
TripleM999    285
19 minutes ago, mathmanican said:

And then edge cases created problems

Can you think of an edge case? I have trouble atm, 10% or even 12% flow rate make this quite hard.

Gas does not such shenanigans like liquids, 1/4 of mass left, 1/4 of rest mass right. If a tile of gas is surrounded by vacuum, it puts exactly 10/12% of its original current mass to the left, then exactly 10/12% of this original current to the right, to the top and to the bottom, and the resulting gas tile will be at 60/52%.

CrossVacSurround.png.86e6e8691984864f09c68674239807db.pngCrossVacSurr1Tick.png.3a0be3b2ac7345c69cab0c0343a1f333.png

Share this post


Link to post
Share on other sites
mathmanican    3396

@TripleM999, here is an example of an edge case (the exact same as liquid flow). The tile I want to focus on is the middle tile (which is vaccuum). It's neighbors are both gas, and their neighbors are vacuum. This is the horizontal slice of the 13 tiles I mentioned. 

  • Paint 10 kg of hydrogen in the left tile, and 100kg in the right tie.

image.thumb.png.056e001efee7e210d744ad4541e89b5a.png

  • Proceed one tick. You would expect the middle tile to obtain 1kg from the 10kg block, and 10kg from the 100kg block.  However, this DOES NOT HAPPEN. 
  • You only get 1kg from the left block. The 100kg block drops to 90kg with 10kg going right.   Why? Guess: Because when you reach the middle block where vacuum was, it received 1kg from the left blob.  If it tried to receive the 10kg from the right neighbor, this would bring the total mass above the original mass of the left neighbor (which means the left neighbor should never have sent the gas). So the game refuses to send 10% left.
  • And then of course the next time I run the experiment, the exact opposite happened. The 9kg sent 1 kg left, keeping the other 1kg. The 100kg dispersed its mass sending 10% left and 10% right with the central tile now having 10kg. 
  • I wonder if the game, every other tick, changes the direction in which gas flow is computed (left/right/left/right/left/right/....) 

This is similar, but the not the same, as set 6 in the liquid flow algorithm I linked to above. It was my first conjecture as to an edge case after reading, and it worked right off the bat (and then swapped logically the second time I ran it, one tick later).  Any idea how this could conflict with the other findings, and create heat magically? 

Sure enough, I went out a few more ticks and the game appears to alternate each tick what it does, left/righ/left/right, with perfect precision on the way gas moves.  I haven't added temp into the mix yet, rather I'm just trying to figure out the gas flow.  I bet vertically though it never alternates...  Have to check that soon. Gotta run.  I'll only have a phone for most of the day, so no more testing. :( 

Share this post


Link to post
Share on other sites
mathmanican    3396

The edge cases appear when you have oscillating high low mass fluctuations. This happens near the boiling point for turbines. It's not enough to account for the heat gain but the left right action could....

Alternately maybe the issue is 100 percent the longer vertical shaft....

Share this post


Link to post
Share on other sites
TripleM999    285
7 hours ago, mathmanican said:
  • Paint 10 kg of hydrogen in the left tile, and 100kg in the right tie.

image.thumb.png.056e001efee7e210d744ad4541e89b5a.png

  • Proceed one tick. You would expect the middle tile to obtain 1kg from the 10kg block, and 10kg from the 100kg block.  However, this DOES NOT HAPPEN. 
  • You only get 1kg from the left block. The 100kg block drops to 90kg with 10kg going right.   Why? Guess: Because when you reach the middle block where vacuum was, it received 1kg from the left blob.  If it tried to receive the 10kg from the right neighbor, this would bring the total mass above the original mass of the left neighbor (which means the left neighbor should never have sent the gas). So the game refuses to send 10% left.
  • And then of course the next time I run the experiment, the exact opposite happened. The 9kg sent 1 kg left, keeping the other 1kg. The 100kg dispersed its mass sending 10% left and 10% right with the central tile now having 10kg. 
  • I wonder if the game, every other tick, changes the direction in which gas flow is computed (left/right/left/right/left/right/....) 

Woah. This is indeed strange... why the game handles this different, maybe cause vacuum is a "gas"? Makes not even sense from a simulation perspective. I tried the countercase 1mcg instead of vacuum, everthing else is similar.

Strange.png.415a25e3f7a4afda5198892676e5602b.png

Expected result.

7 hours ago, mathmanican said:

I bet vertically though it never alternates...

Indeed, it always takes from the bottom. Test with 1mcg again gives instead the expected result.

Share this post


Link to post
Share on other sites
Manarz    36

At this point im wondering if it makes sense to actually code a simulation for this model and run tests after each frame whether some unexpected behaviour emerges. The algorithm seems simple enough.

Maybe ill get to it as soon as the AI im working on does what it is supposed to...

 

i also still want to figure out the exact reasons for the mass deletion bug. My 30 turbine array fueled by supercoolant flaking lost alot of steam pressure after 150 cycles running... when i made it i ofc didnt obey to the rules we found here but still what exact interaction deletes the mass?
 

Share this post


Link to post
Share on other sites
psusi    307
7 hours ago, TripleM999 said:

Woah. This is indeed strange... why the game handles this different, maybe cause vacuum is a "gas"? Makes not even sense from a simulation perspective. I tried the countercase 1mcg instead of vacuum, everthing else is similar.

I don't think there is anything magical about vacuum.  It's simply a tile that starts out with 0g of hydrogen so we can easily see how the hydrogen swaps mass around.

Share this post


Link to post
Share on other sites
TripleM999    285
4 hours ago, psusi said:

I don't think there is anything magical about vacuum.  It's simply a tile that starts out with 0g of hydrogen so we can easily see how the hydrogen swaps mass around.

Wrong, if mass of hydrogen on a tile is 1mcg, tiles of hydrogen around this tile behave predictable, if the tile is vacuum, then behavior of surrounding hydrogen tiles becomes kind of random.

 

Maybe vacuum has this anomaly, cause vacuum and gases don't push... but pull.

Share this post


Link to post
Share on other sites
TripleM999    285

Tried to add something useful to steam turbine research, without much luck, had one hypothesis, proved wrong, vent height above ground does not seems to have any influence:

TurbineTest.png.d0f6c8dc86cbc0db4fd77feafabc834d.png

Share this post


Link to post
Share on other sites
psusi    307
5 hours ago, TripleM999 said:

Wrong, if mass of hydrogen on a tile is 1mcg, tiles of hydrogen around this tile behave predictable, if the tile is vacuum, then behavior of surrounding hydrogen tiles becomes kind of random.

Where was this mentioned before now?  @mathmanican seemed to indicate that the "random" behavior was in fact, a predictable left/right swap that happens every other frame and continues to happen after the vacuum is gone.

5 hours ago, TripleM999 said:

Maybe vacuum has this anomaly, cause vacuum and gases don't push... but pull.

If that is the case then there is no difference between 1 mcg of hydrogen and vacuum; they will both pull from an adjacent higher pressure hydrogen tile.

Share this post


Link to post
Share on other sites
TripleM999    285
9 hours ago, psusi said:

Where was this mentioned before now?  @mathmanican seemed to indicate that the "random" behavior was in fact, a predictable left/right swap that happens every other frame and continues to happen after the vacuum is gone.

If that is the case then there is no difference between 1 mcg of hydrogen and vacuum; they will both pull from an adjacent higher pressure hydrogen tile.

As already shown in the thread, when there is gas in a tile, even with it be only 1mcg, this tile "pulls" from ALL surrounding tiles with the same gas 10% of the difference in pressure per tick. When the tile is vacuum, it "pulls" from only ONE of the surrounding tiles, prefering the tile below. If tile below is no gas, than it chooses randomly between left or right ( it is indeed random, as i have observed two consecutive ticks in a row pull from the same side). I think, this is to made sure, that vacuum does only pull one gas type, cause itself does not have a "type" to choose the "right" gas.

Share this post


Link to post
Share on other sites
Lacero    1

I don't know if I'm helping or confusing things, but if I were implementing this "10% of cells do something complicated" algorithm I wouldn't do it by rolling a dice for each cell in code.  For one thing that would make it possible for two consecutive cells to be chosen and that's asking for trouble, and as I understand you've never seen it happen.

I'd choose a random number from 2 to 18 and iterate through that many cells of gas before doing the special behaviour, and then choose another random number.  Fewer random numbers chosen so it's faster, and also no chance of the rng forcing every cell in the top left of the map to do the special thing and no others.

In terms of practical consequences for your experiments, the random behaviour might not be universal, it might depend on the situation outside your test box, so be careful I guess?

Share this post


Link to post
Share on other sites
psusi    307
8 hours ago, TripleM999 said:

As already shown in the thread, when there is gas in a tile, even with it be only 1mcg, this tile "pulls" from ALL surrounding tiles with the same gas 10% of the difference in pressure per tick. When the tile is vacuum, it "pulls" from only ONE of the surrounding tiles

Oh, I didn't get that part.  Weird...

Share this post


Link to post
Share on other sites
TripleM999    285
9 hours ago, Lacero said:

I don't know if I'm helping or confusing things, but if I were implementing this "10% of cells do something complicated" algorithm I wouldn't do it by rolling a dice for each cell in code.

No, the 10/12% thing is done every tick. Some special handling is done at random. There is the post, where my current working hypothesis for single gases is written:

I have yet to see cases, where this is wrong. Handling of multiple gases and in conjunction with vacuum does NOT fit this hypothesis.

Share this post


Link to post
Share on other sites
mathmanican    3396

So, I think I figured out part of why I see extra wattage when I have very little steam. The solution is quite simple, and silly. 

image.png.130fdf84b4078b09edb59565692b699f.png

The fact is the 841g of water in the pipes.  When the steam content leaving the turbine is less than 2000g, then you still remove the exact same amount of heat energy from the system from the turbine, but you don't have to reheat as much either.  (EDIT: You don't have to phase change as much, which is where you gain energy). As such, you will get more wattage.  The turbine in the upper left corner started with 2kg/tile of steam.  The left two ports under the turbine are now vacuum, the middle port has 8g, the next one over has 160ish, and so on.  The crude and petro are both around 350C.  The wattage is still rising by about 0.1W per cycle (probably due to heating the insulated pipes). 

This only explains some of the extra energy. Each turbine above from left to right, top to bottom, as 1kg more per tile than the previous.  So the bottom row started with 7kg/tile, and has 1853.9g in the pipes with 559.1W. The next one over started with 8kg/tile, has 2000g in the pipes, and has 558.3W.  The next one over started with 9kg/tile, has 2000 g in the pipes, and generates 559.7W (more than the previous two).  All of these values are higher than they should be.

The values in the mid to high 60s are mostly likely because of the lower volume in the pipes.  But there is still another minor factor.

Share this post


Link to post
Share on other sites
TheOneFinn    17
3 hours ago, mathmanican said:

then you still remove the exact same amount of heat energy from the system from the turbine,

To clarify this is because the system is running in equilibrium and the lower mass of steam is at a higher temperature to compensate?

Controlling the input temperature and reducing pressure would still reduce heat energy removal? 

edit: Nope I still dont get it, unless the formulas at https://oxygennotincluded.gamepedia.com/Steam_Turbine are not correct. 

The heat energy removed is effectively the total heat energy above 95C, if you reduce the mass going through, the amount of extra heating you have to do to that steam should compensate for the reduced mass. if Qremoved is constant then so is P ?

Share this post


Link to post
Share on other sites
mathmanican    3396
1 hour ago, TheOneFinn said:

Nope I still dont get it,

The formulas are correct (best I can tell).  I believe the issue is 1.5C cost to phase change only applies to half the mass. If I had a perfectly running turbine (accounting for the loss of energy from phase changing), then I'll get around 554.1W (not 566.666). This is pretty much dead on what I see when I insulate aquatuner room from the steam, and use a conveyor bridge to boil the 95C water.

Having the turbine run at lower volumes of steam dosen't change the DTUs needed to reheat the steam to higher temps, but it does mean that I don't have to loose 1.5C to the phase change.  If this were the only issue at play, then consuming 1000g/s of overheated steam should get me about 560.35W (close to what I'm seeing, but still a tad low). The turbine that is running at 559.7W and 2000g/s steam is not benefiting from this phase change mechanic, and it's getting me an extra 5W of power. Some might call it rounding error, but I call it a tiny bug that might turn into a doomsday device (if we can peel the mechanics back). 

That's my guess, or I'm completely wrong. :) Things are pretty close, and apparently any of these liquid builds are better than an isolated build.  Why that is? I would love to know. Maybe we'll find a reverse borg cube we can use to create insane amounts of heat. :)  Or better, we can find the source of the problem and help the devs fix it.

The issue might actually be in the liquid heat transfer equations, or maybe even in the way that liquids interact with gas (as we've already seen that the gas/vacuum interaction has issues). So far @TripleM999 and @Manarz both only see heat deletion in the gas mechanics algorithm (worthy of getting some attention by the devs as well - can we find a way to make liquid hydrogen with it - it will get changed. :lol:  ).  Something is still going on that allows heat generation, and it has to do with low volumes of steam that interact with hot liquids. 

By the way, it's easy to create large mass gradients with gasses, with zero power, using bead pumps or bypass pumps. So if we need to make sure we have large mass gradients to cool gasses down, that's cake walk. @TripleM999 and @Manarz, maybe we can create an almost zero power ice maker using the heat deletion mechanics with gaseous hydrogen....  This sounds like an interesting path to pursue...  

Share this post


Link to post
Share on other sites
TripleM999    285
5 hours ago, mathmanican said:

By the way, it's easy to create large mass gradients with gasses, with zero power, using bead pumps or bypass pumps. So if we need to make sure we have large mass gradients to cool gasses down, that's cake walk. @TripleM999 and @Manarz, maybe we can create an almost zero power ice maker using the heat deletion mechanics with gaseous hydrogen....  This sounds like an interesting path to pursue...  

First try at a showcase. Starting conditions were 1000kg, 0°C(273.15K) supercoolant per tile, and 1000kg, 0°C(273.15K) hydrogen per tile. It is a closed loop, without any heat deletion device, so it shouldn't loose any heat at all. But as you see, supercoolant is at -2.4°C, "hottest" hydrogen at -3.2°C, and coldest hydrogen at -50.2°C

HydrogenLoop1ShowCase.png.e3c2a7bac90ca7ddfd319b9452802a3e.png

It is not a fast, or elegant device, but maybe it gives some ideas... i will try with more hydrogen, to see, what happens.

Share this post


Link to post
Share on other sites
TheOneFinn    17

Heat equations ignore SHC since its constant for both.

Test was a vertical setup steam over water, 1 step, All temps in K all weights in g

Spoiler

Steam Start Mass,Steam Start Temp,Steam End Mass,Steam End Temp,Water Start Mass,Water Start Temp,Water End Mass,Water End Temp,Initial Heat,Final Heat,Heat Delta,Heat Delta / Water Start Mass
500,1373.1,470,1340.9,200,368.1,230,563.7,760170,759874,-296,-1.48
500,1373.1,490,1340.9,400,368.1,410,429.6,833790,833177,-613,-1.5325
500,1373.1,510,1322.3,600,368.1,590,393.4,907410,906479,-931,-1.551666667
500,1373.1,530,1286.9,800,368.1,770,386.7,981030,979816,-1214,-1.5175
500,1373.1,550,1253.8,1000,368.1,950,382.7,1054650,1053155,-1495,-1.495
,,,,,,,,,,,
1000,1373.1,920,1357,200,368.1,280,707.1,1446720,1446428,-292,-1.46
1000,1373.1,940,1357,400,368.1,460,530.8,1520340,1519748,-592,-1.48
1000,1373.1,960,1357,600,368.1,640,453.7,1593960,1593088,-872,-1.453333333
1000,1373.1,980,1357,800,368.1,820,410.4,1667580,1666388,-1192,-1.49
1000,1373.1,1000,1357,1000,368.1,1000,382.7,1741200,1739700,-1500,-1.5
,,,,,,,,,,,
2000,1373.1,1820,1365.1,200,368.1,380,881.9,2819820,2819604,-216,-1.08
2000,1373.1,1840,1365.1,400,368.1,560,680.6,2893440,2892920,-520,-1.3
2000,1373.1,1860,1365.1,600,368.1,740,577.3,2967060,2966288,-772,-1.286666667
2000,1373.1,1880,1365.1,800,368.1,920,514.3,3040680,3039544,-1136,-1.42
2000,1373.1,1900,1365.1,1000,368.1,1100,472,3114300,3112890,-1410,-1.41
,,,,,,,,,,,
5000,1373.1,4520,1369.9,200,368.1,680,1098.5,6939120,6938928,-192,-0.96
5000,1373.1,4540,1369.9,400,368.1,860,922,7012740,7012266,-474,-1.185
5000,1373.1,4560,1369.9,600,368.1,1040,806.5,7086360,7085504,-856,-1.426666667
5000,1373.1,4580,1369.9,800,368.1,1220,725.2,7159980,7158886,-1094,-1.3675
5000,1373.1,4600,1369.9,1000,368.1,1400,664.8,7233600,7232260,-1340,-1.34
,,,,,,,,,,,
50000,1373.1,45000,1372.8,200,368.1,5100,1337,68728620,68594700,-133920,-669.6
50000,1373.1,45000,1372.8,400,368.1,5300,1300.7,68802240,68669710,-132530,-331.325
50000,1373.1,45000,1372.8,600,368.1,5500,1226.7,68875860,68522850,-353010,-588.35
50000,1373.1,45000,1372.8,800,368.1,5700,1234.9,68949480,68814930,-134550,-168.1875
50000,1373.1,45000,1372.8,1000,368.1,5900,1205,69023100,68885500,-137600,-137.6
,,,,,,,,,,,
500000,1373.1,450000,1373.1,200,368.1,50100,1369.4,686623620,686501940,-121680,-608.4
500000,1373.1,450000,1373.1,400,368.1,50300,1365.4,686697240,686574620,-122620,-306.55
500000,1373.1,450000,1373.1,600,368.1,50500,1361.4,686770860,686645700,-125160,-208.6
500000,1373.1,450000,1373.1,800,368.1,50700,1357.5,686844480,686720250,-124230,-155.2875
500000,1373.1,450000,1373.1,1000,368.1,50900,1353.6,686918100,686793240,-124860,-124.86
 

 

 

Share this post


Link to post
Share on other sites
mathmanican    3396
3 hours ago, TripleM999 said:

It is not a fast, or elegant device, but maybe it gives some ideas

We can work with this.  Perhaps increasing the gas flow rate with a few bypass pumps will speed iit up.  They may have removed the doomsday freezer via flaking ,but if we can get the same thing from random fluid mechanics.....  Mwhahahahah!!!!  I love it.   This could also be a dead end...,

Share this post


Link to post
Share on other sites
mathmanican    3396
6 hours ago, TripleM999 said:

First try at a showcase.

Here is my first attempt. (I haven't even enabled the cooling region in the lower left). 

image.thumb.png.6e6a89e48a6f402807634e5b2b33df20.png

I started with 100kg/tile of hydrogen. My goal was to force large mass differences between the hot side and cold side, so practically touching bypass pumps that drop out 0.1g water. I have a conveyor bridge that connects the tuner room to the exit of one bypass pump, and then metal tiles over radiant pipes to get cooling. The two regions touch each other. 

I can make the mass difference larger by increasing the number of gas cells that can feed into the intake side of the bypass. I can probably get a better temperature delta if I make the channel one tile longer. 

It's definitely cooling everything. Lost about 10C on everything in one cycle.  Not everything is percentage based (the tuner can only process 10kg/s), so I don't think higher mass will necessarily be better.  However, the fact that the bypass pump keeps one side at basically vacuum means we can probably do quite a bit more damage.  

It is hilarious to watch an aqua tuner room temperature drop constantly, never rising once. I may actually have better results with less liquid in the tuner room....

This thread has taken a chilling turn.

Share this post


Link to post
Share on other sites
TripleM999    285

I doubt, this is easily abusable, or to the extent, that it is better than any regular options (the steam turbine is much better at this, and is providing additional energy). I'm not that good at designing infernal exploitation devices, but i tried to freeze 35 tons of 100°C steam... took me 50 cycle to get this:

HydrogenLoop2ShowCase.png.8a6f38eb3b97d9641ff71cd816cc266b.png

Cooling power isn't that impressive. What, in my opinion, is impressive, that it, as a closed system without any device to delete heat by intent, was even able to freeze the steam/water at all. And on the "hot" side with the aquatuner. Hydrogen was at 1000kg per tile at the start... flow is now around 32kg/s. "hottest" tile of hydrogen is at -21.2°C, coldest at -53.7°C.

Btw. if you wonder, what the gas pump is doing there. There is a corresponding gas vent right above the super coolant pool, with the liquid pump. It is easy to add more hydrogen to the system, as this tile is always at vacuum levels.

Share this post


Link to post
Share on other sites