ZoneBaseboard:OutdoorTemperatureControlled autosizing is missing#11579
ZoneBaseboard:OutdoorTemperatureControlled autosizing is missing#11579joseph-robertson wants to merge 5 commits into
Conversation
|
|
|
Does it seem like |
| if (state.dataEnvrn->CurEnvirNum != ScannedEnvirNum) { | ||
| ScannedEnvirNum = state.dataEnvrn->CurEnvirNum; | ||
| DesDayOutDryBulbTemp(ScannedEnvirNum) = state.dataEnvrn->OutDryBulbTemp; | ||
| if (state.dataEnvrn->CurEnvirNum <= state.dataEnvrn->TotDesDays) { // FIXME: this was == in the original code |
There was a problem hiding this comment.
What original code? I don't see any code that was deleted. I think == was used to determine when all design days have simulated (i.e., components don't usually size until zone sizing is complete). But each design day has multiple time steps so just looking at the CurEnvirNum isn't enough to know that sizing has completed. Most sizing routines are not called until !state.dataGlobal->SysSizingCalc. This does seem weird in that state.dataEnvrn->OutDryBulbTemp is set by the weather manager each time step, so this code is capturing the last time step's OAT in each specific design day. Not what I would expect. Also, at line 6926 below it's looking for max OAT not the min (i.e., if (MinDesOutTemp > DesDayOutDryBulbTemp(Loop))). Too much to discuss in a comment.
The BaseBoards do have a size function, but this object is managed in InternalHeatGains, for whatever reason. Sizing is typically called from the init function with proper protection to ensure it is called after sizing completes. So this does seem OK since it's called from void InitBaseboard() So this new code does call a sizing function, it's called from init in the code that manages the object, and the sizing call should be protected to only call the new size function after sizing is complete. Using |
Pull request overview
Description of the purpose of this PR
Pull Request Author
Reviewer