diff --git a/src/EnergyPlus/LowTempRadiantSystem.cc b/src/EnergyPlus/LowTempRadiantSystem.cc index ca450fdcfcc..4074d3e22f5 100644 --- a/src/EnergyPlus/LowTempRadiantSystem.cc +++ b/src/EnergyPlus/LowTempRadiantSystem.cc @@ -831,7 +831,7 @@ namespace LowTempRadiantSystem { thisRadSys.CircLength = Numbers(6); if ((thisRadSys.WaterVolFlowMaxCool == AutoSize) && - (variableFlowDesignDataObject.DesignCoolingCapMethod == 0 || lAlphaBlanks(6) || lAlphaBlanks(7) || + (variableFlowDesignDataObject.DesignCoolingCapMethod == 0 || lAlphaBlanks(8) || lAlphaBlanks(9) || (thisRadSys.ColdWaterInNode <= 0) || (thisRadSys.ColdWaterOutNode <= 0) || (variableFlowDesignDataObject.ColdSetptSchedPtr == 0))) { ShowSevereError(state, "Hydronic radiant systems may not be autosized without specification of nodes or schedules"); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " (cooling input) =" + Alphas(1)); diff --git a/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc b/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc index 84992d31355..1cc95b568c4 100644 --- a/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc +++ b/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc @@ -3876,3 +3876,784 @@ TEST_F(LowTempRadiantSystemTest, GetLowTempRadiantSystem_MultipleTypes) EXPECT_EQ(state->dataLowTempRadSys->ElecRadSys(1).ZoneName, "EAST ZONE"); EXPECT_EQ(state->dataLowTempRadSys->ElecRadSys(1).SurfListName, "EAST ZONE SURFACE GROUP"); } + +TEST_F(LowTempRadiantSystemTest, VariableFlowCoolingOnlyInputTest) +{ + + bool ErrorsFound = false; + std::string const idf_objects = delimited_string({ + + " Building,", + " NONE, !- Name", + " 0.0000000E+00, !- North Axis {deg}", + " Suburbs, !- Terrain", + " 3.9999999E-02, !- Loads Convergence Tolerance Value", + " 0.4000000, !- Temperature Convergence Tolerance Value {deltaC}", + " FullInteriorAndExterior, !- Solar Distribution", + " 25, !- Maximum Number of Warmup Days", + " 6; !- Minimum Number of Warmup Days", + + " ScheduleTypeLimits,Fraction, 0.0 , 1.0 ,CONTINUOUS;", + " ScheduleTypeLimits,Temperature,-60,200,CONTINUOUS;", + + " Zone,", + " West Zone, !- Name", + " 0.0000000E+00, !- Direction of Relative North {deg}", + " 0.0000000E+00, !- X Origin {m}", + " 0.0000000E+00, !- Y Origin {m}", + " 0.0000000E+00, !- Z Origin {m}", + " 1, !- Type", + " 1, !- Multiplier", + " 2.5, !- Ceiling Height {m}", + " autocalculate; !- Volume {m3}", + + " ZoneHVAC:EquipmentConnections,", + " West Zone, !- Zone Name", + " Zone1Equipment, !- Zone Conditioning Equipment List Name", + " Zone1Inlets, !- Zone Air Inlet Node or NodeList Name", + " , !- Zone Air Exhaust Node or NodeList Name", + " Zone 1 Node, !- Zone Air Node Name", + " Zone 1 Outlet Node; !- Zone Return Air Node Name", + + " ZoneHVAC:EquipmentList,", + " Zone1Equipment, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:LowTemperatureRadiant:VariableFlow, !- Zone Equipment 1 Object Type", + " West Zone Radiant Floor, !- Zone Equipment 1 Name", + " 1, !- Zone Equipment 1 Cooling Sequence", + " 1; !- Zone Equipment 1 Heating or No-Load Sequence", + + " ZoneHVAC:LowTemperatureRadiant:VariableFlow,", + " West Zone Radiant Floor, !- Name", + " West Zone Radiant Floor Design, !- Design Object Name", + " RadiantSysAvailSched, !- Availability Schedule Name", + " West Zone, !- Zone Name", + " Zn001:Flr001, !- Surface Name or Radiant Surface Group Name", + " autosize, !- Hydronic Tubing Length {m}", + " , !- Heating Design Capacity {W}", + " , !- Maximum Hot Water Flow {m3/s}", + " , !- Heating Water Inlet Node Name", + " , !- Heating Water Outlet Node Name", + " , !- Cooling Design Capacity {W}", + " autosize, !- Maximum Cold Water Flow {m3/s}", + " Zone 1 Cooling Water Inlet Node, !- Cooling Water Inlet Node Name", + " Zone 1 Cooling Water Outlet Node, !- Cooling Water Outlet Node Name", + " , !- Number of Circuits", + " ; !- Circuit Length {m}", + + " ZoneHVAC:LowTemperatureRadiant:VariableFlow:Design,", + " West Zone Radiant Floor Design, !- Name", + " ConvectionOnly, !- Fluid to Radiant Surface Heat Transfer Model", + " 0.012, !- Hydronic Tubing Inside Diameter {m}", + " 0.016, !- Hydronic Tubing Outside Diameter {m}", + " 0.35, !- Hydronic Tubing Conductivity {W/m-K}", + " MeanAirTemperature, !- Temperature Control Type", + " HalfFlowPower, !- Setpoint Type", + " FractionOfAutosizedHeatingCapacity, !- Heating Design Capacity Method", + " , !- Heating Design Capacity Per Floor Area {W/m2}", + " 0.9, !- Fraction of Autosized Heating Design Capacity", + " 2.0, !- Heating Control Throttling Range {deltaC}", + " Radiant Heating Setpoints, !- Heating Control Temperature Schedule Name", + " CapacityPerFloorArea, !- Cooling Design Capacity Method", + " 10.0, !- Cooling Design Capacity Per Floor Area {W/m2}", + " , !- Fraction of Autosized Cooling Design Capacity", + " 2.0, !- Cooling Control Throttling Range {deltaC}", + " Radiant Cooling Setpoints, !- Cooling Control Temperature Schedule Name", + " , !- Condensation Control Type", + " ; !- Condensation Control Dewpoint Offset {C}", + + " Site:GroundTemperature:BuildingSurface,20.03,20.03,20.13,20.30,20.43,20.52,20.62,20.77,20.78,20.55,20.44,20.20;", + + " BuildingSurface:Detailed,", + " Zn001:Flr001, !- Name", + " Floor, !- Surface Type", + " Slab Floor with Radiant, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " 1.000000, !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0.0, 0.0, 0.0, !- X,Y,Z ==> Vertex 1 {m}", + " 0.0, 6.0,0.0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.0,6.0,0.0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Wall001, !- Name", + " Wall, !- Surface Type", + " Slab Floor with Radiant, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 1 {m}", + " 6.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.0, 0.0,0.0, !- X,Y,Z ==> Vertex 3 {m}", + " 0.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Wall002, !- Name", + " Wall, !- Surface Type", + " Slab, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0.0, 6.0, 0.0, !- X,Y,Z ==> Vertex 1 {m}", + " 0.0, 6.0, 6.0, !- X,Y,Z ==> Vertex 2 {m}", + " 0.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 3 {m}", + " 0.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Wall003, !- Name", + " Wall, !- Surface Type", + " Slab, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " 4, !- Number of Vertices", + " 6.0, 6.0, 0.0, !- X,Y,Z ==> Vertex 1 {m}", + " 6.0, 6.0, 6.0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:Wall004, !- Name", + " Wall, !- Surface Type", + " Slab, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0.0, 6.0, 0.0, !- X,Y,Z ==> Vertex 1 {m}", + " 0.0, 6.0, 6.0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.0, 6.0, 6.0, !- X,Y,Z ==> Vertex 3 {m}", + " 6.0, 6.0, 0.0; !- X,Y,Z ==> Vertex 4 {m}", + + " BuildingSurface:Detailed,", + " Zn001:C001, !- Name", + " CEILING, !- Surface Type", + " Slab, !- Construction Name", + " West Zone, !- Zone Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " 4, !- Number of Vertices", + " 0.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 1 {m}", + " 6.0, 0.0, 6.0, !- X,Y,Z ==> Vertex 2 {m}", + " 6.0, 6.0, 6.0, !- X,Y,Z ==> Vertex 3 {m}", + " 0.0, 6.0, 6.0; !- X,Y,Z ==> Vertex 4 {m}", + + " ConstructionProperty:InternalHeatSource,", + " Radiant Source, !- Name", + " Slab Floor with Radiant, !- Construction Name", + " 3, !- Source Present After Layer Number", + " 3, !- Temperature Calculation Requested After Layer Number", + " 1, !- Dimensions for the CTF Calculation", + " 0.1524, !- Tube Spacing {m}", + " 0.0; !- Two-Dimensional Position of Interior Temperature Calculation Request", + + " Construction,", + " Slab Floor with Radiant, !- Name", + " CONCRETE - DRIED SAND AND GRAVEL 4 IN, !- Outside Layer", + " INS - EXPANDED EXT POLYSTYRENE R12 2 IN, !- Layer 2", + " GYP1, !- Layer 3", + " GYP2, !- Layer 4", + " FINISH FLOORING - TILE 1 / 16 IN; !- Layer 5", + + "Construction,", + "Slab, !- Name", + "CONCRETE - DRIED SAND AND GRAVEL 4 IN, !- Outside Layer", + "GYP1, !- Layer 2", + "FINISH FLOORING - TILE 1 / 16 IN; !- Layer 3", + + " Material,", + " CONCRETE - DRIED SAND AND GRAVEL 4 IN, !- Name", + " MediumRough, !- Roughness", + " 0.1000000, !- Thickness {m}", + " 1.290000, !- Conductivity {W/m-K}", + " 2242.580, !- Density {kg/m3}", + " 830.00000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.6000000, !- Solar Absorptance", + " 0.6000000; !- Visible Absorptance", + + " Material,", + " INS - EXPANDED EXT POLYSTYRENE R12 2 IN, !- Name", + " Rough, !- Roughness", + " 5.0000001E-02, !- Thickness {m}", + " 2.0000000E-02, !- Conductivity {W/m-K}", + " 56.06000, !- Density {kg/m3}", + " 1210.000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.5000000, !- Solar Absorptance", + " 0.5000000; !- Visible Absorptance", + + " Material,", + " GYP1, !- Name", + " MediumRough, !- Roughness", + " 1.2700000E-02, !- Thickness {m}", + " 7.8450000E-01, !- Conductivity {W/m-K}", + " 1842.1221, !- Density {kg/m3}", + " 988.000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.5000000, !- Solar Absorptance", + " 0.5000000; !- Visible Absorptance", + + " Material,", + " GYP2, !- Name", + " MediumRough, !- Roughness", + " 1.9050000E-02, !- Thickness {m}", + " 7.8450000E-01, !- Conductivity {W/m-K}", + " 1842.1221, !- Density {kg/m3}", + " 988.000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.5000000, !- Solar Absorptance", + " 0.5000000; !- Visible Absorptance", + + " Material,", + " FINISH FLOORING - TILE 1 / 16 IN, !- Name", + " Smooth, !- Roughness", + " 1.6000000E-03, !- Thickness {m}", + " 0.1700000, !- Conductivity {W/m-K}", + " 1922.210, !- Density {kg/m3}", + " 1250.000, !- Specific Heat {J/kg-K}", + " 0.9000000, !- Thermal Absorptance", + " 0.5000000, !- Solar Absorptance", + " 0.5000000; !- Visible Absorptance", + + " Schedule:Compact,", + " RADIANTSYSAVAILSCHED, !- Name", + " FRACTION, !- Schedule Type Limits Name", + " Through: 3/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 24:00,1.00, !- Field 3", + " Through: 9/30, !- Field 5", + " For: Alldays, !- Field 6", + " Until: 24:00,0.00, !- Field 7", + " Through: 12/31, !- Field 9", + " For: Alldays, !- Field 10", + " Until: 24:00,1.00; !- Field 11", + + " Schedule:Compact,", + " HW LOOP TEMP SCHEDULE, !- Name", + " TEMPERATURE, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 24:00,60.00; !- Field 3", + + " Schedule:Compact,", + " RADIANT HEATING SETPOINTS, !- Name", + " TEMPERATURE, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 7:00,12.00, !- Field 3", + " Until: 17:00,17.00, !- Field 5", + " Until: 24:00,12.00; !- Field 7", + + " Sizing:Plant,", + " Hot Water Loop, !- Plant or Condenser Loop Name", + " heating, !- Loop Type", + " 60., !- Design Loop Exit Temperature {C}", + " 10; !- Loop Design Temperature Difference {deltaC}", + + " PlantLoop,", + " Hot Water Loop, !- Name", + " Water, !- Fluid Type", + " , !- User Defined Fluid Type", + " Hot Loop Operation, !- Plant Equipment Operation Scheme Name", + " HW Supply Outlet Node, !- Loop Temperature Setpoint Node Name", + " 100, !- Maximum Loop Temperature {C}", + " 10, !- Minimum Loop Temperature {C}", + " 0.0043, !- Maximum Loop Flow Rate {m3/s}", + " 0, !- Minimum Loop Flow Rate {m3/s}", + " autocalculate, !- Plant Loop Volume {m3}", + " HW Supply Inlet Node, !- Plant Side Inlet Node Name", + " HW Supply Outlet Node, !- Plant Side Outlet Node Name", + " Heating Supply Side Branches, !- Plant Side Branch List Name", + " Heating Supply Side Connectors, !- Plant Side Connector List Name", + " HW Demand Inlet Node, !- Demand Side Inlet Node Name", + " HW Demand Outlet Node, !- Demand Side Outlet Node Name", + " Heating Demand Side Branches, !- Demand Side Branch List Name", + " Heating Demand Side Connectors, !- Demand Side Connector List Name", + " Optimal, !- Load Distribution Scheme", + " , !- Availability Manager List Name", + " , !- Plant Loop Demand Calculation Scheme", + " , !- Common Pipe Simulation", + " , !- Pressure Simulation Type", + " 2.0; !- Loop Circulation Time {minutes}", + + " SetpointManager:Scheduled,", + " Hot Water Loop Setpoint Manager, !- Name", + " Temperature, !- Control Variable", + " HW Loop Temp Schedule, !- Schedule Name", + " Hot Water Loop Setpoint Node List; !- Setpoint Node or NodeList Name", + + " NodeList,", + " Hot Water Loop Setpoint Node List, !- Name", + " HW Supply Outlet Node; !- Node 1 Name", + + " BranchList,", + " Heating Supply Side Branches, !- Name", + " Heating Supply Inlet Branch, !- Branch 1 Name", + " Heating Purchased Hot Water Branch, !- Branch 2 Name", + " Heating Supply Bypass Branch, !- Branch 3 Name", + " Heating Supply Outlet Branch; !- Branch 4 Name", + + " ConnectorList,", + " Heating Supply Side Connectors, !- Name", + " Connector:Splitter, !- Connector 1 Object Type", + " Heating Supply Splitter, !- Connector 1 Name", + " Connector:Mixer, !- Connector 2 Object Type", + " Heating Supply Mixer; !- Connector 2 Name", + + " Branch,", + " Heating Supply Inlet Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pump:VariableSpeed, !- Component 1 Object Type", + " HW Circ Pump, !- Component 1 Name", + " HW Supply Inlet Node, !- Component 1 Inlet Node Name", + " HW Pump Outlet Node; !- Component 1 Outlet Node Name", + + " Branch,", + " Heating Purchased Hot Water Branch, !- Name", + " , !- Pressure Drop Curve Name", + " DistrictHeating, !- Component 1 Object Type", + " Purchased Heating, !- Component 1 Name", + " Purchased Heat Inlet Node, !- Component 1 Inlet Node Name", + " Purchased Heat Outlet Node; !- Component 1 Outlet Node Name", + + " Branch,", + " Heating Supply Bypass Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Heating Supply Side Bypass, !- Component 1 Name", + " Heating Supply Bypass Inlet Node, !- Component 1 Inlet Node Name", + " Heating Supply Bypass Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Heating Supply Side Bypass, !- Name", + " Heating Supply Bypass Inlet Node, !- Inlet Node Name", + " Heating Supply Bypass Outlet Node; !- Outlet Node Name", + + " Branch,", + " Heating Supply Outlet Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Heating Supply Outlet, !- Component 1 Name", + " Heating Supply Exit Pipe Inlet Node, !- Component 1 Inlet Node Name", + " HW Supply Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Heating Supply Outlet, !- Name", + " Heating Supply Exit Pipe Inlet Node, !- Inlet Node Name", + " HW Supply Outlet Node; !- Outlet Node Name", + + " BranchList,", + " Heating Demand Side Branches, !- Name", + " Reheat Inlet Branch, !- Branch 1 Name", + " Reheat Bypass Branch, !- Branch 8 Name", + " Reheat Outlet Branch; !- Branch 9 Name", + + " ConnectorList,", + " Heating Demand Side Connectors, !- Name", + " Connector:Splitter, !- Connector 1 Object Type", + " Reheat Splitter, !- Connector 1 Name", + " Connector:Mixer, !- Connector 2 Object Type", + " Reheat Mixer; !- Connector 2 Name", + + " Branch,", + " Reheat Inlet Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Reheat Inlet Pipe, !- Component 1 Name", + " HW Demand Inlet Node, !- Component 1 Inlet Node Name", + " HW Demand Entrance Pipe Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Reheat Inlet Pipe, !- Name", + " HW Demand Inlet Node, !- Inlet Node Name", + " HW Demand Entrance Pipe Outlet Node; !- Outlet Node Name", + + " Branch,", + " Reheat Outlet Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Reheat Outlet Pipe, !- Component 1 Name", + " HW Demand Exit Pipe Inlet Node, !- Component 1 Inlet Node Name", + " HW Demand Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Reheat Outlet Pipe, !- Name", + " HW Demand Exit Pipe Inlet Node, !- Inlet Node Name", + " HW Demand Outlet Node; !- Outlet Node Name", + + " Branch,", + " Reheat Bypass Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Reheat Bypass, !- Component 1 Name", + " Reheat Bypass Inlet Node,!- Component 1 Inlet Node Name", + " Reheat Bypass Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Reheat Bypass, !- Name", + " Reheat Bypass Inlet Node,!- Inlet Node Name", + " Reheat Bypass Outlet Node; !- Outlet Node Name", + + " Connector:Splitter,", + " Reheat Splitter, !- Name", + " Reheat Inlet Branch, !- Inlet Branch Name", + " Reheat Bypass Branch; !- Outlet Branch 7 Name", + + " Connector:Mixer,", + " Reheat Mixer, !- Name", + " Reheat Outlet Branch, !- Outlet Branch Name", + " Reheat Bypass Branch; !- Inlet Branch 7 Name", + + " Connector:Splitter,", + " Heating Supply Splitter, !- Name", + " Heating Supply Inlet Branch, !- Inlet Branch Name", + " Heating Purchased Hot Water Branch, !- Outlet Branch 1 Name", + " Heating Supply Bypass Branch; !- Outlet Branch 2 Name", + + " Connector:Mixer,", + " Heating Supply Mixer, !- Name", + " Heating Supply Outlet Branch, !- Outlet Branch Name", + " Heating Purchased Hot Water Branch, !- Inlet Branch 1 Name", + " Heating Supply Bypass Branch; !- Inlet Branch 2 Name", + + " PlantEquipmentOperationSchemes,", + " Hot Loop Operation, !- Name", + " PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type", + " Purchased Only, !- Control Scheme 1 Name", + " ON; !- Control Scheme 1 Schedule Name", + + " PlantEquipmentOperation:HeatingLoad,", + " Purchased Only, !- Name", + " 0, !- Load Range 1 Lower Limit {W}", + " 1000000, !- Load Range 1 Upper Limit {W}", + " heating plant; !- Range 1 Equipment List Name", + + " PlantEquipmentList,", + " heating plant, !- Name", + " DistrictHeating, !- Equipment 1 Object Type", + " Purchased Heating; !- Equipment 1 Name", + + " Pump:VariableSpeed,", + " HW Circ Pump, !- Name", + " HW Supply Inlet Node, !- Inlet Node Name", + " HW Pump Outlet Node, !- Outlet Node Name", + " .0043, !- Rated Flow Rate {m3/s}", + " 300000, !- Rated Pump Head {Pa}", + " 2000, !- Rated Power Consumption {W}", + " .87, !- Motor Efficiency", + " 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream", + " 0, !- Coefficient 1 of the Part Load Performance Curve", + " 1, !- Coefficient 2 of the Part Load Performance Curve", + " 0, !- Coefficient 3 of the Part Load Performance Curve", + " 0, !- Coefficient 4 of the Part Load Performance Curve", + " 0, !- Minimum Flow Rate {m3/s}", + " INTERMITTENT; !- Pump Control Type", + + " DistrictHeating,", + " Purchased Heating, !- Name", + " Purchased Heat Inlet Node, !- Hot Water Inlet Node Name", + " Purchased Heat Outlet Node, !- Hot Water Outlet Node Name", + " 1000000; !- Nominal Capacity {W}", + + " Sizing:Plant,", + " Chilled Water Loop, !- Plant or Condenser Loop Name", + " cooling, !- Loop Type", + " 6.7, !- Design Loop Exit Temperature {C}", + " 2; !- Loop Design Temperature Difference {deltaC}", + + " PlantLoop,", + " Chilled Water Loop, !- Name", + " Water, !- Fluid Type", + " , !- User Defined Fluid Type", + " CW Loop Operation, !- Plant Equipment Operation Scheme Name", + " CW Supply Outlet Node, !- Loop Temperature Setpoint Node Name", + " 98, !- Maximum Loop Temperature {C}", + " 1, !- Minimum Loop Temperature {C}", + " 0.0011, !- Maximum Loop Flow Rate {m3/s}", + " 0, !- Minimum Loop Flow Rate {m3/s}", + " autocalculate, !- Plant Loop Volume {m3}", + " CW Supply Inlet Node, !- Plant Side Inlet Node Name", + " CW Supply Outlet Node, !- Plant Side Outlet Node Name", + " Cooling Supply Side Branches, !- Plant Side Branch List Name", + " Cooling Supply Side Connectors, !- Plant Side Connector List Name", + " CW Demand Inlet Node, !- Demand Side Inlet Node Name", + " CW Demand Outlet Node, !- Demand Side Outlet Node Name", + " Cooling Demand Side Branches, !- Demand Side Branch List Name", + " Cooling Demand Side Connectors, !- Demand Side Connector List Name", + " Optimal, !- Load Distribution Scheme", + " , !- Availability Manager List Name", + " , !- Plant Loop Demand Calculation Scheme", + " , !- Common Pipe Simulation", + " , !- Pressure Simulation Type", + " 2.0; !- Loop Circulation Time {minutes}", + + " SetpointManager:Scheduled,", + " Chilled Water Loop Setpoint Manager, !- Name", + " Temperature, !- Control Variable", + " CW Loop Temp Schedule, !- Schedule Name", + " Chilled Water Loop Setpoint Node List; !- Setpoint Node or NodeList Name", + + " Schedule:Compact,", + " CW LOOP TEMP SCHEDULE, !- Name", + " TEMPERATURE, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 24:00, 10.0; !- Field 3", + + " NodeList,", + " Chilled Water Loop Setpoint Node List, !- Name", + " CW Supply Outlet Node; !- Node 1 Name", + + " BranchList,", + " Cooling Supply Side Branches, !- Name", + " CW Pump Branch, !- Branch 1 Name", + " Purchased Cooling Branch,!- Branch 4 Name", + " Supply Bypass Branch, !- Branch 5 Name", + " Cooling Supply Outlet; !- Branch 6 Name", + + " BranchList,", + " Cooling Demand Side Branches, !- Name", + " Cooling Demand Inlet, !- Branch 1 Name", + " Zone 1 Cooling Branch, !- Branch 2 Name", + " Demand Bypass Branch, !- Branch 3 Name", + " Cooling Demand Outlet; !- Branch 4 Name", + + " ConnectorList,", + " Cooling Supply Side Connectors, !- Name", + " Connector:Splitter, !- Connector 1 Object Type", + " CW Loop Splitter, !- Connector 1 Name", + " Connector:Mixer, !- Connector 2 Object Type", + " CW Loop Mixer; !- Connector 2 Name", + + " ConnectorList,", + " Cooling Demand Side Connectors, !- Name", + " Connector:Splitter, !- Connector 1 Object Type", + " CW Demand Splitter, !- Connector 1 Name", + " Connector:Mixer, !- Connector 2 Object Type", + " CW Demand Mixer; !- Connector 2 Name", + + " Branch,", + " Cooling Demand Inlet, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Demand Side Inlet Pipe, !- Component 1 Name", + " CW Demand Inlet Node, !- Component 1 Inlet Node Name", + " CW Demand Entrance Pipe Outlet Node; !- Component 1 Outlet Node Name", + + " Schedule:Compact,", + " RADIANT COOLING SETPOINTS, !- Name", + " TEMPERATURE, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 24:00,26.0; !- Field 3", + + " Pipe:Adiabatic,", + " Demand Side Inlet Pipe, !- Name", + " CW Demand Inlet Node, !- Inlet Node Name", + " CW Demand Entrance Pipe Outlet Node; !- Outlet Node Name", + + " Branch,", + " Zone 1 Cooling Branch, !- Name", + " , !- Pressure Drop Curve Name", + " ZoneHVAC:LowTemperatureRadiant:VariableFlow, !- Component 1 Object Type", + " West Zone Radiant Floor, !- Component 1 Name", + " Zone 1 Cooling Water Inlet Node, !- Component 1 Inlet Node Name", + " Zone 1 Cooling Water Outlet Node; !- Component 1 Outlet Node Name", + + " Branch,", + " Demand Bypass Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Demand Side Bypass, !- Component 1 Name", + " CW Demand Bypass Inlet Node, !- Component 1 Inlet Node Name", + " CW Demand Bypass Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Demand Side Bypass, !- Name", + " CW Demand Bypass Inlet Node, !- Inlet Node Name", + " CW Demand Bypass Outlet Node; !- Outlet Node Name", + + " Branch,", + " Cooling Demand Outlet, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " CW Demand Side Outlet Pipe, !- Component 1 Name", + " CW Demand Exit Pipe Inlet Node, !- Component 1 Inlet Node Name", + " CW Demand Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " CW Demand Side Outlet Pipe, !- Name", + " CW Demand Exit Pipe Inlet Node, !- Inlet Node Name", + " CW Demand Outlet Node; !- Outlet Node Name", + + " Branch,", + " Cooling Supply Outlet, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Supply Side Outlet Pipe, !- Component 1 Name", + " Supply Side Exit Pipe Inlet Node, !- Component 1 Inlet Node Name", + " CW Supply Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Supply Side Outlet Pipe, !- Name", + " Supply Side Exit Pipe Inlet Node, !- Inlet Node Name", + " CW Supply Outlet Node; !- Outlet Node Name", + + " Branch,", + " CW Pump Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pump:VariableSpeed, !- Component 1 Object Type", + " Circ Pump, !- Component 1 Name", + " CW Supply Inlet Node, !- Component 1 Inlet Node Name", + " CW Pump Outlet Node; !- Component 1 Outlet Node Name", + + " Branch,", + " Purchased Cooling Branch,!- Name", + " , !- Pressure Drop Curve Name", + " DistrictCooling, !- Component 1 Object Type", + " Purchased Cooling, !- Component 1 Name", + " Purchased Cooling Inlet Node, !- Component 1 Inlet Node Name", + " Purchased Cooling Outlet Node; !- Component 1 Outlet Node Name", + + " Branch,", + " Supply Bypass Branch, !- Name", + " , !- Pressure Drop Curve Name", + " Pipe:Adiabatic, !- Component 1 Object Type", + " Supply Side Bypass, !- Component 1 Name", + " CW Supply Bypass Inlet Node, !- Component 1 Inlet Node Name", + " CW Supply Bypass Outlet Node; !- Component 1 Outlet Node Name", + + " Pipe:Adiabatic,", + " Supply Side Bypass, !- Name", + " CW Supply Bypass Inlet Node, !- Inlet Node Name", + " CW Supply Bypass Outlet Node; !- Outlet Node Name", + + " Connector:Splitter,", + " CW Loop Splitter, !- Name", + " CW Pump Branch, !- Inlet Branch Name", + " Purchased Cooling Branch,!- Outlet Branch 3 Name", + " Supply Bypass Branch; !- Outlet Branch 4 Name", + + " Connector:Mixer,", + " CW Loop Mixer, !- Name", + " Cooling Supply Outlet, !- Outlet Branch Name", + " Purchased Cooling Branch,!- Inlet Branch 3 Name", + " Supply Bypass Branch; !- Inlet Branch 4 Name", + + " Connector:Splitter,", + " CW Demand Splitter, !- Name", + " Cooling Demand Inlet, !- Inlet Branch Name", + " Demand Bypass Branch, !- Outlet Branch 1 Name", + " Zone 1 Cooling Branch; !- Outlet Branch 2 Name", + + " Connector:Mixer,", + " CW Demand Mixer, !- Name", + " Cooling Demand Outlet, !- Outlet Branch Name", + " Zone 1 Cooling Branch, !- Inlet Branch 1 Name", + " Demand Bypass Branch; !- Inlet Branch 2 Name", + + " PlantEquipmentOperationSchemes,", + " CW Loop Operation, !- Name", + " PlantEquipmentOperation:CoolingLoad, !- Control Scheme 1 Object Type", + " Always Operation, !- Control Scheme 1 Name", + " Always; !- Control Scheme 1 Schedule Name", + + " Schedule:Compact,", + " Always, !- Name", + " FRACTION, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: Alldays, !- Field 2", + " Until: 24:00,1.0; !- Field 3", + + " PlantEquipmentOperation:CoolingLoad,", + " Always Operation, !- Name", + " 0, !- Load Range 1 Lower Limit {W}", + " 70000, !- Load Range 1 Upper Limit {W}", + " Purchased Only; !- Range 3 Equipment List Name", + + " PlantEquipmentList,", + " Purchased Only, !- Name", + " DistrictCooling, !- Equipment 1 Object Type", + " Purchased Cooling; !- Equipment 1 Name", + + " DistrictCooling,", + " Purchased Cooling, !- Name", + " Purchased Cooling Inlet Node, !- Chilled Water Inlet Node Name", + " Purchased Cooling Outlet Node, !- Chilled Water Outlet Node Name", + " 680000; !- Nominal Capacity {W}", + + " Pump:VariableSpeed,", + " Circ Pump, !- Name", + " CW Supply Inlet Node, !- Inlet Node Name", + " CW Pump Outlet Node, !- Outlet Node Name", + " .0011, !- Rated Flow Rate {m3/s}", + " 300000, !- Rated Pump Head {Pa}", + " 500, !- Rated Power Consumption {W}", + " .87, !- Motor Efficiency", + " 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream", + " 0, !- Coefficient 1 of the Part Load Performance Curve", + " 1, !- Coefficient 2 of the Part Load Performance Curve", + " 0, !- Coefficient 3 of the Part Load Performance Curve", + " 0, !- Coefficient 4 of the Part Load Performance Curve", + " 0, !- Minimum Flow Rate {m3/s}", + " INTERMITTENT; !- Pump Control Type", + + }); + ASSERT_TRUE(process_idf(idf_objects)); + + GetProjectControlData(*state, ErrorsFound); + EXPECT_FALSE(ErrorsFound); + + GetZoneData(*state, ErrorsFound); + EXPECT_FALSE(ErrorsFound); + EXPECT_EQ("WEST ZONE", state->dataHeatBal->Zone(1).Name); + + GetZoneEquipmentData(*state); + ProcessScheduleInput(*state); + HeatBalanceManager::SetPreConstructionInputParameters(*state); + GetMaterialData(*state, ErrorsFound); + EXPECT_FALSE(ErrorsFound); + + GetConstructData(*state, ErrorsFound); + EXPECT_FALSE(ErrorsFound); + + GetPlantSizingInput(*state); + GetPlantLoopData(*state); + GetPlantInput(*state); + SetupInitialPlantCallingOrder(*state); + SetupBranchControlTypes(*state); + state->dataSurface->WorldCoordSystem = true; + GetSurfaceListsInputs(*state); + ErrorsFound = false; + SetupZoneGeometry(*state, ErrorsFound); + EXPECT_FALSE(ErrorsFound); + + // This is the test: prior to the fix for 8885, in a cooling only variable flow low temp radiant + // system, a severe error would be thrown because there was a bug in the reading of the cooling nodes. + // Post-fix, there should be no warnings thrown. + EXPECT_NO_THROW(GetLowTempRadiantSystem(*state)); + compare_err_stream(""); +}