Jump to content

Discussion of New Partial Melting/Evaporation mechanics (Flaking Updates)


Recommended Posts

I'd love to start a discussion about the new flaking mechanics, so we can learn to properly (ab)use them. My hope with the discussion is to find both pros and cons of the new system, as well as reveal possible abuses that were unintended (hoping to make things better).  I you want to join the discussion, but are not aware of what the issue is, then open up sandbox and give this a try. (Make sure you are on the beta branch.)

image.png.b98f2deba063fc37e7415c51d0c63c91.png becomes image.png.09d18d03a88731a140ea42a948f5db7e.png

  1. Surround a small area with either insulated insulation, or neutronium. 
  2. Paint a block of abysalite using the default settings.
  3. Paing 1kg of steam at 3500C under the block. 
  4. Let the game pass one tick, and watch what happens. 
  5. 100g of gas should move down, with 900g remaining. You'll also see a small blob of red liquid start to drop. It will form into 5kg of Tungsten (and the abysalitte block will have lost 5kg). 

Goals of this thread:

  1. Find the exact equations and conditions governing the new flaking mechanics.
  2. Find the most extreme possible abuses of the mechanic (to help the devs decide if the updates lead to intended mechanics). 
  3. If we find something truly egregious, design monstrosities with it while we can (and hope for a fix). 

Off to explore. 

Spoiler

 

 

Link to comment
Share on other sites

I found part of the formula, as well as a condition. First, some words (from other places). 

  • Parent (tile to be flaked, it will loose 5kg of mass)
  • Child (the new 5kg element coming from the child)
  • Donor (a cell that must give up heat to create the child)
  • Heat Source (whatever keeps the donor hot enough to continue flaking). 
  • Delta - the change in temp of a parent or donor. So DonorDelta is the difference between the old temp, and new temp, of the donor. 

Here are my findings.

  1. For a given parent-donor pair (solid flaking), the product DonorMass*DonorDelta is constant. For Abysalite and Steam this product is around 550.
  2. Solid Flaking can only occur if the donor's new temp is large enough to keep the donor in gas form.  For Abysalite and steam at 3500C, this means we have a max DonorDelta of 3400. Division gest DonorMass = 550/3400 = 0.1617.  Sure enough, masses below this do not flake, while masses above this will flake off tungsten. 
Spoiler

i painted 1kg, 2kg, ..., up to 7kg steam under the block, with 10kg of chlorine per tile underneath so that the steam won't move. Then I recorded temps.  Since parent delta decreased as mass increased, I assumed they have an inverse relationship, which means their product should be constant.  Sure enough, looks like it is (maybe there is a +6 or +10 to discover still, but I'll have to use much smaller donor deltas to discover this)

image.png.1bc269642a7316b26bf9d8267bb142a6.png

image.thumb.png.db88f431931ff3b30eb0041fd5c7c459.png

 

Link to comment
Share on other sites

34 minutes ago, Zarquan said:

but instead the steam just moved down.

Yep.  That's correct.  For the rest of my tests I've got enough kg of chlorine below the steam so the amount of steam does not change. I figure I'll document how I get the formula. I've got time now for uninterrupted testing (hopefully), so time to get this formula cranked out (before @wachunga beats me to it - just hoping to add a new skill to my belt). 

Link to comment
Share on other sites

Scrap the old conclusion about inversely related (if DonorMass<5kg).  The product is not constant. i used hydrogen and ice, and found a very different story. I am confident about one condition being that the donor cannot phase change. 

Spoiler

image.png.29f3a26504d4242b0207680aa1755358.png

image.thumb.png.4196cc885b9f9f5bd179b1905bc5f4a3.png

The graph above looks like two lines, with everything after 5kg being basically constant. So I ran a check to see if the product is linear below 5kg, and got an R^2=1 with 10 data points.  Seems like it's perfectly linear. So this gives a model of 

  • DonorMass * DonorDelta = b_1 * DonorMass + b_0,(where b_0 and b_1 change at DonorMass = 5kg, with b_1=0 if DonorMass>=5kg).

Time to confirm this on various other flaking examples, then I'll focus on finding the relationship between the constants and the other variables (like PhaseUpDelta and Child SHC). 

