diff --git a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc index 87722ea5a58..692285476d7 100644 --- a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc +++ b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc @@ -4380,21 +4380,11 @@ void GetVRFInputData(EnergyPlusData &state, bool &ErrorsFound) vrfTU.NumOfSpeedCooling = fanSystem->numSpeeds; vrfTU.CoolVolumeFlowRate.resize(fanSystem->numSpeeds + 1); vrfTU.CoolMassFlowRate.resize(fanSystem->numSpeeds + 1); - if (vrfTU.MaxCoolAirVolFlow != DataSizing::AutoSize) { - for (int i = 1; i <= vrfTU.NumOfSpeedCooling; ++i) { - vrfTU.CoolMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; - } - } } if (vrfTU.DXHeatCoilType_Num == HVAC::CoilVRF_Heating) { vrfTU.NumOfSpeedHeating = fanSystem->numSpeeds; vrfTU.HeatVolumeFlowRate.resize(fanSystem->numSpeeds + 1); vrfTU.HeatMassFlowRate.resize(fanSystem->numSpeeds + 1); - if (vrfTU.MaxHeatAirVolFlow != DataSizing::AutoSize) { - for (int i = 1; i <= vrfTU.NumOfSpeedCooling; ++i) { - vrfTU.HeatMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; - } - } } ShowWarningError(state, cCurrentModuleObject + " = " + thisVrfTU.Name + " with Fan:SystemModel is used in " + cAlphaArgs(8) + "\""); @@ -6421,8 +6411,32 @@ void InitVRF(EnergyPlusData &state, int const VRFTUNum, int const ZoneNum, bool // one-time checks of flow rate vs fan flow rate if (state.dataHVACVarRefFlow->MyVRFFlag(VRFTUNum)) { if (!state.dataGlobal->ZoneSizingCalc && !state.dataGlobal->SysSizingCalc) { - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).fanPlace != HVAC::FanPlace::Invalid) { // was > 0 (is 0 invalid?) - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ActualFanVolFlowRate != AutoSize) { + auto &vrfTU = state.dataHVACVarRefFlow->VRFTU(VRFTUNum); + if (vrfTU.fanPlace != HVAC::FanPlace::Invalid) { // was > 0 (is 0 invalid?) + if (vrfTU.ActualFanVolFlowRate != AutoSize) { + + if (vrfTU.fanType == HVAC::FanType::SystemModel) { + auto *fanSystem = dynamic_cast(state.dataFans->fans(vrfTU.FanIndex)); + if (fanSystem->speedControl == Fans::SpeedControl::Discrete && + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).DesignSpecMSHPIndex < 0) { + if (fanSystem->numSpeeds > 1) { + if (vrfTU.DXCoolCoilType_Num == HVAC::CoilVRF_Cooling) { + if (vrfTU.MaxCoolAirVolFlow != DataSizing::AutoSize) { + for (int i = 1; i <= vrfTU.NumOfSpeedCooling; ++i) { + vrfTU.CoolMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; + } + } + } + if (vrfTU.DXHeatCoilType_Num == HVAC::CoilVRF_Heating) { + if (vrfTU.MaxHeatAirVolFlow != DataSizing::AutoSize) { + for (int i = 1; i <= vrfTU.NumOfSpeedCooling; ++i) { + vrfTU.HeatMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; + } + } + } + } + } + } if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow > state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ActualFanVolFlowRate) { @@ -7351,11 +7365,10 @@ void InitVRF(EnergyPlusData &state, int const VRFTUNum, int const ZoneNum, bool SetAverageAirFlow(state, VRFTUNum, 0.0, OnOffAirFlowRatio); if (ErrorsFound) { - ShowFatalError( - state, - format( - "{}: Errors found in getting ZoneHVAC:TerminalUnit:VariableRefrigerantFlow system input. Preceding condition(s) causes termination.", - RoutineName)); + ShowFatalError(state, + format("{}: Errors found in getting ZoneHVAC:TerminalUnit:VariableRefrigerantFlow system input. Preceding condition(s) " + "causes termination.", + RoutineName)); } } @@ -7728,7 +7741,7 @@ void SizeVRF(EnergyPlusData &state, int const VRFTUNum) } else { auto *fanSystem = dynamic_cast(state.dataFans->fans(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex)); assert(fanSystem != nullptr); - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] == 0.0) { + if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] == 0.0 && !fanSystem->massFlowAtSpeed.empty()) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolVolumeFlowRate[i] = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] / state.dataEnvrn->StdRhoAir; @@ -7814,7 +7827,7 @@ void SizeVRF(EnergyPlusData &state, int const VRFTUNum) } else { auto *fanSystem = dynamic_cast(state.dataFans->fans(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex)); assert(fanSystem != nullptr); - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] == 0.0) { + if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] == 0.0 && !fanSystem->massFlowAtSpeed.empty()) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatVolumeFlowRate[i] = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] / state.dataEnvrn->StdRhoAir; @@ -7978,7 +7991,7 @@ void SizeVRF(EnergyPlusData &state, int const VRFTUNum) } else { auto *fanSystem = dynamic_cast(state.dataFans->fans(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex)); assert(fanSystem != nullptr); - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] == 0.0) { + if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] == 0.0 && !fanSystem->massFlowAtSpeed.empty()) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolVolumeFlowRate[i] = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolMassFlowRate[i] / state.dataEnvrn->StdRhoAir; @@ -8017,7 +8030,7 @@ void SizeVRF(EnergyPlusData &state, int const VRFTUNum) } else { auto *fanSystem = dynamic_cast(state.dataFans->fans(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex)); assert(fanSystem != nullptr); - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] == 0.0) { + if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] == 0.0 && !fanSystem->massFlowAtSpeed.empty()) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] = fanSystem->massFlowAtSpeed[i - 1]; state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatVolumeFlowRate[i] = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatMassFlowRate[i] / state.dataEnvrn->StdRhoAir; diff --git a/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc b/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc index 8b2fd08d1b1..6d42e22b82c 100644 --- a/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc +++ b/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc @@ -24434,6 +24434,1322 @@ TEST_F(EnergyPlusFixture, VRF_MultispeedFan_Test) EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 0.713222413, 0.00001); } +TEST_F(EnergyPlusFixture, VRF_MultispeedFan_Test_HardSized) +{ + std::string const idf_objects = delimited_string({ + + " !- =========== ALL OBJECTS IN CLASS: BUILDING ===========", + + " Building,", + " Building 1, !- Name", + " , !- North Axis {deg}", + " , !- Terrain", + " , !- Loads Convergence Tolerance Value", + " , !- Temperature Convergence Tolerance Value {deltaC}", + " MinimalShadowing, !- Solar Distribution", + " , !- Maximum Number of Warmup Days", + " ; !- Minimum Number of Warmup Days", + + " !- =========== ALL OBJECTS IN CLASS: SHADOWCALCULATION ===========", + + " ShadowCalculation,", + " PolygonClipping, !- Shading Calculation Method", + " Periodic, !- Shading Calculation Update Frequency Method", + " 20, !- Shading Calculation Update Frequency", + " 15000; !- Maximum Figures in Shadow Overlap Calculations", + + " !- =========== ALL OBJECTS IN CLASS: ZONEAIRHEATBALANCEALGORITHM ===========", + + " ZoneAirHeatBalanceAlgorithm,", + " AnalyticalSolution; !- Algorithm", + + " !- =========== ALL OBJECTS IN CLASS: TIMESTEP ===========", + + " Timestep,", + " 6; !- Number of Timesteps per Hour", + + " !- =========== ALL OBJECTS IN CLASS: CONVERGENCELIMITS ===========", + + " ConvergenceLimits,", + " 1; !- Minimum System Timestep {minutes}", + + " !- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE ===========", + + " Site:GroundTemperature:BuildingSurface,", + " 19.195, !- January Ground Temperature {C}", + " 19.191, !- February Ground Temperature {C}", + " 19.215, !- March Ground Temperature {C}", + " 19.250, !- April Ground Temperature {C}", + " 19.367, !- May Ground Temperature {C}", + " 20.429, !- June Ground Temperature {C}", + " 21.511, !- July Ground Temperature {C}", + " 21.776, !- August Ground Temperature {C}", + " 20.440, !- September Ground Temperature {C}", + " 19.538, !- October Ground Temperature {C}", + " 19.333, !- November Ground Temperature {C}", + " 19.237; !- December Ground Temperature {C}", + + " !- =========== ALL OBJECTS IN CLASS: SITE:WATERMAINSTEMPERATURE ===========", + + " Site:WaterMainsTemperature,", + " CORRELATION, !- Calculation Method", + " , !- Temperature Schedule Name", + " 9.84, !- Annual Average Outdoor Air Temperature {C}", + " 24.70; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC}", + + " SimulationControl,", + " Yes, !- Do Zone Sizing Calculation", + " Yes, !- Do System Sizing Calculation", + " No, !- Do Plant Sizing Calculation", + " Yes, !- Run Simulation for Sizing Periods", + " No; !- Run Simulation for Weather File Run Periods", + + " Site:Location,", + " Miami Intl Ap FL USA TMY3 WMO=722020, !- Name", + " 25.82, !- Latitude {deg}", + " -80.30, !- Longitude {deg}", + " -5.00, !- Time Zone {hr}", + " 11.00; !- Elevation {m}", + + " SizingPeriod:DesignDay,", + " Miami Intl Ap Ann Htg 99.6% Condns DB, !- Name", + " 1, !- Month", + " 21, !- Day of Month", + " WinterDesignDay, !- Day Type", + " 8.7, !- 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", + " 8.7, !- 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}", + " 101217., !- Barometric Pressure {Pa}", + " 3.8, !- Wind Speed {m/s}", + " 340, !- 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.00; !- Sky Clearness", + + " SizingPeriod:DesignDay,", + " Miami Intl Ap Ann Clg .4% Condns DB=>MWB, !- Name", + " 7, !- Month", + " 21, !- Day of Month", + " SummerDesignDay, !- Day Type", + " 33.2, !- Maximum Dry-Bulb Temperature {C}", + " 6.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", + " 25.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}", + " 101217., !- Barometric Pressure {Pa}", + " 4.5, !- Wind Speed {m/s}", + " 140, !- 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.00; !- Sky Clearness", + + " !- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS ===========", + + " ScheduleTypeLimits,", + " Any Number; !- Name", + + " ScheduleTypeLimits,", + " Temperature, !- Name", + " -60, !- Lower Limit Value", + " 200, !- Upper Limit Value", + " CONTINUOUS; !- Numeric Type", + + " ScheduleTypeLimits,", + " Control Type, !- Name", + " 0, !- Lower Limit Value", + " 4, !- Upper Limit Value", + " DISCRETE; !- Numeric Type", + + " !- =========== ALL OBJECTS IN CLASS: MATERIAL ===========", + + " Material,", + " 1/2IN Gypsum, !- Name", + " Smooth, !- Roughness", + " 0.0127, !- Thickness {m}", + " 0.16, !- Conductivity {W/m-K}", + " 784.9, !- Density {kg/m3}", + " 830.000000000001, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.4, !- Solar Absorptance", + " 0.4; !- Visible Absorptance", + + " Material,", + " 8IN Concrete HW, !- Name", + " MediumRough, !- Roughness", + " 0.2033, !- Thickness {m}", + " 1.72959999999999, !- Conductivity {W/m-K}", + " 2242.99999999999, !- Density {kg/m3}", + " 836.999999999999, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.65, !- Solar Absorptance", + " 0.65; !- Visible Absorptance", + + " Material,", + " F08 Metal surface, !- Name", + " Smooth, !- Roughness", + " 0.0008, !- Thickness {m}", + " 45.2800000000001, !- Conductivity {W/m-K}", + " 7823.99999999999, !- Density {kg/m3}", + " 500, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.7, !- Solar Absorptance", + " 0.7; !- Visible Absorptance", + + " Material,", + " F16 Acoustic tile, !- Name", + " MediumSmooth, !- Roughness", + " 0.0191, !- Thickness {m}", + " 0.06, !- Conductivity {W/m-K}", + " 368, !- Density {kg/m3}", + " 590.000000000002, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.3, !- Solar Absorptance", + " 0.3; !- Visible Absorptance", + + " Material,", + " I01 25mm insulation board, !- Name", + " MediumRough, !- Roughness", + " 0.0254, !- Thickness {m}", + " 0.03, !- Conductivity {W/m-K}", + " 43, !- Density {kg/m3}", + " 1210, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.6, !- Solar Absorptance", + " 0.6; !- Visible Absorptance", + + " Material,", + " M11 100mm lightweight concrete, !- Name", + " MediumRough, !- Roughness", + " 0.1016, !- Thickness {m}", + " 0.53, !- Conductivity {W/m-K}", + " 1280, !- Density {kg/m3}", + " 840.000000000002, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.5, !- Solar Absorptance", + " 0.5; !- Visible Absorptance", + + " Material,", + " MAT-CC05 4 HW CONCRETE, !- Name", + " Rough, !- Roughness", + " 0.1016, !- Thickness {m}", + " 1.311, !- Conductivity {W/m-K}", + " 2240, !- Density {kg/m3}", + " 836.800000000001, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.85, !- Solar Absorptance", + " 0.85; !- Visible Absorptance", + + " Material,", + " Metal Decking, !- Name", + " MediumSmooth, !- Roughness", + " 0.0015, !- Thickness {m}", + " 45.006, !- Conductivity {W/m-K}", + " 7680, !- Density {kg/m3}", + " 418.4, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.6, !- Solar Absorptance", + " 0.6; !- Visible Absorptance", + + " Material,", + " Roof Insulation [18], !- Name", + " MediumRough, !- Roughness", + " 0.1693, !- Thickness {m}", + " 0.049, !- Conductivity {W/m-K}", + " 265, !- Density {kg/m3}", + " 836.800000000001, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.7, !- Solar Absorptance", + " 0.7; !- Visible Absorptance", + + " Material,", + " Roof Membrane, !- Name", + " VeryRough, !- Roughness", + " 0.0095, !- Thickness {m}", + " 0.16, !- Conductivity {W/m-K}", + " 1121.29, !- Density {kg/m3}", + " 1460, !- Specific Heat {J/kg-K}", + " 0.9, !- Thermal Absorptance", + " 0.7, !- Solar Absorptance", + " 0.7; !- Visible Absorptance", + + " Material,", + " Air Wall Material, !- Name", + " MediumSmooth, !- Roughness", + " 0.01, !- Thickness {m}", + " 0.6, !- Conductivity {W/m-K}", + " 800, !- Density {kg/m3}", + " 1000, !- Specific Heat {J/kg-K}", + " 0.95, !- Thermal Absorptance", + " 0.7, !- Solar Absorptance", + " 0.7; !- Visible Absorptance", + + " !- =========== ALL OBJECTS IN CLASS: MATERIAL:NOMASS ===========", + + " Material:NoMass,", + " CP02 CARPET PAD, !- Name", + " Smooth, !- Roughness", + " 0.1, !- Thermal Resistance {m2-K/W}", + " 0.9, !- Thermal Absorptance", + " 0.8, !- Solar Absorptance", + " 0.8; !- Visible Absorptance", + + " !- =========== ALL OBJECTS IN CLASS: CONSTRUCTION ===========", + + " Construction,", + " ExtRoof IEAD ClimateZone 1, !- Name", + " Roof Membrane, !- Outside Layer", + " Roof Insulation [18], !- Layer 2", + " Metal Decking; !- Layer 3", + + " Construction,", + " ExtSlabCarpet 4in ClimateZone 1-8 1, !- Name", + " MAT-CC05 4 HW CONCRETE, !- Outside Layer", + " CP02 CARPET PAD; !- Layer 2", + + " Construction,", + " ExtWall Mass ClimateZone 1, !- Name", + " 8IN Concrete HW, !- Outside Layer", + " 1/2IN Gypsum; !- Layer 2", + + " !- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES ===========", + + " GlobalGeometryRules,", + " UpperLeftCorner, !- Starting Vertex Position", + " Counterclockwise, !- Vertex Entry Direction", + " Relative, !- Coordinate System", + " Relative, !- Daylighting Reference Point Coordinate System", + " Relative; !- Rectangular Surface Coordinate System", + + " !- =========== ALL OBJECTS IN CLASS: ZONE ===========", + + " Zone,", + " Zone 1, !- Name", + " , !- Direction of Relative North {deg}", + " 0, !- X Origin {m}", + " 10, !- Y Origin {m}", + " 0; !- Z Origin {m}", + + " !- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED ===========", + + " BuildingSurface:Detailed,", + " Surface 1, !- Name", + " Floor, !- Surface Type", + " ExtSlabCarpet 4in ClimateZone 1-8 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Adiabatic, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " NoSun, !- Sun Exposure", + " NoWind, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 10, !- Vertex 1 X-coordinate {m}", + " 0, !- Vertex 1 Y-coordinate {m}", + " 0, !- Vertex 1 Z-coordinate {m}", + " 10, !- Vertex 2 X-coordinate {m}", + " -10, !- Vertex 2 Y-coordinate {m}", + " 0, !- Vertex 2 Z-coordinate {m}", + " 0, !- Vertex 3 X-coordinate {m}", + " -10, !- Vertex 3 Y-coordinate {m}", + " 0, !- Vertex 3 Z-coordinate {m}", + " 0, !- Vertex 4 X-coordinate {m}", + " 0, !- Vertex 4 Y-coordinate {m}", + " 0; !- Vertex 4 Z-coordinate {m}", + + " BuildingSurface:Detailed,", + " Surface 2, !- Name", + " Wall, !- Surface Type", + " ExtWall Mass ClimateZone 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 10, !- Vertex 1 X-coordinate {m}", + " 0, !- Vertex 1 Y-coordinate {m}", + " 3.048, !- Vertex 1 Z-coordinate {m}", + " 10, !- Vertex 2 X-coordinate {m}", + " 0, !- Vertex 2 Y-coordinate {m}", + " 0, !- Vertex 2 Z-coordinate {m}", + " 0, !- Vertex 3 X-coordinate {m}", + " 0, !- Vertex 3 Y-coordinate {m}", + " 0, !- Vertex 3 Z-coordinate {m}", + " 0, !- Vertex 4 X-coordinate {m}", + " 0, !- Vertex 4 Y-coordinate {m}", + " 3.048; !- Vertex 4 Z-coordinate {m}", + + " BuildingSurface:Detailed,", + " Surface 3, !- Name", + " Wall, !- Surface Type", + " ExtWall Mass ClimateZone 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 10, !- Vertex 1 X-coordinate {m}", + " -10, !- Vertex 1 Y-coordinate {m}", + " 3.048, !- Vertex 1 Z-coordinate {m}", + " 10, !- Vertex 2 X-coordinate {m}", + " -10, !- Vertex 2 Y-coordinate {m}", + " 0, !- Vertex 2 Z-coordinate {m}", + " 10, !- Vertex 3 X-coordinate {m}", + " 0, !- Vertex 3 Y-coordinate {m}", + " 0, !- Vertex 3 Z-coordinate {m}", + " 10, !- Vertex 4 X-coordinate {m}", + " 0, !- Vertex 4 Y-coordinate {m}", + " 3.048; !- Vertex 4 Z-coordinate {m}", + + " BuildingSurface:Detailed,", + " Surface 4, !- Name", + " Wall, !- Surface Type", + " ExtWall Mass ClimateZone 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 0, !- Vertex 1 X-coordinate {m}", + " -10, !- Vertex 1 Y-coordinate {m}", + " 3.048, !- Vertex 1 Z-coordinate {m}", + " 0, !- Vertex 2 X-coordinate {m}", + " -10, !- Vertex 2 Y-coordinate {m}", + " 0, !- Vertex 2 Z-coordinate {m}", + " 10, !- Vertex 3 X-coordinate {m}", + " -10, !- Vertex 3 Y-coordinate {m}", + " 0, !- Vertex 3 Z-coordinate {m}", + " 10, !- Vertex 4 X-coordinate {m}", + " -10, !- Vertex 4 Y-coordinate {m}", + " 3.048; !- Vertex 4 Z-coordinate {m}", + + " BuildingSurface:Detailed,", + " Surface 5, !- Name", + " Wall, !- Surface Type", + " ExtWall Mass ClimateZone 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 0, !- Vertex 1 X-coordinate {m}", + " 0, !- Vertex 1 Y-coordinate {m}", + " 3.048, !- Vertex 1 Z-coordinate {m}", + " 0, !- Vertex 2 X-coordinate {m}", + " 0, !- Vertex 2 Y-coordinate {m}", + " 0, !- Vertex 2 Z-coordinate {m}", + " 0, !- Vertex 3 X-coordinate {m}", + " -10, !- Vertex 3 Y-coordinate {m}", + " 0, !- Vertex 3 Z-coordinate {m}", + " 0, !- Vertex 4 X-coordinate {m}", + " -10, !- Vertex 4 Y-coordinate {m}", + " 3.048; !- Vertex 4 Z-coordinate {m}", + + " BuildingSurface:Detailed,", + " Surface 6, !- Name", + " Roof, !- Surface Type", + " ExtRoof IEAD ClimateZone 1, !- Construction Name", + " Zone 1, !- Zone Name", + " , !- Space Name", + " Outdoors, !- Outside Boundary Condition", + " , !- Outside Boundary Condition Object", + " SunExposed, !- Sun Exposure", + " WindExposed, !- Wind Exposure", + " , !- View Factor to Ground", + " , !- Number of Vertices", + " 10, !- Vertex 1 X-coordinate {m}", + " -10, !- Vertex 1 Y-coordinate {m}", + " 3.048, !- Vertex 1 Z-coordinate {m}", + " 10, !- Vertex 2 X-coordinate {m}", + " 0, !- Vertex 2 Y-coordinate {m}", + " 3.048, !- Vertex 2 Z-coordinate {m}", + " 0, !- Vertex 3 X-coordinate {m}", + " 0, !- Vertex 3 Y-coordinate {m}", + " 3.048, !- Vertex 3 Z-coordinate {m}", + " 0, !- Vertex 4 X-coordinate {m}", + " -10, !- Vertex 4 Y-coordinate {m}", + " 3.048; !- Vertex 4 Z-coordinate {m}", + + " !- =========== ALL OBJECTS IN CLASS: AIRCONDITIONER:VARIABLEREFRIGERANTFLOW ===========", + + "AirConditioner:VariableRefrigerantFlow,", + " VRF Heat Pump, !- Heat Pump Name", + " , !- Availability Schedule Name", + " 4907.9703208490319, !- Gross Rated Total Cooling Capacity {W}", + " 3.2917, !- Gross Rated Cooling COP {W/W}", + " -5, !- Minimum Outdoor Temperature in Cooling Mode {C}", + " 43, !- Maximum Outdoor Temperature in Cooling Mode {C}", + " VRFCoolCapFT, !- Cooling Capacity Ratio Modifier Function of Low Temperature Curve Name", + " VRFCoolCapFTBoundary, !- Cooling Capacity Ratio Boundary Curve Name", + " VRFCoolCapFTHi, !- Cooling Capacity Ratio Modifier Function of High Temperature Curve Name", + " VRFCoolEIRFT, !- Cooling Energy Input Ratio Modifier Function of Low Temperature Curve Name", + " VRFCoolEIRFTBoundary, !- Cooling Energy Input Ratio Boundary Curve Name", + " VRFCoolEIRFTHi, !- Cooling Energy Input Ratio Modifier Function of High Temperature Curve Name", + " CoolingEIRLowPLR, !- Cooling Energy Input Ratio Modifier Function of Low Part-Load Ratio Curve Name", + " CoolingEIRHiPLR, !- Cooling Energy Input Ratio Modifier Function of High Part-Load Ratio Curve Name", + " CoolingCombRatio, !- Cooling Combination Ratio Correction Factor Curve Name", + " VRFCPLFFPLR, !- Cooling Part-Load Fraction Correlation Curve Name", + " 4907.9703208490319, !- Gross Rated Heating Capacity {W}", + " , !- Rated Heating Capacity Sizing Ratio {W/W}", + " 3.5484, !- Gross Rated Heating COP {W/W}", + " -20, !- Minimum Outdoor Temperature in Heating Mode {C}", + " 20, !- Maximum Outdoor Temperature in Heating Mode {C}", + " VRFHeatCapFT, !- Heating Capacity Ratio Modifier Function of Low Temperature Curve Name", + " VRFHeatCapFTBoundary, !- Heating Capacity Ratio Boundary Curve Name", + " VRFHeatCapFTHi, !- Heating Capacity Ratio Modifier Function of High Temperature Curve Name", + " VRFHeatEIRFT, !- Heating Energy Input Ratio Modifier Function of Low Temperature Curve Name", + " VRFHeatEIRFTBoundary, !- Heating Energy Input Ratio Boundary Curve Name", + " VRFHeatEIRFTHi, !- Heating Energy Input Ratio Modifier Function of High Temperature Curve Name", + " WetBulbTemperature, !- Heating Performance Curve Outdoor Temperature Type", + " HeatingEIRLowPLR, !- Heating Energy Input Ratio Modifier Function of Low Part-Load Ratio Curve Name", + " HeatingEIRHiPLR, !- Heating Energy Input Ratio Modifier Function of High Part-Load Ratio Curve Name", + " HeatingCombRatio, !- Heating Combination Ratio Correction Factor Curve Name", + " VRFCPLFFPLR, !- Heating Part-Load Fraction Correlation Curve Name", + " 0.25, !- Minimum Heat Pump Part-Load Ratio {dimensionless}", + " SPACE1-1, !- Zone Name for Master Thermostat Location", + " LoadPriority, !- Master Thermostat Priority Control Type", + " , !- Thermostat Priority Schedule Name", + " VRF Heat Pump TU List, !- Zone Terminal Unit List Name", + " No, !- Heat Pump Waste Heat Recovery", + " 30, !- Equivalent Piping Length used for Piping Correction Factor in Cooling Mode {m}", + " 10, !- Vertical Height used for Piping Correction Factor {m}", + " CoolingLengthCorrectionFactor, !- Piping Correction Factor for Length in Cooling Mode Curve Name", + " -0.000386, !- Piping Correction Factor for Height in Cooling Mode Coefficient {1/m}", + " 30, !- Equivalent Piping Length used for Piping Correction Factor in Heating Mode {m}", + " , !- Piping Correction Factor for Length in Heating Mode Curve Name", + " , !- Piping Correction Factor for Height in Heating Mode Coefficient {1/m}", + " 15, !- Crankcase Heater Power per Compressor {W}", + " 3, !- Number of Compressors {dimensionless}", + " 0.33, !- Ratio of Compressor Size to Total Compressor Capacity {W/W}", + " 7, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater {C}", + " ReverseCycle, !- Defrost Strategy", + " Timed, !- Defrost Control", + " DefrostEIRSched, !- Defrost Energy Input Ratio Modifier Function of Temperature Curve Name", + " , !- Defrost Time Period Fraction {dimensionless}", + " 0.0, !- Resistive Defrost Heater Capacity {W}", + " 7, !- Maximum Outdoor Dry-bulb Temperature for Defrost Operation {C}", + " AirCooled, !- Condenser Type", + " VRFOUInletNode, !- Condenser Inlet Node Name", + " , !- Condenser Outlet Node Name", + " , !- Water Condenser Volume Flow Rate {m3/s}", + " , !- Evaporative Condenser Effectiveness {dimensionless}", + " , !- Evaporative Condenser Air Flow Rate {m3/s}", + " 0, !- Evaporative Condenser Pump Rated Power Consumption {W}", + " , !- Supply Water Storage Tank Name", + " 0, !- Basin Heater Capacity {W/K}", + " , !- Basin Heater Setpoint Temperature {C}", + " , !- Basin Heater Operating Schedule Name", + " Electricity; !- Fuel Type", + " ", + "Curve:Biquadratic,", + " VRFCoolCapFT, !- Name", + " 0.576882692, !- Coefficient1 Constant", + " 0.017447952, !- Coefficient2 x", + " 0.000583269, !- Coefficient3 x**2", + " -1.76324E-06, !- Coefficient4 y", + " -7.474E-09, !- Coefficient5 y**2", + " -1.30413E-07, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " -5, !- Minimum Value of y", + " 23, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " VRFCoolCapFTBoundary, !- Name", + " 25.73473775, !- Coefficient1 Constant", + " -0.03150043, !- Coefficient2 x", + " -0.01416595, !- Coefficient3 x**2", + " 0, !- Coefficient4 x**3", + " 11, !- Minimum Value of x", + " 30, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFCoolCapFTHi, !- Name", + " 0.6867358, !- Coefficient1 Constant", + " 0.0207631, !- Coefficient2 x", + " 0.0005447, !- Coefficient3 x**2", + " -0.0016218, !- Coefficient4 y", + " -4.259E-07, !- Coefficient5 y**2", + " -0.0003392, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " 16, !- Minimum Value of y", + " 43, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFCoolEIRFT, !- Name", + " 0.989010541, !- Coefficient1 Constant", + " -0.02347967, !- Coefficient2 x", + " 0.000199711, !- Coefficient3 x**2", + " 0.005968336, !- Coefficient4 y", + " -1.0289E-07, !- Coefficient5 y**2", + " -0.00015686, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " -5, !- Minimum Value of y", + " 23, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " VRFCoolEIRFTBoundary, !- Name", + " 25.73473775, !- Coefficient1 Constant", + " -0.03150043, !- Coefficient2 x", + " -0.01416595, !- Coefficient3 x**2", + " 0, !- Coefficient4 x**3", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFCoolEIRFTHi, !- Name", + " 0.14351470, !- Coefficient1 Constant", + " 0.01860035, !- Coefficient2 x", + " -0.0003954, !- Coefficient3 x**2", + " 0.02485219, !- Coefficient4 y", + " 0.00016329, !- Coefficient5 y**2", + " -0.0006244, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " 16, !- Minimum Value of y", + " 43, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " CoolingEIRLowPLR, !- Name", + " 0.4628123, !- Coefficient1 Constant", + " -1.0402406, !- Coefficient2 x", + " 2.17490997, !- Coefficient3 x**2", + " -0.5974817, !- Coefficient4 x**3", + " 0, !- Minimum Value of x", + " 1, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature; !- Output Unit Type", + " ", + "Curve:Quadratic,", + " CoolingEIRHiPLR, !- Name", + " 1.0, !- Coefficient1 Constant", + " 0.0, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 1.0, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Linear,", + " CoolingCombRatio, !- Name", + " 0.618055, !- Coefficient1 Constant", + " 0.381945, !- Coefficient2 x", + " 1.0, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " 1.0, !- Minimum Curve Output", + " 1.2, !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "CURVE:QUADRATIC,", + " VRFCPLFFPLR, !- Name", + " 0.85, !- Coefficient1 Constant", + " 0.15, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 0.0, !- Minimum Value of x", + " 1.0, !- Maximum Value of x", + " 0.85, !- Minimum Curve Output", + " 1.0, !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFHeatCapFT, !- Name", + " 1.014599599, !- Coefficient1 Constant", + " -0.002506703, !- Coefficient2 x", + " -0.000141599, !- Coefficient3 x**2", + " 0.026931595, !- Coefficient4 y", + " 1.83538E-06, !- Coefficient5 y**2", + " -0.000358147, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " -20, !- Minimum Value of y", + " 15, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " VRFHeatCapFTBoundary, !- Name", + " -7.6000882, !- Coefficient1 Constant", + " 3.05090016, !- Coefficient2 x", + " -0.1162844, !- Coefficient3 x**2", + " 0.0, !- Coefficient4 x**3", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFHeatCapFTHi, !- Name", + " 1.161134821, !- Coefficient1 Constant", + " 0.027478868, !- Coefficient2 x", + " -0.00168795, !- Coefficient3 x**2", + " 0.001783378, !- Coefficient4 y", + " 2.03208E-06, !- Coefficient5 y**2", + " -6.8969E-05, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " -10, !- Minimum Value of y", + " 15, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFHeatEIRFT, !- Name", + " 0.87465501, !- Coefficient1 Constant", + " -0.01319754, !- Coefficient2 x", + " 0.00110307, !- Coefficient3 x**2", + " -0.0133118, !- Coefficient4 y", + " 0.00089017, !- Coefficient5 y**2", + " -0.00012766, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " -20, !- Minimum Value of y", + " 12, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " VRFHeatEIRFTBoundary, !- Name", + " -7.6000882, !- Coefficient1 Constant", + " 3.05090016, !- Coefficient2 x", + " -0.1162844, !- Coefficient3 x**2", + " 0.0, !- Coefficient4 x**3", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " -20, !- Minimum Curve Output", + " 15, !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " VRFHeatEIRFTHi, !- Name", + " 2.504005146, !- Coefficient1 Constant", + " -0.05736767, !- Coefficient2 x", + " 4.07336E-05, !- Coefficient3 x**2", + " -0.12959669, !- Coefficient4 y", + " 0.00135839, !- Coefficient5 y**2", + " 0.00317047, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 27, !- Maximum Value of x", + " -10, !- Minimum Value of y", + " 15, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " HeatingEIRLowPLR, !- Name", + " 0.1400093, !- Coefficient1 Constant", + " 0.6415002, !- Coefficient2 x", + " 0.1339047, !- Coefficient3 x**2", + " 0.0845859, !- Coefficient4 x**3", + " 0, !- Minimum Value of x", + " 1, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Quadratic,", + " HeatingEIRHiPLR, !- Name", + " 2.4294355, !- Coefficient1 Constant", + " -2.235887, !- Coefficient2 x", + " 0.8064516, !- Coefficient3 x**2", + " 1.0, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Linear,", + " HeatingCombRatio, !- Name", + " 0.96034, !- Coefficient1 Constant", + " 0.03966, !- Coefficient2 x", + " 1.0, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " 1.0, !- Minimum Curve Output", + " 1.023, !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Biquadratic,", + " CoolingLengthCorrectionFactor, !- Name", + " 1.0693794, !- Coefficient1 Constant", + " -0.0014951, !- Coefficient2 x", + " 2.56E-06, !- Coefficient3 x**2", + " -0.1151104, !- Coefficient4 y", + " 0.0511169, !- Coefficient5 y**2", + " -0.0004369, !- Coefficient6 x*y", + " 8, !- Minimum Value of x", + " 175, !- Maximum Value of x", + " 0.5, !- Minimum Value of y", + " 1.5, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Cubic,", + " VRFTUCoolCapFT, !- Name", + " 0.504547273506488, !- Coefficient1 Constant", + " 0.0288891279198444, !- Coefficient2 x", + " -0.000010819418650677, !- Coefficient3 x**2", + " 0.0000101359395177008, !- Coefficient4 x**3", + " 0.0, !- Minimum Value of x", + " 50.0, !- Maximum Value of x", + " 0.5, !- Minimum Curve Output", + " 1.5, !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + " ", + "Curve:Quadratic,", + " VRFACCoolCapFFF, !- Name", + " 0.8, !- Coefficient1 Constant", + " 0.2, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 0.5, !- Minimum Value of x", + " 1.5; !- Maximum Value of x", + " ", + "Curve:Cubic,", + " VRFTUHeatCapFT, !- Name", + " -0.390708928227928, !- Coefficient1 Constant", + " 0.261815023760162, !- Coefficient2 x", + " -0.0130431603151873, !- Coefficient3 x**2", + " 0.000178131745997821, !- Coefficient4 x**3", + " 0.0, !- Minimum Value of x", + " 50.0, !- Maximum Value of x", + " 0.5, !- Minimum Curve Output", + " 1.5, !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + "Curve:Biquadratic,", + " DefrostEIRSched, !- Name", + " 1.0, !- Coefficient1 Constant", + " 0.0, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 0.0, !- Coefficient4 y", + " 0.0, !- Coefficient5 y**2", + " 0.0, !- Coefficient6 x*y", + " 15, !- Minimum Value of x", + " 24, !- Maximum Value of x", + " -5, !- Minimum Value of y", + " 23, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + " ", + " !- =========== ALL OBJECTS IN CLASS: ZONETERMINALUNITLIST ===========", + + " ZoneTerminalUnitList,", + " VRF Heat Pump TU List, !- Zone Terminal Unit List Name", + " TU1; !- Zone Terminal Unit Name 5", + + " !- =========== ALL OBJECTS IN CLASS: ZoneHVAC:TerminalUnit:VariableRefrigerantFlow ===========", + + " ZoneHVAC:TerminalUnit:VariableRefrigerantFlow,", + " TU1, !- Zone Terminal Unit Name", + " , !- Terminal Unit Availability Schedule", + " TU1 Inlet Node, !- Terminal Unit Air Inlet Node Name", + " TU1 Outlet Node, !- Terminal Unit Air Outlet Node Name", + " 0.28855165735247507, !- Cooling Supply Air Flow Rate {m3/s}", + " 0.0, !- No Cooling Supply Air Flow Rate {m3/s}", + " 0.28855165735247507, !- Heating Supply Air Flow Rate {m3/s}", + " 0.14427582867623753, !- No Heating Supply Air Flow Rate {m3/s}", + " 0.0508, !- Cooling Outdoor Air Flow Rate {m3/s}", + " 0.0508, !- Heating Outdoor Air Flow Rate {m3/s}", + " 0.0508, !- No Load Outdoor Air Flow Rate {m3/s}", + " VRFFanScheduleCycle, !- Supply Air Fan Operating Mode Schedule Name", + " drawthrough, !- Supply Air Fan Placement", + " Fan:SystemModel, !- Supply Air Fan Object Type", + " TU1 VRF Supply Fan, !- Supply Air Fan Object Name", + " OutdoorAir:Mixer, !- Outside Air Mixer Object Type", + " TU1 OA Mixer, !- Outside Air Mixer Object Name", + " Coil:Cooling:DX:VariableRefrigerantFlow, !- Cooling Coil Object Type", + " TU1 VRF DX Cooling Coil, !- Cooling Coil Object Name", + " COIL:HEATING:DX:VARIABLEREFRIGERANTFLOW, !- Heating Coil Object Type", + " TU1 VRF DX Heating Coil, !- Heating Coil Object Name", + " 30, !- Zone Terminal Unit On Parasitic Electric Energy Use {W}", + " 20; !- Zone Terminal Unit Off Parasitic Electric Energy Use {W}", + + " Schedule:Compact,", + " VRFFanScheduleCycle, !- Name", + " Any Number, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: AllDays, !- Field 2", + " Until: 24:00,1; !- Field 3", + + " OutdoorAir:Mixer,", + " TU1 OA Mixer, !- Name", + " TU1 VRF DX CCoil Inlet Node, !- Mixed Air Node Name", + " Outside Air Inlet Node 1,!- Outdoor Air Stream Node Name", + " Relief Air Outlet Node 1,!- Relief Air Stream Node Name", + " TU1 Inlet Node; !- Return Air Stream Node Name", + + " Fan:SystemModel,", + " TU1 VRF Supply Fan, !- Name", + " , !- Availability Schedule Name", + " TU1 VRF DX HCoil Outlet Node, !- Air Inlet Node Name", + " TU1 Outlet Node, !- Air Outlet Node Name", + " 0.28855165735247507, !- Design Maximum Air Flow Rate {m3/s}", + " Discrete, !- Speed Control Method", + " 1.0, !- Electric Power Minimum Flow Rate Fraction", + " 100.0, !- Design Pressure Rise {Pa}", + " 0.9, !- Motor Efficiency", + " 1, !- Motor In Air Stream Fraction", + " 35.315158, !- Design Electric Power Consumption {W}", + " TotalEfficiencyAndPressure, !- Design Power Sizing Method", + " , !- Electric Power Per Unit Flow Rate {W/(m3/s)}", + " , !- Electric Power Per Unit Flow Rate Per Unit Pressure {W/((m3/s)-Pa)}", + " 0.70, !- Fan Total Efficiency", + " , !- Electric Power Function of Flow Fraction Curve Name", + " , !- Night Ventilation Mode Pressure Rise {Pa}", + " , !- Night Ventilation Mode Flow Fraction", + " , !- Motor Loss Zone Name", + " , !- Motor Loss Radiative Fraction", + " General, !- End-Use Subcategory", + " 2, !- Number of Speeds", + " 0.5, !- Speed 1 Flow Fraction", + " 0.5, !- Speed 1 Electric Power Fraction", + " 1, !- Speed 2 Flow Fraction", + " 1; !- Speed 2 Electric Power Fraction", + + " !- =========== ALL OBJECTS IN CLASS: COIL:COOLING:DX:VARIABLEREFRIGERANTFLOW:FLUIDTEMPERATURECONTROL ===========", + + "COIL:Cooling:DX:VariableRefrigerantFlow,", + " TU1 VRF DX Cooling Coil, !- Name", + " , !- Availability Schedule Name", + " 4907.970302085, !- Gross Rated Total Cooling Capacity {W}", + " 0.8008109222, !- Gross Rated Sensible Heat Ratio", + " 0.28855165735247507, !- Rated Air Flow Rate {m3/s}", + " VRFTUCoolCapFT, !- Cooling Capacity Ratio Modifier Function of Temperature Curve Name", + " VRFACCoolCapFFF, !- Cooling Capacity Modifier Curve Function of Flow Fraction Name", + " TU1 VRF DX CCoil Inlet Node, !- Coil Air Inlet Node", + " TU1 VRF DX CCoil Outlet Node, !- Coil Air Outlet Node", + " ; !- Name of Water Storage Tank for Condensate Collection", + " !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:DX:VARIABLEREFRIGERANTFLOW ===========", + + "COIL:Heating:DX:VariableRefrigerantFlow,", + " TU1 VRF DX Heating Coil, !- Name", + " , !- Availability Schedule", + " 4907.970302085, !- Gross Rated Heating Capacity {W}", + " 0.28855165735247507, !- Rated Air Flow Rate {m3/s}", + " TU1 VRF DX CCoil Outlet Node, !- Coil Air Inlet Node", + " TU1 VRF DX HCoil Outlet Node, !- Coil Air Outlet Node", + " VRFTUHeatCapFT, !- Heating Capacity Ratio Modifier Function of Temperature Curve Name", + " VRFACCoolCapFFF; !- Heating Capacity Modifier Function of Flow Fraction Curve Name", + " ", + + " Sizing:Zone,", + " Zone 1, !- Zone or ZoneList Name", + " SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method", + " 13.5, !- 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.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}", + " SZ DSOA SPACE1-1, !- Design Specification Outdoor Air Object Name", + " 0.0, !- Zone Heating Sizing Factor", + " 0.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", + + " DesignSpecification:OutdoorAir,", + " SZ DSOA SPACE1-1, !- Name", + " Sum, !- Outdoor Air Method", + " 0.00472, !- Outdoor Air Flow per Person {m3/s-person}", + " 0.000508, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}", + " 0.0; !- Outdoor Air Flow per Zone {m3/s}", + + " Schedule:Compact,", + " Htg-SetP-Sch, !- Name", + " Temperature, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: AllDays, !- Field 2", + " Until: 24:00,21.1; !- Field 27", + + " Schedule:Compact,", + " Clg-SetP-Sch, !- Name", + " Temperature, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: AllDays, !- Field 2", + " Until: 24:00,23.9; !- Field 3", + + " Schedule:Compact,", + " Zone Control Type Sched, !- Name", + " Control Type, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: SummerDesignDay, !- Field 2", + " Until: 24:00,4, !- Field 3", + " For: WinterDesignDay, !- Field 5", + " Until: 24:00,4, !- Field 6", + " For: AllOtherDays, !- Field 8", + " Until: 24:00,4; !- Field 9", + + " Curve:Biquadratic,", + " VarSpeedCoolCapFT, !- Name", + " 0.476428E+00, !- Coefficient1 Constant", + " 0.401147E-01, !- Coefficient2 x", + " 0.226411E-03, !- Coefficient3 x**2", + " -0.827136E-03, !- Coefficient4 y", + " -0.732240E-05, !- Coefficient5 y**2", + " -0.446278E-03, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + + " Curve:Biquadratic,", + " VarSpeedCoolEIRFT, !- Name", + " 0.632475E+00, !- Coefficient1 Constant", + " -0.121321E-01, !- Coefficient2 x", + " 0.507773E-03, !- Coefficient3 x**2", + " 0.155377E-01, !- Coefficient4 y", + " 0.272840E-03, !- Coefficient5 y**2", + " -0.679201E-03, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + + " Curve:Biquadratic,", + " VarSpeedCoolCapLSFT, !- Name", + " 0.476428E+00, !- Coefficient1 Constant", + " 0.401147E-01, !- Coefficient2 x", + " 0.226411E-03, !- Coefficient3 x**2", + " -0.827136E-03, !- Coefficient4 y", + " -0.732240E-05, !- Coefficient5 y**2", + " -0.446278E-03, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + + " Curve:Biquadratic,", + " VarSpeedCoolEIRLSFT, !- Name", + " 0.774645E+00, !- Coefficient1 Constant", + " -0.343731E-01, !- Coefficient2 x", + " 0.783173E-03, !- Coefficient3 x**2", + " 0.146596E-01, !- Coefficient4 y", + " 0.488851E-03, !- Coefficient5 y**2", + " -0.752036E-03, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- Maximum Value of y", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Temperature, !- Input Unit Type for X", + " Temperature, !- Input Unit Type for Y", + " Dimensionless; !- Output Unit Type", + + " ! same as Doe-2 SDL-C78", + + " Curve:Cubic,", + " PackagedRatedCoolCapFFlow, !- Name", + " 0.47278589, !- Coefficient1 Constant", + " 1.2433415, !- Coefficient2 x", + " -1.0387055, !- Coefficient3 x**2", + " 0.32257813, !- Coefficient4 x**3", + " 0.5, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + + " Curve:Cubic,", + " PackagedRatedCoolEIRFFlow, !- Name", + " 1.0079484, !- Coefficient1 Constant", + " 0.34544129, !- Coefficient2 x", + " -.6922891, !- Coefficient3 x**2", + " 0.33889943, !- Coefficient4 x**3", + " 0.5, !- Minimum Value of x", + " 1.5, !- Maximum Value of x", + " , !- Minimum Curve Output", + " , !- Maximum Curve Output", + " Dimensionless, !- Input Unit Type for X", + " Dimensionless; !- Output Unit Type", + + " Curve:Quadratic,", + " VarSpeedCyclingPLFFPLR, !- Name", + " 0.85, !- Coefficient1 Constant", + " 0.15, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 0.0, !- Minimum Value of x", + " 1.0; !- Maximum Value of x", + + " OutdoorAir:NodeList,", + " OutsideAirInletNodes; !- Node or NodeList Name 1", + + " NodeList,", + " OutsideAirInletNodes, !- Name", + " Outside Air Inlet Node 1,!- Node 1 Name", + " VRFOUInletNode; !- Node 6 Name", + + " NodeList,", + " SPACE1-1 In Nodes, !- Name", + " TU1 Outlet Node; !- Node 1 Name", + + " NodeList,", + " SPACE1-1 Out Nodes, !- Name", + " TU1 Inlet Node; !- Node 1 Name", + + " ZoneHVAC:EquipmentConnections,", + " Zone 1, !- Zone Name", + " SPACE1-1 Eq, !- Zone Conditioning Equipment List Name", + " SPACE1-1 In Nodes, !- Zone Air Inlet Node or NodeList Name", + " SPACE1-1 Out Nodes, !- Zone Air Exhaust Node or NodeList Name", + " SPACE1-1 Node, !- Zone Air Node Name", + " SPACE1-1 Out Node; !- Zone Return Air Node or NodeList Name", + + " ZoneControl:Thermostat,", + " SPACE1-1 Control, !- Name", + " Zone 1, !- Zone or ZoneList Name", + " Zone Control Type Sched, !- Control Type Schedule Name", + " ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type", + " DualSetPoint; !- Control 1 Name", + + " ThermostatSetpoint:SingleHeating,", + " HeatingSetpoint, !- Name", + " Htg-SetP-Sch; !- Setpoint Temperature Schedule Name", + + " ThermostatSetpoint:SingleCooling,", + " CoolingSetpoint, !- Name", + " Clg-SetP-Sch; !- Setpoint Temperature Schedule Name", + + " ThermostatSetpoint:DualSetpoint,", + " DualSetPoint, !- Name", + " Htg-SetP-Sch, !- Heating Setpoint Temperature Schedule Name", + " Clg-SetP-Sch; !- Cooling Setpoint Temperature Schedule Name", + + " ZoneHVAC:EquipmentList,", + " SPACE1-1 Eq, !- Name", + " SequentialLoad, !- Load Distribution Scheme", + " ZoneHVAC:TerminalUnit:VariableRefrigerantFlow, !- Zone Equipment 1 Object Type", + " TU1, !- 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", + + }); + ASSERT_TRUE(process_idf(idf_objects)); + + SimulationManager::ManageSimulation(*state); + + int VRFCond(1); + int ZoneNum(1); + int VRFTUNum(1); + bool FirstHVACIteration(true); + Real64 OnOffAirFlowRatio = 1.0; + Real64 SysOutputProvided = 0.0; + Real64 LatOutputProvided = 0.0; + Real64 QZnReq = 0.0; + + // set to cooling mode + state->dataHVACVarRefFlow->CoolingLoad(VRFCond) = true; + state->dataHVACVarRefFlow->HeatingLoad(VRFCond) = false; + state->dataHVACVarRefFlow->LastModeCooling(VRFCond) = true; + state->dataHVACVarRefFlow->LastModeHeating(VRFCond) = false; + + // test cooling mode fan operation with under capacity + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -5000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -5000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = -5000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -7000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToHeatingSP = -7000.0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataAirLoop->AirLoopInputsFilled = true; + InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); + EXPECT_EQ(QZnReq, -5000.0); + SimVRF(*state, VRFTUNum, FirstHVACIteration, OnOffAirFlowRatio, SysOutputProvided, LatOutputProvided, QZnReq); + EXPECT_LT(QZnReq, SysOutputProvided); // larger cooling load + EXPECT_NEAR(state->dataLoopNodes->Node(state->dataHVACVarRefFlow->VRFTU[0].VRFTUOutletNodeNum).MassFlowRate, + state->dataHVACVarRefFlow->VRFTU[0].CoolMassFlowRate[2], + 0.00001); + EXPECT_EQ(state->dataHVACVarRefFlow->VRFTU[0].SpeedNum, 2); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].SpeedRatio, 1.0, 0.00001); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 1.0, 0.00001); + + // test high speed fan operation with cooling + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -3000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -3000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = -3000.0; + QZnReq = state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired; + InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); + EXPECT_EQ(QZnReq, -3000.0); + SimVRF(*state, VRFTUNum, FirstHVACIteration, OnOffAirFlowRatio, SysOutputProvided, LatOutputProvided, QZnReq); + EXPECT_NEAR( + state->dataLoopNodes->Node(state->dataHVACVarRefFlow->VRFTU[0].VRFTUOutletNodeNum).MassFlowRate, 0.29929035, 0.0001); // was 0.29937661 + EXPECT_LT(abs(QZnReq - SysOutputProvided), 1.0); + EXPECT_EQ(state->dataHVACVarRefFlow->VRFTU[0].SpeedNum, 2); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].SpeedRatio, 0.72475641, 0.00001); // was 0.7252535 + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 1.0, 0.00001); + + // test low speed fan operation with cooling + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -1500.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -1500.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = -1500.0; + QZnReq = state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired; + InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); + EXPECT_EQ(QZnReq, -1500.0); + SimVRF(*state, VRFTUNum, FirstHVACIteration, OnOffAirFlowRatio, SysOutputProvided, LatOutputProvided, QZnReq); + EXPECT_NEAR(state->dataLoopNodes->Node(state->dataHVACVarRefFlow->VRFTU[0].VRFTUOutletNodeNum).MassFlowRate, 0.1735261, 0.0001); + EXPECT_LT(abs(QZnReq - SysOutputProvided), 1.0); + EXPECT_EQ(state->dataHVACVarRefFlow->VRFTU[0].SpeedNum, 1); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].SpeedRatio, 0.0, 0.00001); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 0.626128377, 0.00001); // was 0.626862007 + + // set to heating mode + state->dataHVACVarRefFlow->CoolingLoad(VRFCond) = false; + state->dataHVACVarRefFlow->HeatingLoad(VRFCond) = true; + state->dataHVACVarRefFlow->LastModeCooling(VRFCond) = false; + state->dataHVACVarRefFlow->LastModeHeating(VRFCond) = true; + state->dataLoopNodes->Node(1).Temp = 10.0; + // test high speed fan operation with heating + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = 4200.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = 4200.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToHeatingSP = 4200.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = 1500.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = 1500.0; + QZnReq = state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired; + InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); + EXPECT_EQ(QZnReq, 4200.0); + SimVRF(*state, VRFTUNum, FirstHVACIteration, OnOffAirFlowRatio, SysOutputProvided, LatOutputProvided, QZnReq); + EXPECT_NEAR( + state->dataLoopNodes->Node(state->dataHVACVarRefFlow->VRFTU[0].VRFTUOutletNodeNum).MassFlowRate, 0.3465238, 0.0001); // was 0.346284919 + EXPECT_LT(abs(QZnReq - SysOutputProvided), 1.0); + EXPECT_EQ(state->dataHVACVarRefFlow->VRFTU[0].SpeedNum, 2); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].SpeedRatio, 0.996999648, 0.00001); // was 0.995577651 + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 1.0, 0.00001); + + // test low speed fan operation with heating + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = 3000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = 3000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToHeatingSP = 3000.0; + QZnReq = state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired; + InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); + EXPECT_EQ(QZnReq, 3000.0); + SimVRF(*state, VRFTUNum, FirstHVACIteration, OnOffAirFlowRatio, SysOutputProvided, LatOutputProvided, QZnReq); + EXPECT_NEAR(state->dataLoopNodes->Node(state->dataHVACVarRefFlow->VRFTU[0].VRFTUOutletNodeNum).MassFlowRate, 0.17352615, 0.0001); + EXPECT_LT(abs(QZnReq - SysOutputProvided), 1.0); + EXPECT_EQ(state->dataHVACVarRefFlow->VRFTU[0].SpeedNum, 1); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].SpeedRatio, 0.0, 0.00001); + EXPECT_NEAR(state->dataHVACVarRefFlow->VRFTU[0].CycRatio, 0.713941198, 0.00001); // was 0.713222413 +} + TEST_F(EnergyPlusFixture, VRFTest_TU_HeatRecoveryCheck) { // Test for #10514