Cheerio

[Game Update] - 265438

Recommended Posts

3 minutes ago, pnambic said:

Serves me right for trusting that Wiki. ;) Thanks! The radiance factor is insane.

conductivity examples.png

Sorry, I did a roughly check again just now. I found results are more complex than I thought. Insulated pipe 0.03125(1/32), radiant pipe 32, insulated tile 0.01, Thermo Regulator 5, LogicGate 0.05.

  • Like 1

Share this post


Link to post
Share on other sites
Gravityx    24
4 minutes ago, pnambic said:

Serves me right for trusting that Wiki. ;) Thanks! The radiance factor is insane.

conductivity examples.png

Very nice stuff.

 

Its very clear why the Arithmetic mean caused such chaos. From my eyes, looks like geometric mean is the clear choice.

Share this post


Link to post
Share on other sites
QuantumPion    62
2 hours ago, KittenIsAGeek said:

Electrical engineer here.. Wouldn't thermal conductivity be more like resistors in parallel?  If that's the case, then I can see why heat is ignoring the insulators.  1/1 + 1/1000000 = 1.000001 = 1/R-total, so R-total would be 0.999999 -- Basically 1.

No, wikipedia has a good explanation here. And it makes sense if you think about it in terms of flowing water. If you have a pipe with a constriction (i.e., a bottleneck), it doesn't matter how wide the pipe is at either end, the total flow rate is limited by the flow rate of the constriction.

https://en.wikipedia.org/wiki/Lumped_element_model#Thermal_purely_resistive_circuits

 

A

Share this post


Link to post
Share on other sites
QuantumPion    62

I don't understand why the devs made this change, what was the problem they were trying to fix? If you want more thermal conductivity through pipes then what they should do is reduce the mass of pipes. Or simply add in a magical convective heat transfer term to simply boost the heat transfer rate to whatever they want for pipes while leaving tiles and everything else alone.

  • Like 1

Share this post


Link to post
Share on other sites
orost    12

The problem they were trying to fix is that high thermal conductivity didn't ever matter because it was always limited by the lower material. You'd expect constructions involving things like tungsten to conduct heat better, but they didn't, except for the highly conductive material conducting with itself. It was lame, and unintuitive, and limited design options. It's definitely good that it's being changed, one way or another.

May I suggest posting the geometric mean proposal on suggestions? I think it definitely deserves attention.

Edited by orost
  • Like 1

Share this post


Link to post
Share on other sites
Kasuha    1,217
8 hours ago, Cheerio said:

Thermal conductivity for heat exchange is now based on the average conductivity of the two elements instead of the minimum. This should improve the temperature exhchange of many things including radiant pipes.

The main issue with pipes was not the lack of combining thermal conductivities (though implementing that correctly would certainly improve the physics of the game too).

The main issue with pipes was the fact that the heat exchange between pipe and its contents was order of magnitude smaller than heat exchange between the pipe and the ambient element. Pipes were always almost the same temperature as the ambient element around them, even with significant temperature difference between them and their contents.

Radiant pipes only improved heat exchange between their mass and ambient element. That was already very good, so no significant improvement could be achieved. But the heat exchange between the pipe and its contents is still as small as ever, even in radiant pipes.

There is either a bug or improper coefficients used in heat exchange between pipes and their contents. Heat exchange occurs through a contact area, and over certain distance. In case of pipes, the contact area should be probably considered the same (inner and outer surfaces are similar) but the distance should be considered much smaller for the contents as it is "densely packed" in the pipe. A regular and especially radiant pipe should always be similar temperature to its contents, not the ambient element.

 

Edited by Kasuha
  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites
Dracian    80

I needed to stop playing a litlle bit and focus on my projects, well this new thermodynamic mess is a good reason to make a pause. See you guys in the next update :)

  • Haha 1

Share this post


Link to post
Share on other sites
Kasuha    1,217
10 hours ago, Cheerio said:
  • Thermal conductivity for heat exchange is now based on the average conductivity of the two elements instead of the minimum. This should improve the temperature exhchange of many things including radiant pipes.

