Enceos

[Guide] New temperature rules for parts in 1.0 (1.0.2 updates)

Recommended Posts

So what are the new temperature rules for parts in the new heating mechanic of KSP 1.0?

I've been going through the Squad parts and found some new values.

The Rule of thumb - no part should have its maxTemp above 2000 unless it's a heatshield, reentry pod, or a super hot engine.

Only specific parts should exceed this value, unless you never want your parts to explode during reentry (I advice against it, because it's a bad user experience, people want unshielded stuff to explode in extreme conditions).

1) Squad maxTemp values:

- Heatshields have 3400

- Pods designed for reentry have 2400. Other pods and cockpits, even the MK3 shuttle cockpit, have 2000 maxTemp.

- Fairings and shielded docking port 2400

- Cargo bays 2200-2300 (they're meant to protect the stuff inside)

- Service bays 2600 (they're basically reentry pods for equipment)

- Sensitive equipment 1200

   · wheels

   · science

   · radial batteries

   · probecores (exception: inline probes 2000, sphere 1800)

   · unshielded solar panels

   · external seat

- Subsonic plane gears 1000

- Basic fin 934 (aluminum melting point)

- Intakes: subsonic 1900, supersonic 2000, hypersonic 2100

- Size adapters 2100-2300 (adapters are more exposed to the airflow, thus heat up faster)

- All the engines have 2000 maxTemp (exception: nuclear engine 2500, massive SRBs 2200)

- Everything else 2000 maxTemp (personally I'd tweak down many of those).

1.1) heatProduction of Squad LFO engines does not exceed 375 "Twin-Boar" (which is the fastest to overheat due to its high mass)

LFO:

Skipper 350

Mainsail 196

LV-T45 200

smaller or advanced engines have less heatProduction

e.g. KR-2L+ "Rhino" 140

Liquid Fuel:

LV-N "Nerva" nuclear engine 432

Solid Fuel:

SRBs have a heatProduction of 400-550, thus they're not designed to burn for as long at max thrust.

Physics for engine makers: heatProduction scales with part's mass (i.e. thermalMass). Engines lose heat by radiation, convection and conduction.

Heat loss is proportional to area / mass.

If you increase the mass of engines, they will lose heat slower, thus gain temperature faster for the same heatProduction. In essence, of two engines with the same heatProuction the one with higher mass will overheat faster. The lighter the engine - the more slowly it overheats.

Deep explanation:

Each second, an engine part's heat is increased by:

T/s = heatProduction * currentThrust / maxThrust / flowMultiplier * PhysicsGlobals.internalGenerationFactor * thermalMass

heatProduction is measured in Kelvins/s, although with modifiers (0.03 for the PhysicsGlobals.internalGenerationFactor which is set in the Physics.cfg). You will quickly see that for rocket engines, heat production increases as you go from sea level to vacuum (because thrust increases), and for jets, heat production is linear with respect to throttle no matter the altitude.

flowMultiplier is the jet airflow multiplier. It's the product of evaluating atmCurve on density/1.225, and evaluating velCurve on mach.

----

heatProduction is now scaled by the part's thermal mass (as well as the internal generation factor). So assuming the latter is 1 (it's not, it's something like 0.03) then heatProduction=1 literally means "this engine produces enough heat per second to raise its temperature 1 K per second".

Yet increasing 0.02t of mass 1K means waaaaay less energy than increasing 6t of Mainsail. And that heat (the energy, not the temperature) conducts outward. © NathanKell

2) A new line emissiveConstant was introduced for heat dissipation and varies between 0.1 and 0.95. Can be set above 1.0 to simulate some high tech cooling.

It was given to:

[TABLE=width: 250]

[TR]

[TD]- engines[/TD]

[TD]0.8[/TD]

[/TR]

[TR]

[TD]- SRBs[/TD]

[TD]0.5[/TD]

[/TR]

[TR]

[TD]- Fuel tanks[/TD]

[TD]0.8[/TD]

[/TR]

[TR]

[TD]- Mk2 fuselages[/TD]

[TD]0.8[/TD]

[/TR]

[TR]

[TD]- Mk3 fuselages[/TD]

[TD]0.87[/TD]

[/TR]

[TR]

[TD]- landing legs[/TD]

[TD]0.8[/TD]

[/TR]

[TR]

[TD]- solar panels[/TD]

[TD]0.95[/TD]

[/TR]

[TR]

[TD]- landing gears[/TD]

[TD]0.95[/TD]

[/TR]

[TR]

[TD]- light wings

[/TD]

[TD]0.4[/TD]

[/TR]

[TR]

[TD]- "shielded" wings[/TD]

[TD]0.95[/TD]

[/TR]

[TR]

[TD]- subsonic intake[/TD]

[TD]0.55[/TD]

[/TR]

[TR]

[TD]- supersonic intake[/TD]

[TD]0.7[/TD]

[/TR]

[TR]

[TD]- hypersonic intake[/TD]

[TD]0.95[/TD]

[/TR]

[TR]

[TD]- service bays[/TD]

[TD]0.95[/TD]

[/TR]

[/TABLE]

Physics behind it:

emissiveConstant is the emissivity factor in the black-body radiation equation

flux in W = Stefan-Boltzmann constant * emissivity * area * temperatureK4.

It most certainly cannot be >1 in passive cooling (1 is a perfect black body).

0.95 is the "poor man's heat shield"--non-ablatively shielded parts, like spaceplane wings, have that, that means they radiate away heat very fast, comparatively. Default is 0.4, which is gray. Note that solar absorption appears to equal emissivity (this is why solar panels take in lots of heat from the topside as well as radiating from the underside). © NathanKell

3) Another new parameter thermalMassModifier which defines the speed of heat accumulation in the part, specific heat capacity in other words. The number in this modifier multiplies the existing capacity of the part.

