Jump to content

How does heat conducts in the game?


Recommended Posts

3 minutes ago, heckubis said:

and the 3rd dimension in this game is density

I don't wanna disagree with you, and I can't agree, because we have pipes in the game, well, they are not so flat)))I know I know, but really, look on image of the pipe, or storage compactor everything have something like we call 3D. So we can take your or we can take mine theory, why not.

Well, I've amazing story for you then:

Imagine we have let's say for now 2D world, and some scientist will try to understand 3D barrel, what he will see at start? It could be circle or it could be rectangle, after some time he will start do measures of circles and they all will be same and at some measure he will got nothing, but with rectanles it will be line on the start and wide rectangle on the middle of measures and again line at the end. But to do all of those measures he will spent some time, so time is dimension too, hehehe. So even for 2D world if creatures of this world have time they living in 3D. And we living in 4D dimension, I mean we - people.

Ok, now imagine if you can see objects in time not like we do but at the start and to the end. How is that? Let's say you can see barrel at the start when it was melted metall on the plant and to the end when it go on reprocessing plant and became liquid metal again. IT will be 5D, hehehe.
Now imagine you can see all what can happen and not only in one string of life but in many of them, you split barrel at the middle of it's life and look what happen next etc. and you can see all string of lifes of this barrel, in one moment just when you look on it, instantly can see all and right now. So you 6D.
I know we have 9D, you can watch what mean 9D, hehehe, but even if you can see in 6D your intelligent cannot be able to understand people any more, and people wont be able to understand you, it will be like speech between stone and human, hehehe. I'm crazy russian, hehehe. ok it's just theory.

Link to comment
Share on other sites

yes I agree with parts but the reason I said density was the reason I see it as the third dimension. is because one can easily see a standard for the other two axis being horizontal and vertical your standard x/y. All objects in the world have a weight weight cant exist in 2 dimensions only image.

 time is a measurable dimension separate from either of the first 3. differences in the state of the moment at observable as time

