-
Notifications
You must be signed in to change notification settings - Fork 425
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Fix identity matrix for diffuse solar exchange factors between zones #7983
Conversation
This is a pretty significant amount of diffs. I understand the change, but I need some testing before we can just merge this. First, you should come up with a unit test to ensure that the matrix is always reset to the identity whenever it needs to be. Second, some plots showing the impact on simulation results. It could be that this change simply triggers HVAC to be on and off at different times, but overall energy use isn't affected. That should be demonstrated through some plots. There are 7 files with big ESO diffs, and while you don't need to show plots for every file, you should show enough to confirm the change. |
@Myoldmopar The unit test is added. Comparing all the regression diffs in ASHRAE_LargeOffice during the design day simulations:
Due to the 0.00001 diff in the invalid temp range, the plant loop errors occur more time than the dev branch during warmup and are causing different behavior during sizing as the figure below shows.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code change here is great, and the unit test is as well. I am still nervous about how widespread the diffs are. I will need to run a little bit locally to convince myself but then I bet this can merge in.
@@ -4002,7 +4002,7 @@ namespace HeatBalanceSurfaceManager { | |||
} | |||
|
|||
RecDifShortFromZ = false; | |||
FractDifShortZtoZ = 0.0; | |||
FractDifShortZtoZ.to_identity(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is very succinct, and makes good sense.
EXPECT_FALSE(DataHeatBalSurface::RecDifShortFromZ(1)); | ||
EXPECT_FALSE(DataHeatBalSurface::RecDifShortFromZ(2)); | ||
|
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a really great unit test. Just enough setup to demonstrate the change.
I ran a sample of 50 files locally for design days and found the incident rate of big diffs was actually pretty low. I then went back and ran some specific files that were showing big diffs on CI. The diffs seemed small. I re-ran those files with annual runs and found the MTR diffs were technically out of range, but actually small. I think this is ready to go. Anyone have any concerns before merging? (Timer set...) |
Timer goes off OK, merging. |
Pull request overview
This is to fix the diagonal values of the matrix computing solar exchange factors between zones. The diagonal values of the matrix are set to ones at each time step and are used to calculate zone short-wave flux density QS, QSLights, and QSDifSol. However, during kickoff simulation and sizing, the values are set to zeros, which I suppose they should not, as the zone short-wave flux density values are set to zero during kicking off. And changing this line is causing major diffs in this branch.
Pull Request Author
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Reviewer
This will not be exhaustively relevant to every PR.