|
A thermal junction is used for separate two thermal masses that exchange heat. This pattern calculates the heat-flow between these masses.
Simulation thermischer Verbindung [Rie96] ( http://wwwagz.informatik.uni-kl.de/projects/SFB501/D1/PSiGene/publications.shtml#Rie96.0 ).
The simplest case of separating two rooms is a wall. On different temperatures in each of the room a heat-flow exists between these rooms through the wall which is depending on the thermal resistance of that wall and on the difference on temperature of the rooms.
With every thermal junction. The junction`s area and the heat resistance have to be known or calculable.
A thermal junction connects two thermal masses. Depending on the difference of temperature between these masses a heat-flow exists.
This pattern serves two functionalities: first, calculating the actual heat-flow, and second, returning it with correct sign to the caller.

A thermal junction always connects two thermal masses. If a mass has connections to multiple other masses, each neighborhood has to be modelled separately.
To apply this pattern the heat resistance of the junction has to be known or calculable.
^self {neighbouringObject} instance {getTemperature}
^self {thermalResistance} + self {neighbouringObject} instance {getThermalResistance}
| deltaTemperature | deltaTemperature := self {getTemperature} - anObject {getTemperature}. ^(deltaTemperature * self {area}) / (self {getThermalResistance} + (anObject {thermalResistance} / 2))
Pattern ThermalJunction Category simulation ObjectType use target SingleRelation use neighbouringObject Attribute use area Attribute use thermalResistance SingleMethod implement getTemperature SingleMethod implement getThermalResistance SingleMethod implement getHeatFlowFor End