Hi Chris,
May I ask you a question about Therm? I have trouble in understanding the way Therm calculates the U value. I think that it should be like this: lambda(W/mk which Therm knows as Conductivity of the material) divided to depth(m). Then for adjacent materials, They should be summed up according to their areas or here since it is 2D according to their lengths in proportion to the whole length. This means that for a singular material Lambda and U-value must be equal if the depth is 1000 mm, But in Therm they are significantly different. Am I missing something?

1 Like


While I have never seen the code behind therm I am almost sure they are also considering surface resistance to account for radiative and/or convective heat transfer.

What you mentioned previously accounts for the thermal resistance in solid conduction through the width of the material. U = R^(-1)… R= L / lambda-solid ( per unit area - m^2 K / W)

The boundary conditions are likely being considered for convection and radiative transfer. Esentially the U-Value as used in the building industry is a coupling for:

Solid Conduction = ( lambda-solid / Length )* (T1 -T2)

Radiative Transfer = (1- reflectance) (irradiance) … this is a simplification, it can get super complex

Convective Transfer = hahaha I cannot remember this… but it’s essentially (Tsurface - T1) / Convective Resistance.

I just want to reiterate that I am not certain of the calculations carried out in therm. However, I am confident that the U-value is a simplification that couples all thermal exchange mechanisms into the reciprocal of a single resistance. U = 1 / R-coupled.

Hope this helps,


Hi Farnaz,

Can you post a screenshot explaining your question - It’s some time since I’ve used Therm but the principles of heat flow and thermal bridging are the same no matter which programme you use, so I’m happy to take a look.


Farnaz, Mauricio, and Nick,

Thanks for the great discussion here. Mauricio, your beautiful and comprehensive answer is correct. The current implementation of THERM in GH accounts for the surface resistance of radiative and convective heat transfer through the _filmCoefficient input on the “Create Therm Boundaries” component. This filmCoefficient in W/m2K represents the “U-Value” of the air film between the edge of the THERM materials and the surrounding environment that is at the specified _temperature. The extra resistance from this air film is why the full construction U-Value that you are getting out of THERM is a lower than just the (conductivity of material) / (depth of the material). Accounting for air films is particularly important when you get constructions that have a high overall conductivity (like a single pane window), since almost all of the resistance of such a construction is due to the air films.

To elaborate further, you might have noticed that, in the example files on hydra, I set this filmCoefficient to be either “indoor” or “outdoor”, which basically uses some code that I wrote to autocalculate the film coefficient for you. I take into account both the emissivity of the material at the boundary (which gives you more air film resistance for lower emissivities) as well as the orientation of the boundary in the 3D space of the Rhino model. The code I wrote will take these parameters and match them to those published in ASHRAE Fundementals, which you can see in table 1 of the first page of this PDF:

I interpolate between these values in the event that your emissivity is not 0.05, 0.2, 0.9 or the orientation of your boundary is not any one of the 5 that they give.

I know that THERM also has the capability to actually run the radiative and convective formulas that you posted, Mauricio, as opposed to just using a single film coefficient to account for all of this resistance. The running of these formulas is particularly useful is the radiant temperature at the boundary is different than the air temperature. However, as long as you are ok with this assumption that the air and radiant temperatures are the same (which is the case for all of the situations that I have encountered), the film coefficient is perfectly sufficient. If anyone ever has need for this capability of running boundary conditions that have different radiant and air temperatures, please post here and I can think of a way to implement it. I rather like the simplicity of the current interface, though, and I think that I will keep it this way until we understand the purposes for why someone would need separate radiant and air temperatures.


Thank you very much Mauricio for your helpful explanation.

However I think for a solid material radiative and convective transfer would affect insignificantly,dont they? I guess the main reason of the huge difference between results was due to Hc parameter(w/m.k)which I have no idea of defining it. It is thermal conductivity of thin air film near boundaries. Is it related to the material specifications like reflectivity, emissivity and absorptance? or it is just defined by weather conditions like wind velocity, humidity,…?


Chris, thanks!

Hi Chris,

I posted my question before coming across this thread.

It is not quite the same discussion but there is some crossover, I would appreciate your input.