The model is confirmed when I swap ice temp to -10 instead of -41C.  The product DonorMass*DonorDelta is linear below 5kg, and constant after 5kg. If I use debug to get temps, then the slope of the line is accurate to 4 significant figures when comparing consecutive data points.  That seems pretty dang spot on.  Time for another material pairing. 

Link to comment
Share on other sites

New update.  I believe one of the formulas is simply

  • 2*DonorSHC * DonorDelta = ChildSHC*PhaseUpDelta

where PhaseUpDelta is the temperature that the parent (after conduction) must increase by in order to reach 3C above melting.  

Spoiler

To test this, I painted 10kg cells of various solids exactly 20C below melting, and then below those I painted 10kg of hydrogen that is 20 degrees above melting the solid. I used 20 so that conduction could not bring the cells to close to melting in one tick. 

As a control, and to account for conduction, I painted 4kg of the exact same thing. At 4kg, flaking cannot happen. 

image.thumb.png.877f290792fcb0f1683f5cfaf9afc12d.png

And the results 

image.thumb.png.93d5d8a9b34b8dfc8a08c13280df9b1b.png

Aside from oxygen, the ratio ChildSHC * PhaseUpDelta / (2 *DonorDelta*DonorSHC) is basically 1 in each case. My guess is that the reason oxygen did not give this value is related to the conduction computation (and may only be interacting with 5kg instead of 10kg of mass).  That will be easy to check with larger values. I really should have started with 100kg of each. 

Edit: Scrap this. It can't be correct as it doesn't account for mass at all. Update coming in a bit. 

Well, scrap all that.  When I changed everything to have 100 for the mass, none of the above held. Back to the drawing board.

Link to comment
Share on other sites

@Zarquan, your suggestion is what I was hoping I would find. 

On 6/3/2020 at 12:51 PM, Zarquan said:

The thing is, if this boiling/flaking mechanic should be in the game at all, I think it should follow the math below: 

Donor New Temp = Doner Old Temp - (5000 * FlashedSHC (liquid) * FlashedDelta) / (DonorSHC * DonorMass (in grams))

It is much simpler and shouldn't add or destroy any significant heat.

It is precisely what I found with 10kg of hydrogen next to various solids (except for solid oxygen). It is also precisely what happens when DonorDelta * Donor Mass is constant (if you keep materials the same with a large mass parent and same Flashed Delta).  My guess for why I see two different lines forming (one with no slope, and one that is constant) has to do with conduction being performed before the flaking occurs. 

However, when I put in 100kg of gas next to 100kg of material, the results in no way seem to reflect this formula.  Conduction is probably messing it all up. I went back and found @wachunga's comments over here, and swap over to insulation as the donor, so that I have almost no conduction, and then go from there. Either it's conduction causing problems, or they have two (or more) formulas at play to deal with edge cases (low mass, regular mass, high mass). 

Using Insulation and Chlorine for solid flaking, the formula above checks out pretty much perfectly. I didn't include conduction first in the computation, but neglecting it brought pretty spot on results. 

Spoiler

image.thumb.png.9caed7c17ab0fc5226d6c7f44daf6285.png

As such, at 4000K chlorine, I should be able to flake with max DonorDelta of 3761.4, which corresponds to a mass of 1.34kg. I can flake with 1.35kg of chlorine, but not with 1.34kg. 

At this point, I'm going to assume that solid flaking happens AFTER conduction, and follows the suggested formula you gave for Liquid flaking, with the SHC of the parent swapped out for the SHC of the child.  I'll see if I can include all the conduction formulas into the mix as well, so that I can input pre-conduction numbers and get post flaking values. 

 

Link to comment
Share on other sites

Checked it all.  It works out perfectly, for solid flaking (solid parent, gas donor)  

  1. Conduction is formed with solid parent and gas donor. 
  2. PhaseUpDelta = MeltingPoint of parent + 3 - temp of parent after conduction is performed (with all the various clamps taken into account)
  3. DonorTemp = Temp of Donor AFTER conduction has occurred.
  4. DonorNewTemp = DonorOldTemp - (5000g * ChildSHC * PhaseUpDelta) / (DonorMass(g) * DonorSHC)

The tricky bit is the fact that conduction must be computed first.  I'll put a spreadsheet together soon that does it all in a nice, easy to understand, way. Currently it looks like this. 