Physics:

All parts have a default specific capacity heat of 800 kJ/tonne-Kelvin defined in Physics.cfg in the root folder (standardSpecificHeatCapacity)

Resources also have their own specific heats defined in ResourcesGeneric.cfg in Gamedata/Squad/Resources (hsp)

thermalMass = dryMass * standardSpecificHeatCapacity * thermalMassModifier + resourceMass * hsp

The thermal mass can be shown in part tooltips after checking it in debug toolbar->physics->thermal

The parameter was given to light parts which should withstand heat better:

[TABLE=width: 250]

[TR]

[TD]- solar panels[/TD]

[TD]2.0[/TD]

[/TR]

[TR]

[TD]- light aero parts[/TD]

[TD]3.0[/TD]

[/TR]

[TR]

[TD]- "shielded" aero parts[/TD]

[TD]4.0[/TD]

[/TR]

[TR]

[TD]- intakes[/TD]

[TD]4.0[/TD]

[/TR]

[TR]

[TD]- landing legs[/TD]

[TD]3.0[/TD]

[/TR]

[TR]

[TD]- landing gears[/TD]

[TD]4.0[/TD]

[/TR]

[TR]

[TD]- service bay[/TD]

[TD]5.0[/TD]

[/TR]

[/TABLE]

It was removed from heatshields in favor of Ablator:

[TABLE=width: 250]

[TR]

[TD]- heatshields                 [/TD]

[TD]0.001[/TD]

[/TR]

[/TABLE]

4) The last new parameter is heatConductivity which defines how fast the part conducts its temperature between adjacent parts. From 0 to 1 the speed increases. The less the number, the better a part protects adjacent parts from its own heat. Your PC's heatsink probably has around 0.7

heatConductivity increases with the area of connection of two parts, as does in real life.

The default value is 0.12 when this line is missing.

It was given to:

[TABLE=width: 250]

[TR]

[TD]- solar panels[/TD]

[TD]0.04[/TD]

[/TR]

[TR]

[TD]- service bays[/TD]

[TD]0.04[/TD]

[/TR]

