-
Notifications
You must be signed in to change notification settings - Fork 20
ModuleSystemHeatRadiator
The module to use for radiators. It inherits from stock ModuleDeployableRadiator and adds its own properties. Everything above // optional is mandatory. Everything under // inherited is legacy/stock functionality and may not be important.
MODULE
{
name = ModuleSystemHeatRadiator
moduleID = radiator
systemHeatModuleID = default
temperatureCurve
{
key = 0 0
key = 350 150
}
// optional
scalarModuleID = heat
maxTempAnimation = 500
maxRadiatorTemperature = 350
emissivity = 0.9
convectiveArea = 1.35
// inherited but legacy, not required
maxEnergyTransfer = 7500 // 150 * 50
overcoolFactor = 0.25 // if capable of refrigeration, this radiator can cool to this fraction of its acive temp.
isCoreRadiator = true // whether it can cool something that produces core heat vs only helping vital parts to not melt
parentCoolingOnly = true // whether it will only cool the part it's attached to
RESOURCE // consumed as a cost to the module's operation
{
name = ElectricCharge
rate = 0.075
}
}-
moduleID: The unique ID of this ModuleSystemHeatRadiator. -
systemHeatModuleID: The ID of the ModuleSystemHeat to link to. If multiple exist and none is named the first one is used. -
maxTempAnimation: The peak temperature that the emissive animates toward. -
maxRadiatorTemperature: The max temperature the radiator will function on. -
emissivity: The rating of the surface material. Reflective and absorptive surfaces rate poorly. -
convectiveArea: The radiative area in square meters. Contributes to cooling capacity when flying within the air speed range associated with its loop temperature. -
temperatureCurve {}: Maps the current loop temperature to radiative effectiveness. X is kelvin. Y is kilowatts.
The Stefan-Boltzmann Law states that the energy radiated by a surface at a given time is proportional to the 4th power of the surface temperature. The following sample patch allows a radiator to be properly exponentially better (or worse) depending on its temperature and prevents the observed case of any high temperature radiator being better at low temperature than a low temperature radiator.
@PART[thisRadiator]
{
VarLoopTemp = 1100
VarPeakPower = 7273
@MODULE[ModuleSystemHeatRadiator]
{
@temperatureCurve
{
!key,* = nope
key = 0 0
key = 0.2 0.0016
key = 0.4 0.0256
key = 0.6 0.1296
key = 0.8 0.4096
key = 1 1
@key,*[0, ] *= #$/VarLoopTemp$
@key,*[1, ] *= #$/VarPeakPower$
}
}
}What the curve would look like:
temperatureCurve
{
key = 0 0
key = 220 11.6
key = 440 186.2
key = 660 942.6
key = 880 2979
key = 1100 7273
}
Managing Heat
Part Types
Part Module Configuration
- ModuleSystemHeat
- ModuleSystemHeatRadiator
- ModuleSystemHeatEngine
- ModuleSystemHeatConverter
- ModuleSystemHeatHarvester
- ModuleSystemHeatExchanger
- ModuleSystemHeatFissionReactor
- ModuleSystemHeatFissionEngine
- ModuleSystemHeatFissionFuelContainer
- ModuleSystemHeatColorAnimator
- ModuleSystemHeatResourceAnimator
- ModuleSystemHeatSink
- SystemHeat Modules From Other Mods