Spoiler

image.thumb.png.d485e098776e84090d22c9ed1d921d5f.png

The colored cells are places where conduction clamps were applied. 

The above sheet works with both 10kg and 100kg of hydrogen next to any of the 7 different materials I have been testing.  The results are spot on perfect to 4 significant figures. 

After putting together a simple spreadsheet, I'll return to the hydrogen/ice combo and see if total heat clamping, or some other conduction clamping, is what accounts for the odd line I found there. 

Link to comment
Share on other sites

Here is a spreadsheet that will predict partial melting temperatures after each tick of the game. It gives the parent temp perfectly (to all shown figures), but gives a slightly lower figure (around the 3rd or 4th significant figure) for the donor temp. Possible reasons why:

  • Rounding error? I tried many different ways to produce rounding error that matched in game results.  All failed.
  • The temp required for melting something is actually just slightly less than 3K above the melting temp. At 2.987, I get perfect prediction with igneous, and also get pretty dang close to minimizing the average error. I'll be checking this soon,
  • There is another step involved in this process.
  • Conduction equations are off?  I doubt this. 

For now, this is super close to correct. I'm off to test it on more materials, and more extreme conditions. 

 

The spreadsheet predicts all the odd behavior I saw with two lines earlier (just checked it) to 3 significant figures.  There is still something very minor going on with the flaking that I have not accounted for. When using a parent of 500kg of ice at -41C, and a donor of hydrogen at 27C, then you can watch the error grow as you increase the mass of the hydrogen donor.  It also grows to be more than what happens if you change the +3K on phase change value, so I don't think that is the issue.  

Link to comment
Share on other sites

Moving on to liquid flaking (partial evaporation).  For this one, I used insulation and petro to test. Conduction does not appear to happen between the parent and donor before flaking occurs.  If the child gas appears between them as a 5kg chunk, then conduction happens with the 5kg chunk before being pushed away and replaced by a new 5kg chunk.  This is how it appeared to work before.

The formula appears to be (@Zarquan

  • DonorNewTemp = DonorOldTemp - (5 * ParentSHC * PhaseUpDelta)/(DonorMass * DonorSHC)

Here is the data:

image.png.7aa1adb961061050933b5188612262b4.pngolun

The last column (which is essentially 1) is just 5 * ParentSHC * PhaseUpDelta)/(DonorMass * DonorSHC *DonorDelta), which is equivalent to the formula above.  I'll add this to the spreadsheet that I linked to above, soon. 

I'm pretty sure this is it on formulas.  Now it's time to see how bad we can abuse things. 

  • Solid flaking definitely can be abused if the Parent has a high SHC but the child does not.  This is because they use ChildSHC
Link to comment
Share on other sites

Because liquid flaking uses the SHC of the parent, not the child, then you can only really gain energy from a 3K increase.  Yes, it is slightly abusable, with molten salt getting perhaps the best boost from flaking. 

Because solid flaking uses the SHC of the child, then any pairing that results in a large temperature change from parent to child (PhaseUpDelta) can generate lots of heat, or destroy lots of heat. 

  • Abysalite flaking to get tungsten requires 3.4% of the power it should. Insulation melting is a bit better at 2.4% of the power needed, but it's probably better to just use up useless abysalite. 
  • Scanning the list for something that can cycle solid-liquid-solid, we stumble on the winner:  Glass.  Since ChildSHC/ParentSHC  = 0.238, then this transition requires only 23% of the energy that would actually be needed to raise the glass up in temp. I think this might be the most (ab)usable material with the new mechanics. (I listed them all, compared the radios, and found this one). 

Keeping the heating plate above glass melting point is doable with in game materials (not easy, but doable).  Provided we keep flaking up constantly (25kg/s), and keep the glass around 600K (nice temp that can keep turbines running full time), then the energy lost via conduction through the parent glass  to donor chlorine plate is around 1763kDTU/0.2s (or less if we have a higher temp hot plate with lower mass chlorine). The temp can easily be kept near 600 by replenishing the glass tile with glass via a dispensor.  The flaking process nets 4633kDTU/0.2s of energy in the glass, that can be harvested from lots of turbines. 

