Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions src/EnergyPlus/BaseboardRadiator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -375,10 +375,6 @@ namespace BaseboardRadiator {
state, std::format("Blank field not allowed for {}", numericFieldNames[iHeatFracOfAutosizedCapacityNumericNum - 1]));
ErrorsFound = true;
}
} else {
ShowSevereError(state, std::format("{} = {}", cCMO_BBRadiator_Water, thisBaseboard.EquipID));
ShowContinueError(state, std::format("Illegal {} = {}", heatingDesignCapacityMethodFieldName, heatingDesignCapacityMethod));
ErrorsFound = true;
}

thisBaseboard.UA = inputProcessor->getRealFieldValue(baseboardFields, baseboardSchemaProps, "u_factor_times_area_value");
Expand Down Expand Up @@ -631,14 +627,20 @@ namespace BaseboardRadiator {
this->ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea;
TempSize = zoneEqSizing.DesHeatingLoad;
state.dataSize->DataScalableCapSizingON = true;
} else if (CapSizingMethod == DataSizing::FractionOfAutosizedHeatingCapacity) {
} else { // CapSizingMethod == DataSizing::FractionOfAutosizedHeatingCapacity
zoneEqSizing.HeatingCapacity = true;
state.dataSize->DataFracOfAutosizedHeatingCapacity = this->ScaledHeatingCapacity;
zoneEqSizing.DesHeatingLoad = finalZoneSizing.NonAirSysDesHeatLoad;
TempSize = DataSizing::AutoSize;
state.dataSize->DataScalableCapSizingON = true;
} else {
TempSize = this->ScaledHeatingCapacity;
}
if (!state.dataSize->FinalZoneSizing.empty() &&
state.dataSize->CurZoneEqNum <= static_cast<int>(state.dataSize->FinalZoneSizing.size())) {
BaseSizer::reportSizerOutput(state,
cCMO_BBRadiator_Water,
this->EquipID,
"Design Size Heating Load [W]",
state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad);
}
bool PrintFlag = false; // TRUE when sizing information is reported in the eio file
bool errorsFound = false;
Expand Down
12 changes: 9 additions & 3 deletions src/EnergyPlus/HWBaseboardRadiator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1018,15 +1018,13 @@ namespace HWBaseboardRadiator {
hWBaseboard.ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea;
TempSize = zoneEqSizing.DesHeatingLoad;
state.dataSize->DataScalableCapSizingON = true;
} else if (CapSizingMethod == DataSizing::FractionOfAutosizedHeatingCapacity) {
} else { // CapSizingMethod == DataSizing::FractionOfAutosizedHeatingCapacity
CheckZoneSizing(state, CompType, CompName);
zoneEqSizing.HeatingCapacity = true;
state.dataSize->DataFracOfAutosizedHeatingCapacity = hWBaseboard.ScaledHeatingCapacity;
zoneEqSizing.DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad;
TempSize = DataSizing::AutoSize;
state.dataSize->DataScalableCapSizingON = true;
} else {
TempSize = hWBaseboard.ScaledHeatingCapacity;
}
bool PrintFlag = false;
bool errorsFound = false;
Expand All @@ -1039,6 +1037,14 @@ namespace HWBaseboardRadiator {
} else {
hWBaseboard.RatedCapacity = TempSize;
}
if (!state.dataSize->FinalZoneSizing.empty() &&
state.dataSize->CurZoneEqNum <= static_cast<int>(state.dataSize->FinalZoneSizing.size())) {
BaseSizer::reportSizerOutput(state,
cCMO_BBRadiator_Water,
hWBaseboard.Name,
"Design Size Heating Load [W]",
state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad);
}
RatedCapacityDes = TempSize;
state.dataSize->DataScalableCapSizingON = false;
}
Expand Down
32 changes: 32 additions & 0 deletions tst/EnergyPlus/unit/BaseboardRadiator.unit.cc
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,20 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest)
state->dataBaseboardRadiator->baseboards(BaseboardNum).ScaledHeatingCapacity = DataSizing::AutoSize;
state->dataBaseboardRadiator->baseboards(BaseboardNum).WaterVolFlowRateMax = DataSizing::AutoSize;
state->dataBaseboardRadiator->baseboards(BaseboardNum).UA = DataSizing::AutoSize; // reset to autosize to test new calculation
state->files.eio.open_as_stringstream();
state->dataBaseboardRadiator->baseboards(BaseboardNum).SizeBaseboard(*state, BaseboardNum);
EXPECT_EQ(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CntrlZoneNum).RemainingOutputReqToHeatSP, 2000.0); // design load = 2000
EXPECT_EQ(state->dataBaseboardRadiator->baseboards(BaseboardNum).UA, 2000.0); // UA = design load
EXPECT_NEAR(state->dataBaseboardRadiator->baseboards(BaseboardNum).WaterVolFlowRateMax, 4.86063E-05, 0.0000001);
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE2-1 BASEBOARD, "
"Design Size Maximum Water Flow Rate [m3/s], 4.86063E-05",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE2-1 BASEBOARD, "
"Design Size Heating Load [W], 2000.00",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE2-1 BASEBOARD, "
"Design Size U-Factor Times Area Value [W/K], 2000.00",
true));

