Fix Convective Baseboard with Hard Sizes#10772
Conversation
| } | ||
| } else { | ||
| auto &zoneEqSizing = state.dataSize->ZoneEqSizing(state.dataSize->CurZoneEqNum); | ||
| auto const &finalZoneSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum); |
There was a problem hiding this comment.
I wonder why I keep missing these allocation issues. Even here this doesn't look right. At this else, the flow could be autosized and a zone sizing run might not be requested. I think there needs to be a CheckZoneSizing call here to fatal out before the sizing arrays are accessed.
if (!FlowAutoSize && !state.dataSize->ZoneSizingRunDone) {
} else {
std::string_view const CompType = cCMO_BBRadiator_Water;
std::string_view const CompName = this->EquipID;
CheckZoneSizing(state, CompType, CompName);
// now OK to access sizing arrays
auto &zoneEqSizing = state.dataSize->ZoneEqSizing(state.dataSize->CurZoneEqNum);
auto const &finalZoneSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum);
There was a problem hiding this comment.
Several CheckZoneSizing calls were removed in #10721 and consolidated in the precheck function which is now called checkForZoneSizing.
There was a problem hiding this comment.
Right. And these references still need to be located where sizing is requested so this is good.
|
I tried to break this without success. The closest I got was reporting baseboard sizing when a Sizing:Plant object exists and otherwise not reporting that data. Since the UA and water flow rate are hard sized this is probably not a big deal. I don't think there is anything to do here so just documenting the fact that several variations of inputs were tested and passed. |
rraustad
left a comment
There was a problem hiding this comment.
These changes look sound. Unit test shows expected severe/fatal.
|
Documentation issue is obviously unrelated. I'm doing a quick build locally to verify things. |
|
This one is also happy locally, let's get this in as well. Thanks for this one @mjwitte |
Pull request overview
PlantUtilities::RegisterPlantCompDesignFlowwhich is needed if the baseboard is autosized or hard-sized.BaseboardParams::SizeBaseboardand moves some reference assignments to avoid the crash. Also, theresetSizingFlagBasedOnInputfunction is changed tocheckForZoneSizingwhich callsCheckZoneSizingis anything is autosized.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.