NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.13k stars 391 forks source link

PixelCounting also doesn't seem to handle reflections #10366

Open sullivj1 opened 10 months ago

sullivj1 commented 10 months ago

Issue overview

Running a model with shading surfaces around the windows and the solar distribution set to FullExteriorWithReflections I found significant differences in results between the PixelCounting and PolygonClipping shadow calculation algorithms.

Testing found that the reason for these differences was that with PixelCounting there appears to be no reflected solar radiation. When using PolygonClipping I observe expected non-zero outputs for Surface Outside Face Incident Sky Diffuse Surface Reflected Solar Radiation Rate per Area and Surface Outside Face Incident Beam To Diffuse Surface Reflected Solar Radiation Rate per Area, and, as we would expect, if the shading reflectance is increased from 10% to 90% the reflected solar on the window also increases.

Using PixelCounting all the values for these outputs are 0, and the resulting zone temperatures are noticeably colder and are unaffected by ShadingProperty:Reflectance inputs.

This suggests that further warnings need to be added around the use of PixelCounting following the previously identified issues with it and transparency (#9653). Though now this is more an unconditional "if you have significant shading reflections then PixelCounting may significantly underestimate your solar gains and this point I'm not sure anyone should even consider using it".

Details

Some additional details for this issue (if relevant):

Checklist

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

nealkruis commented 10 months ago

Thanks for reporting this, @sullivj1. I'll look into this when I can get around to it.

sullivj1 commented 9 months ago

Alright, I think I might know what the problem here is. It's not actually that PixelCounting doesn't handle reflections, it's that it's not handling them specifically with regards to mirrored shading surfaces.

My original model had shading around the windows like this, with the front surfaces facing outwards. This works fine with PolygonClipping, but has reflects no light into the windows with PixelCounting. image

Reversing all the shading, so that they face towards the window, and PixelCounting now reflects light into the windows, while PolygonClipping works as normal. image

nealkruis commented 9 months ago

@sullivj1 Thanks for the investigative follow up! Can you share both of these files with me? That would help me understand what is changing in the source code.

sullivj1 commented 9 months ago

@nealkruis Here they are Pixelcounting_shading.zip