EnergyPlus Error: Outward facing angle of subsurface differs more than 90.0 degrees from base surface

Hello everyone,

I think there is a bug when simulating an hb-model using Energy Plus.
In some cases, when a wall that has an aperture is turned from north by a small degree, this error occurs:

Program Version,EnergyPlus, Version 22.1.0-ed759b17ee, YMD=2022.10.24 14:51,
** Warning ** Timestep: Requested number (1) is less than the suggested minimum of 4.
** ~~~ ** Please see entry for Timestep in Input/Output Reference for discussion of considerations.
************* Beginning Zone Sizing Calculations
** Severe ** checkSubSurfAzTiltNorm: Outward facing angle of subsurface differs more than 90.0 degrees from base surface.
** ~~~ ** Subsurface=“WALL_NORTH_1_GLZ0” Tilt = 90.0 Azimuth = 0.0
** ~~~ ** Base surface=“WALL_NORTH_1” Tilt = 90.0 Azimuth = 356.4
** Warning ** GetSurfaceData: There are 2 coincident/collinear vertices; These have been deleted unless the deletion would bring the number of surface sides < 3.
** ~~~ ** For explicit details on each problem surface, use Output:Diagnostics,DisplayExtraWarnings;
** Severe ** GetSurfaceData: There are 1 degenerate surfaces; Degenerate surfaces are those with number of sides < 3.
** ~~~ ** These surfaces should be deleted.
** ~~~ ** For explicit details on each problem surface, use Output:Diagnostics,DisplayExtraWarnings;
** Fatal ** GetSurfaceData: Errors discovered, program terminates.
…Summary of Errors that led to program termination:
… Reference severe error count=2
… Last severe error=GetSurfaceData: There are 1 degenerate surfaces; Degenerate surfaces are those with number of sides < 3.
************* Warning: Node connection errors not checked - most system input has not been read (see previous warning).
************* Fatal error – final processing. Program exited before simulations began. See previous error messages.
************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 1 Severe Errors.
************* EnergyPlus Terminated–Fatal Error Detected. 3 Warning; 2 Severe Errors; Elapsed Time=00hr 00min 0.12sec
Runtime error (PythonException): ** Fatal ** GetSurfaceData: Errors discovered, program terminates.
Traceback:
line 290, in script

I believe, that the main issue is described in these lines:

** Severe ** checkSubSurfAzTiltNorm: Outward facing angle of subsurface differs more than 90.0 degrees from base surface.
** ~~~ ** Subsurface=“WALL_NORTH_1_GLZ0” Tilt = 90.0 Azimuth = 0.0
** ~~~ ** Base surface=“WALL_NORTH_1” Tilt = 90.0 Azimuth = 356.4

For some reason, the aperture turns out to be oriented exactly to the north, while the wall itself is slightly deviated from this direction. When I call the “azimuth” property manually, it is the same for wall and aperture, so, probably, the bug happens during conversion of an HB_model to idf.

2022-10-25_13-23-39

I tried to create an aperture using different methods (apertures_by_ratio, add_aperture, aperture_by_width_height), however, the result remains the same.
At the same time, if the the size of the window or wall, or wall rotation relative to the north (even by a fraction of a degree) is slightly changed, the simulation proceeds correctly.

Attached are some HB_Json files containing the models that are causing the simulation to fail, and the same models with slightly modified orientation parameter (but not 0).

model_2237_fixed.hbjson (87.6 KB)
model_2237.hbjson (87.6 KB)
model_5067_fixed.hbjson (146.6 KB)
model_5067.hbjson (146.7 KB)
model_22153.hbjson (99.2 KB)
model_22153_fixed.hbjson (99.1 KB)

UPD: All the room and model checks fail to spot the issue before the simulation

2022-10-25_13-24-42