Skip to content

Commit

Permalink
Space IV.5 - Restore latent multiplier for nonAirSystems sizing
Browse files Browse the repository at this point in the history
  • Loading branch information
mjwitte committed Sep 4, 2024
1 parent ffd972d commit e16482c
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/EnergyPlus/ZoneEquipmentManager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -558,15 +558,17 @@ void sizeZoneSpaceEquipmentPart1(EnergyPlusData &state,
} else {
nonAirSystemResponse = SysOutputProvided;
if (zsCalcSizing.zoneLatentSizing) {
zoneLatentGain += (LatOutputProvided * HgAir);
int zoneMult = zoneOrSpace.Multiplier * zoneOrSpace.ListMultiplier;
zoneLatentGain += (LatOutputProvided * HgAir) / zoneMult;

This comment has been minimized.

Copy link
@rraustad

rraustad Sep 4, 2024

Contributor

You had me convinced the first time when the multiplier was removed since sensible doesn't use the multiplier either. Now I'm not sure what to think. Does SysOutputProvided and LatOutputProvided include the multiplier or not? The only alternative is one does and the other does not.

This comment has been minimized.

Copy link
@mjwitte

mjwitte Sep 4, 2024

Author Contributor

I was also convinced, but this makes the unit tests make sense. I should probably add a comment. Because the sensible gets added to nonAirSystemResponse, it does not need the multiplier correction here (because it gets divided by zoneMult elsewhere. e.g.:

// SNLOAD is the single zone load, without Zone Multiplier or Zone List Multiplier
SNLoad = ZoneEnthalpyIn - (thisSystemNode.MassFlowRate / ZoneMult) * CpAir * thisSystemNode.Temp + this->NonAirSystemResponse / ZoneMult +
this->SysDepZoneLoadsLagged;

But the latent gets added to zoneHeatBalance(zoneNum).latentGain which never gets a multiplier adjustement in correctHumRat for example.

So, it appears that zoneHeatBalance(zoneNum).NonAirSystemResponse is the only member of zoneHeatBalance that is a multiplied value. So, it should be changed to be non-multiplied, which means lots of code changes to remove the multiplier in some places and add it in others. That can be a separate no-diff PR.

}
if (state.dataHeatBal->doSpaceHeatBalance && spaceNum == 0) {
for (int spaceNum : state.dataHeatBal->Zone(zoneNum).spaceIndexes) {
for (int spaceNum2 : state.dataHeatBal->Zone(zoneNum).spaceIndexes) {
// SpaceHB ToDo: For now allocate by space volume frac
auto &spHB = state.dataZoneTempPredictorCorrector->spaceHeatBalance(spaceNum);
spHB.NonAirSystemResponse = nonAirSystemResponse * state.dataHeatBal->space(spaceNum).fracZoneVolume;
auto &spHB = state.dataZoneTempPredictorCorrector->spaceHeatBalance(spaceNum2);
spHB.NonAirSystemResponse = nonAirSystemResponse * state.dataHeatBal->space(spaceNum2).fracZoneVolume;
if (zsCalcSizing.zoneLatentSizing) {
spHB.latentGain += (LatOutputProvided * HgAir) * state.dataHeatBal->space(spaceNum).fracZoneVolume;
int zoneMult = zoneOrSpace.Multiplier * zoneOrSpace.ListMultiplier;
spHB.latentGain += (LatOutputProvided * HgAir) * state.dataHeatBal->space(spaceNum2).fracZoneVolume / zoneMult;
}
}
}
Expand Down

0 comments on commit e16482c

Please sign in to comment.