I finally found time and energy to make formal derivation of how the "averaging" should look like (in my opinion, at least). Based on gross simplification, the correct formula is:

c(average) = 2*c1*c2/(c1+c2), or 2/(1/c1+1/c2), true harmonic mean.

The gross simplification is an assumption that when two materials are involved, then half of the "distance" between the "centers of temperature" is traversed through material using coefficient c1, and half of the distance it goes through material with coefficient c2. This assumption is valid when calculating heat transfer between tiles, but is highly questionable when calculating heat transfer between ambient element and pipe. It still could be used in my opinion.

Derivation:

Heat exchange occurs between two temperatures, T1 and T2, through materials with heat transport coefficients c1 and c2, over distance (thickness of insulating material) d, and over area s. For single material, the formula is:

E = c*(T1-T2)*s/d

For two materials, there's another temperature T3 coming into the equation, the temperature on the interface between two materials. And here also comes the assumption that the traversed distance is equal (d/2) for each material

E1 = c1*(T1-T3)*s/(d/2) = 2*c1*(T1-T3)*s/d

E2 = 2*c2*(T3-T2)*s/d

Obviously, E1=E2

From first equation, we can calculate formula for T3:

T3 = T1-E1*d/(2*c1*s)

With E1=E2, we can plant the second equation in:

T3 = T1-(2*c2*(T3-T2)*s/d)*d/(2*c1*s) = T1 - (T3-T2)*c1/c2

and finally

T3 = (c1*T1 + c2*T2)/(c1 + c2)

Transferred energy then comes as:

E1 = 2*c1*(T1-((c1*T1 + c2*T2)/(c1 + c2)))*s/d = (2*c2*c1/(c1+c2))*(T1-T2)*s/d

from which we can pull the "average" coefficient

c(average) = 2*c2*c1/(c1+c2)

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

WtFOPgU.png

You are mostly correct. At least one of the biggest problems with pipes was that the transfer of heat between pipes and its contents was based on the surrounding material. This can been seen here with obsidian pipes not changing temperature at all in a vacuum. Since gasses (even hydrogen) have a much lower thermal conductivity compared to solids and liquids, heat transfer was slower than it should have been. I'm not sure when, but this was changed in the last few days on the live patch. If I run that save now (on live, not beta), the pipes cool down in seconds.

Also, pipes do not transfer heat between themselves, like power cables but unlike tiles. This means an empty pipe is useless at radiating heat and never changes temperature in a vacuum even when connected to extreme heat or cold. This is probably due to performance optimization as heat conduction is one of the few things that has to be recalculated every step for every tile on the map.

I agree that the new formula should be c(average) = 2*c2*c1/(c1+c2).

Edited by natemiddleman
  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, KittenIsAGeek said:

Electrical engineer here.. Wouldn't thermal conductivity be more like resistors in parallel?  If that's the case, then I can see why heat is ignoring the insulators.  1/1 + 1/1000000 = 1.000001 = 1/R-total, so R-total would be 0.999999 -- Basically 1.

In here, thermal resistance works like resistors in series. But be careful, thermal resistance and thermal conductivity are inversely proportional, so the relationship between thermal conductivities should like this:

Total thermal resistance=thermal resistance A + thermal resistance B=k1* [(k2/thermal conductivity A) + (k3/thermal conductivity B)],(k are regulate factors) 

And the heat current should roughly like this

Heat current=k4 / Total thermal resistance∝≈ k5/ [(1/thermal conductivity A) + (1/thermal conductivity B)] = k5*(thermal conductivity A*thermal conductivity B)/(thermal conductivity A+thermal conductivity B)

===>K*A*B/(A+B), (k are regulate factors) 

In terms of results, the relationship between thermal conductivities is similar to resistors in parallel.

Share this post


Link to post
Share on other sites
QuantumPion    62
7 hours ago, Kasuha said:

The main issue with pipes was not the lack of combining thermal conductivities (though implementing that correctly would certainly improve the physics of the game too).