[TR]

[TD]- "shielded" aero parts[/TD]

[TD]0.06[/TD]

[/TR]

[/TABLE]

5) There's a hidden parameter heatConvectiveConstant which is not used by the stock parts, but is available for modders. It defines how fast a part convects its temperature via surrounding atmosphere. It defaults as 1.0 and can be increased to simulate a wet surface which cools faster in the air.

Splashed-down parts cool much faster.

6) Radiative Area

The game calculates the radiative area of parts from their meshes and is the theoretical area that emits or absorbs radiated heat. Parts emit heat when in shadow and absorb it when in sunlight. Parts with a larger radiative area gain or lose heat faster than those with smaller radiative areas.

​© Red Iron Crown

Radiative area is used for three things:

1. black body radiative emission and reception

2. solar flux

3. body flux (if your current SoI is not the sun, you get reflected solar flux based on body albedo, and emissive flux based on body temperature).

All three occur all the time.

1 is proportional to part temperature4 - background temp4.

2 is proportional to distance to the sun and to unoccluded part area facing the sun.

3 is proportional to distance to the body and to unoccluded part area facing the body.

The density of the atmosphere (if you're in an atmosphere) will also lower the solar and body flux incoming, but raise the background radiation temperature above 4 K. Background temperature is interpolated by density, though not at all linearly, between 4 K and the current external temperature, i.e. shockwave heating is included. © NathanKell

7) Ingame thermal flux

[TABLE=width: 830]

[TR]

[TD]The tooltip of the debug menu contains several thermal outputs:

Temperature

Temperature External (includes the shockwave heat from deceleration)

The flux is measured in kilowatts

‒ negative number is for outgoing thermal power

+ positive number is for incoming thermal power

Conduction Flux - heat transfer between adjacent parts

Convection Flux - heat gain/loss via the help of atmosphere, velocity and surface area

Radiation Flux - influenced by emissiveConstant and surface area;

                ​   radiates heat in shadow, takes heat if sunlit

Internal Flux - heat production of the part itself (e.g. engines, drills...)[/TD]

[TD]r4KCmNs.png[/TD]

[/TR]

[/TABLE]


I decided to make this thread because I believe many modders are having trouble fixing the temps of their parts for KSP 1.0

Big thanks to NathanKell and Red Iron Crown for clarifying many of the new mechanics.

Have I missed anything or made a mistake? please comment in the thread.

Edited by Enceos
1.0.2

Share this post


Link to post
Share on other sites

Thanks for comprehensive guide. Will check my parts to have proper thermal configs.

Share this post


Link to post
Share on other sites
Thanks for the timely job. Exactly what I needed right now.

Thanks to you as well for all the previous help in modelling.

I'm sure i missed something, cause I just started wrapping my head around it.

Share this post


Link to post
Share on other sites

1.1) heatProduction of Squad engines does not exceed 300 (Skipper). Mighty Mainsail has 180 heatProuction. If the heatProduction exceeds these values clustered engines start to burn each other. Note: KR-1x2 "Twin-Boar" has 350 heatProuction, but it has 2 engines clustered and embedded into a fuel tank.

SRBs have a heatProduction of 510, thus they're not designed to burn for as long at max thrust.

I think this part requires much further inspection and detail. The heat production value in the configs doesn't directly correspond to anything happening ingame. There's some funky math done with it that I haven't been able to wrap my head around - definitely not an even remotely linear relationship. There's gotta be exponents, roots and logarithms involved... and possibly even additional internal constants/factors.

Actual heat output ingame is measured as a positive "internal flux" in the respective part, and is visible if you turn on the display of thermal values in the debug menu. For engines, heat production scales linearly with thrust - actual thrust, not throttle setting, meaning that as you rise out of the atmosphere your engines burn hotter.

For example:

- The LV-T45 has just over +7,200 internal flux in a vacuum, or about 36 per kN of thrust. In the config, its heat output is set to 120.

