Recommended Posts

bebar69    21

Hello all,

I disinter this old archive post for newest people and others ;)

 

Edited by bebar69

Share this post


Link to post
Share on other sites
Candide    16

Some of this is clearly outdated. Specifically I am sure that pipes work differently now. At the time of this post the radiant pipes did not even exist.

However this is still a good starting point and could largely still be correct. Just note that insulated pipes actually insulate, contrary what the old post said.

Let me know, if something else changed. Would be interesting.

Share this post


Link to post
Share on other sites
wachunga    194

The wiki page on this stuff is pretty good now and includes the changes since that original post.

https://oxygennotincluded.gamepedia.com/Thermal_Conductivity

Those editing the page are heroes the community needs but doesn't deserve.

Note that there are some minor details missing, but they aren't very important in the grand scheme of things.

Edited by wachunga

Share this post


Link to post
Share on other sites
Candide    16

The wiki you linked is not consistent.

"Thermal Conductivity" page lists the multiplier of insulated tiles for heat transfer as (2/255)^2. However the insulated tile page lists it as 1/100. The latter being what I found in the code as well. Of course there could be some hidden mechanic in the engine somewhere else. But one of these statements must be wrong/outdated.

Share this post


Link to post
Share on other sites
wachunga    194

The 1/100 is incorrect. While it is indeed in the code, it is not relevant for heat transfers. A dirty little secret is that the dev team isn't particularly competent and there is all sorts of vestigial/deadend code.

You can easily confirm this for yourself. The wiki page even has an example that demonstrates this.

Share this post


Link to post
Share on other sites
BLACKBERREST3    232
10 hours ago, bebar69 said:

I disinter this old archive post for newest people and others

Already in the uni

9 hours ago, Candide said:

Some of this is clearly outdated

I bet it is, but it still caries some relevance to it. The wiki page was built off of a thread that referenced this information. Check the sources on wiki.

Share this post


Link to post
Share on other sites
avc15    416

Another few things changed since the referenced post was made.

At one point in development, heat transfer between two tiles always used the lower of two neighboring tiles' thermal conductivities. There were some issues with this, and it came a bit to a head when Klei introduced radiant pipes & vents.

At some other point in development, klei decided to try using the average of two neighboring materials' conductivities. The results were kind of disastrous.

At a later time, klei changed things again so that heat transfer used the log-average of neighboring tiles' thermal conductivities. Except in the case where heat exchange was happening between an object with the "insulated" property, and then the lowest of the two neighboring conductivities was used.

Actually approach #3 there worked pretty well, and I don't recall seeing any patch notes indicating it had been changed again. But I've also seen some discussion that makes me believe that it's either fallen out of common knowledge or other people think it's gone back full circle at some point.

Would be interested in knowing what it is now.

Edited by avc15
  • Thanks 1

Share this post


Link to post
Share on other sites
Chintam    13
18 hours ago, avc15 said:

At a later time, klei changed things again so that heat transfer used the log-average of neighboring tiles' thermal conductivities. Except in the case where heat exchange was happening between an object with the "insulated" property, and then the lowest of the two neighboring conductivities was used.

 

That's not true, at least not for solid tiles. The geometric mean of two k-values are used.

I did a quick test in sandbox with Iron ore and refined iron, with temperature difference of 20C, and 100kg.

With log-average the Increase in temperature after 1 tick should be:

q = k_log * dT * 0.2 *1000 

q = (55-4)/(ln(55)-ln(4)) * 20 * 1000

q = 77.8 kJ

 

So the change in temperature should be:

dT = q/(cp*m)

dT = 77.8/(0.449*100)

dT = 1.7C

And with geometric mean it you get:

q = k_geom * dT * 0.2 *1000 

q = sqrt( 4*55) * 20 * 0.2 * 1000

q = 59.3 kJ

Change in temperature: 

dT = q/(cp*m)

dT = 59.3/(0.449*100)

dT = 1.3C 

From my test, you can see that the temperature changes by 1.3c, so the geometric mean is used. 

Spoiler

image.png.77c7897cfab3f714bed728345bd9b9fe.png

 

  • Like 1

Share this post


Link to post
Share on other sites
avc15    416
1 hour ago, Chintam said:

 

That's not true, at least not for solid tiles. The geometric mean of two k-values are used.

 

Yeah, I'm not a mathematician, but this scans. Geometric mean makes sense.

Edit: here's a link to the patch drop in question. There's some discussion about exactly what a log-average is, and that it's actually the same thing as a geometric mean. But I think geometric mean can be expressed as an exponential of a geometric mean of logarithms, which isn't quite the same thing.

Anyway, log-average is actually applicable to real heat transfer and mechanical engineering for heat exchangers - but I think maybe someone at Klei mixed up two things. However, the results will be similar.

Edited by avc15

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