The main issue with pipes was the fact that the heat exchange between pipe and its contents was order of magnitude smaller than heat exchange between the pipe and the ambient element. Pipes were always almost the same temperature as the ambient element around them, even with significant temperature difference between them and their contents.

Radiant pipes only improved heat exchange between their mass and ambient element. That was already very good, so no significant improvement could be achieved. But the heat exchange between the pipe and its contents is still as small as ever, even in radiant pipes.

There is either a bug or improper coefficients used in heat exchange between pipes and their contents. Heat exchange occurs through a contact area, and over certain distance. In case of pipes, the contact area should be probably considered the same (inner and outer surfaces are similar) but the distance should be considered much smaller for the contents as it is "densely packed" in the pipe. A regular and especially radiant pipe should always be similar temperature to its contents, not the ambient element.

 

I agree with this completely. However the solution should be to adjust the convective heat transfer for the pipe’s contents, not apply weird averaging of coeffients which results in non physical and undesired side effects.

Share this post


Link to post
Share on other sites
5 hours ago, Kasuha said:

c(average) = 2*c1*c2/(c1+c2), or 2/(1/c1+1/c2), true harmonic mean.

I think the dilemma is, k*c1*c2/(c1+c2) matches the reality well, but it doesn't show a significant difference with choosing lower conductivity.

Lets assume k=2, c1>c2, and c1/c2=x, so  k*c1*c2/(c1+c2)=2*c1*c2/(c1+c2)=2x/(1+x)*c2

since x>=1, k*2*c1*c2/(c1+c2)∈[c2,2*c2)

 

Harmonic mean can't help the radiant pipe dilemma, but Geometric mean can. However I think a bonus factor would be the best solution.

Share this post


Link to post
Share on other sites
orost    12

Thinking about this again, wouldn't a real-world radiant pipe be a radiator, getting its increased thermal exchange from large surface area? Then the correct way to implement radiant pipes would be to leave their conductivity the same as regular pipes, and give them a separate multiplier to heat transfer, representing large surface area, as a bonus factor, as R9MX4 says. Apart from fixing any bugs regarding heat transfer between pipe and its contents.

Edited by orost

Share this post


Link to post
Share on other sites
Kasuha    1,217
39 minutes ago, R9MX4 said:

Harmonic mean can't help the radiant pipe dilemma, but Geometric mean can. However I think a bonus factor would be the best solution.

The problem with radiant pipes is in heat exchange between the pipe and its contents. I suspect it has nothing at all to do with the heat transfer coefficients.

Share this post


Link to post
Share on other sites
15 minutes ago, Kasuha said:

The problem with radiant pipes is in heat exchange between the pipe and its contents. I suspect it has nothing at all to do with the heat transfer coefficients.

I did a test just now. Conductivity makes a difference.

Top pipe is made by Tungsten, and the bottom is Wolframite. They have same heat capacity but different Conductivity

2.png.f3fc505f02ac0dd18a643e4a9e91b6e0.png3.png.31e4482673c1b2bfa437e3931602d513.pngpipe test.sav

Share this post


Link to post
Share on other sites
KiPhemyst    14

To me it seems that temperature calculation needs surface area to be a factor. Two tiles touching eachother would have a limited surface area, maybe let's say 1mwhile a pipe which is supposed to be a 3d object surrounded by gass might have a larger surface area, therefore faster heat transfer between it and any gas it is touching and for radiant pipe, you could treat it as a radiator which in real life are made with 'fins' and bends and all sorts of shapes to increase the surface area to maximise temperature transfer and just give it a very large surface area value.

Share this post


Link to post
Share on other sites
wachunga    187

I am very leary of the unintended effects of this change. But the content to pipe transfer (which is what was wrong with pipes) has been improved. For that transfer, pipe material (granite vs sandstone even) now matters (before it didn't) and pipe type (radiant vs normal) now matters (before it didn't). Overall balance probably isn't what it should be, the pipe to surroundings transfer is still much faster than the contents to pipe transfer. But at least you can now improve that transfer, before you could only make the radiator ridiculously long.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now