I'll be working on designing a "Glass Flaking Factory" with this idea. The key will be to reduce conduction as much as possible on the boiler plate, while at the same time extracting as much from the glass as possible (probably going to use conveyor belts). I recently ran across an old goodie that @Tonyroid taught me about using mesh tiles to trap liquids and push them through corners. Figured I'd give it a try as I work on my new power plant.

image.png.972138f5e3e7d74f02c1b18a272b55b7.png

It's pretty dismal right now (this is a few moments after starting it up), but at 4.633kDTU/0.2s, = 23MDTU/s (or a little over 13 steam turbines), I think this has potential (though it will take the heat of running around 5 steam turbines to pull off).  It's just another heat amplifaction device to add to the list. 

I didn't see any thing else that was as extreme as this, and if you can't keep up solid flaking full time, then you get massive conduction heat bleed. So it's very tricky, and not as overpowered as a crude to natural gas generator.  

Conclusion:  The fix to flaking sounds like it has hopefully solved the problems we saw earlier.  Thank you devs! 

Oh, I forgot to add in the heat deletion options.  Flaking ice to water basically doubles heat deletion, so it's an extremely simple way to delete heat. Melting regolith to magma via flaking is extremely bad (costs 5 times the energy), so I don't see any point to doing that. Flaking ice to water is probably the most easily used heat deletion device with the new mechanics, and it's not to terribly overpowered. 

Temp swapping on the other hand... Someone needs to stop @TripleM999 before Borgie eats him. :) 

(Note: This was apparently more of a monologue than a discussion....)

Link to comment
Share on other sites

2 hours ago, mathmanican said:

(Note: This was apparently more of a monologue than a discussion....)



OK, attempting to create a discussion, but I'm afraid it's going to be slightly off topic :)

