# Carroll MRT Algorithm Imbalanced?

Hi all,

I have been working on building my own basic simulator coupling together various numerical methods loosely following the EnergyPlus engineering reference. However, a question came up as I was implementing long wave radiation on the inside of a zone. I chose to follow the Carroll MRT method as described on InsideHeatBalance:

https://bigladdersoftware.com/epx/doc...

However, as I was working through the algorithm, something slightly confused me. I would expect that, in the absence of any other heat exchange, the net exchange for each surface should sum to 0. Is this an erroneous assumption? It’s easy to see that this is not the case in the following scenario. Please correct me if I am interpreting the algorithm incorrectly.

Assume a 3m x 3m x 3m cube, so all surfaces have the same area. We will also assume all surfaces are made of the same material. Without loss of generality you can iteratively solve the equation for the MRT view factor once as it will be identical for each surface. Similarly the *F’_i* will be identical for all surfaces. *A_iF’_i* will be a simple constant A, so the MRT will just be the average of the surface temps. Let’s say that three of the surface temps are *x* degK and the other three are *x+1* degK, so the MRT from the Carroll method will just be *x+0.5* degK. The net exchange from each surface are now clearly unbalanced, since they share the same coefficients and MRT but have the fourth power non-linearity on the surface temp.

Am I missing something? Is this just a facet of the algorithm which we live with? Or is my intuition that in the absence of other heat exchange modes, they should be balanced to be physically consistent not applicable here because of some other rationalization? I know that in the actual outer loop algorithm, it’s fine if it is unbalanced since the other forms of heat exchange can accommodate this, but it still seems odd to me. Maybe I’ve just been overthinking this?

I also read the source code in *HeatBalanceIntRadExchange.cc* and I don’t believe I have missed any steps.