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.12k stars 389 forks source link

Non-convex surfaces with edge crossings should be detected and disallowed #5449

Open DeadParrot opened 8 years ago

DeadParrot commented 8 years ago

Currently non-convex surfaces with edge crossings are not detected by any of the surface checks in SurfaceGeometry. Such surfaces are probably not useful for EnergyPlus and they are not handled by the PierceSurface update in #5399 that added support for non-convex surfaces. Edge crossings could be detected by computing the intersection of all edge lines in a surface and see if any fall along the edge segment. Whether to generate a fatal error if such surfaces are found or to fix them by adding a vertex at each crossing depends on how surfaces are used throughout EnergyPlus.

mjwitte commented 8 years ago

Edge crossing should be a severe error leading to a fatal after all surfaces are checked.

DeadParrot commented 8 years ago

@mjwitte Thanks for the input. The Surface2D objects I create for fast PierceSurface calls should be useful/faster for edge crossing checks. If you'd like me to take a crack at this let me know. It might be best handled along with #5448 since all aspects of surface checking should probably be integrated to get the best detection/categorization of degenerate surfaces.

mjwitte commented 8 years ago

@DeadParrot Yes, please proceed.

DeadParrot commented 8 years ago

@mjwitte OK, I'll confer with @lgentile on making this into a task.