You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three potential bugs in TDD related calculations in CalcInteriorSolarDistribution.
The reporting at the end of the function starts a new surface loop, but the CosInc here is not re-calculated. The value, CosInc(Surfnum), used here is always the last calculated value for the last surface in the previous loop.
There are multiple special calculations (that are supposed to happen) for TDD Diffusers in the calculation loop (branch 1, branch 2, branch 3, branch 4), but Diffusers are not ExtSolar surface, and they get bypassed after this line.
The branch here for TDD dome can never be reached as it's under an else if condition of SurfWinWindowModelType(SurfNum) != WindowBSDFModel && SurfWinWindowModelType(SurfNum) != WindowEQLModel, which also applies to TDD Domes.
This has been broken since these calculations were first added in 2003.
This has been broken since 2010. Would it work to set ExtSolar = true for TDD_Diffuser? But that could have unwanted side effects. It can't be set on input, because that would be an error (Sunlit = Yes on an interior surface), but maybe it could be set internally.
This has been broken since 2012. TDD_Diffuser and TDD_Dome need to be first.
ExtSolar is fixed by adding an && clause, the previous check of if (((Surface(SurfNum).ExtBoundCond != ExternalEnvironment) && (Surface(SurfNum).ExtBoundCond != OtherSideCondModeledExt)) && SurfWinOriginalClass(SurfNum) != SurfaceClass_TDD_Diffuser) is deleted since duplicated.
The branch is reordered. Regular windows and EQL windows are merged as they seem to have identical calculations.
Tested with DaylightingDevicesTubular.idf and DaylightingDeviceShelf.idf to make sure the branches get visited. Diffs are expected. (Although not seen for DaylightingDeviceShelf.idf in CI)
2 and 3 are temporary fixes. The TDD branches could be sorted out of the loop later.
Issue overview
Three potential bugs in TDD related calculations in
CalcInteriorSolarDistribution
.The reporting at the end of the function starts a new surface loop, but the CosInc here is not re-calculated. The value, CosInc(Surfnum), used here is always the last calculated value for the last surface in the previous loop.
There are multiple special calculations (that are supposed to happen) for TDD Diffusers in the calculation loop (branch 1, branch 2, branch 3, branch 4), but Diffusers are not
ExtSolar
surface, and they get bypassed after this line.The branch here for TDD dome can never be reached as it's under an
else if
condition ofSurfWinWindowModelType(SurfNum) != WindowBSDFModel && SurfWinWindowModelType(SurfNum) != WindowEQLModel
, which also applies to TDD Domes.Defect file: testfiles/DaylightingDeviceTubular.idf
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.
The text was updated successfully, but these errors were encountered: