Line data Source code
1 : // EnergyPlus, Copyright (c) 1996-2024, The Board of Trustees of the University of Illinois,
2 : // The Regents of the University of California, through Lawrence Berkeley National Laboratory
3 : // (subject to receipt of any required approvals from the U.S. Dept. of Energy), Oak Ridge
4 : // National Laboratory, managed by UT-Battelle, Alliance for Sustainable Energy, LLC, and other
5 : // contributors. All rights reserved.
6 : //
7 : // NOTICE: This Software was developed under funding from the U.S. Department of Energy and the
8 : // U.S. Government consequently retains certain rights. As such, the U.S. Government has been
9 : // granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable,
10 : // worldwide license in the Software to reproduce, distribute copies to the public, prepare
11 : // derivative works, and perform publicly and display publicly, and to permit others to do so.
12 : //
13 : // Redistribution and use in source and binary forms, with or without modification, are permitted
14 : // provided that the following conditions are met:
15 : //
16 : // (1) Redistributions of source code must retain the above copyright notice, this list of
17 : // conditions and the following disclaimer.
18 : //
19 : // (2) Redistributions in binary form must reproduce the above copyright notice, this list of
20 : // conditions and the following disclaimer in the documentation and/or other materials
21 : // provided with the distribution.
22 : //
23 : // (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory,
24 : // the University of Illinois, U.S. Dept. of Energy nor the names of its contributors may be
25 : // used to endorse or promote products derived from this software without specific prior
26 : // written permission.
27 : //
28 : // (4) Use of EnergyPlus(TM) Name. If Licensee (i) distributes the software in stand-alone form
29 : // without changes from the version obtained under this License, or (ii) Licensee makes a
30 : // reference solely to the software portion of its product, Licensee must refer to the
31 : // software as "EnergyPlus version X" software, where "X" is the version number Licensee
32 : // obtained under this License and may not use a different name for the software. Except as
33 : // specifically required in this Section (4), Licensee shall not use in a company name, a
34 : // product name, in advertising, publicity, or other promotional activities any name, trade
35 : // name, trademark, logo, or other designation of "EnergyPlus", "E+", "e+" or confusingly
36 : // similar designation, without the U.S. Department of Energy's prior written consent.
37 : //
38 : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
39 : // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
40 : // AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
41 : // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
42 : // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
43 : // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
44 : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
45 : // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
46 : // POSSIBILITY OF SUCH DAMAGE.
47 :
48 : #ifndef DXCoils_hh_INCLUDED
49 : #define DXCoils_hh_INCLUDED
50 :
51 : // ObjexxFCL Headers
52 : #include <ObjexxFCL/Array1D.hh>
53 : #include <ObjexxFCL/Optional.hh>
54 :
55 : // EnergyPlus Headers
56 : #include <EnergyPlus/Data/BaseData.hh>
57 : #include <EnergyPlus/DataEnvironment.hh>
58 : #include <EnergyPlus/DataGlobalConstants.hh>
59 : #include <EnergyPlus/DataGlobals.hh>
60 : #include <EnergyPlus/DataHVACGlobals.hh>
61 : #include <EnergyPlus/DataHeatBalance.hh>
62 : #include <EnergyPlus/EnergyPlus.hh>
63 : #include <EnergyPlus/StandardRatings.hh>
64 : #include <EnergyPlus/UtilityRoutines.hh>
65 :
66 : namespace EnergyPlus {
67 :
68 : // Forward declarations
69 : struct EnergyPlusData;
70 :
71 : namespace DXCoils {
72 :
73 : // Using/Aliasing
74 : constexpr Real64 RatedInletAirTemp(26.6667); // 26.6667C or 80F
75 : constexpr Real64 RatedInletWetBulbTemp(19.4444); // 19.44 or 67F
76 : constexpr Real64 RatedInletAirHumRat(0.0111847); // Humidity ratio corresponding to 80F dry bulb/67F wet bulb
77 : constexpr Real64 RatedOutdoorAirTemp(35.0); // 35 C or 95F
78 : constexpr Real64 RatedInletAirTempHeat(21.1111); // 21.11C or 70F
79 : constexpr Real64 RatedOutdoorAirTempHeat(8.3333); // 8.33 C or 47F
80 : constexpr Real64 RatedOutdoorWetBulbTempHeat(6.1111); // 6.11 C or 43F
81 : constexpr Real64 RatedInletWetBulbTempHeat(15.5556); // 15.55 or 60F
82 : constexpr Real64 DryCoilOutletHumRatioMin(0.00001); // dry coil outlet minimum hum ratio kgWater/kgDryAir
83 :
84 : // Multimode DX Coil
85 : constexpr int MaxCapacityStages(2); // Maximum number of capacity stages supported
86 : constexpr int MaxDehumidModes(1); // Maximum number of enhanced dehumidification modes supported
87 : constexpr int MaxModes(MaxCapacityStages *(MaxDehumidModes + 1)); // Maximum number of performance modes
88 :
89 : // Water Systems
90 : enum class CondensateCollectAction
91 : {
92 : Invalid = -1,
93 : Discard, // default mode where water is "lost"
94 : ToTank, // collect coil condensate from air and store in water storage tank
95 : Num
96 : };
97 :
98 : enum class EvapWaterSupply
99 : {
100 : Invalid = -1,
101 : FromMains,
102 : FromTank,
103 : Num
104 : };
105 :
106 : // Types
107 :
108 : struct DXCoilData
109 : {
110 : // Members
111 : // Some variables in this type are arrays (dimension=MaxModes) to support coil type
112 : // COIL:DX:MultiMode:CoolingEmpirical. Other coil types only use the first element.
113 : std::string Name; // Name of the DX Coil
114 : std::string DXCoilType; // type of coil
115 : int DXCoilType_Num; // Integer equivalent to DXCoilType
116 : std::string Schedule; // WaterCoil Operation Schedule
117 : int SchedPtr; // Pointer to the correct schedule
118 : // RatedCoolCap, RatedSHR and RatedCOP do not include the thermal or electrical
119 : // effects due to the supply air fan
120 : Array1D<Real64> RatedTotCap; // Gross total cooling capacity at rated conditions [watts]
121 : Real64 HeatSizeRatio; // heat pump heating to cooling sizing ratio when autosized
122 : Array1D_bool RatedTotCapEMSOverrideOn; // if true, then EMS is calling to override rated total capacity
123 : Array1D<Real64> RatedTotCapEMSOverrideValue; // value to use for EMS override
124 : Array1D<Real64> RatedSHR; // Sensible heat ratio (sens cap/total cap) at rated conditions
125 : Array1D_bool RatedSHREMSOverrideOn; // if true, then EMS is calling to override Sensible heat ratio
126 : Array1D<Real64> RatedSHREMSOverrideValue; // value to use for EMS override forSensible heat ratio
127 : Array1D<Real64> RatedCOP; // Coefficient of performance at rated conditions
128 : Array1D<Real64> RatedAirVolFlowRate; // Air volume flow rate through coil at rated conditions [m3/s]
129 : // This is adjusted for bypassed air if any (see BypassedFlowFrac)
130 : Array1D_bool RatedAirVolFlowRateEMSOverrideON; // if true, then EMS is calling to override Air volume flow rate
131 : Array1D<Real64> RatedAirVolFlowRateEMSOverrideValue; // value to use for EMS override Air volume flow rate
132 : Array1D<Real64> FanPowerPerEvapAirFlowRate; // Fan Power Per Air volume flow rate through the
133 : // Evaporator coil at rated conditions [W/(m3/s)]
134 : Array1D<Real64> FanPowerPerEvapAirFlowRate_2023;
135 : Array1D<Real64> RatedAirMassFlowRate; // Air mass flow rate through coil at rated conditions [kg/s]
136 : // This is adjusted for bypassed air if any (see BypassedFlowFrac)
137 : Array1D<Real64> BypassedFlowFrac; // Fraction of air flow bypassed around coil
138 : Array1D<Real64> RatedCBF; // rated coil bypass factor, determined using RatedTotCap and RatedSHR
139 : int AirInNode; // Air inlet node number
140 : int AirOutNode; // Air outlet node number
141 : Array1D_int CCapFTemp; // index of total cooling capacity modifier curve
142 : // (function of entering wetbulb, outside drybulb)
143 : int CCapFTempErrorIndex; // Used for warning messages when output of CCapFTemp is negative
144 : Array1D_int CCapFFlow; // index of total cooling capacity modifier curve
145 : // (function of actual supply air flow vs rated air flow)
146 : int CCapFFlowErrorIndex; // Used for warning messages when output of CCapFFlow is negative
147 : Array1D_int EIRFTemp; // index of energy input ratio modifier curve
148 : // (function of entering wetbulb, outside drybulb)
149 : int EIRFTempErrorIndex; // Used for warning messages when output of EIRFTemp is negative
150 : Array1D_int EIRFFlow; // index of energy input ratio modifier curve
151 : // (function of actual supply air flow vs rated air flow)
152 : int EIRFFlowErrorIndex; // Used for warning messages when output of EIRFFlow is negative
153 : Array1D_int PLFFPLR; // index of part-load factor vs part-load ratio curve
154 : bool ReportCoolingCoilCrankcasePower; // logical determines if the cooling coil crankcase heater power is reported
155 : Real64 CrankcaseHeaterCapacity; // total crankcase heater capacity [W]
156 : Real64 CrankcaseHeaterPower; // report variable for average crankcase heater power [W]
157 : Real64 MaxOATCrankcaseHeater; // maximum OAT for crankcase heater operation [C]
158 : int CrankcaseHeaterCapacityCurveIndex; // Crankcase heater power-temperature curve or table index
159 : Real64 CrankcaseHeaterConsumption; // report variable for total crankcase heater energy consumption [J]
160 : Real64 BasinHeaterPowerFTempDiff; // Basin heater capacity per degree C below setpoint (W/C)
161 : Real64 BasinHeaterSetPointTemp; // setpoint temperature for basin heater operation (C)
162 : int CompanionUpstreamDXCoil; // index number of the DX coil that is "upstream" of this DX coil. Currently used for
163 : // UnitarySystem:HeatPump:AirToAir for proper calculation of crankcase heater energy
164 : // consumption
165 : bool FindCompanionUpStreamCoil; // Flag to get the companion coil in Init.
166 : Array1D_int CondenserInletNodeNum; // Node number of outdoor condenser(s) (actually an evaporator for heating coils)
167 : int LowOutletTempIndex; // used for low outlet temperature warnings
168 : Real64 FullLoadOutAirTempLast; // used for low outlet temperature warnings
169 : Real64 FullLoadInletAirTempLast; // used for low outlet temperature warnings
170 : bool PrintLowOutTempMessage; // used to print warning message for low outlet air dry-bulb conditions
171 : std::string LowOutTempBuffer1; // holds warning message until next iteration (only prints 1 message/iteration)
172 : std::string LowOutTempBuffer2; // holds warning message until next iteration (only prints 1 message/iteration)
173 : int HeatingCoilPLFCurvePTR; // PLF curve index to gas or electric heating coil (used in latent degradation model)
174 : int BasinHeaterSchedulePtr; // Pointer to basin heater schedule
175 : // start of multi-speed compressor variables
176 : Real64 RatedTotCap2; // Gross total cooling capacity at rated conditions, low speed [watts]
177 : // Note: For HPWHs, RatedTotCap2 = Water Heating Capacity for Coil:DX:HPWH and
178 : // RatedTotCap(1) = Air Cooling Coil Capacity for Coil:DX:HPWH
179 : Real64 RatedSHR2; // Sensible heat ratio (sens cap/total cap) at rated conditions, low speed
180 : Real64 RatedCOP2; // Coefficient of performance at rated conditions, low speed
181 : Real64 RatedAirVolFlowRate2; // Air volume flow rate through unit at rated conditions, low speed [m3/s]
182 :
183 : Array1D<Real64> FanPowerPerEvapAirFlowRate_LowSpeed; // Fan Power Per Air volume flow rate through the
184 : // Evaporator coil at rated conditions [W/(m3/s)], low speed
185 : Array1D<Real64> FanPowerPerEvapAirFlowRate_2023_LowSpeed;
186 :
187 : Real64 RatedAirMassFlowRate2; // Air mass flow rate through unit at rated conditions, low speed [kg/s]
188 : Real64 RatedCBF2; // rated coil bypass factor (low speed), determined using RatedTotCap2 and RatedSHR2
189 : int CCapFTemp2; // index of total cooling capacity modifier curve (low speed)
190 : int EIRFTemp2; // index of energy input ratio modifier curve (low speed)
191 : // (function of entering wetbulb, outside drybulb)
192 : Real64 RatedEIR2; // rated energy input ratio (low speed, inverse of COP2)
193 : Real64 InternalStaticPressureDrop; // for rating VAV system
194 : bool RateWithInternalStaticAndFanObject;
195 : int SupplyFanIndex; // index of this fan in fan array or vector
196 : HVAC::FanType supplyFanType; // type of fan, in DataHVACGlobals
197 : std::string SupplyFanName; // name of fan associated with this dx coil
198 : std::string CoilSystemName;
199 : // end of multi-speed compressor variables
200 : Array1D<Real64> RatedEIR; // rated energy input ratio (inverse of COP)
201 : Real64 InletAirMassFlowRate;
202 : Real64 InletAirMassFlowRateMax;
203 : Real64 InletAirTemp;
204 : Real64 InletAirHumRat;
205 : Real64 InletAirEnthalpy;
206 : // Eventually inlet air conditions will be used in DX Coil, these lines are commented out and marked with this comment line
207 : // REAL(r64) :: InletAirPressure =0.0d0
208 : Real64 OutletAirTemp;
209 : Real64 OutletAirHumRat;
210 : Real64 OutletAirEnthalpy;
211 : Real64 PartLoadRatio; // Ratio of actual sensible cooling load to steady-state sensible cooling capacity
212 : Real64 TotalCoolingEnergy;
213 : Real64 SensCoolingEnergy;
214 : Real64 LatCoolingEnergy;
215 : Real64 TotalCoolingEnergyRate;
216 : Real64 SensCoolingEnergyRate;
217 : Real64 LatCoolingEnergyRate;
218 : Real64 ElecCoolingConsumption;
219 : Real64 ElecCoolingPower;
220 : Real64 CoolingCoilRuntimeFraction; // Run time fraction of the DX cooling unit
221 : // start of variables used in heat pump heating coils only
222 : Real64 TotalHeatingEnergy;
223 : Real64 TotalHeatingEnergyRate;
224 : Real64 ElecHeatingConsumption;
225 : Real64 ElecHeatingPower;
226 : Real64 HeatingCoilRuntimeFraction; // Run time fraction of the DX heating unit
227 : StandardRatings::DefrostStrat DefrostStrategy; // defrost strategy; 1=reverse-cycle, 2=resistive
228 : StandardRatings::HPdefrostControl DefrostControl; // defrost control; 1=timed, 2=on-demand
229 : int EIRFPLR; // index of energy input ratio vs part-load ratio curve
230 : int DefrostEIRFT; // index of defrost mode total cooling capacity for reverse cycle heat pump
231 : int RegionNum; // Region number for calculating HSPF of single speed DX heating coil
232 : Real64 MinOATCompressor; // Minimum OAT for heat pump compressor operation
233 : Real64 OATempCompressorOn; // The outdoor tempearture when the compressor is automatically turned back on,
234 : // if applicable, following automatic shut off. This field is used only for
235 : // HSPF calculation.
236 : Real64 MaxOATCompressor; // Maximum OAT for VRF heat pump compressor operation
237 : Real64 MaxOATDefrost; // Maximum OAT for defrost operation
238 : Real64 DefrostTime; // Defrost time period in hours
239 : Real64 DefrostCapacity; // Resistive defrost to nominal capacity (at 21.11C/8.33C) ratio
240 : Real64 HPCompressorRuntime; // keep track of compressor runtime
241 : Real64 HPCompressorRuntimeLast; // keep track of last time step compressor runtime (if simulation downshifts)
242 : Real64 TimeLeftToDefrost; // keep track of time left to defrost heat pump
243 : Real64 DefrostPower; // power used during defrost
244 : Real64 DefrostConsumption; // energy used during defrost
245 : HVAC::OATType HeatingPerformanceOATType; // Heating performance curve OAT type (1-wetbulb, 2-drybulb)
246 : bool HPCoilIsInCoilSystemHeatingDX;
247 : bool OATempCompressorOnOffBlank;
248 : // end of variables used in heat pump heating coils only
249 : // start of variables for DX cooling coil latent degradation model
250 : Array1D<Real64> Twet_Rated; // Nominal time for condensate to begin leaving the coil's
251 : // condensate drain line (sec)
252 : Array1D<Real64> Gamma_Rated; // Initial moisture evaporation rate divided by steady-state
253 : // AC latent capacity (dimensionless)
254 : Array1D<Real64> MaxONOFFCyclesperHour; // Maximum ON/OFF cycles per hour for the compressor (cycles/hour)
255 : Array1D<Real64> LatentCapacityTimeConstant; // Time constant for latent capacity to reach steady state
256 : // after startup (sec)
257 : // end of variables for DX cooling coil latent degradation model
258 : Array1D<DataHeatBalance::RefrigCondenserType> CondenserType; // Type of condenser for DX cooling coil: AIR COOLED or EVAP COOLED
259 : // start of variables for DX cooling coil evaporative condenser option
260 : bool ReportEvapCondVars; // true if any performance mode includes an evap condenser
261 : Array1D<Real64> EvapCondEffect; // effectiveness of the evaporatively cooled condenser
262 : // [high speed for multi-speed unit] (-)
263 : Real64 CondInletTemp; // Evap condenser inlet temperature [C], report variable
264 : Array1D<Real64> EvapCondAirFlow; // Air flow rate through the evap condenser at high speed,
265 : // for water use calcs [m3/s]
266 : Array1D<Real64> EvapCondPumpElecNomPower; // Nominal power input to the evap condenser water circulation pump
267 : // at high speed [W]
268 : Real64 EvapCondPumpElecPower; // Average power consumed by the evap condenser water circulation pump over
269 : // the time step [W]
270 : Real64 EvapCondPumpElecConsumption; // Electric energy consumed by the evap condenser water circulation pump [J]
271 : Real64 EvapWaterConsumpRate; // Evap condenser water consumption rate [m3/s]
272 : Real64 EvapWaterConsump; // Evap condenser water consumption [m3]
273 : Real64 EvapCondAirFlow2; // Air flow rate through the evap condenser at low speed, for water use calcs [m3/s]
274 : Real64 EvapCondEffect2; // effectiveness of the evaporatively cooled condenser at low speed (-)
275 : Real64 EvapCondPumpElecNomPower2; // Nominal power input to the evap condenser water circulation pump at low speed [W]
276 : Real64 BasinHeaterPower; // Basin heater power (W)
277 : Real64 BasinHeaterConsumption; // Basin heater energy consumption (J)
278 : // end of variables for DX cooling coil evaporative condenser option
279 : // start of variables for Multimode DX cooling coil
280 : int NumCapacityStages; // number of capacity stages, up to MaxCapacityStages for Multimode DX coil,
281 : // always 1 for other coils
282 : int NumDehumidModes; // number of enhanced dehumidification modes, up to MaxDehumidModes for Multimode DX coil,
283 : // always 0 for other coils)
284 : Array1D_string CoilPerformanceType; // Coil Performance object type
285 : Array1D_int CoilPerformanceType_Num; // Coil Performance object type number
286 : Array1D_string CoilPerformanceName; // Coil Performance object names
287 : Real64 CoolingCoilStg2RuntimeFrac; // Run time fraction of stage 2
288 : HVAC::CoilMode DehumidificationMode = HVAC::CoilMode::Invalid; // Dehumidification mode for multimode coil,
289 : // 0=normal, 1+=enhanced dehumidification mode
290 : // end of variables for Multimode DX cooling coil
291 : // start of variables for heat pump water heater DX coil
292 : int WaterInNode; // Condenser water inlet node number for HPWH DX coil
293 : int WaterOutNode; // Condenser water outlet node number for HPWH DX coil
294 : int HCOPFTemp; // COP as a function of temperature curve index
295 : int HCOPFTempErrorIndex; // Used for warning messages when output of HCOPFTemp is negative
296 : int HCOPFAirFlow; // COP as a function of air flow rate ratio curve index
297 : int HCOPFAirFlowErrorIndex; // Used for warning messages when output of HCOPFAirFlow is negative
298 : int HCOPFWaterFlow; // COP as a function of water flow rate ratio curve index
299 : int HCOPFWaterFlowErrorIndex; // Used for warning messages when output of HCOPFWaterFlow is negative
300 : int HCapFTemp; // Heating capacity as a function of temperature curve index
301 : int HCapFTempErrorIndex; // Used for warning messages when output of HCapFTemp is negative
302 : int HCapFAirFlow; // Heating capacity as a function of air flow rate ratio curve index
303 : int HCapFAirFlowErrorIndex; // Used for warning messages when output of HCapFAirFlow is negative
304 : int HCapFWaterFlow; // Heating capacity as a function of water flow rate ratio curve index
305 : int HCapFWaterFlowErrorIndex; // Used for warning messages when output of HCapFWaterFlow is negative
306 : HVAC::OATType InletAirTemperatureType = HVAC::OATType::Invalid; // Specifies to use either air wet-bulb or dry-bulb temp for curve objects
307 : Real64 RatedInletDBTemp; // Rated inlet air dry-bulb temperature [C]
308 : Real64 RatedInletWBTemp; // Rated inlet air wet-bulb temperature [C]
309 : Real64 RatedInletWaterTemp; // Rated condenser water inlet temperature [C]
310 : // REAL(r64) :: CondenserInletWaterTemp = 0.0d0 ! Actual inlet water temperature to condenser of the HPWH DX coil [C]
311 : Real64 HPWHCondPumpElecNomPower; // Nominal power input to the condenser water circulation pump [W]
312 : Real64 HPWHCondPumpFracToWater; // Nominal power fraction to water for the condenser water circulation pump
313 : Real64 RatedHPWHCondWaterFlow; // Rated water flow rate through the condenser of the HPWH DX coil [m3/s]
314 : Real64 ElecWaterHeatingPower; // Total electric power consumed by compressor and condenser pump [W]
315 : Real64 ElecWaterHeatingConsumption; // Total electric consumption by compressor and condenser pump [J]
316 : bool FanPowerIncludedInCOP; // Indicates that fan heat is included in heating capacity and COP
317 : bool CondPumpHeatInCapacity; // Indicates that condenser pump heat is included in heating capacity
318 : bool CondPumpPowerInCOP; // Indicates that condenser pump power is included in heating COP
319 : // end of variables for heat pump water heater DX coil
320 : // Error tracking
321 : Real64 LowTempLast; // low ambient temp entering condenser when warning message occurred
322 : Real64 HighTempLast; // high ambient temp entering condenser when warning message occurred
323 : int ErrIndex1; // index/pointer to recurring error structure for Air volume flow rate per watt of
324 : // rated total cooling capacity error
325 : int ErrIndex2; // index/pointer to recurring error structure for PLF curve values must be >= 0.7. error
326 : int ErrIndex3; // index/pointer to recurring error structure for DX cooling coil runtime fraction > 1.0 warning
327 : int ErrIndex4; // index/pointer to recurring error structure for DX heating coil runtime fraction > 1.0 warning
328 : int LowAmbErrIndex; // index/pointer to recurring error structure for low ambient temp entering condenser
329 : int HighAmbErrIndex; // index/pointer to recurring error structure for high ambient temp entering condenser
330 : int PLFErrIndex; // index/pointer to recurring error structure for PLF <> 1 at speed 1 for a multiple speed coil
331 : int PLRErrIndex; // index/pointer to recurring error structure for PLR < .7
332 : bool PrintLowAmbMessage; // used to print warning message for low ambient conditions
333 : std::string LowAmbBuffer1; // holds warning message until next iteration (only prints 1 message/iteration)
334 : std::string LowAmbBuffer2; // holds warning message until next iteration (only prints 1 message/iteration)
335 : bool PrintHighAmbMessage; // used to print warning message for high ambient conditions
336 : std::string HighAmbBuffer1; // holds warning message until next iteration (only prints 1 message/iteration)
337 : std::string HighAmbBuffer2; // holds warning message until next iteration (only prints 1 message/iteration)
338 : // begin variables for Water System interactions
339 : EvapWaterSupply EvapWaterSupplyMode; // where does water come from
340 : std::string EvapWaterSupplyName; // name of water source e.g. water storage tank
341 : int EvapWaterSupTankID;
342 : int EvapWaterTankDemandARRID;
343 : CondensateCollectAction CondensateCollectMode; // where does water come from
344 : std::string CondensateCollectName; // name of water source e.g. water storage tank
345 : int CondensateTankID;
346 : int CondensateTankSupplyARRID;
347 : Real64 CondensateVdot; // rate of water condensation from air stream [m3/s]
348 : Real64 CondensateVol; // amount of water condensed from air stream [m3]
349 : // end variables for water system interactions
350 : // used to print low ambient warning message for DOE2 coil only after time step has incremented
351 : Real64 CurrentEndTimeLast; // end time of time step for last simulation time step
352 : Real64 TimeStepSysLast; // last system time step (used to check for downshifting)
353 : // for multispeed DX coil type
354 : Constant::eFuel FuelType; // Fuel type number
355 : int NumOfSpeeds; // Number of speeds
356 : bool PLRImpact; // Part load fraction applied to Speed Number > 1
357 : bool LatentImpact; // Latent degradation applied to Speed Number > 1
358 : Array1D_int MSErrIndex; // index flag for num speeds/recurring messages
359 : Array1D<Real64> MSRatedTotCap; // Rated cooling capacity for MS heat pump [W]
360 : Array1D<Real64> MSRatedTotCapDes; // Autosized Gross total cooling capacity at rated conditions [watts]
361 : Array1D<Real64> MSRatedSHR; // Rated SHR for MS heat pump [dimensionless]
362 : Array1D<Real64> MSRatedCOP; // Rated COP for MS heat pump [dimensionless]
363 : Array1D<Real64> MSRatedAirVolFlowRate; // Air volume flow rate through unit at rated conditions [m3/s]
364 : Array1D<Real64> MSRatedAirMassFlowRate; // Air mass flow rate through unit at rated conditions [m3/s]
365 : Array1D<Real64> MSRatedCBF; // rated coil bypass factor
366 : Array1D_int MSCCapFTemp; // index of total cooling capacity modifier curve
367 : Array1D_int MSCCapFFlow; // index of total cooling capacity modifier curve
368 : Array1D_int MSEIRFTemp; // index of energy input ratio modifier curve as a function of temperature
369 : Array1D_int MSEIRFFlow; // index of energy input ratio modifier curve as a function of flow fraction
370 : Array1D_int MSPLFFPLR; // index of part load factor as a function of part load ratio
371 : Array1D_int MSWasteHeat; // index of waste heat as a function of temperature
372 : Array1D<Real64> MSWasteHeatFrac; // Waste heat fraction
373 : Array1D<Real64> MSEvapCondEffect; // effectiveness of the evaporatively cooled condenser
374 : Array1D<Real64> MSEvapCondAirFlow; // Air flow rate through the evap condenser for water use calcs [m3/s]
375 : Array1D<Real64> MSEvapCondPumpElecNomPower; // Nominal power input to the evap condenser
376 : // water circulation pump
377 : Array1D<Real64> MSTwet_Rated; // Nominal time for condensate to begin leaving the coil's
378 : // condensate drain line (sec)
379 : Array1D<Real64> MSGamma_Rated; // Initial moisture evaporation rate divided by steady-state
380 : // AC latent capacity (dimensionless)
381 : Array1D<Real64> MSMaxONOFFCyclesperHour; // Maximum ON/OFF cycles per hour for the compressor (cycles/hour)
382 : Array1D<Real64> MSLatentCapacityTimeConstant; // Time constant for latent capacity to reach steady state
383 : Array1D<Real64> MSFanPowerPerEvapAirFlowRate;
384 : Array1D<Real64> MSFanPowerPerEvapAirFlowRate_2023;
385 : Real64 FuelUsed = 0.0; // Energy used, in addition to electricity [W]
386 : Real64 FuelConsumed = 0.0; // Energy consumed, in addition to electricity [J]
387 : Real64 MSFuelWasteHeat; // Total waste heat [J]
388 : bool MSHPHeatRecActive; // True when entered Heat Rec Vol Flow Rate > 0
389 : int MSHPDesignSpecIndex; // index to MSHPDesignSpecification object used for variable speed coils
390 : // End of multispeed DX coil input
391 : // VRF system variables used for sizing
392 : bool CoolingCoilPresent; // FALSE if coil not present
393 : bool HeatingCoilPresent; // FALSE if coil not present
394 : bool ISHundredPercentDOASDXCoil; // FALSE if coil is regular dx coil
395 : Array1D_int SHRFTemp; // index of sensible heat ratio modifier curve
396 : // (function of entering wetbulb and drybulb)
397 : int SHRFTempErrorIndex; // Used for warning messages when output of SHRFTemp is negative
398 : Array1D_int SHRFFlow; // index of sensible heat ratio modifier curve
399 : // (function of actual supply air flow vs rated air flow)
400 : int SHRFFlowErrorIndex; // Used for warning messages when output of SHRFFlow is negative
401 : int SHRFTemp2; // index of sensible heat ratio modifier curve
402 : // (function of entering wetbulb and drybulb)
403 : int SHRFFlow2; // index of sensible heat ratio modifier curve
404 : // (function of actual supply air flow vs rated air flow)
405 : bool UserSHRCurveExists; // TRUE if user specified SHR modifier curve exists
406 : bool ASHRAE127StdRprt; // TRUE if user wishes to report ASHRAE 127 standard ratings
407 :
408 : int SecZonePtr; // index to the zone where the secondary coil is placed
409 : int SecCoilSHRFT; // index to the secondary coil sensible heat ratio temperature modifier curve
410 : int SecCoilSHRFF; // index to the secondary coil sensible heat ratio flor fraction modifier curve
411 : Real64 SecCoilAirFlow; // secondary coil air flow rate
412 : Real64 SecCoilAirFlowScalingFactor; // secondary coil air flow rate autosize scaling factor
413 : Real64 SecCoilRatedSHR; // secondary coil nominal or rated sensible heat ratio
414 : Real64 SecCoilSHR; // secondary coil current sensible heat ratio
415 : Real64 EvapInletWetBulb; // secondary DX coil inlet wet bulb temperature (zone air node wet bulb temp.)
416 : Real64 SecCoilSensibleHeatGainRate; // secondary zone sensible heat gain rate [W]
417 : Real64 SecCoilTotalHeatRemovalRate; // secondary zone total heat removal rate [W]
418 : Real64 SecCoilSensibleHeatRemovalRate; // secondary zone sensible heat removal rate [W]
419 : Real64 SecCoilLatentHeatRemovalRate; // secondary zone latent heat removal rate [W]
420 : bool IsSecondaryDXCoilInZone; // true means secondary dx coil is zone instead of outside
421 : bool IsDXCoilInZone; // true means dx coil is in zone instead of outside
422 : Real64 CompressorPartLoadRatio; // compressor part load ratio of the primary DX coil
423 : Array1D_int MSSecCoilSHRFT; // index to the multi speed secondary coil sensible heat ratio temperature modifier curve
424 : Array1D_int MSSecCoilSHRFF; // index to the multi speed secondary coil sensible heat ratio flow fraction modifier curve
425 : Array1D<Real64> MSSecCoilAirFlow; // multispeed secondary coil air flow rate
426 : Array1D<Real64> MSSecCoilAirFlowScalingFactor; // multispeed secondary coil air flow rate autosize scaling factor
427 : Array1D<Real64> MSSecCoilRatedSHR; // multispeed secondary coil nominal or rated sensible heat ratio
428 : int MSSpeedNumLS; // current low speed number of multspeed HP
429 : int MSSpeedNumHS; // current high speed number of multspeed HP
430 : Real64 MSSpeedRatio; // current speed ratio of multspeed HP
431 : Real64 MSCycRatio; // current cycling ratio of multspeed HP
432 :
433 : // The following members are for VRF Coils (FluidTCtrl Model)
434 : int VRFIUPtr; // index to the VRF Indoor Unit where the coil is placed
435 : int VRFOUPtr; // index to the VRF Outdoor Unit that the coil serves
436 : Real64 EvaporatingTemp; // indoor unit evaporating temperature [C]
437 : Real64 CondensingTemp; // indoor unit condensing temperature [C]
438 : Real64 C1Te; // VRF Indoor Unit Coefficient 1 to calculate Te,req [--]
439 : Real64 C2Te; // VRF Indoor Unit Coefficient 2 to calculate Te,req [--]
440 : Real64 C3Te; // VRF Indoor Unit Coefficient 3 to calculate Te,req [--]
441 : Real64 C1Tc; // VRF Indoor Unit Coefficient 1 to calculate Tc,req [--]
442 : Real64 C2Tc; // VRF Indoor Unit Coefficient 2 to calculate Tc,req [--]
443 : Real64 C3Tc; // VRF Indoor Unit Coefficient 3 to calculate Tc,req [--]
444 : Real64 SH; // Superheating degrees [C]
445 : Real64 SC; // Subcooling degrees [C]
446 : Real64 ActualSH; // Actual superheating degrees [C]
447 : Real64 ActualSC; // Actual subcooling degrees [C]
448 : Real64 RateBFVRFIUEvap; // VRF Iutdoor Unit Evaporator Rated Bypass Factor
449 : Real64 RateBFVRFIUCond; // VRF Iutdoor Unit Condenser Rated Bypass Factor
450 : int CAPFTErrIndex; // index/pointer to recurring error structure for CAPFT curve value <= 0.0
451 : int EIRFTErrIndex; // index/pointer to recurring error structure for EIRFT curve value <= 0.0
452 : bool reportCoilFinalSizes; // one time report of sizes to coil selection report
453 : Real64 capModFacTotal; // current coil capacity modification factor
454 : int AirLoopNum; // Airloop number
455 :
456 : // Default Constructor
457 247 : DXCoilData()
458 247 : : DXCoilType_Num(0), SchedPtr(0), RatedTotCap(MaxModes, 0.0), HeatSizeRatio(1.0), RatedTotCapEMSOverrideOn(MaxModes, false),
459 247 : RatedTotCapEMSOverrideValue(MaxModes, 0.0), RatedSHR(MaxModes, 0.0), RatedSHREMSOverrideOn(MaxModes, false),
460 247 : RatedSHREMSOverrideValue(MaxModes, 0.0), RatedCOP(MaxModes, 0.0), RatedAirVolFlowRate(MaxModes, 0.0),
461 247 : RatedAirVolFlowRateEMSOverrideON(MaxModes, false), RatedAirVolFlowRateEMSOverrideValue(MaxModes, 0.0),
462 247 : FanPowerPerEvapAirFlowRate(MaxModes, 0.0), FanPowerPerEvapAirFlowRate_2023(MaxModes, 0.0), RatedAirMassFlowRate(MaxModes, 0.0),
463 247 : BypassedFlowFrac(MaxModes, 0.0), RatedCBF(MaxModes, 0.0), AirInNode(0), AirOutNode(0), CCapFTemp(MaxModes, 0), CCapFTempErrorIndex(0),
464 247 : CCapFFlow(MaxModes, 0), CCapFFlowErrorIndex(0), EIRFTemp(MaxModes, 0), EIRFTempErrorIndex(0), EIRFFlow(MaxModes, 0),
465 247 : EIRFFlowErrorIndex(0), PLFFPLR(MaxModes, 0), ReportCoolingCoilCrankcasePower(true), CrankcaseHeaterCapacity(0.0),
466 247 : CrankcaseHeaterPower(0.0), MaxOATCrankcaseHeater(0.0), CrankcaseHeaterCapacityCurveIndex(0), CrankcaseHeaterConsumption(0.0),
467 247 : BasinHeaterPowerFTempDiff(0.0), BasinHeaterSetPointTemp(0.0), CompanionUpstreamDXCoil(0), FindCompanionUpStreamCoil(true),
468 247 : CondenserInletNodeNum(MaxModes, 0), LowOutletTempIndex(0), FullLoadOutAirTempLast(0.0), FullLoadInletAirTempLast(0.0),
469 494 : PrintLowOutTempMessage(false), HeatingCoilPLFCurvePTR(0), BasinHeaterSchedulePtr(0), RatedTotCap2(0.0), RatedSHR2(0.0), RatedCOP2(0.0),
470 247 : RatedAirVolFlowRate2(0.0), FanPowerPerEvapAirFlowRate_LowSpeed(MaxModes, 0.0), FanPowerPerEvapAirFlowRate_2023_LowSpeed(MaxModes, 0.0),
471 247 : RatedAirMassFlowRate2(0.0), RatedCBF2(0.0), CCapFTemp2(0), EIRFTemp2(0), RatedEIR2(0.0), InternalStaticPressureDrop(0.0),
472 247 : RateWithInternalStaticAndFanObject(false), SupplyFanIndex(0), supplyFanType(HVAC::FanType::Invalid), RatedEIR(MaxModes, 0.0),
473 247 : InletAirMassFlowRate(0.0), InletAirMassFlowRateMax(0.0), InletAirTemp(0.0), InletAirHumRat(0.0), InletAirEnthalpy(0.0),
474 247 : OutletAirTemp(0.0), OutletAirHumRat(0.0), OutletAirEnthalpy(0.0), PartLoadRatio(0.0), TotalCoolingEnergy(0.0), SensCoolingEnergy(0.0),
475 247 : LatCoolingEnergy(0.0), TotalCoolingEnergyRate(0.0), SensCoolingEnergyRate(0.0), LatCoolingEnergyRate(0.0), ElecCoolingConsumption(0.0),
476 247 : ElecCoolingPower(0.0), CoolingCoilRuntimeFraction(0.0), TotalHeatingEnergy(0.0), TotalHeatingEnergyRate(0.0),
477 247 : ElecHeatingConsumption(0.0), ElecHeatingPower(0.0), HeatingCoilRuntimeFraction(0.0),
478 247 : DefrostStrategy(StandardRatings::DefrostStrat::Invalid), DefrostControl(StandardRatings::HPdefrostControl::Invalid), EIRFPLR(0),
479 247 : DefrostEIRFT(0), RegionNum(0), MinOATCompressor(0.0), OATempCompressorOn(0.0), MaxOATCompressor(0.0), MaxOATDefrost(0.0),
480 247 : DefrostTime(0.0), DefrostCapacity(0.0), HPCompressorRuntime(0.0), HPCompressorRuntimeLast(0.0), TimeLeftToDefrost(0.0),
481 247 : DefrostPower(0.0), DefrostConsumption(0.0), HeatingPerformanceOATType(HVAC::OATType::DryBulb), HPCoilIsInCoilSystemHeatingDX(false),
482 247 : OATempCompressorOnOffBlank(false), Twet_Rated(MaxModes, 0.0), Gamma_Rated(MaxModes, 0.0), MaxONOFFCyclesperHour(MaxModes, 0.0),
483 247 : LatentCapacityTimeConstant(MaxModes, 0.0), CondenserType(MaxModes, DataHeatBalance::RefrigCondenserType::Air),
484 247 : ReportEvapCondVars(false), EvapCondEffect(MaxModes, 0.0), CondInletTemp(0.0), EvapCondAirFlow(MaxModes, 0.0),
485 247 : EvapCondPumpElecNomPower(MaxModes, 0.0), EvapCondPumpElecPower(0.0), EvapCondPumpElecConsumption(0.0), EvapWaterConsumpRate(0.0),
486 247 : EvapWaterConsump(0.0), EvapCondAirFlow2(0.0), EvapCondEffect2(0.0), EvapCondPumpElecNomPower2(0.0), BasinHeaterPower(0.0),
487 247 : BasinHeaterConsumption(0.0), NumCapacityStages(1), NumDehumidModes(0), CoilPerformanceType(MaxModes),
488 247 : CoilPerformanceType_Num(MaxModes, 0), CoilPerformanceName(MaxModes), CoolingCoilStg2RuntimeFrac(0.0), WaterInNode(0), WaterOutNode(0),
489 247 : HCOPFTemp(0), HCOPFTempErrorIndex(0), HCOPFAirFlow(0), HCOPFAirFlowErrorIndex(0), HCOPFWaterFlow(0), HCOPFWaterFlowErrorIndex(0),
490 247 : HCapFTemp(0), HCapFTempErrorIndex(0), HCapFAirFlow(0), HCapFAirFlowErrorIndex(0), HCapFWaterFlow(0), HCapFWaterFlowErrorIndex(0),
491 247 : RatedInletDBTemp(0.0), RatedInletWBTemp(0.0), RatedInletWaterTemp(0.0), HPWHCondPumpElecNomPower(0.0), HPWHCondPumpFracToWater(0.0),
492 247 : RatedHPWHCondWaterFlow(0.0), ElecWaterHeatingPower(0.0), ElecWaterHeatingConsumption(0.0), FanPowerIncludedInCOP(true),
493 247 : CondPumpHeatInCapacity(false), CondPumpPowerInCOP(false), LowTempLast(0.0), HighTempLast(0.0), ErrIndex1(0), ErrIndex2(0), ErrIndex3(0),
494 247 : ErrIndex4(0), LowAmbErrIndex(0), HighAmbErrIndex(0), PLFErrIndex(0), PLRErrIndex(0), PrintLowAmbMessage(false),
495 741 : PrintHighAmbMessage(false), EvapWaterSupplyMode(EvapWaterSupply::FromMains), EvapWaterSupTankID(0), EvapWaterTankDemandARRID(0),
496 494 : CondensateCollectMode(CondensateCollectAction::Discard), CondensateTankID(0), CondensateTankSupplyARRID(0), CondensateVdot(0.0),
497 247 : CondensateVol(0.0), CurrentEndTimeLast(0.0), TimeStepSysLast(0.0), FuelType(Constant::eFuel::Invalid), NumOfSpeeds(0), PLRImpact(false),
498 494 : LatentImpact(false), MSFuelWasteHeat(0.0), MSHPHeatRecActive(false), MSHPDesignSpecIndex(0), CoolingCoilPresent(true),
499 247 : HeatingCoilPresent(true), ISHundredPercentDOASDXCoil(false), SHRFTemp(MaxModes, 0), SHRFTempErrorIndex(0), SHRFFlow(MaxModes, 0),
500 247 : SHRFFlowErrorIndex(0), SHRFTemp2(0), SHRFFlow2(0), UserSHRCurveExists(false), ASHRAE127StdRprt(false), SecZonePtr(0), SecCoilSHRFT(0),
501 247 : SecCoilSHRFF(0), SecCoilAirFlow(0.0), SecCoilAirFlowScalingFactor(1.0), SecCoilRatedSHR(1.0), SecCoilSHR(1.0), EvapInletWetBulb(0.0),
502 247 : SecCoilSensibleHeatGainRate(0.0), SecCoilTotalHeatRemovalRate(0.0), SecCoilSensibleHeatRemovalRate(0.0),
503 494 : SecCoilLatentHeatRemovalRate(0.0), IsSecondaryDXCoilInZone(false), IsDXCoilInZone(false), CompressorPartLoadRatio(0.0), MSSpeedNumLS(1),
504 247 : MSSpeedNumHS(2), MSSpeedRatio(0.0), MSCycRatio(0.0), VRFIUPtr(0), VRFOUPtr(0), EvaporatingTemp(4.0), CondensingTemp(40.0), C1Te(0.0),
505 247 : C2Te(0.0), C3Te(0.0), C1Tc(0.0), C2Tc(0.0), C3Tc(0.0), SH(0.0), SC(0.0), ActualSH(0.0), ActualSC(0.0), RateBFVRFIUEvap(0.0592),
506 1235 : RateBFVRFIUCond(0.1360), CAPFTErrIndex(0), EIRFTErrIndex(0), reportCoilFinalSizes(true), capModFacTotal(0.0), AirLoopNum(0)
507 : {
508 247 : }
509 : };
510 :
511 : struct PerfModeData
512 : {
513 : // Members
514 : Array1D<std::string> FieldNames;
515 :
516 : // Default Constructor
517 1223 : PerfModeData() : FieldNames()
518 : {
519 1223 : }
520 : };
521 :
522 : struct DXCoilNumericFieldData
523 : {
524 : // Members
525 : Array1D<PerfModeData> PerfMode; // Coil Performance object type
526 :
527 : // Default Constructor
528 247 : DXCoilNumericFieldData() : PerfMode(0)
529 : {
530 247 : }
531 : };
532 :
533 : // Functions
534 :
535 : void SimDXCoil(EnergyPlusData &state,
536 : std::string_view CompName, // name of the fan coil unit
537 : HVAC::CompressorOp const compressorOp, // compressor operation; 1=on, 0=off
538 : bool const FirstHVACIteration, // True when first HVAC iteration
539 : int &CompIndex,
540 : HVAC::FanOp const fanOp, // allows parent object to control fan mode
541 : ObjexxFCL::Optional<Real64 const> PartLoadRatio = _, // part load ratio (for single speed cycling unit)
542 : ObjexxFCL::Optional<Real64 const> OnOffAFR = _, // ratio of compressor on airflow to compressor off airflow
543 : ObjexxFCL::Optional<Real64 const> CoilCoolingHeatingPLRRatio = _, // used for cycling fan RH control
544 : ObjexxFCL::Optional<Real64 const> MaxCap = _, // maximum cooling capacity of VRF terminal units
545 : ObjexxFCL::Optional<Real64 const> CompCyclingRatio = _ // cycling ratio of VRF condenser connected to this TU
546 : );
547 :
548 : void SimDXCoilMultiSpeed(EnergyPlusData &state,
549 : std::string_view CompName, // name of the fan coil unit
550 : Real64 const SpeedRatio, // = (CompressorSpeed - CompressorSpeedMin) /
551 : Real64 const CycRatio, // cycling part load ratio for variable speed
552 : int &CompIndex,
553 : ObjexxFCL::Optional_int_const SpeedNum = _, // Speed number for multispeed cooling coil onlyn
554 : ObjexxFCL::Optional<HVAC::FanOp const> fanOp = _, // Fan operation mode
555 : HVAC::CompressorOp CompressorOp = HVAC::CompressorOp::Off, // Compressor on/off; 1=on, 0=off
556 : ObjexxFCL::Optional_int_const SingleMode = _ // Single mode operation Yes/No; 1=Yes, 0=No
557 : );
558 :
559 : void SimDXCoilMultiMode(EnergyPlusData &state,
560 : std::string_view CompName, // name of the fan coil unit
561 : HVAC::CompressorOp compressorOp, // compressor operation; 1=on, 0=off !unused1208
562 : bool const FirstHVACIteration, // true if first hvac iteration
563 : Real64 const PartLoadRatio, // part load ratio
564 : HVAC::CoilMode const DehumidMode, // dehumidification mode (0=normal, 1=enhanced)
565 : int &CompIndex,
566 : HVAC::FanOp const fanOp // allows parent object to control fan mode
567 : );
568 :
569 : // TODO: Add New Property for AHRI 2023 Standard & Modify Numeric Fields (increment)
570 : void GetDXCoils(EnergyPlusData &state);
571 :
572 : void InitDXCoil(EnergyPlusData &state, int const DXCoilNum); // number of the current DX coil unit being simulated
573 :
574 : void SizeDXCoil(EnergyPlusData &state, int const DXCoilNum);
575 :
576 : void CalcHPWHDXCoil(EnergyPlusData &state,
577 : int const DXCoilNum, // the number of the DX coil to be simulated
578 : Real64 const PartLoadRatio // sensible water heating load / full load sensible water heating capacity
579 : );
580 :
581 : void CalcDoe2DXCoil(EnergyPlusData &state,
582 : int const DXCoilNum, // the number of the DX coil to be simulated
583 : HVAC::CompressorOp compressorOp, // compressor operation; 1=on, 0=off
584 : bool const FirstHVACIteration, // true if this is the first iteration of HVAC
585 : Real64 const PartLoadRatio, // sensible cooling load / full load sensible cooling capacity
586 : HVAC::FanOp const fanOp, // Allows parent object to control fan operation
587 : ObjexxFCL::Optional_int_const PerfMode = _, // Performance mode for MultiMode DX coil; Always 1 for other coil types
588 : ObjexxFCL::Optional<Real64 const> OnOffAirFlowRatio = _, // ratio of compressor on airflow to compressor off airflow
589 : ObjexxFCL::Optional<Real64 const> CoolingHeatingPLR = _ // used for cycling fan RH control
590 : );
591 :
592 : void CalcVRFCoolingCoil(EnergyPlusData &state,
593 : int const DXCoilNum, // the number of the DX coil to be simulated
594 : HVAC::CompressorOp compressorOp, // compressor operation; 1=on, 0=off
595 : bool const FirstHVACIteration, // true if this is the first iteration of HVAC
596 : Real64 const PartLoadRatio, // sensible cooling load / full load sensible cooling capacity
597 : HVAC::FanOp const fanOp, // Allows parent object to control fan operation
598 : Real64 const CompCycRatio, // cycling ratio of VRF condenser
599 : ObjexxFCL::Optional_int_const PerfMode = _, // Performance mode for MultiMode DX coil; Always 1 for other coil types
600 : ObjexxFCL::Optional<Real64 const> OnOffAirFlowRatio = _, // ratio of compressor on airflow to compressor off airflow
601 : ObjexxFCL::Optional<Real64 const> MaxCoolCap = _ // maximum capacity of DX coil
602 : );
603 :
604 : void CalcDXHeatingCoil(EnergyPlusData &state,
605 : int const DXCoilNum, // the number of the DX heating coil to be simulated
606 : Real64 const PartLoadRatio, // sensible cooling load / full load sensible cooling capacity
607 : HVAC::FanOp const fanOp, // Allows parent object to control fan mode
608 : ObjexxFCL::Optional<Real64 const> OnOffAirFlowRatio = _, // ratio of compressor on airflow to compressor off airflow
609 : ObjexxFCL::Optional<Real64 const> MaxHeatCap = _ // maximum allowed heating capacity
610 : );
611 :
612 : void CalcMultiSpeedDXCoil(EnergyPlusData &state,
613 : int const DXCoilNum, // the number of the DX heating coil to be simulated
614 : Real64 const SpeedRatio, // = (CompressorSpeed - CompressorSpeedMin) / (CompressorSpeedMax - CompressorSpeedMin)
615 : Real64 const CycRatio, // cycling part load ratio
616 : ObjexxFCL::Optional_bool_const ForceOn = _);
617 :
618 : void CalcBasinHeaterPowerForMultiModeDXCoil(EnergyPlusData &state,
619 : int const DXCoilNum, // Index of coil being simulated
620 : HVAC::CoilMode const DehumidMode // Dehumidification mode (0=normal, 1=enhanced)
621 : );
622 :
623 : Real64 AdjustCBF(Real64 const CBFNom, // nominal coil bypass factor
624 : Real64 const AirMassFlowRateNom, // nominal air mass flow rate [kg/s]
625 : Real64 const AirMassFlowRate // actual air mass flow rate [kg/s]
626 : );
627 :
628 : Real64 CalcCBF(EnergyPlusData &state,
629 : std::string const &UnitType,
630 : std::string const &UnitName,
631 : Real64 const InletAirTemp, // inlet air temperature [C]
632 : Real64 const InletAirHumRat, // inlet air humidity ratio [kg water / kg dry air]
633 : Real64 const TotCap, // total cooling capacity [Watts]
634 : Real64 const AirVolFlowRate, // the air volume flow rate at the given capacity [m3/s]
635 : Real64 const SHR, // sensible heat ratio at the given capacity and flow rate
636 : bool const PrintFlag = true // flag used to print warnings if desired
637 : );
638 :
639 : Real64 ValidateADP(EnergyPlusData &state,
640 : std::string const &UnitType, // component name
641 : std::string const &UnitName, // component type
642 : Real64 const RatedInletAirTemp, // coil inlet air temperature [C]
643 : Real64 const RatedInletAirHumRat, // coil inlet air humidity ratio [kg/kg]
644 : Real64 const TotCap, // coil total capacity [W]
645 : Real64 const AirMassFlow, // coil air mass flow rate [kg/s]
646 : Real64 const InitialSHR, // coil sensible heat ratio []
647 : std::string const &CallingRoutine // function name calling this routine
648 : );
649 :
650 : Real64 CalcEffectiveSHR(EnergyPlusData &state,
651 : int const DXCoilNum, // Index number for cooling coil
652 : Real64 const SHRss, // Steady-state sensible heat ratio
653 : Real64 const RTF, // Compressor run-time fraction
654 : Real64 const QLatRated, // Rated latent capacity
655 : Real64 const QLatActual, // Actual latent capacity
656 : Real64 const EnteringDB, // Entering air dry-bulb temperature
657 : Real64 const EnteringWB, // Entering air wet-bulb temperature
658 : ObjexxFCL::Optional_int_const Mode = _, // Performance mode for MultiMode DX coil; Always 1 for other coil types
659 : ObjexxFCL::Optional<Real64 const> HeatingRTF = _ // Used to recalculate Toff for cycling fan systems
660 : );
661 :
662 : void CalcTotCapSHR(EnergyPlusData &state,
663 : Real64 const InletDryBulb, // inlet air dry bulb temperature [C]
664 : Real64 const InletHumRat, // inlet air humidity ratio [kg water / kg dry air]
665 : Real64 const InletEnthalpy, // inlet air specific enthalpy [J/kg]
666 : Real64 const InletWetBulb, // inlet air wet bulb temperature [C]
667 : Real64 const AirMassFlowRatio, // Ratio of actual air mass flow to nominal air mass flow
668 : Real64 const AirMassFlow, // actual mass flow for capacity and SHR calculation
669 : Real64 const TotCapNom, // nominal total capacity [W]
670 : Real64 const CBF, // coil bypass factor
671 : int const CCapFTemp, // capacity modifier curve index, function of entering wetbulb
672 : int const CCapFFlow, // capacity modifier curve, function of actual flow vs rated flow
673 : Real64 &TotCap, // total capacity at the given conditions [W]
674 : Real64 &SHR, // sensible heat ratio at the given conditions
675 : Real64 const CondInletTemp, // Condenser inlet temperature [C]
676 : Real64 const Pressure, // air pressure [Pa]
677 : Real64 &TotCapModFac // capacity modification factor, func of temp and func of flow
678 : );
679 :
680 : void CalcMultiSpeedDXCoilCooling(EnergyPlusData &state,
681 : int const DXCoilNum, // the number of the DX heating coil to be simulated
682 : Real64 const SpeedRatio, // = (CompressorSpeed - CompressorSpeedMin) / (CompressorSpeedMax - CompressorSpeedMin)
683 : Real64 const CycRatio, // cycling part load ratio
684 : int const SpeedNum, // Speed number
685 : HVAC::FanOp const fanOp, // Sets fan control to FanOp::Cycling or FanOp::Continuous
686 : HVAC::CompressorOp compressorOp, // Compressor on/off; 1=on, 0=off
687 : int const SingleMode // Single mode operation Yes/No; 1=Yes, 0=No
688 : );
689 :
690 : void CalcMultiSpeedDXCoilHeating(EnergyPlusData &state,
691 : int const DXCoilNum, // the number of the DX heating coil to be simulated
692 : Real64 const SpeedRatio, // = (CompressorSpeed - CompressorSpeedMin) / (CompressorSpeedMax - CompressorSpeedMin)
693 : Real64 const CycRatio, // cycling part load ratio
694 : int const SpeedNum, // Speed number
695 : HVAC::FanOp const fanOp, // Fan operation mode
696 : int const SingleMode // Single mode operation Yes/No; 1=Yes, 0=No
697 : );
698 :
699 : void UpdateDXCoil(EnergyPlusData &state, int const DXCoilNum); // number of the current fan coil unit being simulated
700 :
701 : void ReportDXCoil(EnergyPlusData &state, int const DXCoilNum); // number of the current fan coil unit being simulated
702 :
703 : void CalcTwoSpeedDXCoilStandardRating(EnergyPlusData &state, int const DXCoilNum);
704 :
705 : void GetFanIndexForTwoSpeedCoil(
706 : EnergyPlusData &state, int const CoolingCoilIndex, int &SupplyFanIndex, std::string &SupplyFanName, HVAC::FanType &supplyFanType);
707 :
708 : void GetDXCoilIndex(EnergyPlusData &state,
709 : std::string const &DXCoilName,
710 : int &DXCoilIndex,
711 : bool &ErrorsFound,
712 : std::string_view const ThisObjectType = {},
713 : bool const SuppressWarning = false);
714 :
715 : std::string GetDXCoilName(
716 : EnergyPlusData &state, int &DXCoilIndex, bool &ErrorsFound, std::string_view const ThisObjectType = {}, bool const SuppressWarning = false);
717 :
718 : Real64 GetCoilCapacity(EnergyPlusData &state,
719 : std::string const &CoilType, // must match coil types in this module
720 : std::string const &CoilName, // must match coil names for the coil type
721 : bool &ErrorsFound // set to true if problem
722 : );
723 :
724 : Real64 GetCoilCapacityByIndexType(EnergyPlusData &state,
725 : int const CoilIndex, // must match coil index for the coil type
726 : int const CoilType_Num, // must match coil types in this module
727 : bool &ErrorsFound // set to true if problem
728 : );
729 :
730 : int GetCoilTypeNum(EnergyPlusData &state,
731 : std::string const &CoilType, // must match coil types in this module
732 : std::string const &CoilName, // must match coil names for the coil type
733 : bool &ErrorsFound, // set to true if problem
734 : ObjexxFCL::Optional_bool_const PrintWarning = _ // prints warning when true
735 : );
736 :
737 : Real64 GetMinOATCompressor(EnergyPlusData &state,
738 : int const CoilIndex, // index to coil
739 : bool &ErrorsFound // set to true if problem
740 : );
741 :
742 : int GetCoilInletNode(EnergyPlusData &state,
743 : std::string const &CoilType, // must match coil types in this module
744 : std::string const &CoilName, // must match coil names for the coil type
745 : bool &ErrorsFound // set to true if problem
746 : );
747 :
748 : int GetCoilOutletNode(EnergyPlusData &state,
749 : std::string const &CoilType, // must match coil types in this module
750 : std::string const &CoilName, // must match coil names for the coil type
751 : bool &ErrorsFound // set to true if problem
752 : );
753 :
754 : int getCoilInNodeIndex(EnergyPlusData &state,
755 : int CoilIndex, // coil index
756 : bool &ErrorsFound // set to true if problem
757 : );
758 :
759 : int getCoilOutNodeIndex(EnergyPlusData &state,
760 : int CoilIndex, // coil index
761 : bool &ErrorsFound // set to true if problem
762 : );
763 :
764 : int GetCoilCondenserInletNode(EnergyPlusData &state,
765 : std::string const &CoilType, // must match coil types in this module
766 : std::string const &CoilName, // must match coil names for the coil type
767 : bool &ErrorsFound // set to true if problem
768 : );
769 :
770 : Real64 GetDXCoilBypassedFlowFrac(EnergyPlusData &state,
771 : std::string const &CoilType, // must match coil types in this module
772 : std::string const &CoilName, // must match coil names for the coil type
773 : bool &ErrorsFound // set to true if problem
774 : );
775 :
776 : int GetHPCoolingCoilIndex(EnergyPlusData &state,
777 : std::string const &HeatingCoilType, // Type of DX heating coil used in HP
778 : std::string const &HeatingCoilName, // Name of DX heating coil used in HP
779 : int const HeatingCoilIndex // Index of DX heating coil used in HP
780 : );
781 :
782 : int GetDXCoilNumberOfSpeeds(EnergyPlusData &state,
783 : std::string const &CoilType, // must match coil types in this module
784 : std::string const &CoilName, // must match coil names for the coil type
785 : bool &ErrorsFound // set to true if problem
786 : );
787 :
788 : int GetDXCoilAvailSchPtr(EnergyPlusData &state,
789 : std::string const &CoilType, // must match coil types in this module
790 : std::string const &CoilName, // must match coil names for the coil type
791 : bool &ErrorsFound, // set to true if problem
792 : ObjexxFCL::Optional_int_const CoilIndex = _ // Coil index number
793 : );
794 :
795 : Real64 GetDXCoilAirFlow(EnergyPlusData &state,
796 : std::string const &CoilType, // must match coil types in this module
797 : std::string const &CoilName, // must match coil names for the coil type
798 : bool &ErrorsFound // set to true if problem
799 : );
800 :
801 : int GetDXCoilCapFTCurveIndex(EnergyPlusData &state,
802 : int const CoilIndex, // coil index pointer
803 : bool &ErrorsFound // set to true if problem
804 : );
805 :
806 : void SetDXCoolingCoilData(
807 : EnergyPlusData &state,
808 : int const DXCoilNum, // Number of DX Cooling Coil
809 : bool &ErrorsFound, // Set to true if certain errors found
810 : ObjexxFCL::Optional_int HeatingCoilPLFCurvePTR = _, // Parameter equivalent of heating coil PLR curve index
811 : ObjexxFCL::Optional<DataHeatBalance::RefrigCondenserType> CondenserType = _, // Parameter equivalent of condenser type parameter
812 : ObjexxFCL::Optional_int CondenserInletNodeNum = _, // Parameter equivalent of condenser inlet node number
813 : ObjexxFCL::Optional<Real64> MaxOATCrankcaseHeater = _, // Parameter equivalent of condenser Max OAT for Crank Case Heater temp
814 : ObjexxFCL::Optional<Real64> MinOATCooling = _, // Parameter equivalent of condenser Min OAT for compressor cooling operation
815 : ObjexxFCL::Optional<Real64> MaxOATCooling = _, // Parameter equivalent of condenser Max OAT for compressor cooling operation
816 : ObjexxFCL::Optional<Real64> MinOATHeating = _, // Parameter equivalent of condenser Min OAT for compressor heating operation
817 : ObjexxFCL::Optional<Real64> MaxOATHeating = _, // Parameter equivalent of condenser Max OAT for compressor heating operation
818 : ObjexxFCL::Optional<HVAC::OATType> HeatingPerformanceOATType = _, // Parameter equivalent to condenser entering air temp type (1-db, 2=wb)
819 : ObjexxFCL::Optional<StandardRatings::DefrostStrat> DefrostStrategy = _,
820 : ObjexxFCL::Optional<StandardRatings::HPdefrostControl> DefrostControl = _,
821 : ObjexxFCL::Optional_int DefrostEIRPtr = _,
822 : ObjexxFCL::Optional<Real64> DefrostFraction = _,
823 : ObjexxFCL::Optional<Real64> DefrostCapacity = _,
824 : ObjexxFCL::Optional<Real64> MaxOATDefrost = _,
825 : ObjexxFCL::Optional_bool CoolingCoilPresent = _,
826 : ObjexxFCL::Optional_bool HeatingCoilPresent = _,
827 : ObjexxFCL::Optional<Real64> HeatSizeRatio = _,
828 : ObjexxFCL::Optional<Real64> TotCap = _,
829 : ObjexxFCL::Optional_int SupplyFanIndex = _,
830 : ObjexxFCL::Optional_string SupplyFanName = _,
831 : ObjexxFCL::Optional<HVAC::FanType> supplyFanType = _);
832 :
833 : void SetCoilSystemHeatingDXFlag(EnergyPlusData &state,
834 : std::string const &CoilType, // must match coil types in this module
835 : std::string const &CoilName // must match coil names for the coil type
836 : );
837 :
838 : void SetCoilSystemCoolingData(EnergyPlusData &state,
839 : std::string const &CoilName, // must match coil names for the coil type
840 : std::string const &CoilSystemName);
841 :
842 : Real64 CalcSHRUserDefinedCurves(EnergyPlusData &state,
843 : Real64 const InletDryBulb, // inlet air dry bulb temperature [C]
844 : Real64 const InletWetBulb, // inlet air wet bulb temperature [C]
845 : Real64 const AirMassFlowRatio, // ratio of actual air mass flow to rated air mass flow
846 : int const SHRFTempCurveIndex, // SHR modifier curve index
847 : int const SHRFFlowCurveIndex, // SHR modifier curve index
848 : Real64 const SHRRated // rated sensible heat ratio, user input
849 : );
850 :
851 : void SetDXCoilTypeData(EnergyPlusData &state, std::string const &CoilName); // must match coil names for the coil type
852 :
853 : void CalcSecondaryDXCoils(EnergyPlusData &state, int const DXCoilNum);
854 :
855 : Real64 CalcSecondaryDXCoilsSHR(EnergyPlusData &state,
856 : int const DXCoilNum,
857 : Real64 const EvapAirMassFlow,
858 : Real64 const TotalHeatRemovalRate,
859 : Real64 const PartLoadRatio,
860 : Real64 const SecCoilRatedSHR,
861 : Real64 const EvapInletDryBulb,
862 : Real64 const EvapInletHumRat,
863 : Real64 const EvapInletWetBulb,
864 : Real64 const EvapInletEnthalpy,
865 : Real64 const CondInletDryBulb,
866 : Real64 const SecCoilFlowFraction,
867 : int const SecCoilSHRFT,
868 : int const SecCoilSHRFF);
869 :
870 : // Begin of Methods for New VRF Model: Fluid Temperature Control
871 : //******************************************************************************
872 : void
873 : CalcVRFCoolingCoil_FluidTCtrl(EnergyPlusData &state,
874 : int const DXCoilNum, // the number of the DX coil to be simulated
875 : HVAC::CompressorOp compressorOp, // compressor operation; 1=on, 0=off
876 : bool const FirstHVACIteration, // true if this is the first iteration of HVAC
877 : Real64 const PartLoadRatio, // sensible cooling load / full load sensible cooling capacity
878 : HVAC::FanOp const fanOp, // Allows parent object to control fan operation
879 : Real64 const CompCycRatio, // cycling ratio of VRF condenser
880 : ObjexxFCL::Optional_int_const PerfMode, // Performance mode for MultiMode DX coil; Always 1 for other coil types
881 : ObjexxFCL::Optional<Real64 const> OnOffAirFlowRatio // ratio of compressor on airflow to compressor off airflow
882 : );
883 :
884 : void
885 : CalcVRFHeatingCoil_FluidTCtrl(EnergyPlusData &state,
886 : HVAC::CompressorOp compressorOp, // compressor operation; 1=on, 0=off
887 : int const DXCoilNum, // the number of the DX heating coil to be simulated
888 : Real64 const PartLoadRatio, // sensible cooling load / full load sensible cooling capacity
889 : HVAC::FanOp const fanOp, // Allows parent object to control fan mode
890 : ObjexxFCL::Optional<Real64 const> OnOffAirFlowRatio, // ratio of compressor on airflow to compressor off airflow
891 : ObjexxFCL::Optional<Real64 const> MaxHeatCap // maximum allowed heating capacity
892 : );
893 :
894 : void ControlVRFIUCoil(EnergyPlusData &state,
895 : int const CoilIndex, // index to VRFTU coil
896 : Real64 const QCoil, // coil load
897 : Real64 const Tin, // inlet air temperature
898 : Real64 const Win, // inlet air humidity ratio
899 : Real64 const TeTc, // evaporating or condensing temperature
900 : Real64 const OAMassFlow, // mass flow rate of outdoor air
901 : Real64 &FanSpdRatio, // fan speed ratio: actual flow rate / rated flow rate
902 : Real64 &Wout, // outlet air humidity ratio
903 : Real64 &Tout, // outlet air temperature
904 : Real64 &Hout, // outlet air enthalpy
905 : Real64 &SHact, // actual SH
906 : Real64 &SCact // actual SC
907 : );
908 :
909 : void CalcVRFCoilSenCap(EnergyPlusData &state,
910 : int const OperationMode, // mode 0 for cooling, 1 for heating
911 : int const CoilNum, // index to VRFTU cooling or heating coil
912 : Real64 const Tinlet, // dry bulb temperature of air entering the coil
913 : Real64 const TeTc, // evaporating or condensing temperature
914 : Real64 const SHSC, // SH at cooling /SC at heating
915 : Real64 const BF, // Bypass factor
916 : Real64 &Q_sen, // VRF coil sensible capacity per air mass flow rate
917 : Real64 &T_coil_surf // Air temperature at coil surface
918 : );
919 :
920 : void CalcVRFCoilCapModFac(EnergyPlusData &state,
921 : int const OperationMode, // mode 0 for cooling, 1 for heating
922 : ObjexxFCL::Optional<int const> CoilIndex, // index to VRFTU cooling or heating coil
923 : ObjexxFCL::Optional<std::string> CoilName, // name of VRFTU cooling or heating coil
924 : Real64 const Tinlet, // dry bulb temperature of air entering the coil
925 : ObjexxFCL::Optional<Real64 const> TeTc, // evaporating or condensing temperature
926 : ObjexxFCL::Optional<Real64 const> SHSC, // SH at cooling /SC at heating
927 : ObjexxFCL::Optional<Real64 const> BF, // Bypass factor
928 : Real64 &CapModFac // Coil capacity modification factor
929 : );
930 :
931 : Real64 FanSpdResidualCool(Real64 FanSpdRto, Real64 QCoilSenCoolingLoad, Real64 Ts_1, Real64 Tin, Real64 Garate, Real64 BF);
932 :
933 : Real64 FanSpdResidualHeat(Real64 FanSpdRto, Real64 QCoilSenHeatingLoad, Real64 Ts_1, Real64 Tin, Real64 Garate, Real64 BF);
934 :
935 : void SetMSHPDXCoilHeatRecoveryFlag(EnergyPlusData &state, int const DXCoilNum); // must match coil names for the coil type
936 :
937 : void SetDXCoilAirLoopNumber(EnergyPlusData &state, std::string const &CoilName, int const AirLoopNum); // must match coil names for the coil type
938 :
939 : void DisableLatentDegradation(EnergyPlusData &state, int const DXCoilNum);
940 :
941 : } // namespace DXCoils
942 :
943 : struct DXCoilsData : BaseGlobalStruct
944 : {
945 :
946 : bool GetCoilsInputFlag = true; // First time, input is "gotten"
947 : bool MyOneTimeFlag = true; // One time flag used to allocate MyEnvrnFlag and MySizeFlag
948 : bool CalcTwoSpeedDXCoilStandardRatingOneTimeEIOHeaderWrite = true;
949 : bool CrankcaseHeaterReportVarFlag = true;
950 : int NumVRFHeatingCoils = 0; // number of VRF heat pump heating coils
951 : int NumVRFCoolingCoils = 0; // number of VRF heat pump cooling coils
952 : int NumDXCoils = 0; // Total number of DX coils
953 : int NumVRFHeatingFluidTCtrlCoils = 0; // number of VRF heat pump heating coils for FluidTCtrl Model
954 : int NumVRFCoolingFluidTCtrlCoils = 0; // number of VRF heat pump cooling coils for FluidTCtrl Model
955 : int NumDXHeatingCoils = 0; // number of DX heat pump heating coils
956 : int NumDoe2DXCoils = 0; // number of doe2 DX coils
957 : int NumDXHeatPumpWaterHeaterPumpedCoils = 0; // number of DX water heater coils, pumped
958 : int NumDXHeatPumpWaterHeaterWrappedCoils = 0; // number of DX water heater coils, pumped
959 : int NumDXMulSpeedCoils = 0; // number of DX coils with multi-speed compressor
960 : int NumDXMulModeCoils = 0; // number of DX coils with multi-mode performance
961 : int NumDXMulSpeedCoolCoils = 0; // number of multispeed DX cooling coils
962 : int NumDXMulSpeedHeatCoils = 0; // number of multispeed DX heating coils
963 : Real64 HPWHHeatingCapacity = 0.0; // Used by Heat Pump:Water Heater object as total water heating capacity [W]
964 : Real64 HPWHHeatingCOP = 0.0; // Used by Heat Pump:Water Heater object as water heating COP [W/W]
965 : Array1D_bool CheckEquipName;
966 : Array1D<Real64> DXCoilOutletTemp; // DX coil outlet dry bulb temperature [C]
967 : Array1D<Real64> DXCoilOutletHumRat; // DX coil outlet humidity ratio [kgWater/kgDryAir]
968 : Array1D<Real64> DXCoilPartLoadRatio; // DX coil part-load ratio
969 : Array1D<HVAC::FanOp> DXCoilFanOp; // supply air fan operating mode
970 : Array1D<Real64> DXCoilFullLoadOutAirTemp; // DX coil full load outlet dry bulb temperature [C]
971 : Array1D<Real64> DXCoilFullLoadOutAirHumRat; // DX coil full load outlet humidity ratio [kgWater/kgDryAir]
972 : Array1D<Real64> DXCoilTotalCooling; // DX cooling coil total cooling output [W]
973 : Array1D<Real64> DXCoilTotalHeating; // DX heating coil total heating output [W]
974 : Array1D<Real64> DXCoilCoolInletAirWBTemp; // DX cooling coil inlet air wet-bulb temp [C]
975 : Array1D<Real64> DXCoilHeatInletAirDBTemp; // DX heating coil inlet air dry-bulb temp [C]
976 : Array1D<Real64> DXCoilHeatInletAirWBTemp; // DX heating coil inlet air wet-bulb temp [C]
977 : Array1D<DXCoils::DXCoilData> DXCoil;
978 : Array1D<DXCoils::DXCoilNumericFieldData> DXCoilNumericFields;
979 :
980 : Array1D_bool MyEnvrnFlag; // One time environment flag
981 : Array1D_bool MySizeFlag; // One time sizing flag
982 : Real64 CurrentEndTime = 0.0;
983 : Real64 CalcVRFCoolingCoil_FluidTCtrlCurrentEndTime = 0.0;
984 : Real64 CalcVRFCoolingCoilCurrentEndTime = 0.0;
985 : Real64 NetCoolingCapRated = 0.0; // Net Cooling Coil capacity at Rated conditions, accounting for supply fan heat [W]
986 : Real64 EER = 0.0; // Energy Efficiency Ratio in SI [W/W]
987 : Real64 IEER = 0.0; // Integerated Energy Efficiency Ratio in SI [W/W]
988 : Real64 TotCapTempModFac = 0.0; // Total capacity modifier (function of entering wetbulb, outside drybulb) [-]
989 : Real64 TotCapFlowModFac = 0.0; // Total capacity modifier (function of actual supply air flow vs rated flow) [-]
990 : Real64 EIRTempModFac = 0.0; // EIR modifier (function of entering wetbulb, outside drybulb) [-]
991 : Real64 EIRFlowModFac = 0.0; // EIR modifier (function of actual supply air flow vs rated flow) [-]
992 : Real64 TempDryBulb_Leaving_Apoint = 0.0;
993 :
994 796 : void init_state([[maybe_unused]] EnergyPlusData &state) override
995 : {
996 796 : }
997 :
998 0 : void clear_state() override
999 : {
1000 0 : new (this) DXCoilsData();
1001 0 : }
1002 : };
1003 :
1004 : } // namespace EnergyPlus
1005 :
1006 : #endif
|