I've been using the 4 tile vertical 1 tile wide chimneny technique (for lack of better name) for steam turbines output in my current playthough since you've presented it on this forum... well I'm running into the problem that water doesn't flash back to steam. It accumulates and two things happen... either it exceeds 1000kg and the vent overpressures (stopping the turbine) or, with less steam, it all ends up in water and a near-vacuum is created. The second situation is worse, since very few heat is transferred to the very thin steam and the stall is permanent. The first case eventually unclogs for some steam remains and increases in temperature. Slowly heat is transferred to the water (but we know that down the chimney isn't the preferred direction for heat to go). So 1000kg of water that is around 99 slowly creeps to 102.something and flashes back to steam. Needless to say, any kind of temp control freaks out, since you have a long spike in temp followed by the room been filled with 103C steam. (Edit: to put this into perspective, it takes a few cycles to restart, and less to stop again).


Of course I've tried switching from temp to pressure sensors, basicly stopping the turbine before it happens, as the less water to flash  and the more steam you leave around, the faster it flashes back to steam.

All that said, my question is more on the line, I've seen you use this setup everywhere, did ever encounter such problems? It seems much worse btw if you have multiple turbines (my guess would be that I need to split their outputs instead of collecting them in one pipe).


In some applications I've found it very usuful, as it doubles down as a split turbine setup. E.g. if you run a pipe of hot petroleum below the turbine and partially down the chimney (I moved the turbine vent up next to the ceiling), it works like a charm since the petroleum heats up the water at the bottom and it never stays liquid for long, and petroleum comes out well below 125C. 

Link to comment
Share on other sites

I tried liquid flaking in a sandbox and it worked like this.

aaa.thumb.png.2b5e44d6fe0e1d4e35b089dfd4352e4c.png

It is understandable that liquid flaking produces 5 kg of vapor below.
However, why did the remaining 995 kg of water change from 90℃ to 193℃? Is this the so-called temperature swap bug?
When the water was pushed up, the temperature of the 10 kg steam that was originally there was swapped, and it suddenly rose to 193°C. Is that correct in that way of thinking?

This may be a rudimentary question, as I don't understand much about recent heat-related discussions.

Link to comment
Share on other sites

1 hour ago, kbn said:

However, why did the remaining 995 kg of water change from 90℃ to 193℃? Is this the so-called temperature swap bug?

It is not, it looks like another kind of bug, the temp swap works horizontal and between tiles of the same gas. But if i remember right, flaking should influence the donors temperature, and NOT the parents one. :shock:

In addition i retried your experiment, and got 196.7°C for the 995kg water. This is maybe, where @mathmanican got his surplus of energy from in his turbine experiments. Mmmh, 1537.4MJ before vs 1981.2MJ.

Link to comment
Share on other sites

32 minutes ago, TripleM999 said:

it looks like another kind

You may have a candidate to officially take on borgie 

7 hours ago, TheMule said:

ever encounter such problems?

Those designs assumed constant uptime and were for testing. The conveyor bridge was made of thermium to boil water. The key to a good design requires both it's ability to reboil and to reduce temp swapping. 

My real hope is by midweek we can ignore all of this and the bug is fixed.

Link to comment
Share on other sites

3 hours ago, kbn said:

When the water was pushed up

I believe the problem here is the vacuum tile along with a temp swap. Try painting 1 g of steam above the 10g. Then the water should stay put and steam move up. I only attempted horizontal liquid flaking designs.

Looks like this thread is far from closed. 

Link to comment
Share on other sites

17 minutes ago, mathmanican said:

I believe the problem here is the vacuum tile along with a temp swap. Try painting 1 g of steam above the 10g. Then the water should stay put and steam move up. I only attempted horizontal liquid flaking designs.

Looks like this thread is far from closed. 

No, vacuum is not the cause. The same is happening, when the top tile is filled with steam too. I even used 10kg of steam on both tiles. After that top tile was 20kg, and the water was a little bit "cooler" at 196°C, but behavior was the same with the 5kg steam below and the much heated water.

Link to comment
Share on other sites

This mechanic may be tough to track down as the liquid flaking algorithm appears to have a mechanic in play that throws the parent material in lots of directions. It behaves differently on different ticks though may be systematic rather than random. I am guessing the devs want to simulate violent phase change reactions like oil and water spattering when steam is formed. 

I propose we call the mechanic splattering and then use all the language attached with this connotation. 

I stumbled on this last week and explored it a tad and posted in the steam turbine heat deletion thread. The additional 10g needed (5010g) for liquid flaking is probably to allow splattering to happen. The splattered liquid is completely predictable but walls and other liquids push liquid in fun ways.

It looks like in a liquid flaking event that the parent must move, though that move may occur before flaking happens and then get pushed back instantly (which means the move is never graphically shown). The fun part in @kbns example is that the parent enjoyed a pleasant temp reset upwards. 

3 hours ago, TripleM999 said:

This is maybe, where @mathmanican got his surplus of energy from in his turbine experiments.

Since my liquid always was 2000g and changed in one tick, I don't think this is it. 

Link to comment
Share on other sites

29 minutes ago, mathmanican said:

The fun part in @kbns example is that the parent enjoyed a pleasant temp reset upwards.

I have the gut feeling THIS provides for compensation of heat deletion, when using crude oil. The crude pushes the materializing water one tile upward into the steam, where the water inherits the steam temperature instead of just conducting.

29 minutes ago, mathmanican said:

Since my liquid always was 2000g and changed in one tick, I don't think this is it.

I don't think, flaking is necessary for this mechanic.

Link to comment
Share on other sites

Here is the correct thread and link to my brief experimentation with splattering. 

 

2 minutes ago, TripleM999 said:

The crude pushes the materializing water one tile upward into the steam,

That should be easy to test. No ONI access now. If it is true then venting water over a mesh tile where crude lies in the mesh and petro over the vent (one tile wide column) with two tiles of steam above petro should allow us to make massive amounts of heat.

Link to comment
Share on other sites

21 minutes ago, mathmanican said:

That should be easy to test. No ONI access now. If it is true then venting water over a mesh tile where crude lies in the mesh and petro over the vent (one tile wide column) with two tiles of steam above petro should allow us to make massive amounts of heat.

Does not work. Water pushes the petro one tile up, when materializing in one tick. Next tick both swap places with normal conduction happening. No pushing of water into the steam with massive heat win. :-(

Link to comment
Share on other sites

6 minutes ago, TripleM999 said:

No pushing of water into the steam with massive heat win.

How as about with 5 turbines venting, forcing flaking. 5kg will flake but the other 5 get a temp reset?

If that works then packet stacking has a new use.

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...