@@ -6100,6 +6100,102 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_CheckNumOfFansInAirLoopTest)
61006100 EXPECT_TRUE(compare_err_stream(error_string, true));
61016101}
61026102
6103+ TEST_F(EnergyPlusFixture, AirflowNetwork_ValidateDistCoils)
6104+ {
6105+ std::string const idf_objects = delimited_string({
6106+
6107+ " Coil:Cooling:DX:VariableSpeed,",
6108+ " Super Coil, !- Name",
6109+ " Node_1, !- Indoor Air Inlet Node Name",
6110+ " Node_2, !- Indoor Air Outlet Node Name",
6111+ " 1, !- Number of Speeds {dimensionless}",
6112+ " 1, !- Nominal Speed Level {dimensionless}",
6113+ " autosize, !- Gross Rated Total Cooling Capacity At Selected Nominal Speed Level {W}",
6114+ " autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}",
6115+ " , !- Nominal Time for Condensate to Begin Leaving the Coil {s}",
6116+ " , !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}",
6117+ " , !- Maximum Cycling Rate {cycles/hr}",
6118+ " , !- Latent Capacity Time Constant {s}",
6119+ " , !- Fan Delay Time {s}",
6120+ " HPCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name",
6121+ " , !- Condenser Air Inlet Node Name",
6122+ " AirCooled, !- Condenser Type",
6123+ " , !- Evaporative Condenser Pump Rated Power Consumption {W}",
6124+ " , !- Crankcase Heater Capacity {W}",
6125+ " , !- Crankcase Heater Capacity Function of Temperature Curve Name",
6126+ " 10, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}",
6127+ " -25, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}",
6128+ " , !- Supply Water Storage Tank Name",
6129+ " , !- Condensate Collection Water Storage Tank Name",
6130+ " , !- Basin Heater Capacity {W/K}",
6131+ " 2, !- Basin Heater Setpoint Temperature {C}",
6132+ " , !- Basin Heater Operating Schedule Name",
6133+ " 15000, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W}",
6134+ " 0.55, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}",
6135+ " 4.3, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W}",
6136+ " 0.05, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s}",
6137+ " , !- 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}",
6138+ " , !- 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}",
6139+ " , !- Speed 1 Reference Unit Rated Condenser Air Flow Rate {m3/s}",
6140+ " , !- Speed 1 Reference Unit Rated Pad Effectiveness of Evap Precooling {dimensionless}",
6141+ " HPCoolingCAPFTemp, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name",
6142+ " HPCoolingCAPFFF, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name",
6143+ " HPCoolingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name",
6144+ " HPCoolingEIRFFF; !- Speed 1 Energy Input Ratio Function of Air Flow Fraction Curve Name",
6145+ "",
6146+ " Coil:Heating:DX:VariableSpeed,",
6147+ " Super Heating Coil, !- Name",
6148+ " Node_1, !- Indoor Air Inlet Node Name",
6149+ " Node_2, !- Indoor Air Outlet Node Name",
6150+ " 1, !- Number of Speeds {dimensionless}",
6151+ " 1, !- Nominal Speed Level {dimensionless}",
6152+ " autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W}",
6153+ " autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}",
6154+ " HPHEATPLFFPLR, !- Energy Part Load Fraction Curve Name",
6155+ " , !- Defrost Energy Input Ratio Function of Temperature Curve Name",
6156+ " -8, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}",
6157+ " , !- Outdoor Dry-Bulb Temperature to Turn On Compressor {C}",
6158+ " 5, !- Maximum Outdoor Dry-Bulb Temperature for Defrost Operation {C}",
6159+ " , !- Crankcase Heater Capacity {W}",
6160+ " , !- Crankcase Heater Capacity Function of Temperature Curve Name",
6161+ " 10, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}",
6162+ " ReverseCycle, !- Defrost Strategy",
6163+ " Timed, !- Defrost Control",
6164+ " 0.058333, !- Defrost Time Period Fraction",
6165+ " , !- Resistive Defrost Heater Capacity {W}",
6166+ " 17500, !- Speed 1 Reference Unit Gross Rated Heating Capacity {W}",
6167+ " 4.5, !- Speed 1 Reference Unit Gross Rated Heating COP {W/W}",
6168+ " 0.05, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s}",
6169+ " 773.3, !- 2017 Speed 1 Rated Supply Air Fan Power Per Volume Flow Rate {W/(m3/s)}",
6170+ " 934.4, !- 2023 Speed 1 Rated Supply Air Fan Power Per Volume Flow Rate {W/(m3/s)}",
6171+ " HPHeatingCAPFTemp, !- Speed 1 Heating Capacity Function of Temperature Curve Name",
6172+ " HPHeatingCAPFFF, !- Speed 1 Total Heating Capacity Function of Air Flow Fraction Curve Name",
6173+ " HPHeatingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name",
6174+ " HPHeatingEIRFFF; !- Speed 1 Energy Input Ratio Function of Air Flow Fraction Curve Name ",
6175+ });
6176+
6177+ ASSERT_TRUE(process_idf(idf_objects));
6178+
6179+ state->dataAirSystemsData->PrimaryAirSystems.allocate(1);
6180+ state->dataAirSystemsData->PrimaryAirSystems(1).NumBranches = 1;
6181+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch.allocate(1);
6182+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).TotalComponents = 2;
6183+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp.allocate(2);
6184+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).TypeOf = "Coil:Cooling:DX:VariableSpeed";
6185+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "VariableSpeedCoolingCoil";
6186+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(2).TypeOf = "Coil:Heating:DX:VariableSpeed";
6187+ state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(2).Name = "VariableSpeedHeatingCoil";
6188+
6189+ state->afn->DisSysNumOfCoils = 2;
6190+ state->afn->DisSysCompCoilData.allocate(2);
6191+ state->afn->DisSysCompCoilData(1).EPlusType = "COIL:COOLING:DX:VARIABLESPEED";
6192+ state->afn->DisSysCompCoilData(1).name = "Super Coil";
6193+ state->afn->DisSysCompCoilData(2).EPlusType = "COIL:HEATING:DX:VARIABLESPEED";
6194+ state->afn->DisSysCompCoilData(2).name = "Super Heating Coil";
6195+
6196+ state->afn->validate_distribution();
6197+ }
6198+
61036199// Missing an AirflowNetwork:Distribution:Node for the Zone Air Node
61046200TEST_F(EnergyPlusFixture, AirflowNetwork_CheckMultiZoneNodes_NoZoneNode)
61056201{
0 commit comments