the ability to observe in and of itself is not a dimension but a state of consciousness. no one shares the same consciousness so no real dimensional equation can be derived from it(I'm an Eclectic Witch so I do understand your secondary view on it but your mind is only processing the information its perceiving in away that conforms to the reality its subjected to so in different conscious states we separate ourselves from that 4d reality and observe from separate similar state)

 

 

 

Link to comment
Share on other sites

well I could explain consensus reality VS.  perspective reality reasons for events like the mandala effect. Science is just starting to understand the super state of the universe and the existence of parallel realities in a finally applicable to science kind of fashion with super computers the higgs bozzon and the large hadron collider so most of what id say would make sense as that its more like music than science is ready to understand and things that share the same harmonics have more parallels across more of the superverse

Link to comment
Share on other sites

Heat spreads like how gases spread.  Vertical first than horizontal.  Horizontal is always slower.  This is why you see a heated column of gas.

As for thermo conductivity.  Maybe @Risu can paste for us the code that the game uses.  It is no use to guess at the equation.

It is clear though that temperature change is modulated by thermal conductivity.  My best guess is it is a ratio between the materials with the lower thermal conductivity on the top.

So something like this in an "enclosure."  All temperature in Kelvin.

Material A: TempA

Material B: TempB

We shall assume that the length dimension is 1.

EnergyA: TempA * Heat Capacity_A * MassA

EnergyB: TempB * Heat Capacity_B * MassB

Total Energy = EnergyA + EnergyB;  Average Energy = Total Energy / 2

If the system is allowed to exchange heat until it reaches equilibrium, the two materials must reach the same temperature and have the same energy.  This is the Average Energy.  To compute this, we have to assume an average heat capacity as well as total mass.

TempEq = Average Energy / {[(Heat Capacity_A + Heat Capacity_B)/2] * (MassA + MassB)}

TempGradA = TempEq - TempA.  This is the temperature difference in Kelvin for material A.

TempGradB = TempEq - TempB.  This is the temperature difference in Kelvin for material B.

The sign of TempGradA/B will dictate the "flow" of energy.  The question now is how fast?  This is modulated by the thermal conductivity with the lowest thermal conductivity dictating the rate between Material A and Material B.  This is assuming simple physical model.  Suppose CondB is < CondA and TempGradA < TempGradB, then energy flow could be flowrate = abs(Average Energy - EnergyB) * CondB * TempGradB.  This is then added to Material A where New_EnergyA = Energy A + flowrate.  New_TempA = New_EnergyA/(Heat Capacity_A * MassA).

 

Of course, this is all heresay until we get actual code.

 

Link to comment
Share on other sites

2 hours ago, Nativel said:

Yep, it's something like 90% of thermal energy goes up, and 5% to side out. And one more think at the end of test, we can see that heat go slightly more on left side.
I saw it before, with gases, carbon dioxide goes down in oxygen, but it's goes slightly on right side, I suppose we have centr of the mass in this game and it's in bottom-bottom slightly right side. So cold and heavy wight gases will go bottom-bottom-slightly right and heated and light weight gases go upper-upper-slightly left.

its coriolis force and is diagonal, co2 bottom right, hydrogen top left. goes up/down if blocked to left, now in thermal upgrade was slower in layers

Link to comment
Share on other sites

6 minutes ago, Risu said:

I don't feel like brushing up on x64 assembly code.
 

Oh come on.  It can't be that bad.

Also, I have a feeling from watching gas tiles that the neighbors isn't 8 but 4.  Up, down, left, right.  The diagonals do not count.  After all, if they do, gasses across diagonals in diagonal access hacks will heat up or cool down.  Since they don't, the neighbors must be 4.  This is actually confirmed in a sense that corner gas tiles are the slowest to change temperature.

Link to comment
Share on other sites

5 minutes ago, Octyabr said:

Ugh... This is why I hoped that this game had all their game mechanics in a scripting language like Don't Starve.

I surely hope not.  It has no performance, which is dearly needed in physical simulation.

Link to comment
Share on other sites

3 hours ago, Fatmice said:

EnergyA: TempA * Heat Capacity_A * MassA

EnergyB: TempB * Heat Capacity_B * MassB

Total Energy = EnergyA + EnergyB;  Average Energy = Total Energy / 2

If the system is allowed to exchange heat until it reaches equilibrium, the two materials must reach the same temperature and have the same energy.  This is the Average Energy.  To compute this, we have to assume an average heat capacity as well as total mass.

TempEq = Average Energy / {[(Heat Capacity_A + Heat Capacity_B)/2] * (MassA + MassB)}

Average energy have no proportion in material mass and we don't have proportion in TempEq formula with is wrong, so we can take 1 gramm of ICE(0,001kg) at -200C and 1000kg of water 20C, and let's calculte what happen with them on your formula:

-200*2,05*-0,001=-0.41 for ICE

20*4,18*1000=83600 for Water

Now Total -0,41+83600=83599,59 Average 83599,59/2=41799,795 no proportion of mass we just split on 2.

Temp EQ=41799/(((2.05+4.18)/2)*(0,001+1000))=13,42C Still have no proportion of mass in this formula and because of that we've got this.

Have you belive 1 gramm of ICE could cool down 1000kg of water to the 13,41C from 20C?

Now let's calculate with proportion:

2.05*0,001=0.00205 for ICE total heat capacity

4,18*1000=4180 for water heat capacity

Now heat capacity proportion:

Total heat capacity 4180+0.00205=4180.00205(100%) 

For ICE in % it will be 0,00205/4180.00205*100 = 0.000049043%

For water in % it will be 4180/4180,00205*100 = 99.99995096%

Now Temp EQ, we have to use heat capacity proportion but not in % ofc so will devide on 100  

Temp EQ = -200C*(0,000049043/100)+20*(99,99995096/100)=19.99989211C with I belive more, cose we have 1 milllion piece of ice mass in water mass.

To make it in one formula it will be like this:

TempEQ = T1*(HC1*M1/(HС1*M1+HC2*M2))+T2*(HC2*M2/(HC1*M1+HC2*M2), where 

T1 - temp of first material

T2 - temp of second material

HC1 - Specific heat capacity of first material

HC2 - Specific heat capacity of second material

M1 - mass of first material

M2 - mass of second material

Wanna some more calculations, here file where you can place different mass of ICE and water with different themeratupe and watch how your formula works and mine, here you go:

tempEQ.ods

Link to comment
Share on other sites

Your math example is wrong because the temperature should be in Kelvin, no negative temperature unless you like to use absolute value everywhere.  I stated at the very top of the post.  Also, what I proposed was something I think was at work.  I do not know if what I wrote is right and the likely hood of it being right is dim to none.  It is a waste of time to try and derive the actual equation.

Link to comment
Share on other sites

3 hours ago, Nativel said:

TempEQ = T1*(HC1*M1/(HС1*M1+HC2*M2))+T2*(HC2*M2/(HC1*M1+HC2*M2), where 

Your formula looks right.  This computation is similar to conservation of momentum where specific heat and mass contribution has proportional distribution of energy.  Whether the game uses this particular formula is unknown.

 

Link to comment
Share on other sites

I don't know if the game follows thermodynamics exactly, but there should be another step in melting ice. It doesn't just jump from ice to water. At 0C, it absorbs heat for a time until all the ice becomes water, at which point it will start to rise in temperature again. (See graph below) At melting point, there's a value Heat of fusion that should be applied to the mass of ice you're melting.

I12-20-phasechange.jpg

The ice absorbs energy to become water in this manner:

Step 1: (a to b in graph) Ice at -10C to 0C = (mass of ice) * (specific heat of ice) * (temp change) = (1000kg) * (2.05) * (0 - -10) = 20,500 kJ
Step 2: (b to c in graph) Ice at 0C to water at 0C  = (mass of ice) * (specific heat of fusion of ice) = (1000kg) * (334, yes! it's that high) = 334,000 kJ
Step 3: (c to d in graph) Water at 0C to water at ___ temperature = (mass water) * (specific heat water) * (temp change) = (1000) * (4.18) * dT = 4,180*dT

Assuming you want to heat 1000kg of ice from -10C to 21C, you will need this amount of energy:

Step1: 20,500 kJ
Step 2: 334,000 kJ
Step 3: 4,180(21)kJ = 87,780
------------------------------
TOTAL 442,280 kJ

A kilogram of water can provide 4.184 kJ of energy per degree celsius change in temperature... so to get 442,280kJ, just plug that energy back in to the equation:

(mass of water) * (specific heat of water) * (temp change) = 442,280 kJ

If you want to start with 1000kg of water:

1000kg * 4.18 * dT = 442,280 kJ

dT = 105.8 ...you need a temperature change of 105.8 Celsius... which is impossible LOL because there will be another phase change if you do this

You either need to increase the mass of water for heating, or start with steam to get more heat.

Link to comment
Share on other sites

It does not use heat of fusion or heat of vaporization.  There's no concept of entropy.  Pressure and volume is just mass.  How much mass there is of something in some tile.  It does not follow thermodynamics at all other than that heat flows between hot and cold objects at a certain rate dictated by the thermal conductivity.  It not much use to apply actual thermodynamic to the game anyway...people would find it punishing, aggravating, and perhaps boring.

Link to comment
Share on other sites

 

7 hours ago, Fatmice said:

because the temperature should be in Kelvin

no it's not, if you will use Celsius you will gain Celsius as a result, if you will use Kelvin, you will gain Kelvin as a result, because it's familiar degree scale, the difference is only 273.15 degrees. But it won't work with Fahrenheit, hehehe, I hope you know why,

7 hours ago, Fatmice said:

Your formula looks right. 

Thank you. And yep, I know it's could be different in the game calculation.

 

3 hours ago, applebottom said:

dT = 105.8 ...you need a temperature change of 105.8 Celsius... which is impossible LOL because there will be another phase change if you do this

Look, you just type about (specific heat of fusion of ice) = (1000kg) * (334, yes! it's that high) = 334,000 kJ and now you think it's impossible because when water became liquid we have different formula. So remuve your 334,000 kJ then and you will gain dT you looking for, or I don't know what are try to do.

 

 

Link to comment
Share on other sites

6 hours ago, Nativel said:

Look, you just type about (specific heat of fusion of ice) = (1000kg) * (334, yes! it's that high) = 334,000 kJ and now you think it's impossible because when water became liquid we have different formula. So remuve your 334,000 kJ then and you will gain dT you looking for, or I don't know what are try to do.

Sorry, I don't understand your comment...?

It's impossible to have a temperature change of 105.8C in just one equation because if you use a temp change of 105.8, you will encounter another phase change. You are somewhere between points C and D on the graph I provided, which can only go a maximum of 100C temperature difference. Once you hit that 100C, you will have another equation for the phase change. This time, it uses latent heat of vaporization.

HEAT = (mass of water) * (latent heat of vaporization)

In layman's terms, the equation says "This is the amount of heat you need to turn water at 100C to steam at 100C".

This is actual chemistry. But as @Fatmice says above, the game doesn't follow thermodynamics exactly. So there's no point in me holding a chemistry class in this forum.

Link to comment
Share on other sites

I've done more "experiments" to try and deduce the thermodynamics of this game.  Suffice to say, a picture is emerging.  Temperature change seems to be first order with respect to time, i.e. gif.latex?T%3DT_%7B0%7De%5E%7Brt%7D .

Also, it appears that for two elements in an enclosure, gif.latex?T_%7Beq%7D%3D%5Cfrac%7BT_%7B1%7Dm_%7B1%7Dc_%7B1%7D%7D%7Bm_%7B1%7Dc_%7B1%7D&plus;m_%7B2%7Dc_%7B2%7D%7D&plus;%5Cfrac%7BT_%7B2%7Dm_%7B2%7Dc_%7B2%7D%7D%7Bm_%7B1%7Dc_%7B1%7D&plus;m_%7B2%7Dc_%7B2%7D%7D

For n elements in an enclosure, gif.latex?T_%7Beq%7D%3D%5Csum_%7Bi%7D%5E%7Bn%7D%5Cfrac%7BT_%7Bi%7Dm_%7Bi%7Dc_%7Bi%7D%7D%7B%5Csum_%7Bi%7D%5E%7Bn%7Dm_%7Bi%7Dc_%7Bi%7D%7D, where T is temperature, m is mass, c is heat capacity

Link to comment
Share on other sites

23 minutes ago, Begeesy said:

Im still waiting for someone to bring up actual code instead of bragging that they stayed awake in chemistry class

That probably isn't going to happen anytime soon. Allow me to explain.

Klei has built the game so that part of it runs in the Unity engine scripting system, which is .Net, so it's compiled MSIL code. This can easily be reverse engineered because MSIL decompiles straight back into C# with no loss. A lot of the time you even get back meaningful variable names.

The .Net half of the code sets up a 'snapshot' of the map and loads it into a buffer. That buffer is then passed into a native windows DLL, which was most likely written in C++. That native DLL contains the actual 'simulation' code that manages temperature, pressure, gas flow, etc. It was most likely done that way to maximise the speed of the simulation.

Native dll's can't be decompiled. They have to be disassembled to assembly language, and no meaningful metadata like variable names are retained. It takes a novice reverse engineer to decompile a .Net library and make sense of it. It takes a master to do the same with a native library. Even then, it could take weeks of work to figure out the actual algorithm (worst case scenario). Despite popular belief, crackers with those kind of skills (and that much free time) are extremely rare.

Link to comment
Share on other sites

2 hours ago, Begeesy said:

Im still waiting for someone to bring up actual code instead of bragging that they stayed awake in chemistry class

Some things can be deduced from observations.  It is not that bad what I've written.  The bad part still hasn't come yet and hopefully won't ever materialize since the physical simulations look simple.

 

1 hour ago, Erasmus Crowley said:

Native dll's can't be decompiled. They have to be disassembled to assembly language, and no meaningful metadata like variable names are retained. It takes a novice reverse engineer to decompile a .Net library and make sense of it. It takes a master to do the same with a native library. Even then, it could take weeks of work to figure out the actual algorithm (worst case scenario). Despite popular belief, crackers with those kind of skills (and that much free time) are extremely rare.

There are decompilers that can spit out some sensible C++ code if the dll isn't obfuscated.  Since we are still in early stage, maybe they haven't strip all of the symbols from the libraries and might even left debug information in there.

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