- The LV-N has just over +72,000 internal flux in a vacuum, or about 1285 per kN of thrust. In the config, its heat output is set to 240.

How the heck does that reconcile? I don't understand.

I have forgotten the values, but I tested the 48-7S and the LV-909 as well, and their data points were just as confusing as the two above. Both in relation to each other as well as in relation to the other two.

Edited by Streetwind
Typos, typos everywhere!

Share this post


Link to post
Share on other sites
I think this part requires much further inspection and detail. The heat production value in the configs doesn't directly correspond to anything happening ingame. There's some funky math done with it that I haven't been able to wrap my head around - definitely not an even remotely linear relationship. There's gotta be exponents, roots and logarithms involved... and possibly even additional internal constants/factors.

Actual heat output ingame is measured as a positive "internal flux" in the respective part, and is visible if you turn on the display of thermal values in the debug menu. For engines, heat production scales linearly with thrust - actual thrust, not throttle setting, meaning that as you rise out of the atmosphere your engines burn hotter.

For example:

- The LV-T45 has just over +7,200 internal flux in a vacuum, or about 36 per kN of thrust. In the config, its heat output is set to 120.

- The LV-N has just over +72,000 internal flux in a vacuum, or about 1285 per kN of thrust. In the config, its heat output is set to 240.

How the heck does that reconcile? I don't understand.

I have forgotten the values, but I tested the 48-7S and the LV-909 as well, and their data points were just as confusing as the two above. Both in relation to each other as well as in relation to the other two.

Yep, I don't entirely understand how this works myself. Haven't got my hands on any of these formulas. Waiting for an expert to clarify things. But with trial and error of tweaking this value I made clustered engines be nice to each other. Originally they would just burn each other. Didn't notice any thrust change.

Share this post


Link to post
Share on other sites

Hello,

I need more snack to digest this thread...

I suggested using liquid cooling for heat dispersion...temp/heat needs to be converted to a resource...I am looking into this as I speak...ie converted to wasteheat??? I have yet to even look at a part...

We could get into thermodynamics...I hated that course.

So parts up front heat up more than the parts in back...heat shielding helps...I dont know if they use ablative(?) as a resource (expendable I think); in relation to DRE Deadly Re-Entry.

Maybe Temperature can be used as a resource...I need to look at a part lol...I am editing this post...

E1: What if Deadly Re-Entry works with parts not just the heat shield?

Cmdr Zeta

Edited by Cdr_Zeta
addendum

Share this post


Link to post
Share on other sites
Hello,

I need more snack to digest this thread...

I suggested using liquid cooling for heat dispersion...temp/heat needs to be converted to a resource...I am looking into this as I speak...ie converted to wasteheat??? I have yet to even look at a part...

We could get into thermodynamics...I hated that course.

So parts up front heat up more than the parts in back...heat shielding helps...I dont know if they use ablative(?) as a resource (expendable I think); in relation to DRE Deadly Re-Entry.

Maybe Temperature can be used as a resource...I need to look at a part lol...I am editing this post...

E1: What if Deadly Re-Entry works with parts not just the heat shield?

Cmdr Zeta

Didn't understand a thing you say )) We're working here with what Squad gave us and figuring out the proper way to use it.

Share this post


Link to post
Share on other sites

Reading through the air intakes:

* CircularIntake has emissiveConstant = 0.55

* RamAirIntake has emissiveConstant = 0.7

* intakeShockCone has emissiveConstant = 0.95

Question: Does this affect convection heat from high speed flight? And does it have an effect on how robust the intakes are (besides their 1900-2100C maxtemps)?

Share this post


Link to post
Share on other sites

Another Observation concerning the heatProduction: TweakScale can not scale it anymore (maybe there is no kspField behind the config value, or it is only evaluated once and too early). When heatProduction is not touched, enlarged engines tend to overheat faster, while downscaled engines heat up less (TWR is the same for all of them).

No idea how this goes together with the larger engines generally having higher heatProduction values.

Share this post


Link to post
Share on other sites

