We have a client who knows EnergyPlus and wants us to build glazed surfaces using WindowMaterial:Glazing objects instead of WindowMaterial:SimpleGlazing for the increased accuracy.

The problem is, I have a glazing specification and can’t figure out how to build the layers such that I end up with the U-value and SHGC in the specification:

Why do I get such a high U-value? Is it realistic that the low-E coating brings the U-value all the way from 4.6 down to 1.1?
How is the U-value calculated in LBT? Following the formulas here, I get the following U-value from a hand calculation:

As you can see I calculate a U-value of 1.1 just like specification says, however without low-e coating which seems too optimistic. On the other hand, it may just be that the gas isn’t 100% argon and instead mixed with air which would increase the U-value and make it more realistic. (Unfortunately I can’t find any info on this on the supplier’s website.)

How do I get the SHGC of the construction? I could only find the solar transmittance, which I believe only includes the direct solar gains and not those emitted to the interior after the glass has absorbed some of the radiation:

I have noticed that the calculated solar transmittance of 0.7225 is 0.85*0.85 (the solar transmittance for each of the two glass layers). This should be the “primary solar heat gain” as shown above.
For the “secondary solar heat gain” I would need to know how much of the solar radiation is absorbed, however the solar transmittance and reflectance values add up to 1 which makes it look like nothing is absorbed at all…?
I assume the “emissivity front” and “emissivity back” parameters have something to do with this, but the values appears to be fractions and I don’t understand what they (in this case 0.84) are describing. I don’t find the EnergyPlus Input Output Reference helpful in this case, but maybe I’m looking in the wrong place.

Anyway, any advice/insights on this would be much appreciated!

Typically these whole window thermal performance metrics are calculated using WINDOW from detailed material information. The easiest solution might be to just contact the supplier and ask if they can provide that information. I think you can reverse-engineer the U-Value, but am not sure if you can do the same for SHGC. The thermal calculations for WINDOW is here[1] if you want to attempt it, at the very least it’ll give you an idea of the level of complexity involved in the SHGC calculation. EnergyPlus has some simplified regression to calculate solar transmittance from the SHGC[2] that you can also reverse-engineer, but that seems to defeat the whole purpose of trying to use more precise data.

One correction: the solar transmittance and the front reflectance should be <= 1, and the same for the back reflectance. They’re not all summed together, and so you can see there is some small fraction that is absorbed.

As for total U-value, it’s calculation is documented in the HB-energy docs[3]. @chris can confirm, but it looks like HB uses the EN673 standard, which seems to be the same standard referenced in the spec you’re citing to get 1.1 Ucog, so I’m not really sure where these two calculations are diverging. The formula you’re referencing (summing the R-values) works for materials with conductivities that we can approximate as constant at different temperatures. This assumption doesn’t hold for gas fills so you have to use a more complex method (i.e EN673) to calculate an appropriate U-value.

Are you saying that in the case of a single glass layer, since 85% is transmitted directly and 7.5% is reflected by the front layer, I can assume that the remaining 7.5% is absorbed?

In which case, since the front and back emissivity are identical, can I assume that half of the absorbed solar radiation is radiated from the glass to the inside of the room? If this is true, then the SHGC of the single glass layer would be 88.75%.

It’s probably not that simple and is probably something that is answered by your resources, so I guess I’ll look at those now!

So I did some digging, and the EnergyPlus reference you shared shows how EnergyPlus converts a SimpleGlazing object with just a U-value and SHGC to an equivalent Glazing object with a single layer.

In the following section it shows how the solar transmittance is calculated from the user input SHGC, so I thought I could reverse engineer that in order to tweak my glazing layer parameters until I land on a U-value and SHGC that approximates the details from the spec:

As you can see I’m getting unrealistic values, and I can’t figure out what the error is, or whether I’m approaching this whole problem from the wrong angle.

@chris, am I missing a simple construction object property that will give me the SHGC?

Are you saying that in the case of a single glass layer, since 85% is transmitted directly and 7.5% is reflected by the front layer, I can assume that the remaining 7.5% is absorbed?

Yes, correct.

In which case, since the front and back emissivity are identical, can I assume that half of the absorbed solar radiation is radiated from the glass to the inside of the room? If this is true, then the SHGC of the single glass layer would be 88.75%.

No, in your example the amount of additional emitted radiation would be equal to \sigma \epsilon A_{interior} (T_{interior}^4 - T_{room}^4) (assuming window is fully visible to room). The absorbed radiation gets re-radiated to the room in the long-wave range as a function of the temperature difference between the glass and room surfaces.

This is actually a good example of the the main challenge with trying to approximate U-values and SHGC values with simplified approaches: they don’t take into account the interaction between the changing temperature of the layers and radiant flux. This is why using WINDOW is recommended for SHGC/U-Value calculations, the software sets up an energy balance for every assembly layer and starting with an assumed temperature profile, iteratively solves the combined radiation exchange and temperature profile until convergence:

That’s why the values you obtain from WINDOW will differ from simplified methods like this or used by EP’s SimpleGlazing method. It may be worth it to try recreating your assembly in WINDOW to the best of your knowledge, and see if you have any luck reaching your targeted U-Value and SHGC values that way.

