post-kerbin-mining-corporation / NearFutureElectrical

Adds nuclear reactors and power utility parts to Kerbal Space Program
38 stars 37 forks source link

Core heat does not transfer to radiators #10

Closed pyalot closed 8 years ago

pyalot commented 8 years ago

Here is a 100% load scenario for a NF reactor:

2015-12-25_00001

Reactor is at full load and has a core temperature of 1239°K (965°C) but the attached radiator doesn't change temperature and stays at 50°C and no heat transfer seems to take place.

Contrast this with the Umbra Space Industries Reactor:

2015-12-25_00002

Noticable heat transfer and heating takes place.

ChrisAdderley commented 8 years ago

I'm trying to work out what's going on here, but comparing function exactly to USI reactors is a bad idea. "Load" is irrelevant as per the other reported issues.

For one, you're running the reactor at 50% power, which is probably contributing to the low heating. Plus, USI reactors have larger heating numbers. So chances are you are seeing something related to numeric magnitudes, but I'll continue to investigate. I mean, numerically the (I) flux is identical there so core heat is transferring identically.

pyalot commented 8 years ago

The reactors don't have to work just like the USI ones. However, This reactors spec states that 6MW of cooling capacity is required. The radiator I slapped on there has 0.2MW of xfer capacity, so it stands to reason it would be loaded full tilt with the NF reactor. Generally stock radiators do their darndest to suck away internal heat if there is any. The reactor core in the NF reactor in this case is already overheating and dammaging the reactor, however the radiator just sits there and does diddley squat. Just doesn't seem right or logical to me, that's why I put the USI comparison in, that at least made some sense.

ChrisAdderley commented 8 years ago

