diff --git a/tst/EnergyPlus/unit/SizingManager.unit.cc b/tst/EnergyPlus/unit/SizingManager.unit.cc index 6184f627ca2..b139e5737b2 100644 --- a/tst/EnergyPlus/unit/SizingManager.unit.cc +++ b/tst/EnergyPlus/unit/SizingManager.unit.cc @@ -559,7 +559,7 @@ TEST_F(EnergyPlusFixture, SizingManager_OverrideAvgWindowInSizing) EXPECT_EQ(state->dataGlobal->NumOfTimeStepInHour, 1); EXPECT_EQ(state->dataSize->NumTimeStepsInAvg, 1); } -TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_1x) { std::string const idf_objects = delimited_string({ " Timestep,6;", @@ -578,6 +578,34 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) " No, !- Run Simulation for Sizing Periods", " No; !- Run Simulation for Weather File Run Periods", + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + " SizingPeriod:DesignDay,", " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", " 7, !- Month", @@ -949,11 +977,12 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) ASSERT_TRUE(process_idf(idf_objects)); SimulationManager::ManageSimulation(*state); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("1898.77", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.053", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.053", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); EXPECT_EQ("832.44", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); @@ -961,11 +990,12 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); EXPECT_EQ("7/21 17:30:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("631.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); EXPECT_EQ("940.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); @@ -973,11 +1003,12 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("631.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); EXPECT_EQ("810.65", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); @@ -986,11 +1017,12 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("3155.31", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.088", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.088", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); EXPECT_EQ("1942.36", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); EXPECT_EQ("0.135", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); EXPECT_EQ("0.135", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); @@ -998,9 +1030,8 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident) OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); } -TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_10x) { - // Spaces peak on same day std::string const idf_objects = delimited_string({ " Timestep,6;", @@ -1018,6 +1049,34 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) " No, !- Run Simulation for Sizing Periods", " No; !- Run Simulation for Weather File Run Periods", + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + " SizingPeriod:DesignDay,", " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", " 7, !- Month", @@ -1128,7 +1187,7 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) " , !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", - " NonCoincident; !- Type of Space Sum to Use", + " Coincident; !- Type of Space Sum to Use", " DesignSpecification:OutdoorAir,", " SZ DSOA West Zone, !- Name", @@ -1144,7 +1203,7 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) " 0, !- Y Origin {m}", " 0, !- Z Origin {m}", " 1, !- Type", - " 1, !- Multiplier", + " 10, !- Multiplier", " 3.048, !- Ceiling Height {m}", " 40.; !- Volume {m3}", @@ -1389,60 +1448,62 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) ASSERT_TRUE(process_idf(idf_objects)); SimulationManager::ManageSimulation(*state); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); - EXPECT_EQ("832.44", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); - EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); - EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("18987.69", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("8324.40", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); EXPECT_EQ("7/21 17:30:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); - EXPECT_EQ("940.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); - EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); - EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("9402.01", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); - EXPECT_EQ("810.65", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); - EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); - EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("8106.47", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); - // For noncoincident, expect zone Des Cooling Load to be sum of space loads = 832.44 + 940.2 + 810.65 = 2583.29 - // For noncoincident, expect zone Des Cooling Air Flow to be sum of space flows = 0.058 + 0.065 + 0.056 = 0.179 - // Spaces peak on same day, so expect zone peak time to be the same as coincident sizing - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); - EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); - EXPECT_EQ("2583.29", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); - EXPECT_EQ("0.179", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); - EXPECT_EQ("0.179", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("31553.14", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("19423.64", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); } -TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) -// Spaces peak on different days +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident1) { + // Spaces peak on same day std::string const idf_objects = delimited_string({ " Timestep,6;", @@ -1461,7 +1522,7 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " No; !- Run Simulation for Weather File Run Periods", " SizingPeriod:DesignDay,", - " CHICAGO_IL_USA July Cooling 1% Design Conditions DB/MCWB, !- Name", + " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", " 7, !- Month", " 21, !- Day of Month", " SummerDesignDay, !- Day Type", @@ -1488,62 +1549,6 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", " 1.0; !- Sky Clearness", - " SizingPeriod:DesignDay,", - " CHICAGO_IL_USA August Cooling 1% Design Conditions DB/MCWB, !- Name", - " 8, !- Month", - " 21, !- Day of Month", - " SummerDesignDay, !- Day Type", - " 31.5, !- Maximum Dry-Bulb Temperature {C}", - " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", - " , !- Dry-Bulb Temperature Range Modifier Type", - " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", - " Wetbulb, !- Humidity Condition Type", - " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", - " , !- Humidity Condition Day Schedule Name", - " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", - " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", - " , !- Daily Wet-Bulb Temperature Range {deltaC}", - " 99063., !- Barometric Pressure {Pa}", - " 5.3, !- Wind Speed {m/s}", - " 230, !- Wind Direction {deg}", - " No, !- Rain Indicator", - " No, !- Snow Indicator", - " No, !- Daylight Saving Time Indicator", - " ASHRAEClearSky, !- Solar Model Indicator", - " , !- Beam Solar Day Schedule Name", - " , !- Diffuse Solar Day Schedule Name", - " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", - " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", - " 1.0; !- Sky Clearness", - - " SizingPeriod:DesignDay,", - " CHICAGO_IL_USA September Cooling 1% Design Conditions DB/MCWB, !- Name", - " 9, !- Month", - " 21, !- Day of Month", - " SummerDesignDay, !- Day Type", - " 31.5, !- Maximum Dry-Bulb Temperature {C}", - " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", - " , !- Dry-Bulb Temperature Range Modifier Type", - " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", - " Wetbulb, !- Humidity Condition Type", - " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", - " , !- Humidity Condition Day Schedule Name", - " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", - " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", - " , !- Daily Wet-Bulb Temperature Range {deltaC}", - " 99063., !- Barometric Pressure {Pa}", - " 5.3, !- Wind Speed {m/s}", - " 230, !- Wind Direction {deg}", - " No, !- Rain Indicator", - " No, !- Snow Indicator", - " No, !- Daylight Saving Time Indicator", - " ASHRAEClearSky, !- Solar Model Indicator", - " , !- Beam Solar Day Schedule Name", - " , !- Diffuse Solar Day Schedule Name", - " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", - " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", - " 1.0; !- Sky Clearness", - " ZoneControl:Thermostat,", " Zone 1 Thermostat, !- Name", " Zone 1, !- Zone or ZoneList Name", @@ -1642,7 +1647,7 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " 0, !- Y Origin {m}", " 0, !- Z Origin {m}", " 1, !- Type", - " 1, !- Multiplier", + " 10, !- Multiplier", " 3.048, !- Ceiling Height {m}", " 40.; !- Volume {m3}", @@ -1816,9 +1821,9 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " ElectricEquipment,", " Space 1 ElecEq, !- Name", " Space 1, !- Zone or ZoneList Name", - " July Morning, !- Schedule Name", + " Morning, !- Schedule Name", " EquipmentLevel, !- Design Level Calculation Method", - " 5000.0, !- Design Level {W}", + " 500.0, !- Design Level {W}", " , !- Watts per Zone Floor Area {W/m2}", " , !- Watts per Person {W/person}", " 0, !- Fraction Latent", @@ -1826,26 +1831,20 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " 0; !- Fraction Lost", " Schedule:Compact,", - " July Morning, !- Name", + " Morning, !- Name", " , !- Schedule Type Limits Name", - " Through: 6/30, !- Field 9", - " For: Alldays, !- Field 10", - " Until: 24:00,0.0, !- Field 11", - " Through: 7/31, !- Field 9", + " Through: 12/31, !- Field 9", " For: Alldays, !- Field 10", " Until: 8:00,0.0, !- Field 11", " Until: 12:00,1.0, !- Field 11", - " Until: 24:00,0.0, !- Field 11", - " Through: 12/31, !- Field 9", - " For: Alldays, !- Field 10", " Until: 24:00,0.0; !- Field 11", " ElectricEquipment,", " Space 2 ElecEq, !- Name", " Space 2, !- Zone or ZoneList Name", - " August Afternoon, !- Schedule Name", + " Afternoon, !- Schedule Name", " EquipmentLevel, !- Design Level Calculation Method", - " 10000.0, !- Design Level {W}", + " 1000.0, !- Design Level {W}", " , !- Watts per Zone Floor Area {W/m2}", " , !- Watts per Person {W/person}", " 0, !- Fraction Latent", @@ -1853,26 +1852,20 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " 0; !- Fraction Lost", " Schedule:Compact,", - " August Afternoon, !- Name", + " Afternoon, !- Name", " , !- Schedule Type Limits Name", - " Through: 7/31, !- Field 9", - " For: Alldays, !- Field 10", - " Until: 24:00,0.0, !- Field 11", - " Through: 8/31, !- Field 9", + " Through: 12/31, !- Field 9", " For: Alldays, !- Field 10", " Until: 12:00,0.0, !- Field 11", " Until: 16:00,1.0, !- Field 11", - " Until: 24:00,0.0, !- Field 11", - " Through: 12/31, !- Field 9", - " For: Alldays, !- Field 10", " Until: 24:00,0.0; !- Field 11", " ElectricEquipment,", " Space 3 ElecEq, !- Name", " Space 3, !- Zone or ZoneList Name", - " September Evening, !- Schedule Name", + " Evening, !- Schedule Name", " EquipmentLevel, !- Design Level Calculation Method", - " 7500.0, !- Design Level {W}", + " 750.0, !- Design Level {W}", " , !- Watts per Zone Floor Area {W/m2}", " , !- Watts per Person {W/person}", " 0, !- Fraction Latent", @@ -1880,18 +1873,12 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) " 0; !- Fraction Lost", " Schedule:Compact,", - " September Evening, !- Name", + " Evening, !- Name", " , !- Schedule Type Limits Name", - " Through: 8/31, !- Field 9", - " For: Alldays, !- Field 10", - " Until: 24:00,0.0, !- Field 11", - " Through: 9/30, !- Field 9", - " For: Alldays, !- Field 10", - " Until: 16:00,0.0, !- Field 11", - " Until: 20:00,1.0, !- Field 11", - " Until: 24:00,0.0, !- Field 11", " Through: 12/31, !- Field 9", " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", " Until: 24:00,0.0; !- Field 11", "ZoneAirHeatBalanceAlgorithm,", @@ -1910,48 +1897,2395 @@ TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); - EXPECT_EQ("4165.02", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); - EXPECT_EQ("0.289", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); - EXPECT_EQ("0.289", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); - EXPECT_EQ("CHICAGO_IL_USA JULY COOLING 1% DESIGN CONDITIONS DB/MCWB", + EXPECT_EQ("8324.40", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); - EXPECT_EQ("7/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); + EXPECT_EQ("7/21 17:30:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); - EXPECT_EQ("7725.80", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); - EXPECT_EQ("0.536", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); - EXPECT_EQ("0.536", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); - EXPECT_EQ("CHICAGO_IL_USA AUGUST COOLING 1% DESIGN CONDITIONS DB/MCWB", + EXPECT_EQ("9402.01", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); - EXPECT_EQ("8/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); - EXPECT_EQ("5826.87", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); - EXPECT_EQ("0.404", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); - EXPECT_EQ("0.404", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); - EXPECT_EQ("CHICAGO_IL_USA SEPTEMBER COOLING 1% DESIGN CONDITIONS DB/MCWB", + EXPECT_EQ("8106.47", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); - EXPECT_EQ("9/21 20:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); + EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); - // For noncoincident, expect zone Des Cooling Load to be sum of space loads = 4165.02 + 7725.80 + 5826.87 = 17717.69 - // For noncoincident, expect zone Des Cooling Air Flow to be sum of space flows = 0.289 + 0.536 + 0.404 = 1.229 - // Spaces peak on same day, so expect zone peak time to be the different coincident sizing, and day to be "N/A" + // For noncoincident, expect zone Des Cooling Load to be sum of space loads = 832.44 + 940.2 + 810.65 = 2583.29 + // For noncoincident, expect zone Des Cooling Air Flow to be sum of space flows = 0.058 + 0.065 + 0.056 = 0.179 + // Spaces peak on same day, so expect zone peak time to be the same as coincident sizing EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); - EXPECT_EQ("17717.69", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); - EXPECT_EQ("1.230", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); - EXPECT_EQ("1.230", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); - EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); - EXPECT_EQ("16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); + EXPECT_EQ("25832.88", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.793", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.793", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); +} +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_NonCoincident2) +// Spaces peak on different days +{ + std::string const idf_objects = delimited_string({ + " Timestep,6;", + + " Site:Location,", + " CHICAGO_IL_USA TMY2-94846, !- Name", + " 41.78, !- Latitude {deg}", + " -87.75, !- Longitude {deg}", + " -6.00, !- Time Zone {hr}", + " 190.00; !- Elevation {m}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " No, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " No, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA July Cooling 1% Design Conditions DB/MCWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA August Cooling 1% Design Conditions DB/MCWB, !- Name", + " 8, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA September Cooling 1% Design Conditions DB/MCWB, !- Name", + " 9, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " ZoneControl:Thermostat,", + " Zone 1 Thermostat, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " Dual Setpoint with SB; !- Control 1 Name", + + " Schedule:Compact,", + " ZONE CONTROL TYPE SCHED, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,4; !- Field 11", + + " ThermostatSetpoint:DualSetpoint,", + " Dual Setpoint with SB,!- Name", + " Heating Setpoints, !- Setpoint Temperature Schedule Name", + " Cooling Setpoints; !- Setpoint Temperature Schedule Name", + + " Schedule:Compact,", + " HEATING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,15.00, !- Field 3", + " Until: 17:00,20.00, !- Field 5", + " Until: 24:00,15.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,15.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,20.00; !- Field 13", + + " Schedule:Compact,", + " COOLING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,30.00, !- Field 3", + " Until: 17:00,24.00, !- Field 5", + " Until: 24:00,30.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,24.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,50.00; !- Field 13", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 12., !- Zone Cooling Design Supply Air Temperature {C}", + " , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}", + " SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method", + " 50., !- Zone Heating Design Supply Air Temperature {C}", + " , !- Zone Heating Design Supply Air Temperature Difference {deltaC}", + " 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA West Zone, !- Design Specification Outdoor Air Object Name", + " 1.0, !- Zone Heating Sizing Factor", + " 1.0, !- Zone Cooling Sizing Factor", + " DesignDay, !- Cooling Design Air Flow Method", + " 0, !- Cooling Design Air Flow Rate {m3/s}", + " , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Cooling Minimum Air Flow {m3/s}", + " , !- Cooling Minimum Air Flow Fraction", + " DesignDay, !- Heating Design Air Flow Method", + " 0, !- Heating Design Air Flow Rate {m3/s}", + " , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Heating Maximum Air Flow {m3/s}", + " , !- Heating Maximum Air Flow Fraction", + " , !- Design Specification Zone Air Distribution Object Name", + " No, !- Account for Dedicated Outdoor Air System", + " NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy", + " autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}", + " autosize, !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}", + " , !- Zone Load Sizing Method", + " , !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method", + " , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " , !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method", + " , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " , !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", + " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", + " NonCoincident; !- Type of Space Sum to Use", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA West Zone, !- Name", + " flow/person, !- Outdoor Air Method", + " 0.00944, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Zone,", + " Zone 1, !- Name", + " 0, !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 0, !- Y Origin {m}", + " 0, !- Z Origin {m}", + " 1, !- Type", + " 10, !- Multiplier", + " 3.048, !- Ceiling Height {m}", + " 40.; !- Volume {m3}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor001, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor002, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 2, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor003, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 3, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " Material,", + " A1 - 1 IN STUCCO, !- Name", + " Smooth, !- Roughness", + " 2.5389841E-02, !- Thickness {m}", + " 0.6918309, !- Conductivity {W/m-K}", + " 1858.142, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Material,", + " C4 - 4 IN COMMON BRICK, !- Name", + " Rough, !- Roughness", + " 0.1014984, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1922.216, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.7600000, !- Solar Absorptance", + " 0.7600000; !- Visible Absorptance", + + " Material,", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name", + " Smooth, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1601.846, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Construction,", + " EXTWALL80, !- Name", + " A1 - 1 IN STUCCO, !- Outside Layer", + " C4 - 4 IN COMMON BRICK, !- Layer 2", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 3", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " ZONE 1 EQUIPMENT, !- Zone Conditioning Equipment List Name", + " ZONE 1 INLETS, !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " ZONE 1 NODE, !- Zone Air Node Name", + " ZONE 1 OUTLET; !- Zone Return Air Node or NodeList Name", + + " ZoneHVAC:EquipmentList,", + " ZONE 1 EQUIPMENT, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:IdealLoadsAirSystem, !- Zone Equipment 1 Object Type", + " ZONE 1 Ideal Loads, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1, !- Zone Equipment 1 Heating or No-Load Sequence", + " , !- Zone Equipment 1 Sequential Cooling Load Fraction", + " ; !- Zone Equipment 1 Sequential Heating Load Fraction", + + " ZoneHVAC:IdealLoadsAirSystem,", + " ZONE 1 Ideal Loads, !- Name", + " , !- Availability Schedule Name", + " ZONE 1 INLETS, !- Zone Supply Air Node Name", + " , !- Zone Exhaust Air Node Name", + " , !- System Inlet Air Node Name", + " 50, !- Maximum Heating Supply Air Temperature {C}", + " 13, !- Minimum Cooling Supply Air Temperature {C}", + " 0.015, !- Maximum Heating Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.009, !- Minimum Cooling Supply Air Humidity Ratio {kgWater/kgDryAir}", + " NoLimit, !- Heating Limit", + " autosize, !- Maximum Heating Air Flow Rate {m3/s}", + " , !- Maximum Sensible Heating Capacity {W}", + " NoLimit, !- Cooling Limit", + " autosize, !- Maximum Cooling Air Flow Rate {m3/s}", + " , !- Maximum Total Cooling Capacity {W}", + " , !- Heating Availability Schedule Name", + " , !- Cooling Availability Schedule Name", + " ConstantSupplyHumidityRatio, !- Dehumidification Control Type", + " , !- Cooling Sensible Heat Ratio {dimensionless}", + " ConstantSupplyHumidityRatio, !- Humidification Control Type", + " , !- Design Specification Outdoor Air Object Name", + " , !- Outdoor Air Inlet Node Name", + " , !- Demand Controlled Ventilation Type", + " , !- Outdoor Air Economizer Type", + " , !- Heat Recovery Type", + " , !- Sensible Heat Recovery Effectiveness {dimensionless}", + " ; !- Latent Heat Recovery Effectiveness {dimensionless}", + + " NodeList,", + " ZONE 1 INLETS, !- Name", + " ZONE 1 INLET; !- Node 1 Name", + "Space,", + "Space 1, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 2, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 3, !- Name", + "Zone 1; !- Zone Name", + + " ElectricEquipment,", + " Space 1 ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " July Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 5000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " July Morning, !- Name", + " , !- Schedule Type Limits Name", + " Through: 6/30, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0, !- Field 11", + " Through: 7/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 8:00,0.0, !- Field 11", + " Until: 12:00,1.0, !- Field 11", + " Until: 24:00,0.0, !- Field 11", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 2 ElecEq, !- Name", + " Space 2, !- Zone or ZoneList Name", + " August Afternoon, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 10000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " August Afternoon, !- Name", + " , !- Schedule Type Limits Name", + " Through: 7/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0, !- Field 11", + " Through: 8/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 12:00,0.0, !- Field 11", + " Until: 16:00,1.0, !- Field 11", + " Until: 24:00,0.0, !- Field 11", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 3 ElecEq, !- Name", + " Space 3, !- Zone or ZoneList Name", + " September Evening, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 7500.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " September Evening, !- Name", + " , !- Schedule Type Limits Name", + " Through: 8/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0, !- Field 11", + " Through: 9/30, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", + " Until: 24:00,0.0, !- Field 11", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,0.0; !- Field 11", + + "ZoneAirHeatBalanceAlgorithm,", + "ThirdOrderBackwardDifference, !- Algorithm", + "Yes, !- Do Space Heat Balance for Sizing", + "No; !- Do Space Heat Balance for Simulation", + " Output:Table:SummaryReports,", + " AllSummary; !- Report Name 1", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + SimulationManager::ManageSimulation(*state); + + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("41650.19", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("2.891", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("2.891", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA JULY COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); + EXPECT_EQ("7/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); + + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("77258.02", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("5.362", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("5.362", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA AUGUST COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); + EXPECT_EQ("8/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); + + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("58268.65", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("4.044", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("4.044", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA SEPTEMBER COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); + EXPECT_EQ("9/21 20:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); + + // For noncoincident, expect zone Des Cooling Load to be sum of space loads = 4165.02 + 7725.80 + 5826.87 = 17717.69 + // For noncoincident, expect zone Des Cooling Air Flow to be sum of space flows = 0.289 + 0.536 + 0.404 = 1.229 + // Spaces peak on same day, so expect zone peak time to be the different coincident sizing, and day to be "N/A" + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.0", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("177176.86", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("12.297", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("12.297", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("N/A", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); +} +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_NonAir_1x_NoLatent) +{ + std::string const idf_objects = delimited_string({ + " Timestep,6;", + + " Site:Location,", + " CHICAGO_IL_USA TMY2-94846, !- Name", + " 41.78, !- Latitude {deg}", + " -87.75, !- Longitude {deg}", + " -6.00, !- Time Zone {hr}", + " 190.00; !- Elevation {m}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " No, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " No, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " ZoneControl:Thermostat,", + " Zone 1 Thermostat, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " Dual Setpoint with SB; !- Control 1 Name", + + " Schedule:Compact,", + " ZONE CONTROL TYPE SCHED, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,4; !- Field 11", + + " ThermostatSetpoint:DualSetpoint,", + " Dual Setpoint with SB,!- Name", + " Heating Setpoints, !- Setpoint Temperature Schedule Name", + " Cooling Setpoints; !- Setpoint Temperature Schedule Name", + + " Schedule:Compact,", + " HEATING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,15.00, !- Field 3", + " Until: 17:00,20.00, !- Field 5", + " Until: 24:00,15.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,15.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,20.00; !- Field 13", + + " Schedule:Compact,", + " COOLING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,30.00, !- Field 3", + " Until: 17:00,24.00, !- Field 5", + " Until: 24:00,30.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,24.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,50.00; !- Field 13", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 12., !- Zone Cooling Design Supply Air Temperature {C}", + " , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}", + " SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method", + " 50., !- Zone Heating Design Supply Air Temperature {C}", + " , !- Zone Heating Design Supply Air Temperature Difference {deltaC}", + " 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA West Zone, !- Design Specification Outdoor Air Object Name", + " 1.0, !- Zone Heating Sizing Factor", + " 1.0, !- Zone Cooling Sizing Factor", + " DesignDay, !- Cooling Design Air Flow Method", + " 0, !- Cooling Design Air Flow Rate {m3/s}", + " , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Cooling Minimum Air Flow {m3/s}", + " , !- Cooling Minimum Air Flow Fraction", + " DesignDay, !- Heating Design Air Flow Method", + " 0, !- Heating Design Air Flow Rate {m3/s}", + " , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Heating Maximum Air Flow {m3/s}", + " , !- Heating Maximum Air Flow Fraction", + " , !- Design Specification Zone Air Distribution Object Name", + " No, !- Account for Dedicated Outdoor Air System", + " NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy", + " autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}", + " autosize, !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}", + " Sensible Load, !- Zone Load Sizing Method", + " HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method", + " , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method", + " , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", + " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", + " Coincident; !- Type of Space Sum to Use", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA West Zone, !- Name", + " flow/person, !- Outdoor Air Method", + " 0.00944, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Zone,", + " Zone 1, !- Name", + " 0, !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 0, !- Y Origin {m}", + " 0, !- Z Origin {m}", + " 1, !- Type", + " 1, !- Multiplier", + " 3.048, !- Ceiling Height {m}", + " 40.; !- Volume {m3}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor001, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor002, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 2, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor003, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 3, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " Material,", + " A1 - 1 IN STUCCO, !- Name", + " Smooth, !- Roughness", + " 2.5389841E-02, !- Thickness {m}", + " 0.6918309, !- Conductivity {W/m-K}", + " 1858.142, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Material,", + " C4 - 4 IN COMMON BRICK, !- Name", + " Rough, !- Roughness", + " 0.1014984, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1922.216, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.7600000, !- Solar Absorptance", + " 0.7600000; !- Visible Absorptance", + + " Material,", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name", + " Smooth, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1601.846, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Construction,", + " EXTWALL80, !- Name", + " A1 - 1 IN STUCCO, !- Outside Layer", + " C4 - 4 IN COMMON BRICK, !- Layer 2", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 3", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " ZONE 1 EQUIPMENT, !- Zone Conditioning Equipment List Name", + " , !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " ZONE 1 NODE, !- Zone Air Node Name", + " ; !- Zone Return Air Node or NodeList Name", + + " ZoneHVAC:EquipmentList,", + " ZONE 1 EQUIPMENT, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:Baseboard:RadiantConvective:Electric, !- Zone Equipment 1 Object Type", + " ZONE 1 Baseboard, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1, !- Zone Equipment 1 Heating or No-Load Sequence", + " , !- Zone Equipment 1 Sequential Cooling Load Fraction", + " ; !- Zone Equipment 1 Sequential Heating Load Fraction", + + " ZoneHVAC:Baseboard:RadiantConvective:Electric,", + " Zone 1 Baseboard, !- Name", + " , !- Availability Schedule Name", + " HeatingDesignCapacity, !- Heating Design Capacity Method", + " autosize, !- Heating Design Capacity {W}", + " , !- Heating Design Capacity Per Floor Area {W/m2}", + " , !- Fraction of Autosized Heating Design Capacity", + " 0.97, !- Efficiency", + " 0.2, !- Fraction Radiant", + " 0.3, !- Fraction of Radiant Energy Incident on People", + " Zn001:Wall001, !- Surface 1 Name", + " 0.7; !- Fraction of Radiant Energy to Surface 1", + + "Space,", + "Space 1, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 2, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 3, !- Name", + "Zone 1; !- Zone Name", + + " ElectricEquipment,", + " Space 1 ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 500.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " ElectricEquipment,", + " Space 1 Latent ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 1.0, !- Fraction Latent", + " 0.0, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Morning, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 8:00,0.0, !- Field 11", + " Until: 12:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 2 ElecEq, !- Name", + " Space 2, !- Zone or ZoneList Name", + " Afternoon, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Afternoon, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 12:00,0.0, !- Field 11", + " Until: 16:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 3 ElecEq, !- Name", + " Space 3, !- Zone or ZoneList Name", + " Evening, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 750.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Evening, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + "ZoneAirHeatBalanceAlgorithm,", + "ThirdOrderBackwardDifference, !- Algorithm", + "Yes, !- Do Space Heat Balance for Sizing", + "No; !- Do Space Heat Balance for Simulation", + " Output:Table:SummaryReports,", + " AllSummary; !- Report Name 1", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + SimulationManager::ManageSimulation(*state); + + EXPECT_EQ("1898.77", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.053", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.053", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("832.44", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.058", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); + EXPECT_EQ("7/21 17:30:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); + + EXPECT_EQ("631.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("940.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.065", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); + + EXPECT_EQ("631.20", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.018", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("810.65", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.056", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); + EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); + + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("3155.31", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.088", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.088", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("1942.36", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.135", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.135", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); +} +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_NonAir_10x_NoLatent) +{ + std::string const idf_objects = delimited_string({ + " Timestep,6;", + + " Site:Location,", + " CHICAGO_IL_USA TMY2-94846, !- Name", + " 41.78, !- Latitude {deg}", + " -87.75, !- Longitude {deg}", + " -6.00, !- Time Zone {hr}", + " 190.00; !- Elevation {m}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " No, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " No, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " ZoneControl:Thermostat,", + " Zone 1 Thermostat, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " Dual Setpoint with SB; !- Control 1 Name", + + " Schedule:Compact,", + " ZONE CONTROL TYPE SCHED, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,4; !- Field 11", + + " ThermostatSetpoint:DualSetpoint,", + " Dual Setpoint with SB,!- Name", + " Heating Setpoints, !- Setpoint Temperature Schedule Name", + " Cooling Setpoints; !- Setpoint Temperature Schedule Name", + + " Schedule:Compact,", + " HEATING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,15.00, !- Field 3", + " Until: 17:00,20.00, !- Field 5", + " Until: 24:00,15.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,15.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,20.00; !- Field 13", + + " Schedule:Compact,", + " COOLING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,30.00, !- Field 3", + " Until: 17:00,24.00, !- Field 5", + " Until: 24:00,30.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,24.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,50.00; !- Field 13", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 12., !- Zone Cooling Design Supply Air Temperature {C}", + " , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}", + " SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method", + " 50., !- Zone Heating Design Supply Air Temperature {C}", + " , !- Zone Heating Design Supply Air Temperature Difference {deltaC}", + " 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA West Zone, !- Design Specification Outdoor Air Object Name", + " 1.0, !- Zone Heating Sizing Factor", + " 1.0, !- Zone Cooling Sizing Factor", + " DesignDay, !- Cooling Design Air Flow Method", + " 0, !- Cooling Design Air Flow Rate {m3/s}", + " , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Cooling Minimum Air Flow {m3/s}", + " , !- Cooling Minimum Air Flow Fraction", + " DesignDay, !- Heating Design Air Flow Method", + " 0, !- Heating Design Air Flow Rate {m3/s}", + " , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Heating Maximum Air Flow {m3/s}", + " , !- Heating Maximum Air Flow Fraction", + " , !- Design Specification Zone Air Distribution Object Name", + " No, !- Account for Dedicated Outdoor Air System", + " NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy", + " autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}", + " autosize, !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}", + " Sensible Load, !- Zone Load Sizing Method", + " HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method", + " , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method", + " , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", + " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", + " Coincident; !- Type of Space Sum to Use", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA West Zone, !- Name", + " flow/person, !- Outdoor Air Method", + " 0.00944, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Zone,", + " Zone 1, !- Name", + " 0, !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 0, !- Y Origin {m}", + " 0, !- Z Origin {m}", + " 1, !- Type", + " 10, !- Multiplier", + " 3.048, !- Ceiling Height {m}", + " 40.; !- Volume {m3}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor001, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor002, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 2, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor003, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 3, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " Material,", + " A1 - 1 IN STUCCO, !- Name", + " Smooth, !- Roughness", + " 2.5389841E-02, !- Thickness {m}", + " 0.6918309, !- Conductivity {W/m-K}", + " 1858.142, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Material,", + " C4 - 4 IN COMMON BRICK, !- Name", + " Rough, !- Roughness", + " 0.1014984, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1922.216, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.7600000, !- Solar Absorptance", + " 0.7600000; !- Visible Absorptance", + + " Material,", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name", + " Smooth, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1601.846, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Construction,", + " EXTWALL80, !- Name", + " A1 - 1 IN STUCCO, !- Outside Layer", + " C4 - 4 IN COMMON BRICK, !- Layer 2", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 3", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " ZONE 1 EQUIPMENT, !- Zone Conditioning Equipment List Name", + " , !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " ZONE 1 NODE, !- Zone Air Node Name", + " ; !- Zone Return Air Node or NodeList Name", + + " ZoneHVAC:EquipmentList,", + " ZONE 1 EQUIPMENT, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:Baseboard:RadiantConvective:Electric, !- Zone Equipment 1 Object Type", + " ZONE 1 Baseboard, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1, !- Zone Equipment 1 Heating or No-Load Sequence", + " , !- Zone Equipment 1 Sequential Cooling Load Fraction", + " ; !- Zone Equipment 1 Sequential Heating Load Fraction", + + " ZoneHVAC:Baseboard:RadiantConvective:Electric,", + " Zone 1 Baseboard, !- Name", + " , !- Availability Schedule Name", + " HeatingDesignCapacity, !- Heating Design Capacity Method", + " autosize, !- Heating Design Capacity {W}", + " , !- Heating Design Capacity Per Floor Area {W/m2}", + " , !- Fraction of Autosized Heating Design Capacity", + " 0.97, !- Efficiency", + " 0.2, !- Fraction Radiant", + " 0.3, !- Fraction of Radiant Energy Incident on People", + " Zn001:Wall001, !- Surface 1 Name", + " 0.7; !- Fraction of Radiant Energy to Surface 1", + + "Space,", + "Space 1, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 2, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 3, !- Name", + "Zone 1; !- Zone Name", + + " ElectricEquipment,", + " Space 1 ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 500.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " ElectricEquipment,", + " Space 1 Latent ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 1.0, !- Fraction Latent", + " 0.0, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Morning, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 8:00,0.0, !- Field 11", + " Until: 12:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 2 ElecEq, !- Name", + " Space 2, !- Zone or ZoneList Name", + " Afternoon, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Afternoon, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 12:00,0.0, !- Field 11", + " Until: 16:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 3 ElecEq, !- Name", + " Space 3, !- Zone or ZoneList Name", + " Evening, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 750.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Evening, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + "ZoneAirHeatBalanceAlgorithm,", + "ThirdOrderBackwardDifference, !- Algorithm", + "Yes, !- Do Space Heat Balance for Sizing", + "No; !- Do Space Heat Balance for Simulation", + " Output:Table:SummaryReports,", + " AllSummary; !- Report Name 1", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + SimulationManager::ManageSimulation(*state); + + EXPECT_EQ("18987.69", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("8324.40", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.578", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); + EXPECT_EQ("7/21 17:30:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); + + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("9402.01", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); + + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("8106.47", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); + EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); + + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("31553.14", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("19423.64", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); +} +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_NonAir_10x_NoLatent_NoSpaceHB) +{ + std::string const idf_objects = delimited_string({ + " Timestep,6;", + + " Site:Location,", + " CHICAGO_IL_USA TMY2-94846, !- Name", + " 41.78, !- Latitude {deg}", + " -87.75, !- Longitude {deg}", + " -6.00, !- Time Zone {hr}", + " 190.00; !- Elevation {m}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " No, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " No, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " ZoneControl:Thermostat,", + " Zone 1 Thermostat, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " Dual Setpoint with SB; !- Control 1 Name", + + " Schedule:Compact,", + " ZONE CONTROL TYPE SCHED, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,4; !- Field 11", + + " ThermostatSetpoint:DualSetpoint,", + " Dual Setpoint with SB,!- Name", + " Heating Setpoints, !- Setpoint Temperature Schedule Name", + " Cooling Setpoints; !- Setpoint Temperature Schedule Name", + + " Schedule:Compact,", + " HEATING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,15.00, !- Field 3", + " Until: 17:00,20.00, !- Field 5", + " Until: 24:00,15.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,15.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,20.00; !- Field 13", + + " Schedule:Compact,", + " COOLING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,30.00, !- Field 3", + " Until: 17:00,24.00, !- Field 5", + " Until: 24:00,30.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,24.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,50.00; !- Field 13", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 12., !- Zone Cooling Design Supply Air Temperature {C}", + " , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}", + " SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method", + " 50., !- Zone Heating Design Supply Air Temperature {C}", + " , !- Zone Heating Design Supply Air Temperature Difference {deltaC}", + " 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA West Zone, !- Design Specification Outdoor Air Object Name", + " 1.0, !- Zone Heating Sizing Factor", + " 1.0, !- Zone Cooling Sizing Factor", + " DesignDay, !- Cooling Design Air Flow Method", + " 0, !- Cooling Design Air Flow Rate {m3/s}", + " , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Cooling Minimum Air Flow {m3/s}", + " , !- Cooling Minimum Air Flow Fraction", + " DesignDay, !- Heating Design Air Flow Method", + " 0, !- Heating Design Air Flow Rate {m3/s}", + " , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Heating Maximum Air Flow {m3/s}", + " , !- Heating Maximum Air Flow Fraction", + " , !- Design Specification Zone Air Distribution Object Name", + " No, !- Account for Dedicated Outdoor Air System", + " NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy", + " autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}", + " autosize, !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}", + " Sensible Load, !- Zone Load Sizing Method", + " HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method", + " , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method", + " , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", + " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", + " Coincident; !- Type of Space Sum to Use", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA West Zone, !- Name", + " flow/person, !- Outdoor Air Method", + " 0.00944, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Zone,", + " Zone 1, !- Name", + " 0, !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 0, !- Y Origin {m}", + " 0, !- Z Origin {m}", + " 1, !- Type", + " 10, !- Multiplier", + " 3.048, !- Ceiling Height {m}", + " 40.; !- Volume {m3}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor001, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor002, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 2, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor003, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 3, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " Material,", + " A1 - 1 IN STUCCO, !- Name", + " Smooth, !- Roughness", + " 2.5389841E-02, !- Thickness {m}", + " 0.6918309, !- Conductivity {W/m-K}", + " 1858.142, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Material,", + " C4 - 4 IN COMMON BRICK, !- Name", + " Rough, !- Roughness", + " 0.1014984, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1922.216, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.7600000, !- Solar Absorptance", + " 0.7600000; !- Visible Absorptance", + + " Material,", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name", + " Smooth, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1601.846, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Construction,", + " EXTWALL80, !- Name", + " A1 - 1 IN STUCCO, !- Outside Layer", + " C4 - 4 IN COMMON BRICK, !- Layer 2", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 3", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " ZONE 1 EQUIPMENT, !- Zone Conditioning Equipment List Name", + " , !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " ZONE 1 NODE, !- Zone Air Node Name", + " ; !- Zone Return Air Node or NodeList Name", + + " ZoneHVAC:EquipmentList,", + " ZONE 1 EQUIPMENT, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:Baseboard:RadiantConvective:Electric, !- Zone Equipment 1 Object Type", + " ZONE 1 Baseboard, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1, !- Zone Equipment 1 Heating or No-Load Sequence", + " , !- Zone Equipment 1 Sequential Cooling Load Fraction", + " ; !- Zone Equipment 1 Sequential Heating Load Fraction", + + " ZoneHVAC:Baseboard:RadiantConvective:Electric,", + " Zone 1 Baseboard, !- Name", + " , !- Availability Schedule Name", + " HeatingDesignCapacity, !- Heating Design Capacity Method", + " autosize, !- Heating Design Capacity {W}", + " , !- Heating Design Capacity Per Floor Area {W/m2}", + " , !- Fraction of Autosized Heating Design Capacity", + " 0.97, !- Efficiency", + " 0.2, !- Fraction Radiant", + " 0.3, !- Fraction of Radiant Energy Incident on People", + " Zn001:Wall001, !- Surface 1 Name", + " 0.7; !- Fraction of Radiant Energy to Surface 1", + + "Space,", + "Space 1, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 2, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 3, !- Name", + "Zone 1; !- Zone Name", + + " ElectricEquipment,", + " Space 1 ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 500.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " ElectricEquipment,", + " Space 1 Latent ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 1.0, !- Fraction Latent", + " 0.0, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Morning, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 8:00,0.0, !- Field 11", + " Until: 12:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 2 ElecEq, !- Name", + " Space 2, !- Zone or ZoneList Name", + " Afternoon, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Afternoon, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 12:00,0.0, !- Field 11", + " Until: 16:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 3 ElecEq, !- Name", + " Space 3, !- Zone or ZoneList Name", + " Evening, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 750.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Evening, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + "ZoneAirHeatBalanceAlgorithm,", + "ThirdOrderBackwardDifference, !- Algorithm", + "No, !- Do Space Heat Balance for Sizing", + "No; !- Do Space Heat Balance for Simulation", + " Output:Table:SummaryReports,", + " AllSummary; !- Report Name 1", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + SimulationManager::ManageSimulation(*state); + + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("31553.14", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("19423.64", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); +} +TEST_F(EnergyPlusFixture, SizingManager_ZoneSizing_Coincident_NonAir_10x_Latent_SpaceHB) +{ + std::string const idf_objects = delimited_string({ + " Timestep,6;", + + " Site:Location,", + " CHICAGO_IL_USA TMY2-94846, !- Name", + " 41.78, !- Latitude {deg}", + " -87.75, !- Longitude {deg}", + " -6.00, !- Time Zone {hr}", + " 190.00; !- Elevation {m}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " No, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " No, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " -17.3, !- Maximum Dry-Bulb Temperature {C}", + " 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 4.9, !- Wind Speed {m/s}", + " 270, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}", + " 0.0; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 31.5, !- Maximum Dry-Bulb Temperature {C}", + " 10.7, !- Daily Dry-Bulb Temperature Range {deltaC}", + " , !- Dry-Bulb Temperature Range Modifier Type", + " , !- Dry-Bulb Temperature Range Modifier Day Schedule Name", + " Wetbulb, !- Humidity Condition Type", + " 23.0, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}", + " , !- Humidity Condition Day Schedule Name", + " , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}", + " , !- Enthalpy at Maximum Dry-Bulb {J/kg}", + " , !- Daily Wet-Bulb Temperature Range {deltaC}", + " 99063., !- Barometric Pressure {Pa}", + " 5.3, !- Wind Speed {m/s}", + " 230, !- Wind Direction {deg}", + " No, !- Rain Indicator", + " No, !- Snow Indicator", + " No, !- Daylight Saving Time Indicator", + " ASHRAEClearSky, !- Solar Model Indicator", + " , !- Beam Solar Day Schedule Name", + " , !- Diffuse Solar Day Schedule Name", + " , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}", + " , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud){dimensionless}", + " 1.0; !- Sky Clearness", + + " ZoneControl:Thermostat,", + " Zone 1 Thermostat, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " Dual Setpoint with SB; !- Control 1 Name", + + " Schedule:Compact,", + " ZONE CONTROL TYPE SCHED, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,4; !- Field 11", + + " ThermostatSetpoint:DualSetpoint,", + " Dual Setpoint with SB,!- Name", + " Heating Setpoints, !- Setpoint Temperature Schedule Name", + " Cooling Setpoints; !- Setpoint Temperature Schedule Name", + + " Schedule:Compact,", + " HEATING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,15.00, !- Field 3", + " Until: 17:00,20.00, !- Field 5", + " Until: 24:00,15.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,15.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,20.00; !- Field 13", + + " Schedule:Compact,", + " COOLING SETPOINTS, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Weekdays Weekends Holidays CustomDay1 CustomDay2, !- Field 2", + " Until: 7:00,30.00, !- Field 3", + " Until: 17:00,24.00, !- Field 5", + " Until: 24:00,30.00, !- Field 7", + " For: SummerDesignDay, !- Field 9", + " Until: 24:00,24.00, !- Field 10", + " For: WinterDesignDay, !- Field 12", + " Until: 24:00,50.00; !- Field 13", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 12., !- Zone Cooling Design Supply Air Temperature {C}", + " , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}", + " SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method", + " 50., !- Zone Heating Design Supply Air Temperature {C}", + " , !- Zone Heating Design Supply Air Temperature Difference {deltaC}", + " 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA West Zone, !- Design Specification Outdoor Air Object Name", + " 1.0, !- Zone Heating Sizing Factor", + " 1.0, !- Zone Cooling Sizing Factor", + " DesignDay, !- Cooling Design Air Flow Method", + " 0, !- Cooling Design Air Flow Rate {m3/s}", + " , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Cooling Minimum Air Flow {m3/s}", + " , !- Cooling Minimum Air Flow Fraction", + " DesignDay, !- Heating Design Air Flow Method", + " 0, !- Heating Design Air Flow Rate {m3/s}", + " , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}", + " , !- Heating Maximum Air Flow {m3/s}", + " , !- Heating Maximum Air Flow Fraction", + " , !- Design Specification Zone Air Distribution Object Name", + " No, !- Account for Dedicated Outdoor Air System", + " NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy", + " autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}", + " autosize, !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}", + " Sensible And Latent Load, !- Zone Load Sizing Method", + " HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method", + " , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method", + " , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.005, !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir}", + " , !- Zone Humidistat Dehumidification Set Point Schedule Name {percent}", + " , !- Zone Humidistat Humidification Set Point Schedule Name {percent}", + " Coincident; !- Type of Space Sum to Use", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA West Zone, !- Name", + " flow/person, !- Outdoor Air Method", + " 0.00944, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Zone,", + " Zone 1, !- Name", + " 0, !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 0, !- Y Origin {m}", + " 0, !- Z Origin {m}", + " 1, !- Type", + " 10, !- Multiplier", + " 3.048, !- Ceiling Height {m}", + " 40.; !- Volume {m3}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,0,3.048000, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.096000,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.096000,0,3.048000; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor001, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 1, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor002, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 2, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Floor003, !- Name", + " Floor, !- Surface Type", + " EXTWALL80, !- Construction Name", + " Zone 1, !- Zone Name", + " Space 3, !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " 0.5000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0,5,0, !- X,Y,Z ==> Vertex 1 {m}", + " 0,0,0, !- X,Y,Z ==> Vertex 2 {m}", + " 3,0,0, !- X,Y,Z ==> Vertex 3 {m}", + " 3,5,0; !- X,Y,Z ==> Vertex 4 {m}", + + " Material,", + " A1 - 1 IN STUCCO, !- Name", + " Smooth, !- Roughness", + " 2.5389841E-02, !- Thickness {m}", + " 0.6918309, !- Conductivity {W/m-K}", + " 1858.142, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Material,", + " C4 - 4 IN COMMON BRICK, !- Name", + " Rough, !- Roughness", + " 0.1014984, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1922.216, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.7600000, !- Solar Absorptance", + " 0.7600000; !- Visible Absorptance", + + " Material,", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name", + " Smooth, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 0.7264224, !- Conductivity {W/m-K}", + " 1601.846, !- Density {kg/m3}", + " 836.8000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.9200000, !- Solar Absorptance", + " 0.9200000; !- Visible Absorptance", + + " Construction,", + " EXTWALL80, !- Name", + " A1 - 1 IN STUCCO, !- Outside Layer", + " C4 - 4 IN COMMON BRICK, !- Layer 2", + " E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 3", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " ZONE 1 EQUIPMENT, !- Zone Conditioning Equipment List Name", + " , !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " ZONE 1 NODE, !- Zone Air Node Name", + " ; !- Zone Return Air Node or NodeList Name", + + " ZoneHVAC:EquipmentList,", + " ZONE 1 EQUIPMENT, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:Baseboard:RadiantConvective:Electric, !- Zone Equipment 1 Object Type", + " ZONE 1 Baseboard, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1, !- Zone Equipment 1 Heating or No-Load Sequence", + " , !- Zone Equipment 1 Sequential Cooling Load Fraction", + " ; !- Zone Equipment 1 Sequential Heating Load Fraction", + + " ZoneHVAC:Baseboard:RadiantConvective:Electric,", + " Zone 1 Baseboard, !- Name", + " , !- Availability Schedule Name", + " HeatingDesignCapacity, !- Heating Design Capacity Method", + " autosize, !- Heating Design Capacity {W}", + " , !- Heating Design Capacity Per Floor Area {W/m2}", + " , !- Fraction of Autosized Heating Design Capacity", + " 0.97, !- Efficiency", + " 0.2, !- Fraction Radiant", + " 0.3, !- Fraction of Radiant Energy Incident on People", + " Zn001:Wall001, !- Surface 1 Name", + " 0.7; !- Fraction of Radiant Energy to Surface 1", + + "Space,", + "Space 1, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 2, !- Name", + "Zone 1; !- Zone Name", + "Space,", + "Space 3, !- Name", + "Zone 1; !- Zone Name", + + " ElectricEquipment,", + " Space 1 ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 500.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " ElectricEquipment,", + " Space 1 Latent ElecEq, !- Name", + " Space 1, !- Zone or ZoneList Name", + " Morning, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 1.0, !- Fraction Latent", + " 0.0, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Morning, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 8:00,0.0, !- Field 11", + " Until: 12:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 2 ElecEq, !- Name", + " Space 2, !- Zone or ZoneList Name", + " Afternoon, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 1000.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Afternoon, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 12:00,0.0, !- Field 11", + " Until: 16:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + " ElectricEquipment,", + " Space 3 ElecEq, !- Name", + " Space 3, !- Zone or ZoneList Name", + " Evening, !- Schedule Name", + " EquipmentLevel, !- Design Level Calculation Method", + " 750.0, !- Design Level {W}", + " , !- Watts per Zone Floor Area {W/m2}", + " , !- Watts per Person {W/person}", + " 0, !- Fraction Latent", + " 0.3000000, !- Fraction Radiant", + " 0; !- Fraction Lost", + + " Schedule:Compact,", + " Evening, !- Name", + " , !- Schedule Type Limits Name", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 16:00,0.0, !- Field 11", + " Until: 20:00,1.0, !- Field 11", + " Until: 24:00,0.0; !- Field 11", + + "ZoneAirHeatBalanceAlgorithm,", + "ThirdOrderBackwardDifference, !- Algorithm", + "Yes, !- Do Space Heat Balance for Sizing", + "No; !- Do Space Heat Balance for Simulation", + " Output:Table:SummaryReports,", + " AllSummary; !- Report Name 1", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + SimulationManager::ManageSimulation(*state); + + EXPECT_EQ("18987.69", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.527", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 1")); + EXPECT_EQ("10000.00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 1")); + EXPECT_EQ("0.669", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 1")); + EXPECT_EQ("0.669", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 1")); + EXPECT_EQ("7/21 09:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 1")); + + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 2")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 2")); + EXPECT_EQ("9402.01", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 2")); + EXPECT_EQ("0.653", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 2")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 2")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 2")); + + EXPECT_EQ("6311.95", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.175", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtDesDay, "SPACE 3")); + EXPECT_EQ("1/21 12:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpHtPkTime, "SPACE 3")); + EXPECT_EQ("8106.47", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesLd, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClCalcDesAirFlow, "SPACE 3")); + EXPECT_EQ("0.563", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClUserDesAirFlow, "SPACE 3")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClDesDay, "SPACE 3")); + EXPECT_EQ("7/21 19:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchSpClPkTime, "SPACE 3")); + + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("31553.14", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("19423.64", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); + + // For coincident, expect zone Des Cooling Load to be less than sum of space loads which is 832.44 + 940.2 + 810.65 = 2583.29 + EXPECT_EQ("31553.14", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesLd, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("0.876", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL HEATING 99% DESIGN CONDITIONS DB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtDesDay, "ZONE 1")); + EXPECT_EQ("1/21 08:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnHtPkTime, "ZONE 1")); + EXPECT_EQ("19423.64", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesLd, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClCalcDesAirFlow, "ZONE 1")); + EXPECT_EQ("1.348", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClUserDesAirFlow, "ZONE 1")); + EXPECT_EQ("CHICAGO_IL_USA ANNUAL COOLING 1% DESIGN CONDITIONS DB/MCWB", + OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClDesDay, "ZONE 1")); + EXPECT_EQ("7/21 16:00:00", OutputReportPredefined::RetrievePreDefTableEntry(*state, state->dataOutRptPredefined->pdchZnClPkTime, "ZONE 1")); }