diff --git a/src/EnergyPlus/ChillerExhaustAbsorption.cc b/src/EnergyPlus/ChillerExhaustAbsorption.cc index 5a7ad347752..d0fbd404235 100644 --- a/src/EnergyPlus/ChillerExhaustAbsorption.cc +++ b/src/EnergyPlus/ChillerExhaustAbsorption.cc @@ -1888,7 +1888,13 @@ namespace EnergyPlus::ChillerExhaustAbsorption { } // Calculate operating part load ratio for cooling - lHeatPartLoadRatio = lHeatingLoad / lAvailableHeatingCapacity; + if (lAvailableHeatingCapacity <= 0.0) { + lAvailableHeatingCapacity = 0.0; + lHeatPartLoadRatio = 0.0; + } else + { + lHeatPartLoadRatio = lHeatingLoad / lAvailableHeatingCapacity; + } // Calculate ThermalEnergy consumption for heating // ThermalEnergy used for heating availCap * HIR * HIR-FT * HIR-FPLR diff --git a/src/EnergyPlus/ChillerGasAbsorption.cc b/src/EnergyPlus/ChillerGasAbsorption.cc index f2bd3a232b6..6a24dd44130 100644 --- a/src/EnergyPlus/ChillerGasAbsorption.cc +++ b/src/EnergyPlus/ChillerGasAbsorption.cc @@ -1803,7 +1803,12 @@ namespace EnergyPlus::ChillerGasAbsorption { } // Calculate operating part load ratio for cooling - lHeatPartLoadRatio = lHeatingLoad / lAvailableHeatingCapacity; + if (lAvailableHeatingCapacity <= 0.0) { + lAvailableHeatingCapacity = 0.0; + lHeatPartLoadRatio = 0.0; + } else { + lHeatPartLoadRatio = lHeatingLoad / lAvailableHeatingCapacity; + } // Calculate fuel consumption for cooling // fuel used for cooling availCap * HIR * HIR-FT * HIR-FPLR diff --git a/tst/EnergyPlus/unit/ChillerExhaustAbsorption.unit.cc b/tst/EnergyPlus/unit/ChillerExhaustAbsorption.unit.cc index 0e239d2903e..a3b17dde71a 100644 --- a/tst/EnergyPlus/unit/ChillerExhaustAbsorption.unit.cc +++ b/tst/EnergyPlus/unit/ChillerExhaustAbsorption.unit.cc @@ -397,3 +397,280 @@ TEST_F(EnergyPlusFixture, ExhAbsorption_getDesignCapacities_Test) EXPECT_NEAR(maxload, 0.0, 0.001); EXPECT_NEAR(optload, 0.0, 0.001); } + +TEST_F(EnergyPlusFixture, ExhAbsorption_calcHeater_Fix_Test) +{ + std::string const idf_objects = delimited_string({ + " ChillerHeater:Absorption:DoubleEffect, ", + " Exh Chiller, !- Name ", + " 100000, !- Nominal Cooling Capacity {W} ", + " 0.8, !- Heating to Cooling Capacity Ratio ", + " 0.97, !- Thermal Energy Input to Cooling Output Ratio ", + " 1.25, !- Thermal Energy Input to Heating Output Ratio ", + " 0.01, !- Electric Input to Cooling Output Ratio ", + " 0.005, !- Electric Input to Heating Output Ratio ", + " Exh Chiller Inlet Node, !- Chilled Water Inlet Node Name ", + " Exh Chiller Outlet Node, !- Chilled Water Outlet Node Name ", + " Exh Chiller Condenser Inlet Node, !- Condenser Inlet Node Name ", + " Exh Chiller Condenser Outlet Node, !- Condenser Outlet Node Name ", + " Exh Chiller Heating Inlet Node, !- Hot Water Inlet Node Name ", + " Exh Chiller Heating Outlet Node, !- Hot Water Outlet Node Name ", + " 0.000001, !- Minimum Part Load Ratio ", + " 1.0, !- Maximum Part Load Ratio ", + " 0.6, !- Optimum Part Load Ratio ", + " 29, !- Design Entering Condenser Water Temperature {C} ", + " 7, !- Design Leaving Chilled Water Temperature {C} ", + " 0.0011, !- Design Chilled Water Flow Rate {m3/s} ", + " 0.0011, !- Design Condenser Water Flow Rate {m3/s} ", + " 0.0043, !- Design Hot Water Flow Rate {m3/s} ", + " ExhAbsorb_CapFt, !- Cooling Capacity Function of Temperature Curve Name ", + " ExhAbsorb_EIRFt, !- Fuel Input to Cooling Output Ratio Function of Temperature Curve Name ", + " ExhAbsorb_PLR, !- Fuel Input to Cooling Output Ratio Function of Part Load Ratio Curve Name ", + " ExhAbsFlatBiQuad, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name ", + " ExhAbsFlatQuad, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name", + " ExhAbsInvLinearQuad, !- Heating Capacity Function of Cooling Capacity Curve Name ", + " ExhAbsLinearQuad, !- Fuel Input to Heat Output Ratio During Heating Only Operation Curve Name ", + " EnteringCondenser, !- Temperature Curve Input Variable ", + " AirCooled, !- Condenser Type ", + " 2, !- Chilled Water Temperature Lower Limit {C} ", + " Generator:MicroTurbine, !- Exhaust Source Object Type ", + " Capstone C65, !- Exhaust Source Object Name ", + " ; !- Sizing Factor ", + " ", + "OutdoorAir:Node, ", + " Exh Chiller Condenser Inlet Node, !- Name ", + " -1; !- Height Above Ground", + " ", + " CURVE:BIQUADRATIC, ", + " ExhAbsorb_CapFt, !- Name ", + " -0.115131E+01, !- Coefficient1 Constant ", + " -0.801316E-01, !- Coefficient2 x ", + " -0.945353E-02, !- Coefficient3 x**2 ", + " 0.209867E+00, !- Coefficient4 y ", + " -0.567055E-02, !- Coefficient5 y**2 ", + " 0.943605E-02, !- Coefficient6 x*y ", + " 4.44444, !- Minimum Value of x ", + " 8.88889, !- Maximum Value of x ", + " 21.11111, !- Minimum Value of y ", + " 35.00000; !- Maximum Value of y ", + " ", + " CURVE:BIQUADRATIC, ", + " ExhAbsorb_EIRFt, !- Name ", + " 0.131195E+01, !- Coefficient1 Constant ", + " -0.159283E-01, !- Coefficient2 x ", + " 0.773725E-03, !- Coefficient3 x**2 ", + " -0.196279E-01, !- Coefficient4 y ", + " 0.378351E-03, !- Coefficient5 y**2 ", + " 0.558356E-04, !- Coefficient6 x*y ", + " 4.44444, !- Minimum Value of x ", + " 8.88889, !- Maximum Value of x ", + " 21.11111, !- Minimum Value of y ", + " 35.00000; !- Maximum Value of y ", + " ", + " Curve:Biquadratic, ", + " ExhAbsFlatBiQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " 0.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0.000000000, !- Coefficient4 y ", + " 0.000000000, !- Coefficient5 y**2 ", + " 0.000000000, !- Coefficient6 x*y ", + " 0., !- Minimum Value of x ", + " 50., !- Maximum Value of x ", + " 0., !- Minimum Value of y ", + " 50.; !- Maximum Value of y ", + " ", + " Curve:Quadratic, ", + " ExhAbsLinearQuad, !- Name ", + " 0.000000000, !- Coefficient1 Constant ", + " 1.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " ExhAbsInvLinearQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " -1.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:QUADRATIC, ", + " ExhAbsorb_PLR, !- Name ", + " 0.026280035, !- Coefficient1 Constant ", + " 0.678066088, !- Coefficient2 x ", + " 0.273905867, !- Coefficient3 x**2 ", + " 0.0, !- Minimum Value of x ", + " 1.0; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " ExhAbsFlatQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " 0.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Generator:MicroTurbine, ", + " Capstone C65, !- Name ", + " 65000, !- Reference Electrical Power Output {W} ", + " 29900, !- Minimum Full Load Electrical Power Output {W} ", + " 65000, !- Maximum Full Load Electrical Power Output {W} ", + " 0.29, !- Reference Electrical Efficiency Using Lower Heating Value ", + " 15.0, !- Reference Combustion Air Inlet Temperature {C} ", + " 0.00638, !- Reference Combustion Air Inlet Humidity Ratio {kgWater/kgDryAir} ", + " 0.0, !- Reference Elevation {m} ", + " Capstone C65 Power_vs_Temp_Elev, !- Electrical Power Function of Temperature and Elevation Curve Name ", + " Capstone C65 Efficiency_vs_Temp, !- Electrical Efficiency Function of Temperature Curve Name ", + " Capstone C65 Efficiency_vs_PLR, !- Electrical Efficiency Function of Part Load Ratio Curve Name ", + " NaturalGas, !- Fuel Type ", + " 50000, !- Fuel Higher Heating Value {kJ/kg} ", + " 45450, !- Fuel Lower Heating Value {kJ/kg} ", + " 300, !- Standby Power {W} ", + " 4500, !- Ancillary Power {W} ", + " , !- Ancillary Power Function of Fuel Input Curve Name ", + " , !- Heat Recovery Water Inlet Node Name ", + " , !- Heat Recovery Water Outlet Node Name ", + " , !- Reference Thermal Efficiency Using Lower Heat Value ", + " , !- Reference Inlet Water Temperature {C} ", + " , !- Heat Recovery Water Flow Operating Mode ", + " , !- Reference Heat Recovery Water Flow Rate {m3/s} ", + " , !- Heat Recovery Water Flow Rate Function of Temperature and Power Curve Name ", + " , !- Thermal Efficiency Function of Temperature and Elevation Curve Name ", + " , !- Heat Recovery Rate Function of Part Load Ratio Curve Name ", + " , !- Heat Recovery Rate Function of Inlet Water Temperature Curve Name ", + " , !- Heat Recovery Rate Function of Water Flow Rate Curve Name ", + " , !- Minimum Heat Recovery Water Flow Rate {m3/s} ", + " , !- Maximum Heat Recovery Water Flow Rate {m3/s} ", + " , !- Maximum Heat Recovery Water Temperature {C} ", + " Capstone C65 Combustion Air Inlet Node, !- Combustion Air Inlet Node Name ", + " Capstone C65 Combustion Air Outlet Node, !- Combustion Air Outlet Node Name ", + " 0.6, !- Reference Exhaust Air Mass Flow Rate {kg/s} ", + " Capstone C65 ExhFlowRate_vs_Inlet_Temp, !- Exhaust Air Flow Rate Function of Temperature Curve Name ", + " Capstone C65 ExhFlowRate_vs_PLR, !- Exhaust Air Flow Rate Function of Part Load Ratio Curve Name ", + " 350, !- Nominal Exhaust Air Outlet Temperature ", + " Capstone C65 ExhTemp_vs_Inlet_Temp, !- Exhaust Air Temperature Function of Temperature Curve Name ", + " Capstone C65 ExhTemp_vs_PLR; !- Exhaust Air Temperature Function of Part Load Ratio Curve Name ", + " ", + " OutdoorAir:Node, ", + " Capstone C65 Combustion Air Inlet Node, !- Name ", + " -1; !- Height Above Ground {m} ", + " ", + " Curve:Quadratic, ", + " Capstone C65 ExhTemp_vs_Inlet_Temp, !- Name ", + " 1.0, !- Coefficient1 Constant ", + " 0.0, !- Coefficient2 x ", + " 0.0, !- Coefficient3 x**2 ", + " -20., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " Capstone C65 ExhTemp_vs_PLR, !- Name ", + " 1.0, !- Coefficient1 Constant ", + " 0.0, !- Coefficient2 x ", + " 0.0, !- Coefficient3 x**2 ", + " 0.03, !- Minimum Value of x ", + " 1.; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " Capstone C65 ExhFlowRate_vs_PLR, !- Name ", + " 1.0, !- Coefficient1 Constant ", + " 0.0, !- Coefficient2 x ", + " 0.0, !- Coefficient3 x**2 ", + " 0.03, !- Minimum Value of x ", + " 1.; !- Maximum Value of x ", + " ", + " Curve:Cubic, ", + " Capstone C65 ExhFlowRate_vs_Inlet_Temp, !- Name ", + " 1.0, !- Coefficient1 Constant ", + " 0.0, !- Coefficient2 x ", + " 0.0, !- Coefficient3 x**2 ", + " 0.0, !- Coefficient4 x**3 ", + " -20., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:Cubic, ", + " Capstone C65 Efficiency_vs_Temp, !- Name ", + " 1.0402217, !- Coefficient1 Constant ", + " -0.0017314, !- Coefficient2 x ", + " -6.497040E-05, !- Coefficient3 x**2 ", + " 5.133175E-07, !- Coefficient4 x**3 ", + " -20.0, !- Minimum Value of x ", + " 50.0, !- Maximum Value of x ", + " , !- Minimum Curve Output ", + " , !- Maximum Curve Output ", + " Temperature, !- Input Unit Type for X ", + " Dimensionless; !- Output Unit Type ", + " ", + " Curve:Cubic, ", + " Capstone C65 Efficiency_vs_PLR, !- Name ", + " 0.215290, !- Coefficient1 Constant ", + " 2.561463, !- Coefficient2 x ", + " -3.24613, !- Coefficient3 x**2 ", + " 1.497306, !- Coefficient4 x**3 ", + " 0.03, !- Minimum Value of x ", + " 1.0; !- Maximum Value of x ", + " ", + " Curve:Biquadratic, ", + " Capstone C65 Power_vs_Temp_Elev, !- Name ", + " 1.2027697, !- Coefficient1 Constant ", + " -9.671305E-03, !- Coefficient2 x ", + " -4.860793E-06, !- Coefficient3 x**2 ", + " -1.542394E-04, !- Coefficient4 y ", + " 9.111418E-09, !- Coefficient5 y**2 ", + " 8.797885E-07, !- Coefficient6 x*y ", + " -17.8, !- Minimum Value of x ", + " 50.0, !- Maximum Value of x ", + " 0.0, !- Minimum Value of y ", + " 3050., !- Maximum Value of y ", + " , !- Minimum Curve Output ", + " , !- Maximum Curve Output ", + " Temperature, !- Input Unit Type for X ", + " Distance, !- Input Unit Type for Y ", + " Dimensionless; !- Output Unit Type ", + + }); + + ASSERT_TRUE(process_idf(idf_objects)); + compare_err_stream(""); + + GetExhaustAbsorberInput(*state); + + auto &thisChillerHeater = state->dataChillerExhaustAbsorption->ExhaustAbsorber(1); + + Real64 loadinput = 5000.0; + bool runflaginput = true; + + thisChillerHeater.CoolingLoad = 100000.0; + thisChillerHeater.CoolPartLoadRatio = 1.0; + state->dataPlnt->TotNumLoops = 1; + state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); + + thisChillerHeater.HWLoopNum = 1; + thisChillerHeater.HWLoopSideNum = 1; + state->dataPlnt->PlantLoop(1).FluidName = "WATER"; + state->dataPlnt->PlantLoop(1).FluidIndex = 1; + state->dataPlnt->PlantLoop(1).LoopDemandCalcScheme = DataPlant::iLoopDemandCalcScheme::SingleSetPoint; + state->dataPlnt->PlantLoop(1).LoopSide.allocate(1); + state->dataPlnt->PlantLoop(1).LoopSide(1).FlowLock = DataPlant::iFlowLock::Locked; + state->dataLoopNodes->Node(3).Temp = 60.0; + state->dataLoopNodes->Node(3).MassFlowRate = 0.5; + state->dataLoopNodes->Node(4).TempSetPoint = 70.0; + state->dataLoopNodes->Node(7).Temp = 350.0; + state->dataLoopNodes->Node(7).MassFlowRate = 0.5; + + thisChillerHeater.calcHeater(*state, loadinput, runflaginput); + + EXPECT_NEAR(thisChillerHeater.HeatingLoad, 21085.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HeatElectricPower, 400.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterReturnTemp, 60.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterSupplyTemp, 70.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterFlowRate, 0.5, 1e-6); + EXPECT_NEAR(thisChillerHeater.FractionOfPeriodRunning, 1.0, 1e-6); + + EXPECT_NEAR(thisChillerHeater.ElectricPower, 400.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.ExhaustInTemp, 350.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.ExhaustInFlow, 0.5, 1e-6); + EXPECT_NEAR(thisChillerHeater.ExhHeatRecPotentialHeat, 87087.5769469, 1e-6); +} diff --git a/tst/EnergyPlus/unit/ChillerGasAbsorption.unit.cc b/tst/EnergyPlus/unit/ChillerGasAbsorption.unit.cc index dba34275a5d..9e130c4c5e2 100644 --- a/tst/EnergyPlus/unit/ChillerGasAbsorption.unit.cc +++ b/tst/EnergyPlus/unit/ChillerGasAbsorption.unit.cc @@ -242,3 +242,120 @@ TEST_F(EnergyPlusFixture, GasAbsorption_getDesignCapacities_Test) EXPECT_NEAR(maxload, 0.0, 0.001); EXPECT_NEAR(optload, 0.0, 0.001); } + +TEST_F(EnergyPlusFixture, GasAbsorption_calculateHeater_Fix_Test) +{ + std::string const idf_objects = delimited_string({ + " ChillerHeater:Absorption:DirectFired, ", + " Big Chiller, !- Name ", + " 100000, !- Nominal Cooling Capacity {W} ", + " 0.8, !- Heating to Cooling Capacity Ratio ", + " 0.97, !- Fuel Input to Cooling Output Ratio ", + " 1.25, !- Fuel Input to Heating Output Ratio ", + " 0.01, !- Electric Input to Cooling Output Ratio ", + " 0.005, !- Electric Input to Heating Output Ratio ", + " Big Chiller Inlet Node, !- Chilled Water Inlet Node Name ", + " Big Chiller Outlet Node, !- Chilled Water Outlet Node Name ", + " Big Chiller Condenser Inlet Node, !- Condenser Inlet Node Name ", + " Big Chiller Condenser Outlet Node, !- Condenser Outlet Node Name ", + " Purchased Heat Inlet Node, !- Hot Water Inlet Node Name ", + " Purchased Heat Outlet Node, !- Hot Water Outlet Node Name ", + " 0.000001, !- Minimum Part Load Ratio ", + " 1.0, !- Maximum Part Load Ratio ", + " 0.6, !- Optimum Part Load Ratio ", + " 29, !- Design Entering Condenser Water Temperature {C} ", + " 7, !- Design Leaving Chilled Water Temperature {C} ", + " 0.0011, !- Design Chilled Water Flow Rate {m3/s} ", + " 0.0011, !- Design Condenser Water Flow Rate {m3/s} ", + " 0.0043, !- Design Hot Water Flow Rate {m3/s} ", + " GasAbsFlatBiQuad, !- Cooling Capacity Function of Temperature Curve Name ", + " GasAbsFlatBiQuad, !- Fuel Input to Cooling Output Ratio Function of Temperature Curve Name ", + " GasAbsLinearQuad, !- Fuel Input to Cooling Output Ratio Function of Part Load Ratio Curve Name ", + " GasAbsFlatBiQuad, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name ", + " GasAbsFlatQuad, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name", + " GasAbsInvLinearQuad, !- Heating Capacity Function of Cooling Capacity Curve Name ", + " GasAbsLinearQuad, !- Fuel Input to Heat Output Ratio During Heating Only Operation Curve Name ", + " EnteringCondenser, !- Temperature Curve Input Variable ", + " AirCooled, !- Condenser Type ", + " 2, !- Chilled Water Temperature Lower Limit {C} ", + " 0, !- Fuel Higher Heating Value {kJ/kg} ", + " NaturalGas, !- Fuel Type ", + " ; !- Sizing Factor ", + " ", + " Curve:Biquadratic, ", + " GasAbsFlatBiQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " 0.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0.000000000, !- Coefficient4 y ", + " 0.000000000, !- Coefficient5 y**2 ", + " 0.000000000, !- Coefficient6 x*y ", + " 0., !- Minimum Value of x ", + " 50., !- Maximum Value of x ", + " 0., !- Minimum Value of y ", + " 50.; !- Maximum Value of y ", + " ", + " Curve:Quadratic, ", + " GasAbsFlatQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " 0.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " GasAbsLinearQuad, !- Name ", + " 0.000000000, !- Coefficient1 Constant ", + " 1.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + " ", + " Curve:Quadratic, ", + " GasAbsInvLinearQuad, !- Name ", + " 1.000000000, !- Coefficient1 Constant ", + " -1.000000000, !- Coefficient2 x ", + " 0.000000000, !- Coefficient3 x**2 ", + " 0., !- Minimum Value of x ", + " 50.; !- Maximum Value of x ", + + }); + + ASSERT_TRUE(process_idf(idf_objects)); + compare_err_stream(""); + + GetGasAbsorberInput(*state); + + auto &thisChillerHeater = state->dataChillerGasAbsorption->GasAbsorber(1); + + Real64 loadinput = 5000.0; + bool runflaginput = true; + + thisChillerHeater.CoolingLoad = 100000.0; + thisChillerHeater.CoolPartLoadRatio = 1.0; + state->dataPlnt->TotNumLoops = 1; + state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); + + thisChillerHeater.HWLoopNum = 1; + thisChillerHeater.HWLoopSideNum = 1; + state->dataPlnt->PlantLoop(1).FluidName = "WATER"; + state->dataPlnt->PlantLoop(1).FluidIndex = 1; + state->dataPlnt->PlantLoop(1).LoopDemandCalcScheme = DataPlant::iLoopDemandCalcScheme::SingleSetPoint; + state->dataPlnt->PlantLoop(1).LoopSide.allocate(1); + state->dataPlnt->PlantLoop(1).LoopSide(1).FlowLock = DataPlant::iFlowLock::Locked; + state->dataLoopNodes->Node(3).Temp = 60.0; + state->dataLoopNodes->Node(3).MassFlowRate = 0.5; + state->dataLoopNodes->Node(4).TempSetPoint = 70.0; + + thisChillerHeater.calculateHeater(*state, loadinput, runflaginput); + + EXPECT_NEAR(thisChillerHeater.HeatingLoad, 21085.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HeatElectricPower, 400.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterReturnTemp, 60.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterSupplyTemp, 70.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HotWaterFlowRate, 0.5, 1e-6); + EXPECT_NEAR(thisChillerHeater.ElectricPower, 400.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HeatPartLoadRatio, 0.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.HeatingCapacity, 0.0, 1e-6); + EXPECT_NEAR(thisChillerHeater.FractionOfPeriodRunning, 1.0, 1e-6); +}