Thing is, it is loaded full tilt. Because of how core heat has been implemented, transferring at a 1:1 ratio from the reactor to the radiator causes problems during high timewarp. Therefore all of the stock radiators push 0.01 kW to a radiator for every 1 kW they pull from a core heat module - this isn't specific to NFE or anything. You can see that with the Thermal Rate (I) display on both radiators - it's pushing 2.0 kW to the radiator and pulling 200 kW (easier to see on the NFE reactor, that's the Reactor Heat Transfer field).

Your reactor is overheating because Reactor Heat Transfer is only 200 kW (200 kW of radiator capacity) and at 50% throttle, the reactor is outputting 3000 kW of heat. So... it'll heat up until it melts down.

ChrisAdderley commented 8 years ago

Hang on, there's something weird going on too that I just noticed. The USI reactor has NFE fields in it (just noticed). Have you patched the USI reactors to use NFE modules at all? Because if so there's going to be other variables that we need to take into account looking for this.

pyalot commented 8 years ago

I don't know how it works, but I do know that some extra fields and the power setting control show up in USI reactors if NFE is installed. It is however the case that the weird radiator behavior is not dependent on the interaction of these mods, and USIs radiator behavior is the same with our without NFE, and NFEs radiator behavior is the same with or without USI.

It does seem to me that USI uses internal heat as "core heat" and therefore standard radiator behavior works as expected, and NFE doesn't seem to do that and you get wonky things.

ChrisAdderley commented 8 years ago

But... what I just pointed out above is that both radiators are using exactly the same thermal transfer parameters as evidenced from your screenshots. I don't know why one is 50K hotter so I'm trying to eliminate variables. I suspect it might be something to do with the NFE compatability MM patch that USI reactors contained, which is supposed to turn USI reactors into NFE reactors. You should remove that and have another look - it's certainly out of date and will probably only succeed in turning them halfway.

pyalot commented 8 years ago

Uninstalled all mods except NFE, HotSpot and CommunityResourcePack. Tested again:

Before starting the reactor, core 289K, Radiator @ 40C.

2015-12-25_00009

Starting the reactor and let it climb to 700K, Radiator @ 40C.

2015-12-25_00010

Reactor at 2000K, Radiator @ 40C, reactor has shut down due to overheating...

2015-12-25_00011

It's not logical that a radiator which was working full tilt to cool a 2000K part that's just about to explode would stay a cool 313K just sitting there radiating jack squat. That's not how radiators work, not even in Kerbal.

In fact, while the reactor was overheating itself, the radiator cooled down just a little more. As I've said, USI doesn't do that, radiators suck the heat out of the part (in this case being the reactor), NFE doesn't do that, ergo, NFE is doing something wrong. Heat energy doesn't magick into /dev/null, if you had a part that already does that (as NFEs reactors do), then why bother with radiators at all, just build the heat /dev/null into the reactor and you're done.

ChrisAdderley commented 8 years ago

You still haven't understood what I'm trying to say. Let me recap.

That is what is going on in the screenshots! It's exactly what should be going on given KSP's heat sytem. So I downloaded USI core myself and observed the same behaviour with a USI reactor after building an identical ship to the one you have above (identical radiator fluxes), however higher radiator temperature?? This was because every few ticks the radiator would pull heat (not core heat!) from another part and heat itself up (like the MPDT engine that I was using to get the reactor to 100% load). This gave the illusion of the part heating up from the reactor, when the lion's share of the heat was from other heat sources. Once I removed all heat generation from the engine (cfg tweak) the behaviour of the USI reactor was close to the NF reactor, with the exception of it being very hard to cook the part as USI reactors decrease heat production as they get hot.

I conclude that you're just looking at a peculiarity of the KSP heat system that is just made evident by how things are handled in the mod.

Another comment - stock radiators are crap at handling core heat and will always be transfer-limited. Look at the Max Radiation number in the VAB and compare that to the core transfer capacity. Max radiation is stupidly higher.

pyalot commented 8 years ago

First of all this radiator has an xfer capacity of 50kW and a radiative capacity of 1043kW, NOT (0.5 or anything 0.something).

Secondly, if you take an assembly that consists of a probe core, octagonal strut and that radiator, you can see that the hot part has a thermal rate of -741kW. A small amount is radiated (-23kW) and convected (13kW) and the majority is dumped into "internal" (704kW), which incidentially, is almost exactly the rate at which the radiator convects (-51kW) and radiates (650kW) enrgy. All these measurements are taken after everything's heated up and is hot (so no more change).

The probe core is 40kg, and the radiator manages to remove (without direct connection) over 700kW from it. In response it gets hot, in fact, it gets hotter than the hot part, because that's what a heat exchanger is for.

2015-12-25_00013

Now if you adjust the temperature of the hot core so that we can sum up the convection/radiation of the radiator neighborhood of 50kW, it looks like this:

2015-12-25_00014

The radiator is still getting up to a high temperature and it still sucks a bunch of heat in the hundred+kW from the probe core, even though that's only 40kg and only slightly above ambient temperature.

But somehow, the radiator stuck right ontop a red-hot glowing reactor does literally diddely jack squat. I don't find this logical. Your reactor core for absolutely sure has more mass than 40kg, and it absolutely 100% sure is far, far, far hotter than ambient temperature, and the radiator 100% sure is a heat xfer system that can suck heat out of one part and concentrate it in itself as to get rid of it as fast as possible... except when it's a nuclear reactor. Apparently nobody can build a heatpipe trough a reactor core...

It's not, in any way, believable to me, not in real-world terms, not in kerbal terms with their wonky heat system, not in whatever way I want to look at it.

You can repeat those experiments with rocket engines pointing at parts, or with moving a craft close to the sun, or with blasting something at high speed trough the atmosphere. Long as the radiator is not exposed to the source of the heat, it's going to get up to its cooling capacity and damned the xfer rate. The reason it's so difficult to cool things in Kerbal isn't because the radiators are crap, it's because most parts don't transfer heat from the skin to internal very well, and the radiator only cares about internal heat (and radiators don't cool radiators).

In fact, I don't think the xfer rate is doing anything at all whatsoever.

ChrisAdderley commented 8 years ago

Ok, one more attempt. You're operating on a complete misunderstanding about how KSP's heat mechanics work.

