ladybug-tools / honeybee-legacy

:bee: Honeybee is a free and open source plugin to connect Grasshopper3D to EnergyPlus, Radiance, Daysim and OpenStudio for building energy and daylighting simulation
http://ladybug.tools
Other
125 stars 145 forks source link

Option for Geometric View Factor Calculation #661

Open saeranv opened 7 years ago

saeranv commented 7 years ago

@ryanxwelch has developed a geometric view factor calculation that we've been using internally at @KieranTimberlake. Although we think it may be more geometrically limited, this method should be quite a bit faster than the existing view factor calculation method in the Honeybee_Indoor View Factor Calculator component because it doesn't rely on ray-tracing. So as discussed with Mostapha and Chris we're going to try and integrate it as an alternative calculation option in the existing component.

@ryanxwelch can provide more detail as needed, but to give a general overview of what's proposed - the calculation and visualization method he developed skips ray tracing by reducing the number of surfaces to be analyzed (as a function of inverse square of distance from viewpoint), and then calculates the view factor as the dot product of the mesh face normal and vector from the viewpoint sphere. @chriswmackey has noted that the procedure may not be able to handle, or become computationally prohibitive to process non-planar surfaces, concave zone geometry, or where the view to one surface blocks another. This entails catching and warning users of the geometry inputs that would trigger these conditions.

Next Steps:

chriswmackey commented 6 years ago

I just wanted to reiterate what I mentioned in the email a while back, which is that I can see this as very helpful for certain situations. I recommend getting this stable as it's own component and then we can start merging it into existing workflows.

saeranv commented 6 years ago

Thanks Chris, we have made progress on this calculation: https://github.com/mostaphaRoudsari/honeybee/compare/master...ryanxwelch:master; and are working on scheduling some time in our busy work schedules to finish off the first implementation. We'll hopefully have some form of a PR soon.