However, if you want to try to derive the detailed values using simpler models that don’t take the interaction into account, there are correct (or at least, current state-of-art) way to calculate them with assumed reference conditions. From the WINDOW technical documentation (referenced above):

For U-values, ISO 10292/EN 673 shows you how to calculate the thermal transmittance of windows without the effect of solar radiation. As I mentioned in my previous post, this appears to be what is used by Honeybee in it’s assembly U-value calculation.

For SHGC, ISO 9050 shows you how to calculate the SHGC without taking into the account the actual temperature of the assembly panes.

And finally, ISO 15099 is the standard that describes the method that takes both into account, which I believe is the method used by WINDOW.

As you can see I’m getting unrealistic values, and I can’t figure out what the error is, or whether I’m approaching this whole problem from the wrong angle.

There’s an order of operations error in your code, you need to enclose the 2*a in brackets, or else your formula divides the numerator only by 2 and then multiplies the result by a.

That being said, while I did post a link to this reference, I don’t think it’s the right approach, for all the reasons I listed above. It’s literally the calculation used by the WindowMaterial:SimpleGlazing object that you said you were trying to avoid, and may be too simplified to try and calculate detailed material variables.

@SaeranVasanthakumar, thanks so much for the detailed responses. I’m playing around with Window now, but I’d like to note that I also tried this online tool which claims to calculate U-values according to EN673. With the same build-up where HB gives me a U4.6, this tool says U2.6:

I feel like 2.6 would be a more realistic value for double-glazing (even without low-e coating), so it would be good to hear from Chris how this is calculated.

I also tried this online tool which claims to calculate U-values according to EN673. With the same build-up where HB gives me a U4.6, this tool says U2.6:

This works out to about 1.1 W/m2K defined in the initial spec (also claims to be using EN673) if you include an emissivity of 0.03 on surface 2. Given the agreement between two out of three methods, this could be a bug in HB’s EN673 implementation.

Nevermind, I just synced to the latest LB version and the HB results are in agreement with the online tool. This must have been fixed at some point!

Correction to my correction, and (hopefully) the final resolution to this U-value debate: there was never anything wrong with HB’s EN673 calculation, and the values between all these tools were consistent all along. The reason there looked like there was a disagreement is that the U-value in HB refers to thermal transmittance without air films (since EP calculates them internally), whereas the U-value by the online tool, and the original supplier referred to thermal transmittance with air films. So switch to using HB’s U-factor and you’ll see everything works out.

I would add that the other complicating factor was not incorporating low-e on surface 2, presumably because you didn’t know what that value was. I think it’s an extremely low-e coating (~0.03) which makes a significant difference in the assembly U-value.

So with that, I think you have the material properties needed to hit the 1.1 CoG U-value.

At this point though maybe we’re splitting hairs - I’m comfortable assuming both layers have the coating and am quite confident that my results are accurate enough.

Yeah, you have at least two equations (one to calculate SHGC one to calculate U-value) but way more then two unknowns (all emissivity, transmissivities, conductivities (including conductance impact of bespoke items like spacer)) so there’s no solution to this other than finding or making educated guesses about product specs and trying them out.

One more friendly reminder: make sure that the properties you’re using are from actual product specifications. Material properties are tied to together (they’re not independent variables) and so varying one will impact others. You can easily end up with a set of property values that reaches your desired target values while being physically impossible.

I just wanted to say that this whole discussion is very cool. I didn’t know about these simple formulas that EnergyPlus used to relate the U-Value and SHGC to the solar transmittance, @MaxMarschall . They are very useful. In fact, they are so useful that I have decided to add a shgc property to all WindowConstruction objects:

I’m using a slightly more sophisticated method to handle the quadratic root finding. The resulting SHGC should always obey those equations from the EnergyPlus reference to within 0.01 SHGC. It’s obviously not going to be as accurate as the methods LBNL WINDOW uses but the calculation will be fast and the resulting value will be good enough for most practical purposes.

I’ll plan to expose the SHGC property on the Grasshopper components shortly.

@chris, fantastic update, I was actually thinking to myself that since HB has the U-value calculated without accounting for solar radiation, it should also add it’s complement: the SHGC calculated without accounting for change in layer temperatures.

I like the use of the root calculation of the quadratic formula to get the SHGC from solar transmittance. I guess that means the Tsol function needs to be (approximately?) a continuous 2D surface, for the root-finder to calculate a reasonable sequence of slopes?

One question, is this the method recommended by ISO 9050 to calculate SHGC or something you derived on your own? I’m curious, and can’t find a free copy of ISO 9050 to confirm for myself.

Yes, the secant root finding method that I am using there is basically a “guess and check” loop that relies on the Tsol function having some continuity to it in order to arrive at the correct answer. These functions seem to form a continuous surface and the secant method is working as intended.

They don’t cite a particular ISO standard there but this paper by Arasteh, Kohler, and Griffith (2009), which seems to be the primary source for the formulas.

@chris, got it. In that case I may have some comments regarding the new SHGC feature (but need to double check the paper first). I’ll start an issue on the repo when I have some time, and we can continue the conversation there.