Jump to content

Part heating rate


Recommended Posts

Patch notes have this to say about revisions to the thermal system

Thermal:
* 1.0.3 features a revised thermal mechanic to better balance heating/cooling between pods and spaceplanes.
* Parts now have separate internal temperature and skin temperatures.
* Skin temperature is the temperature used for radiation and convection, as well as engine exhaust damage.
* Part internal temperature is increased by modules that generate heat and is used for part-part conduction.
* Part internal and skin temperature also conduct between each other.
* Solar panel efficiency is now calculated based on skin temperature.
* When in an atmosphere, there is a divide between the exposed (to convection) and unexposed skin temperatures.
* When not in an atmosphere, only one skin temperature is tracked; the two temperatures are unified on atmosphere exit.
* Radiative outflux and influx is tracked separately for exposed and unexposed areas of skin (since the shock temperature is much higher than ambient temperature).

So how does each source of thermal energy (flux) affect internal temperature and skin temperature now?

Debug menu has these values:

(Skin/Internal) Temperature: Temperature in Kelvin

(Skin/Internal) Thermal Mass: Measure of how much energy it takes to increase temperature in kJ/K. Temperature * Thermal Mass is the thermal energy in the part in kJ

Conductive Flux: Thermal energy transfer rate from connected parts and atmosphere via conduction. How is it split between internal temperature and skin temperature?

Convective Flux: Thermal energy transfer rate from atmosphere via convection. Main source of vessel atmospheric/reentry heating, transfers only to skin?

Radiative Flux: Thermal energy transfer rate via electromagnetic waves. Main source of vessel heating/cooling outside atmosphere. Transfer through exposed skin?

Internal Flux: Thermal energy generated or dissipated inside a part (eg. engines generate heat when burning fuel).

SkinToInt Flux: A constant that controls the transfer of energy between the skin and interior? How is it determined?

From above information

Internal Heating Rate: (ConductiveFlux + InternalFlux + SkinToIntFlux * (SkinTemp - InternalTemp)) / InternalThermalMass

Skin Heating Rate: (ConvectiveFlux + RadiativeFlux + SkinToIntFlux * (InternalTemp - SkinTemp)) / SkinThermalMass

This doesn't match what's occurring in game though (I suspect a misunderstanding of the SkinToInternal Flux constant) and I can't get the debug menu information to match up for skin heating rate

Edited by Crzyrndm
Link to comment
Share on other sites

As to the list, conduction is only for parts (and skins), not environment. Environment effects come via radiation (sun/body flux, background temperature) and via convection (air/water).

Conductive flux is internal-internal flux, and it and internal flux and skintoint flux are the only things that modify internal temperature; convection and radiation modify skin temperature (as does skin<->skin conduction, which isn't listed, and pyrolysis flux from ablation).

Radiation is black-body radiation. Total flux =

emissivity * (solar flux * solar flux area + body flux * body flux area - sigma * area * (skin temp^4 - background temp^4))

Note that the lack of multiplication by the temp delta only affects skintoint flux; the other fluxes are (AFAIK) correct, although as mentioned above skin to skin conduction isn't listed.

Link to comment
Share on other sites

skin to skin conduction isn't listed.

So there is internal <-> internal conductivity and skin <-> skin conductivity as separate effects (if so, how to get skin<-> skin flux?), or is skin<->skin conductivity wrapped up in the conductive flux somehow?

- - - Updated - - -

Also, how should skin -> int flux be calculated if it's borked? Is it just: (temp diff) * someFactor?

Link to comment
Share on other sites

There are four conductions, actually

1. internal-internal (different parts)

2. internal-skin (same part)

3. exposed_skin-unexposed_skin (same part) -- only when in atmosphere, when some skin is unexposed to convection.

4. skin-skin (different parts) -- that one's tricky because when in an atmosphere, one or both parts might have a divide between exposed and unexposed skin, so there are really four cases.

Note that when in space, all skin is treated as exposed. Skin temp displayed is the temp of the exposed skin.

skin->int flux is the "some factor" in your expression.

Conduction flux handles all part-part conduction, it looks like (I was wrong before, sorry), so it's the sum of 1 and 4. 3 is (skin temp - part temp) * displayed skinToInt, and the flux of 2 is not shown (or tracked), it's just done.

Link to comment
Share on other sites

skinInternalConductionMult // default = 1.0
skinThermalMassModifier
skinSkinConductionMult // default = 1.0
skinMaxTemp // default = maxTemp

probably valid in the .cfg

Edited by Crzyrndm
Link to comment
Share on other sites

The other look like from DRE. The only one actually present in stock is skinInternalConductionMult.

Is there any official list for modders? I wonder if there is more stock parameters, but unused.

Edited by Psycho_zs
Link to comment
Share on other sites

skinMassPerArea is in fact correct, and defaults to 1kg / m^2 of area.

Anything for fairings will be inside the ModuleProceduralFairing, not in the Part class.

Psycho_zs: Crzyrndm's list is from stock's Part class. Just because a value isn't set in a stock cfg doesn't mean it's not a settable value.

Link to comment
Share on other sites

I was just looking into that myself. So far the only thing that came to mind was this:

Not exactly the most meaningful of variable names :P

I think it's one of two things (but could still be wrong, I haven't bothered testing it anymore since my computer fried):

  • Sets the maximum allowed percentage of the radiators own max temperature that it can fill via the internal flux of the stock radiator module.
  • Affects the sometimes drastic change in thermal mass that radiator panels experience when deployed.

Or maybe both.

Link to comment
Share on other sites

  • 2 months later...

I wonder why I cannot modify skinToInternalFlux parameter? Is it computed from other values?

In other words is there a way to reduce heat moving from skin to internal of the same part without using ModuleAblator (which has something similar but called differently ->reentryConductivity) ?

Link to comment
Share on other sites

add a line to the part's cfg

skinInternalConductionMult = 0.5

that will halve the rate of skin to internal flux. Change the 0.5 to whatever you want.

ModuleAblator won't change the rate at all.

cheers, thx for help. I have tried setting skinInternalConductionMult to really low value. It's ok, however it acts weirdly - namely skin temperature is more or less constant however part's temperature jumps up and down like crazy. Maybe because my skinTermalMass is much higher than part's thermal mass (3x times or so). Also reducing that multiplier to less than 0.1 (0.001 0.0001) seems to not decrease conductivity further.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...