BaseboardNum = 2;
CntrlZoneNum = 2;
Expand Down Expand Up @@ -444,8 +455,19 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest)
// check UA value with autosized UA
state->dataBaseboardRadiator->baseboards(BaseboardNum).HeatingCapMethod = DataSizing::HeatingDesignCapacity;
state->dataBaseboardRadiator->baseboards(BaseboardNum).ScaledHeatingCapacity = DataSizing::AutoSize;
state->files.eio.open_as_stringstream();
state->dataBaseboardRadiator->baseboards(BaseboardNum).SizeBaseboard(*state, BaseboardNum);
EXPECT_EQ(state->dataBaseboardRadiator->baseboards(BaseboardNum).UA, 2000.0);
EXPECT_NEAR(state->dataBaseboardRadiator->baseboards(BaseboardNum).WaterVolFlowRateMax, 4.86063E-05, 0.0000001);
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE3-1 BASEBOARD, "
"Design Size Maximum Water Flow Rate [m3/s], 4.86063E-05",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE3-1 BASEBOARD, "
"Design Size Heating Load [W], 2000.00",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE3-1 BASEBOARD, "
"Design Size U-Factor Times Area Value [W/K], 2000.00",
true));

BaseboardNum = 3;
CntrlZoneNum = 3;
Expand Down Expand Up @@ -473,8 +495,18 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest)
// check UA value with autosized scaled capacity
state->dataBaseboardRadiator->baseboards(BaseboardNum).HeatingCapMethod = DataSizing::HeatingDesignCapacity;
state->dataBaseboardRadiator->baseboards(BaseboardNum).ScaledHeatingCapacity = DataSizing::AutoSize;
state->files.eio.open_as_stringstream();
state->dataBaseboardRadiator->baseboards(BaseboardNum).SizeBaseboard(*state, BaseboardNum);
EXPECT_EQ(state->dataBaseboardRadiator->baseboards(BaseboardNum).UA, 3000.0);
EXPECT_NEAR(state->dataBaseboardRadiator->baseboards(BaseboardNum).WaterVolFlowRateMax, 7.29095E-05, 0.0000001);
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE4-1 BASEBOARD, "
"Design Size Maximum Water Flow Rate [m3/s], 7.29095E-05",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE4-1 BASEBOARD, "
"Design Size Heating Load [W], 3000.00",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:Convective:Water, SPACE4-1 BASEBOARD, "
"Design Size U-Factor Times Area Value [W/K], 3000.00"));
}

TEST_F(EnergyPlusFixture, BaseboardConvWater_checkForZoneSizingTest)
Expand Down
41 changes: 41 additions & 0 deletions tst/EnergyPlus/unit/HWBaseboardRadiator.unit.cc
Original file line number Diff line number Diff line change
Expand Up @@ -334,4 +334,45 @@ TEST_F(EnergyPlusFixture, HWBaseboardRadiator_HWBaseboardWaterInputTest)
ASSERT_NEAR(state->dataHWBaseboardRad->HWBaseboardDesignObject(1).FracRadiant, 0.4, absTol);
ASSERT_NEAR(state->dataHWBaseboardRad->HWBaseboardDesignObject(1).FracDistribPerson, 0.2, absTol);
ASSERT_NEAR(state->dataHWBaseboardRad->HWBaseboard(1).FracConvect, 0.6, absTol);

state->dataSize->CurZoneEqNum = 1;
state->dataSize->ZoneSizingRunDone = true;
state->dataSize->FinalZoneSizing.allocate(1);
state->dataSize->FinalZoneSizing(1).NonAirSysDesHeatLoad = 1300.0;
state->dataSize->ZoneEqSizing.allocate(1);
state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(HVAC::NumOfSizingTypes);
state->dataHWBaseboardRad->HWBaseboard(1).HeatingCapMethod = DataSizing::HeatingDesignCapacity;
state->dataHWBaseboardRad->HWBaseboard(1).ScaledHeatingCapacity = DataSizing::AutoSize;
state->dataHWBaseboardRad->HWBaseboard(1).plantLoc.loopNum = 1;

state->dataPlnt->PlantLoop.allocate(1);
state->dataPlnt->PlantLoop(1).PlantSizNum = 1;
state->dataSize->PlantSizData.allocate(1);
state->dataSize->PlantSizData(1).DeltaT = 10.0;
state->dataPlnt->PlantLoop(1).LoopSide[0].Branch.allocate(1);
state->dataPlnt->PlantLoop(1).LoopSide[0].Branch(1).Comp.allocate(1);

auto &this_loop = state->dataPlnt->PlantLoop(1);
this_loop.glycol = Fluid::GetWater(*state);
auto &this_loop_side = this_loop.LoopSide[0];
auto &this_branch = state->dataPlnt->PlantLoop(1).LoopSide[0].Branch(1);
auto &this_comp = state->dataPlnt->PlantLoop(1).LoopSide[0].Branch(1).Comp(1);

state->dataHWBaseboardRad->HWBaseboard(1).plantLoc.loop = &this_loop;
state->dataHWBaseboardRad->HWBaseboard(1).plantLoc.side = &this_loop_side;
state->dataHWBaseboardRad->HWBaseboard(1).plantLoc.branch = &this_branch;
state->dataHWBaseboardRad->HWBaseboard(1).plantLoc.comp = &this_comp;

state->files.eio.open_as_stringstream();
SizeHWBaseboard(*state, 1);
EXPECT_NEAR(state->dataHWBaseboardRad->HWBaseboard(1).UA, 24.2144, 0.0001);
EXPECT_NEAR(state->dataHWBaseboardRad->HWBaseboard(1).WaterVolFlowRateMax, 3.15941E-05, 0.0000001);
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:RadiantConvective:Water, THISISABASEBOARD, "
"Design Size Heating Load [W], 1300.00",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:RadiantConvective:Water, THISISABASEBOARD, "
"Design Size Maximum Water Flow Rate [m3/s], 3.15941E-05",
false));
EXPECT_TRUE(compare_eio_stream_substring("Component Sizing Information, ZoneHVAC:Baseboard:RadiantConvective:Water, THISISABASEBOARD, "
"U-Factor times Area [W/C], 24.2144"));
}
Loading