so what does one do when they find their pod's built in ablator cooking off when on the sunny side of a kerbin orbit? what do I need to change to prevent my pod from building up so much heat just sitting in the sun?

Share this post


Link to post
Share on other sites

Good stuff! Here's a bit more.

Copied from other things I said recently:

heatProduction is now scaled by the part's thermal mass (as well as the internal generation factor). So assuming the latter is 1 (it's not, it's something like 0.03) then heatProduction=1 literally means "this engine produces enough heat per second to raise its temperature 1 K per second".

Yet increasing 0.02t of mass 1K means waaaaay less energy than increasing 6t of Mainsail. And that heat (the energy, not the temperature) conducts outward.

emissiveConstant is the emissivity factor in the black-body radiation equation (flux in W = Stefan-Boltzmann constant * emissivity * area * temperatureK^4). It most certainly cannot be >1 (1 is a perfect black body).

.95 is the "poor man's heat shield"--non-ablatively shielded parts, like spaceplane wings, have that, that means they radiate away heat very fast, comparatively. Default is 0.4, which is gray. Note that solar absorption appears to equal emissivity (this is why solar panels take in lots of heat from the topside as well as radiating from the underside).

heatConductivity is per unit area of connection (connection area = the minimum of the facing area of the two parts).

There's also a heatConvectiveConstant (in Part) although I don't think anything uses it yet. It defaults to 1.0. You can raise it to increase that part's convection rate, or lower it to lower it.

Share this post


Link to post
Share on other sites
so what does one do when they find their pod's built in ablator cooking off when on the sunny side of a kerbin orbit? what do I need to change to prevent my pod from building up so much heat just sitting in the sun?

You can make it naturally loose heat by adding emissiveConstatnt to it's config.

You can make it heat up slower by increasing the thermalMassModifier.

You can stick on a part with high heat dissipation (emissiveConstant) and high heatConductivity, which will act as a radiator.

Share this post


Link to post
Share on other sites
Good stuff! Here's a bit more.

Copied from other things I said recently:

heatProduction is now scaled by the part's thermal mass (as well as the internal generation factor). So assuming the latter is 1 (it's not, it's something like 0.03) then heatProduction=1 literally means "this engine produces enough heat per second to raise its temperature 1 K per second".

Yet increasing 0.02t of mass 1K means waaaaay less energy than increasing 6t of Mainsail. And that heat (the energy, not the temperature) conducts outward.

emissiveConstant is the emissivity factor in the black-body radiation equation (flux in W = Stefan-Boltzmann constant * emissivity * area * temperatureK^4). It most certainly cannot be >1 (1 is a perfect black body).

.95 is the "poor man's heat shield"--non-ablatively shielded parts, like spaceplane wings, have that, that means they radiate away heat very fast, comparatively. Default is 0.4, which is gray. Note that solar absorption appears to equal emissivity (this is why solar panels take in lots of heat from the topside as well as radiating from the underside).

heatConductivity is per unit area of connection (connection area = the minimum of the facing area of the two parts).

There's also a heatConvectiveConstant (in Part) although I don't think anything uses it yet. It defaults to 1.0. You can raise it to increase that part's convection rate, or lower it to lower it.

Good stuff! I bluntly copied your explanations into OP.

About heatConvectiveConstant

I understand heat convection as a process of how fast the heat spreads evenly withing a part that has fluids. Does that mean that parts in KSP can be hotter on one side and cooler on the other?

Reading through the air intakes:

* CircularIntake has emissiveConstant = 0.55

* RamAirIntake has emissiveConstant = 0.7

* intakeShockCone has emissiveConstant = 0.95

Question: Does this affect convection heat from high speed flight? And does it have an effect on how robust the intakes are (besides their 1900-2100C maxtemps)?

Don't know, gotta find out experimentally.

Edited by Enceos

Share this post


Link to post
Share on other sites