There are two temperature "buckets" on any part.Skin and Internal. Radiators take thermal energy from other parts' Internal buckets and add it to their own. Then they radiate it out to the environment. They do this by going through all the parts on a ship, looking at their internal temperatures, finding any that are too high, and subtracting energy from them. This is added to the internal bucket of the radiator at a 1 to 1 ratio. These two buckets do not function well at high time warps, particularly if you constantly add large amounts of heat, and are primarily used for atmospheric heating and engine heating. A good example of a part that produces Internal heat is the LV-N. Are you with me so far?

Your radiator's radiative capacity is 1043kW with a MaxEnergyTransfer number of 50 kW. That means that every second (approximately) it takes 50 kJ (50 kW) from any part on the ship. It also means that when the radiator is at maximum temperature, it emits 1043 kW of energy into space (according to the stefan-boltzmann law). So in your example above, you add an infinite amount of heat to the probe core's Internal bucket. The radiator takes 50kW from that part and heats up slowly. Cool, everything makes sense here, right?

With 1.05, there is a third temperature "bucket". It's called Core and it only exists on parts that have a CoreHeat module, it does not exist on a probe core. It is separate and essentially unconnected to Internal. It is designed to work well when producing large amounts of heat at high time warps. Reactors have CoreHeat modules, as do ISRUs and drills. The Core bucket can only be accessed in two ways:

In order to make things stable at high time warp, when a radiator consumes heat from a Core, it does not add all of that consumed heat to itself. If it consumes 1 kW, it only adds 1% of that, or 0.01 kW to the radiator. The rest of the heat is magically deleted, we assume it radiates into space naturally.It functions exactly as is that heat had been added to the radiator, it just doesn't increase the temperature number.

In your example setup, your radiator has a MaxEnergyTransfer of 50 kW. This means that it can take 50 kW of heat from a core at a time. However when it adds that to a radiator, it only adds 1% or 0.5 kW. This is why the radiator doesn't appear to be getting hotter, even through all 50 kW disappears into space.

pyalot commented 8 years ago

I didn't know about core heat, but my point isn't about that. It's about that if you have a part that can magick away over 1MW from internal of any part anywhere on the craft, it's patently ridiculous it couldn't get that heat away out of "core". The reason it's ridiculous is because:

2015-12-25_00015

Now it may be that KSP is buggy. But I don't accept that as a cop-out.

ChrisAdderley commented 8 years ago

Ok, that's great dude. Now that you're done wasting my time with a bug that is not a bug, you can go post your balance issue in the best place to discuss balance issues - a forum!

pyalot commented 8 years ago

I just explained to you that your reactors don't work like USI's, they also don't work like the stock nuclear engine, they don't work like KSPIs and that it's completley ridiculously bonkers and wrong (regardless of how bonkers and wrong KSP does stuff). You are making your reactors for this game, in which none of the other equipment anybody else makes works like yours. I do think that's your problem, not KSPs and not mine.

Radiators which do not heat up in response to a blazing hot nuclear reactor they're sitting directly atop of is wrong. And the radiators aren't at fault here, it's your reactors, because other nuclear eqipment does not have this problem. It's your eqipment that has this problem, you made that equipment that way.

And I do not think I wasted your time, by pointing out that you made something what's completely ridiculous, i.e. magic reactors that do not make any heat, but nevertheless, overheat. What have they, like the thermal mass of a corn of rice or something? C'mon ffs.

If you can't see how it's completely bonkers how it's possible that you have a core that's at 2000K and yet no other part of your reactor shows any heat buildup and both skin and internal are a 313k as well as is the radiator, any radiator, no matter how big or small, that's directly plugged into your reactor stays at 313k, I really don't know how to help you anymore. It's beyond my capacity to even, ugh, you know what I mean?

pyalot commented 8 years ago

wonky-reactor

Gordon-Dry commented 5 years ago

Well, it's still like that. Only dedicated radiators from the same company as the reactors work.