From 8fdd5b0484f87384f58b9277576337103f6f3372 Mon Sep 17 00:00:00 2001 From: rraustad Date: Wed, 21 May 2025 20:17:17 -0400 Subject: [PATCH 1/6] Allow HW coil UA sizing failure to proceed --- .../Autosizing/WaterHeatingCoilUASizing.cc | 10 ++----- src/EnergyPlus/SingleDuct.cc | 28 ++++++++++++++++++- .../WaterHeatingCoilUASizing.unit.cc | 16 +++++------ 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc b/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc index 3a5a60cbaec..38520fc2be6 100644 --- a/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc +++ b/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc @@ -82,7 +82,6 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu }; General::SolveRoot(state, Acc, MaxIte, SolFla, this->autoSizedValue, f, UA0, UA1); if (SolFla == -1) { - errorsFound = true; std::string msg = "Autosizing of heating coil UA failed for Coil:Heating:Water \"" + this->compName + "\""; this->addErrorMessage(msg); ShowSevereError(state, msg); @@ -141,10 +140,7 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu this->addErrorMessage(msg); ShowContinueError(state, msg); } - this->dataErrorsFound = true; } else if (SolFla == -2) { - this->errorType = AutoSizingResultType::ErrorType1; - errorsFound = true; std::string msg = "Autosizing of heating coil UA failed for Coil:Heating:Water \"" + this->compName + "\""; this->addErrorMessage(msg); ShowSevereError(state, msg); @@ -217,7 +213,7 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu this->addErrorMessage(msg); ShowContinueError(state, msg); } - this->dataErrorsFound = true; + this->autoSizedValue = UA1; } } else { this->autoSizedValue = 1.0; @@ -258,7 +254,6 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu }; General::SolveRoot(state, Acc, MaxIte, SolFla, this->autoSizedValue, f, UA0, UA1); if (SolFla == -1) { - errorsFound = true; std::string msg = "Autosizing of heating coil UA failed for Coil:Heating:Water \"" + this->compName + "\""; this->addErrorMessage(msg); ShowSevereError(state, msg); @@ -301,7 +296,6 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu this->addErrorMessage(msg); ShowContinueError(state, msg); } - this->dataErrorsFound = true; } else if (SolFla == -2) { this->errorType = AutoSizingResultType::ErrorType1; errorsFound = true; @@ -361,7 +355,7 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu this->addErrorMessage(msg); ShowContinueError(state, msg); } - this->dataErrorsFound = true; + this->autoSizedValue = UA1; } } else { this->autoSizedValue = 1.0; diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index 487e7ab3f2e..b8a98bd8bdc 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -2973,7 +2973,33 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state) } } } - + if (state.dataSize->TermUnitFinalZoneSizing.size() > 0 && + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow < + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow) { + ShowMessage(state, format("SizeHVACSingleDuct: Potential issue with equipment sizing for {} = \"{}\".", this->sysType, this->SysName)); + ShowContinueError(state, + format("Terminal unit design air flow rate during Reheat of {:.5R} [m3/s]", + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow)); + ShowContinueError(state, + format("is less than the zone design heating air flow rate of {:.5R} [m3/s]", + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow)); + ShowContinueError(state, + format("For reference the zone design cooling air flow rate is {:.5R} [m3/s]", + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow)); + ShowContinueError(state, + format("For reference the zone design minimum cooling air flow rate is {:.5R} [m3/s]", + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlowMin)); + int zoneNum = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneNum; + int SizingInputNum = + Util::FindItemInList(state.dataHeatBal->Zone(zoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); + if (SizingInputNum == 0) SizingInputNum = 1; + if (state.dataSize->ZoneSizingInput.size() > 0 && state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac < 1.0) { + ShowContinueError(state, + format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R} [m3/s]", + state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac)); + } + ShowContinueError(state, "Check zone and equipment sizing inputs for proper design"); + } if (TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow > SmallAirVolFlow) { if (this->DamperHeatingAction == Action::ReverseWithLimits) { TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = diff --git a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc index 84b84b013b0..f27d395f535 100644 --- a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc @@ -176,12 +176,12 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, HVAC::cAllCoilTypes(HVAC::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*state, inputValue, errorsFound); - EXPECT_TRUE(errorsFound); - EXPECT_TRUE(state->dataSize->DataErrorsFound); - EXPECT_TRUE(sizer.dataErrorsFound); - EXPECT_ENUM_EQ(AutoSizingResultType::ErrorType1, sizer.errorType); + EXPECT_FALSE(errorsFound); + EXPECT_FALSE(state->dataSize->DataErrorsFound); + EXPECT_FALSE(sizer.dataErrorsFound); + EXPECT_ENUM_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - EXPECT_NEAR(3.0, sizedValue, 0.01); // 0.1% of 3000 W capacity + EXPECT_NEAR(3000.0, sizedValue, 0.01); // 100% of 3000 W capacity state->dataWaterCoils->WaterCoil(1).InletAirTemp = 21.0; state->dataSize->DataErrorsFound = false; sizer.dataErrorsFound = false; @@ -272,9 +272,9 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) EXPECT_ENUM_EQ(AutoSizingResultType::ErrorType1, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_TRUE(errorsFound); - EXPECT_TRUE(state->dataSize->DataErrorsFound); - EXPECT_TRUE(sizer.dataErrorsFound); - EXPECT_NEAR(3.0, sizedValue, 0.01); // 0.1% of 3000 W capacity + EXPECT_FALSE(state->dataSize->DataErrorsFound); + EXPECT_FALSE(sizer.dataErrorsFound); + EXPECT_NEAR(3000.0, sizedValue, 0.01); // 100% of 3000 W capacity state->dataWaterCoils->WaterCoil(1).InletAirTemp = 21.0; state->dataSize->DataErrorsFound = false; sizer.dataErrorsFound = false; From a81ec440d889747061f854278854665ce4d8148c Mon Sep 17 00:00:00 2001 From: rraustad Date: Wed, 21 May 2025 21:14:27 -0400 Subject: [PATCH 2/6] Fix failed unit tests --- tst/EnergyPlus/unit/SingleDuct.unit.cc | 1 + tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/tst/EnergyPlus/unit/SingleDuct.unit.cc b/tst/EnergyPlus/unit/SingleDuct.unit.cc index cc89e3506a0..718d144b24b 100644 --- a/tst/EnergyPlus/unit/SingleDuct.unit.cc +++ b/tst/EnergyPlus/unit/SingleDuct.unit.cc @@ -2774,6 +2774,7 @@ TEST_F(EnergyPlusFixture, VAVReheatTerminal_SizeMinFrac) thisSys.ZoneMinAirFracDes = DataSizing::AutoSize; thisSys.MaxAirVolFlowRateDuringReheat = DataSizing::AutoSize; thisSys.MaxAirVolFractionDuringReheat = DataSizing::AutoSize; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneNum = 1; state->dataSize->TermUnitFinalZoneSizing(1).DesHeatVolFlow = 1.7; state->dataSize->TermUnitFinalZoneSizing(1).DesHeatVolFlowMax = 1.6; thisSys.SizeSys(*state); diff --git a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc index 866867b230c..160eb0a4477 100644 --- a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc +++ b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc @@ -248,6 +248,7 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing1) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = @@ -439,6 +440,7 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing2) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = @@ -633,6 +635,7 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing3) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesCoolVolFlow = 0.21081; state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; @@ -973,6 +976,7 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing5) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = From a94af4e3993d1fbf4501bed6176e9f36fca72d4c Mon Sep 17 00:00:00 2001 From: rraustad Date: Wed, 21 May 2025 21:24:03 -0400 Subject: [PATCH 3/6] Add check for this->DamperHeatingAction == Action::ReverseWithLimits --- src/EnergyPlus/SingleDuct.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index b8a98bd8bdc..b8f2caac4a4 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -2973,7 +2973,7 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state) } } } - if (state.dataSize->TermUnitFinalZoneSizing.size() > 0 && + if (state.dataSize->TermUnitFinalZoneSizing.size() > 0 && this->DamperHeatingAction == Action::ReverseWithLimits && TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow < state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow) { ShowMessage(state, format("SizeHVACSingleDuct: Potential issue with equipment sizing for {} = \"{}\".", this->sysType, this->SysName)); From 0ab84450b0b440b07328933089c992d7de344acf Mon Sep 17 00:00:00 2001 From: rraustad Date: Thu, 22 May 2025 13:33:56 -0400 Subject: [PATCH 4/6] Rework conditionals to relax unit test requirements --- src/EnergyPlus/SingleDuct.cc | 16 +++++++++------- tst/EnergyPlus/unit/SingleDuct.unit.cc | 1 - tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc | 4 ---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index b8f2caac4a4..6dec9810e0a 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -2990,13 +2990,15 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state) format("For reference the zone design minimum cooling air flow rate is {:.5R} [m3/s]", state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlowMin)); int zoneNum = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneNum; - int SizingInputNum = - Util::FindItemInList(state.dataHeatBal->Zone(zoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); - if (SizingInputNum == 0) SizingInputNum = 1; - if (state.dataSize->ZoneSizingInput.size() > 0 && state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac < 1.0) { - ShowContinueError(state, - format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R} [m3/s]", - state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac)); + if (zoneNum > 0) { + int SizingInputNum = + Util::FindItemInList(state.dataHeatBal->Zone(zoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); + if (SizingInputNum == 0) SizingInputNum = 1; + if (state.dataSize->ZoneSizingInput.size() > 0 && state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac < 1.0) { + ShowContinueError(state, + format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R} [m3/s]", + state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac)); + } } ShowContinueError(state, "Check zone and equipment sizing inputs for proper design"); } diff --git a/tst/EnergyPlus/unit/SingleDuct.unit.cc b/tst/EnergyPlus/unit/SingleDuct.unit.cc index 718d144b24b..cc89e3506a0 100644 --- a/tst/EnergyPlus/unit/SingleDuct.unit.cc +++ b/tst/EnergyPlus/unit/SingleDuct.unit.cc @@ -2774,7 +2774,6 @@ TEST_F(EnergyPlusFixture, VAVReheatTerminal_SizeMinFrac) thisSys.ZoneMinAirFracDes = DataSizing::AutoSize; thisSys.MaxAirVolFlowRateDuringReheat = DataSizing::AutoSize; thisSys.MaxAirVolFractionDuringReheat = DataSizing::AutoSize; - state->dataSize->TermUnitFinalZoneSizing(1).ZoneNum = 1; state->dataSize->TermUnitFinalZoneSizing(1).DesHeatVolFlow = 1.7; state->dataSize->TermUnitFinalZoneSizing(1).DesHeatVolFlowMax = 1.6; thisSys.SizeSys(*state); diff --git a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc index 160eb0a4477..866867b230c 100644 --- a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc +++ b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc @@ -248,7 +248,6 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing1) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = @@ -440,7 +439,6 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing2) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = @@ -635,7 +633,6 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing3) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesCoolVolFlow = 0.21081; state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; @@ -976,7 +973,6 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing5) state->dataSize->CurZoneEqNum = 1; state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneNum = 1; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = From b232a0989bb3fb067d03a6c010d13570ab04331f Mon Sep 17 00:00:00 2001 From: rraustad Date: Tue, 16 Sep 2025 09:41:48 -0400 Subject: [PATCH 5/6] Add more information to new warning message --- src/EnergyPlus/SingleDuct.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index 839713bcb08..965aa498f1d 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -3020,14 +3020,22 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state) if (zoneNum > 0) { int SizingInputNum = Util::FindItemInList(state.dataHeatBal->Zone(zoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); - if (SizingInputNum == 0) SizingInputNum = 1; + if (SizingInputNum == 0) { + SizingInputNum = 1; + } if (state.dataSize->ZoneSizingInput.size() > 0 && state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac < 1.0) { ShowContinueError(state, - format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R} [m3/s]", + format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R}", state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac)); + ShowContinueError(state, + format("Sizing:Zone Heating Maximum Air Flow per Zone Floor Area = {:.5R} [m3/s/m3]", + state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowPerArea)); + ShowContinueError(state, + format("For reference the zone design maximum heating air flow rate is {:.5R} [m3/s]", + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax)); } } - ShowContinueError(state, "Check zone and equipment sizing inputs for proper design"); + ShowContinueError(state, "Verify that the values entered are intended and are consistent with other components."); } if (TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow > SmallAirVolFlow) { if (this->DamperHeatingAction == Action::ReverseWithLimits) { From ffec3a1e921d37d49069724510f1fad497d9410b Mon Sep 17 00:00:00 2001 From: rraustad Date: Tue, 16 Sep 2025 10:33:36 -0400 Subject: [PATCH 6/6] Fix units in warning message --- src/EnergyPlus/SingleDuct.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index 965aa498f1d..b7a0446748d 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -3028,7 +3028,7 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state) format("Sizing:Zone Heating Maximum Air Flow Fraction = {:.5R}", state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowFrac)); ShowContinueError(state, - format("Sizing:Zone Heating Maximum Air Flow per Zone Floor Area = {:.5R} [m3/s/m3]", + format("Sizing:Zone Heating Maximum Air Flow per Zone Floor Area = {:.5R} [m3/s/m2]", state.dataSize->ZoneSizingInput(SizingInputNum).DesHeatMaxAirFlowPerArea)); ShowContinueError(state, format("For reference the zone design maximum heating air flow rate is {:.5R} [m3/s]",