@Nathan wanted to ask you about emissiveConstant. While tweaking the NERVA to make it non-explosive I've made something weird. First, I toned down the heat conduction to other parts to simulate cryo isolation, and then I started searching for a way to simulate cooling, that in this design is obtained by the hot fuel leaving the engine. However the engine doesn't have any simulation of something like that, (convection seems to work only in the atmosphere) and I decided to bump up the emissiveConstant to 1.2. While it is a physical abomination it is the only way without a plugin that I found to simulate this behavior within sane working temperatures, and indeed an engine dissipates more heat than simply from blackbody. There is a saner method or am I stuck with this?

Share this post


Link to post
Share on other sites

Scientific instruments should be very sensitive. I'd make them burn at 700 or less.

Share this post


Link to post
Share on other sites
How/where is the current amount of heat stored? And how is the distribution calculated?

The heat is stored within a part, some of the distribution formulas are in the OP. But do you really need them? Squad tried to make thermodynamics as real as possible, most of the formulas you can find on wiki.

Share this post


Link to post
Share on other sites
Scientific instruments should be very sensitive. I'd make them burn at 700 or less.

I believe if SETI rebalance gets continued, Yemo will surely look at doing this.

Share this post


Link to post
Share on other sites
The heat is stored within a part, some of the distribution formulas are in the OP. But do you really need them? Squad tried to make thermodynamics as real as possible, most of the formulas you can find on wiki.

Yes, but using radiators assumes that you have a cooling system (plumbing). Which spacecraft tend to have.

I mean, the people aboard die from the heat long before the structural elements melt. And different components have different maximum temperatures.

Btw, IRL, if you want a manned flight to the other side of the solar system, the best thing you can take with you is a large amount of water ice. It functions as a heat sink, a meteor shield, plants grow in it, you can use it for washing and drinking, and break it down into oxygen to breathe and fuel/reaction mass.

You might even want to make your ship inside of that iceberg.

Edited by SymbolicFrank

Share this post


Link to post
Share on other sites

I haven't seen this answered, so I'll ask this here. In the KSP 1.0 readme, under Heat Simulation, I found this:

- All parts now emit a blackbody radiation glow if they get hot enough.

How do we make the parts glow? I have tried setting a part's temperature up near its maximum and I never see it glow.

Share this post


Link to post
Share on other sites
Reading through the air intakes:

* CircularIntake has emissiveConstant = 0.55

* RamAirIntake has emissiveConstant = 0.7

* intakeShockCone has emissiveConstant = 0.95

Question: Does this affect convection heat from high speed flight? And does it have an effect on how robust the intakes are (besides their 1900-2100C maxtemps)?

After digging deeper I can tell that emissiveConstant only affects the passive heat radiation.

Physics.cfg has lines convectionDensityExponent, convectionVelocityExponent, fullConvectionAreaMin which, we can assume, take place in the convection equation. This means that Convection happens through surrounding atmospheric temperature, its density and velocity of the craft.

EDIT: Updated the OP with thermal flux tooltip info

Edited by Enceos

Share this post


Link to post
Share on other sites

Enceos: cool, that's why I wrote 'em. :)

Convection, in KSP, is between a part and that atmospher (or water). It has nothing to do with part-part transfer (that's conduction) or any kind of sub-part modeling (KSP doesn't do that at all). The highest "resolution" for heat, in KSP, is the part level.

Sage: I would suggest just turning their heatProduction down if what you want is "less heat" rather than breaking the laws of physics by generating so much heat and then re-breaking them again to over-radiate it. ;)

SymbolicFrank: thermal energy of a part (in kJ) is part.temperature * part.thermalMass.

Angel-125: you can probably tune the blackbody physicsglobals, though they're not in Physics.cfg. But IIRC glow doesn't start until ~750K and then increases slowly. If a part's maxTemp is 800K, it's not liable to glow much before exploding.

Share this post


Link to post
Share on other sites

1.0.1 and 1.0.2 made some significant changes to the heat equations. Might want to update the OP.

Share this post


Link to post
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.