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 DataHVACGlobals_hh_INCLUDED
49 : #define DataHVACGlobals_hh_INCLUDED
50 :
51 : // ObjexxFCL Headers
52 : #include <ObjexxFCL/Array1D.hh>
53 :
54 : // EnergyPlus Headers
55 : #include <EnergyPlus/Data/BaseData.hh>
56 : #include <EnergyPlus/DataGlobals.hh>
57 : #include <EnergyPlus/EnergyPlus.hh>
58 :
59 : namespace EnergyPlus {
60 :
61 : namespace HVAC {
62 :
63 : // Using/Aliasing
64 :
65 : // Data
66 : // -only module should be available to other modules and routines.
67 : // Thus, all variables in this module must be PUBLIC.
68 :
69 : enum class CtrlVarType
70 : {
71 : Invalid = -1,
72 : Temp,
73 : MaxTemp,
74 : MinTemp,
75 : HumRat,
76 : MaxHumRat,
77 : MinHumRat,
78 : MassFlowRate,
79 : MaxMassFlowRate,
80 : MinMassFlowRate,
81 : Num
82 : };
83 :
84 : // MODULE PARAMETER DEFINITIONS:
85 :
86 : Real64 constexpr SmallHumRatDiff(1.0E-7);
87 : Real64 constexpr SmallTempDiff(1.0E-5);
88 : Real64 constexpr SmallMassFlow(0.001);
89 : Real64 constexpr VerySmallMassFlow(1.0E-30);
90 : Real64 constexpr SmallLoad(1.0);
91 : Real64 constexpr TempControlTol(0.1); // temperature control tolerance for packaged equip. [deg C]
92 : Real64 constexpr SmallAirVolFlow(0.001);
93 : Real64 constexpr SmallWaterVolFlow(1.0E-9);
94 : Real64 constexpr BlankNumeric(-99999.0); // indicates numeric input field was blank
95 : Real64 constexpr RetTempMax(60.0); // maximum return air temperature [deg C]
96 : Real64 constexpr RetTempMin(-30.0); // minimum return air temperature [deg C]
97 : Real64 constexpr DesCoilHWInletTempMin(46.0); // minimum heating water coil water inlet temp for UA sizing only. [deg C]
98 :
99 : int constexpr NumOfSizingTypes(35); // request sizing for cooling air flow rate
100 :
101 : // Sizing types
102 : int constexpr CoolingAirflowSizing(1); // request sizing for cooling air flow rate
103 : int constexpr CoolingWaterDesWaterInletTempSizing(6); // request sizing for cooling water coil inlet water temp
104 : int constexpr HeatingAirflowSizing(14); // request sizing for heating air flow rate
105 : int constexpr SystemAirflowSizing(16); // request sizing for system air flow rate
106 : int constexpr CoolingCapacitySizing(17); // request sizing for cooling capacity
107 : int constexpr HeatingCapacitySizing(18); // request sizing for heating capacity
108 : int constexpr SystemCapacitySizing(21); // request sizing for system capacity
109 : int constexpr AutoCalculateSizing(25); // identifies an autocalulate input
110 :
111 : // The following parameters describe the setpoint types in TempControlType(ActualZoneNum)
112 : enum class ThermostatType
113 : {
114 : Invalid = -1,
115 : Uncontrolled,
116 : SingleHeating,
117 : SingleCooling,
118 : SingleHeatCool,
119 : DualSetPointWithDeadBand,
120 : Num
121 : };
122 :
123 : static constexpr std::array<std::string_view, static_cast<int>(ThermostatType::Num)> thermostatTypeNames = {
124 : "Uncontrolled", "SingleHeating", "SingleCooling", "SingleHeatCool", "DualSetPointWithDeadBand"};
125 :
126 : enum class AirDuctType
127 : // parameters describing air duct type
128 : {
129 : Invalid = -1,
130 : Main,
131 : Cooling,
132 : Heating,
133 : Other,
134 : RAB,
135 : Num
136 : };
137 :
138 : static constexpr std::array<std::string_view, static_cast<int>(AirDuctType::Num)> airDuctTypeNames = {
139 : "Main", "Cooling", "Heating", "Other", "Return Air Bypass"};
140 :
141 : int constexpr Cooling(2);
142 : int constexpr Heating(3);
143 :
144 : enum class FanType
145 : {
146 : Invalid = -1,
147 : Constant,
148 : VAV,
149 : OnOff,
150 : Exhaust,
151 : ComponentModel,
152 : SystemModel,
153 : Num
154 : };
155 :
156 : extern const std::array<std::string_view, (int)FanType::Num> fanTypeNames;
157 : extern const std::array<std::string_view, (int)FanType::Num> fanTypeNamesUC;
158 :
159 : // Fan mode
160 :
161 : enum class FanOp
162 : {
163 : Invalid = -1,
164 : Cycling,
165 : Continuous,
166 : Num
167 : };
168 :
169 : // Fan placement
170 : enum class FanPlace
171 : {
172 : Invalid = -1,
173 : BlowThru,
174 : DrawThru,
175 : Num
176 : };
177 :
178 : static constexpr std::array<std::string_view, (int)FanPlace::Num> fanPlaceNamesUC = {"BLOWTHROUGH", "DRAWTHROUGH"};
179 :
180 : // OA Controller Heat Recovery Bypass Control Types
181 : int constexpr BypassWhenWithinEconomizerLimits(0); // heat recovery controlled by economizer limits
182 : int constexpr BypassWhenOAFlowGreaterThanMinimum(1); // heat recovery ON at minimum OA in economizer mode
183 :
184 : enum class EconomizerStagingType
185 : // OA Controller Economizer Staging
186 : {
187 : Invalid = -1,
188 : EconomizerFirst, // system air flow rate and economizer is ramped-up before using mechanical cooling
189 : InterlockedWithMechanicalCooling, // economizer operation (flow rate) depends on the cooling speed chosen by the system
190 : Num
191 : };
192 :
193 : static constexpr std::array<std::string_view, (int)EconomizerStagingType::Num> economizerStagingTypeNamesUC = {
194 : "ECONOMIZERFIRST",
195 : "INTERLOCKEDWITHMECHANICALCOOLING",
196 : };
197 : static constexpr std::array<std::string_view, (int)EconomizerStagingType::Num> economizerStagingTypeNames = {
198 : "EconomizerFirst",
199 : "InterlockedWithMechanicalCooling",
200 : };
201 :
202 : enum class UnitarySysType
203 : {
204 : Invalid = -1,
205 : Furnace_HeatOnly,
206 : Furnace_HeatCool,
207 : Unitary_HeatOnly,
208 : Unitary_HeatCool,
209 : Unitary_HeatPump_AirToAir,
210 : Unitary_HeatPump_WaterToAir,
211 : Unitary_AnyCoilType,
212 : Num
213 : };
214 :
215 : extern const std::array<std::string_view, (int)UnitarySysType::Num> unitarySysTypeNames;
216 : extern const std::array<std::string_view, (int)UnitarySysType::Num> unitarySysTypeNamesUC;
217 :
218 : enum class CoilType
219 : {
220 : Invalid = -1,
221 : DXCoolingSingleSpeed,
222 : DXHeatingEmpirical,
223 : DXCoolingTwoSpeed,
224 : DXCoolingHXAssisted,
225 : DXCoolingTwoStageWHumControl,
226 : DXHeatPumpWaterHeaterPumped,
227 : DXHeatPumpWaterHeaterWrapped,
228 : DXMultiSpeedCooling,
229 : DXMultiSpeedHeating,
230 : HeatingGasOrOtherFuel,
231 : HeatingGasMultiStage,
232 : HeatingElectric,
233 : HeatingElectricMultiStage,
234 : HeatingDesuperheater,
235 : CoolingWater,
236 : CoolingWaterDetailed,
237 : HeatingWater,
238 : HeatingSteam,
239 : WaterCoolingHXAssisted,
240 : CoolingWaterToAirHP,
241 : HeatingWaterToAirHP,
242 : CoolingWaterToAirHPSimple,
243 : HeatingWaterToAirHPSimple,
244 : VRFCooling,
245 : VRFHeating,
246 : UserDefined,
247 : DXPackagedThermalStorageCooling,
248 : CoolingWaterToAirHPVSEquationFit,
249 : HeatingWaterToAirHPVSEquationFit,
250 : CoolingAirToAirVariableSpeed,
251 : HeatingAirToAirVariableSpeed,
252 : DXHeatPumpWaterHeaterVariableSpeed,
253 : VRFFluidTCtrlCooling,
254 : VRFFluidTCtrlHeating,
255 : DXCooling,
256 : DXSubcoolReheat,
257 : DXCurveFitSpeed,
258 : Num
259 : };
260 : static constexpr std::array<std::string_view, static_cast<int>(CoilType::Num)> coilTypeNamesUC = {
261 : "COIL:COOLING:DX:SINGLESPEED",
262 : "COIL:HEATING:DX:SINGLESPEED",
263 : "COIL:COOLING:DX:TWOSPEED",
264 : "COILSYSTEM:COOLING:DX:HEATEXCHANGERASSISTED",
265 : "COIL:COOLING:DX:TWOSTAGEWITHHUMIDITYCONTROLMODE",
266 : "COIL:WATERHEATING:AIRTOWATERHEATPUMP:PUMPED",
267 : "COIL:WATERHEATING:AIRTOWATERHEATPUMP:WRAPPED",
268 : "COIL:COOLING:DX:MULTISPEED",
269 : "COIL:HEATING:DX:MULTISPEED",
270 : "COIL:HEATING:FUEL",
271 : "COIL:HEATING:GAS:MULTISTAGE",
272 : "COIL:HEATING:ELECTRIC",
273 : "COIL:HEATING:ELECTRIC:MULTISTAGE",
274 : "COIL:HEATING:DESUPERHEATER",
275 : "COIL:COOLING:WATER",
276 : "COIL:COOLING:WATER:DETAILEDGEOMETRY",
277 : "COIL:HEATING:WATER",
278 : "COIL:HEATING:STEAM",
279 : "COILSYSTEM:COOLING:WATER:HEATEXCHANGERASSISTED",
280 : "COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION",
281 : "COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION",
282 : "COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT",
283 : "COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT",
284 : "COIL:COOLING:DX:VARIABLEREFRIGERANTFLOW",
285 : "COIL:HEATING:DX:VARIABLEREFRIGERANTFLOW",
286 : "COIL:USERDEFINED",
287 : "COIL:COOLING:DX:SINGLESPEED:THERMALSTORAGE",
288 : "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT",
289 : "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT",
290 : "COIL:COOLING:DX:VARIABLESPEED",
291 : "COIL:HEATING:DX:VARIABLESPEED",
292 : "COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED",
293 : "COIL:COOLING:DX:VARIABLEREFRIGERANTFLOW:FLUIDTEMPERATURECONTROL",
294 : "COIL:HEATING:DX:VARIABLEREFRIGERANTFLOW:FLUIDTEMPERATURECONTROL",
295 : "COIL:COOLING:DX",
296 : "COIL:COOLING:DX:SUBCOOLREHEAT",
297 : "COIL:COOLING:DX:CURVEFIT:SPEED"};
298 :
299 : // parameters describing coil types
300 : int constexpr NumAllCoilTypes(37);
301 : int constexpr CoilDX_CoolingSingleSpeed(1);
302 : int constexpr CoilDX_HeatingEmpirical(2);
303 : int constexpr CoilDX_CoolingTwoSpeed(3);
304 : int constexpr CoilDX_CoolingHXAssisted(4);
305 : int constexpr CoilDX_CoolingTwoStageWHumControl(5);
306 : int constexpr CoilDX_HeatPumpWaterHeaterPumped(6);
307 : int constexpr CoilDX_HeatPumpWaterHeaterWrapped(7);
308 : int constexpr CoilDX_MultiSpeedCooling(8);
309 : int constexpr CoilDX_MultiSpeedHeating(9);
310 : int constexpr Coil_HeatingGasOrOtherFuel(10);
311 : int constexpr Coil_HeatingGas_MultiStage(11);
312 : int constexpr Coil_HeatingElectric(12);
313 : int constexpr Coil_HeatingElectric_MultiStage(13);
314 : int constexpr Coil_HeatingDesuperheater(14);
315 : int constexpr Coil_CoolingWater(15);
316 : int constexpr Coil_CoolingWaterDetailed(16);
317 : int constexpr Coil_HeatingWater(17);
318 : int constexpr Coil_HeatingSteam(18);
319 : int constexpr CoilWater_CoolingHXAssisted(19);
320 : int constexpr Coil_CoolingWaterToAirHP(20);
321 : int constexpr Coil_HeatingWaterToAirHP(21);
322 : int constexpr Coil_CoolingWaterToAirHPSimple(22);
323 : int constexpr Coil_HeatingWaterToAirHPSimple(23);
324 : int constexpr CoilVRF_Cooling(24);
325 : int constexpr CoilVRF_Heating(25);
326 : int constexpr Coil_UserDefined(26);
327 : int constexpr CoilDX_PackagedThermalStorageCooling(27);
328 : int constexpr Coil_CoolingWaterToAirHPVSEquationFit(28);
329 : int constexpr Coil_HeatingWaterToAirHPVSEquationFit(29);
330 : int constexpr Coil_CoolingAirToAirVariableSpeed(30);
331 : int constexpr Coil_HeatingAirToAirVariableSpeed(31);
332 : int constexpr CoilDX_HeatPumpWaterHeaterVariableSpeed(32);
333 : int constexpr CoilVRF_FluidTCtrl_Cooling(33);
334 : int constexpr CoilVRF_FluidTCtrl_Heating(34);
335 : int constexpr CoilDX_Cooling(35);
336 : // int constexpr CoilDX_SubcoolReheat(36);
337 : int constexpr CoilDX_CurveFit_Speed(37);
338 :
339 : enum class CoilMode
340 : {
341 : Invalid = -1,
342 : Normal,
343 : Enhanced,
344 : SubcoolReheat,
345 : Num
346 : };
347 :
348 : enum class WaterFlow
349 : {
350 : Invalid = -1,
351 : Cycling,
352 : Constant,
353 : ConstantOnDemand,
354 : Num
355 : };
356 :
357 : extern const std::array<std::string_view, (int)WaterFlow::Num> waterFlowNames;
358 : extern const std::array<std::string_view, (int)WaterFlow::Num> waterFlowNamesUC;
359 :
360 : // parameters describing coil performance types
361 : int constexpr CoilPerfDX_CoolBypassEmpirical(100);
362 :
363 : // Airflow per total capacity range (Regular DX coils)
364 : Real64 constexpr MaxRatedVolFlowPerRatedTotCap1(0.00006041); // m3/s per watt = 450 cfm/ton
365 : Real64 constexpr MinRatedVolFlowPerRatedTotCap1(0.00004027); // m3/s per watt = 300 cfm/ton
366 : Real64 constexpr MaxHeatVolFlowPerRatedTotCap1(0.00008056); // m3/s per watt = 600 cfm/ton
367 : Real64 constexpr MaxCoolVolFlowPerRatedTotCap1(0.00006713); // m3/s per watt = 500 cfm/ton
368 : Real64 constexpr MinOperVolFlowPerRatedTotCap1(0.00002684); // m3/s per watt = 200 cfm/ton
369 :
370 : // 100% DOAS DX coils Airflow per total capacity ratio
371 : Real64 constexpr MaxRatedVolFlowPerRatedTotCap2(0.00003355); // m3/s per watt = 250 cfm/ton
372 : Real64 constexpr MinRatedVolFlowPerRatedTotCap2(0.00001677); // m3/s per watt = 125 cfm/ton
373 : Real64 constexpr MaxHeatVolFlowPerRatedTotCap2(0.00004026); // m3/s per watt = 300 cfm/ton
374 : Real64 constexpr MaxCoolVolFlowPerRatedTotCap2(0.00004026); // m3/s per watt = 300 cfm/ton
375 : Real64 constexpr MinOperVolFlowPerRatedTotCap2(0.00001342); // m3/s per watt = 100 cfm/ton
376 :
377 : constexpr std::array<Real64, 2> MaxRatedVolFlowPerRatedTotCap = {MaxRatedVolFlowPerRatedTotCap1, MaxRatedVolFlowPerRatedTotCap2};
378 : constexpr std::array<Real64, 2> MinRatedVolFlowPerRatedTotCap = {MinRatedVolFlowPerRatedTotCap1, MinRatedVolFlowPerRatedTotCap2};
379 : constexpr std::array<Real64, 2> MaxHeatVolFlowPerRatedTotCap = {MaxHeatVolFlowPerRatedTotCap1, MaxHeatVolFlowPerRatedTotCap2};
380 : constexpr std::array<Real64, 2> MaxCoolVolFlowPerRatedTotCap = {MaxCoolVolFlowPerRatedTotCap1, MaxCoolVolFlowPerRatedTotCap2};
381 : constexpr std::array<Real64, 2> MinOperVolFlowPerRatedTotCap = {MinOperVolFlowPerRatedTotCap1, MinOperVolFlowPerRatedTotCap2};
382 :
383 : // dx coil type (DXCT)
384 : enum class DXCoilType
385 : {
386 : Invalid = -1,
387 : Regular,
388 : DOAS,
389 : Num
390 : };
391 :
392 : enum class HXType
393 : {
394 : Invalid = -1,
395 : AirToAir_FlatPlate,
396 : AirToAir_Generic,
397 : Desiccant_Balanced,
398 : Num
399 : };
400 :
401 : extern const std::array<std::string_view, (int)HXType::Num> hxTypeNames;
402 : extern const std::array<std::string_view, (int)HXType::Num> hxTypeNamesUC;
403 :
404 : enum class MixerType
405 : {
406 : Invalid = -1,
407 : InletSide,
408 : SupplySide,
409 : Num
410 : };
411 :
412 : extern const std::array<std::string_view, (int)MixerType::Num> mixerTypeNames;
413 : extern const std::array<std::string_view, (int)MixerType::Num> mixerTypeNamesUC;
414 :
415 : extern const std::array<std::string_view, (int)MixerType::Num> mixerTypeLocNames;
416 : extern const std::array<std::string_view, (int)MixerType::Num> mixerTypeLocNamesUC;
417 :
418 : enum class OATType
419 : {
420 : Invalid = -1,
421 : WetBulb,
422 : DryBulb,
423 : Num
424 : };
425 :
426 : extern const std::array<std::string_view, (int)OATType::Num> oatTypeNames;
427 : extern const std::array<std::string_view, (int)OATType::Num> oatTypeNamesUC;
428 :
429 : // parameter concerning the amount of change in zone temperature is needed
430 : // for oscillation of zone temperature to be detected.
431 : Real64 constexpr OscillateMagnitude(0.15);
432 :
433 : int constexpr MaxSpeedLevels = 10;
434 :
435 : extern Array1D_string const cAllCoilTypes;
436 : extern Array1D_string const cCoolingCoilTypes;
437 : extern Array1D_string const cHeatingCoilTypes;
438 :
439 : struct ComponentSetPtData
440 : {
441 : // Members
442 : std::string EquipmentType;
443 : std::string EquipmentName;
444 : int NodeNumIn = 0;
445 : int NodeNumOut = 0;
446 : Real64 EquipDemand = 0.0;
447 : Real64 DesignFlowRate = 0.0;
448 : std::string HeatOrCool;
449 : int OpType = 0;
450 : };
451 :
452 : // Compressor operation
453 : enum class CompressorOp
454 : {
455 : Invalid = -1,
456 : Off, // signal DXCoil that compressor shouldn't run
457 : On, // normal compressor operation
458 : Num
459 : };
460 : } // namespace HVAC
461 :
462 : struct HVACGlobalsData : BaseGlobalStruct
463 : {
464 : // Object Data
465 : Array1D<HVAC::ComponentSetPtData> CompSetPtEquip;
466 :
467 : // For multispeed heat pump only
468 : Real64 MSHPMassFlowRateLow = 0.0; // Mass flow rate at low speed
469 : Real64 MSHPMassFlowRateHigh = 0.0; // Mass flow rate at high speed
470 : Real64 MSHPWasteHeat = 0.0; // Waste heat
471 : Real64 PreviousTimeStep = 0.0; // The time step length at the previous time step
472 : bool ShortenTimeStepSysRoomAir = false; // Logical flag that triggers shortening of system time step
473 : // For multispeed unitary systems
474 : Real64 MSUSEconoSpeedNum = 0; // Economizer speed
475 :
476 : Real64 deviationFromSetPtThresholdHtg = -0.2; // heating threshold for reporting setpoint deviation
477 : Real64 deviationFromSetPtThresholdClg = 0.2; // cooling threshold for reporting setpoint deviation
478 :
479 : bool SimAirLoopsFlag = false; // True when the air loops need to be (re)simulated
480 : bool SimElecCircuitsFlag = false; // True when electic circuits need to be (re)simulated
481 : bool SimPlantLoopsFlag = false; // True when the main plant loops need to be (re)simulated
482 : bool SimZoneEquipmentFlag = false; // True when zone equipment components need to be (re)simulated
483 : bool SimNonZoneEquipmentFlag = false; // True when non-zone equipment components need to be (re)simulated
484 : bool ZoneMassBalanceHVACReSim = false; // True when zone air mass flow balance and air loop needs (re)simulated
485 : int MinAirLoopIterationsAfterFirst = 1; // minimum number of HVAC iterations after FirstHVACIteration
486 :
487 : HVAC::DXCoilType DXCT = HVAC::DXCoilType::Regular; // dx coil type: regular DX coil ==1, 100% DOAS DX coil = 2
488 : bool FirstTimeStepSysFlag = false; // Set to true at the start of each sub-time step
489 :
490 : Real64 TimeStepSys = 0.0; // System Time Increment - the adaptive time step used by the HVAC simulation (hours)
491 : Real64 TimeStepSysSec = 0.0; // System Time Increment in seconds
492 : Real64 SysTimeElapsed = 0.0; // elapsed system time in zone timestep (hours)
493 : Real64 FracTimeStepZone = 0.0; // System time step divided by the zone time step
494 : bool ShortenTimeStepSys = false; // Logical flag that triggers shortening of system time step
495 : int NumOfSysTimeSteps = 1; // for current zone time step, number of system timesteps inside it
496 : int NumOfSysTimeStepsLastZoneTimeStep = 1; // previous zone time step, num of system timesteps inside
497 : int LimitNumSysSteps = 0;
498 :
499 : bool UseZoneTimeStepHistory = true; // triggers use of zone time step history, else system time step history, for ZTM1, ZTMx
500 : int NumPlantLoops = 0; // Number of plant loops specified in simulation
501 : int NumCondLoops = 0; // Number of condenser plant loops specified in simulation
502 : int NumElecCircuits = 0; // Number of electric circuits specified in simulation
503 : int NumGasMeters = 0; // Number of gas meters specified in simulation
504 : int NumPrimaryAirSys = 0; // Number of primary HVAC air systems
505 : Real64 OnOffFanPartLoadFraction = 1.0; // fan part-load fraction (Fan:OnOff)
506 : Real64 DXCoilTotalCapacity = 0.0; // DX coil total cooling capacity (eio report var for HPWHs)
507 : Real64 DXElecCoolingPower = 0.0; // Electric power consumed by DX cooling coil last DX simulation
508 : Real64 DXElecHeatingPower = 0.0; // Electric power consumed by DX heating coil last DX simulation
509 : Real64 ElecHeatingCoilPower = 0.0; // Electric power consumed by electric heating coil
510 : Real64 SuppHeatingCoilPower = 0.0; // Electric power consumed by electric supplemental heating coil
511 : Real64 AirToAirHXElecPower = 0.0; // Electric power consumed by Heat Exchanger:Air To Air (Generic or Flat Plate)
512 : Real64 DefrostElecPower = 0.0; // Electric power consumed by DX heating coil for defrosting (Resistive or ReverseCycle)
513 : // from last simulation in HeatRecovery.cc
514 : Real64 UnbalExhMassFlow = 0.0; // unbalanced zone exhaust from a zone equip component [kg/s]
515 : Real64 BalancedExhMassFlow = 0.0; // balanced zone exhaust (declared as so by user) [kg/s]
516 : Real64 PlenumInducedMassFlow = 0.0; // secondary air mass flow rate induced from a return plenum [kg/s]
517 : bool TurnFansOn = false; // If true overrides fan schedule and cycles fans on
518 : bool TurnFansOff = false; // If True overides fan schedule and TurnFansOn and forces fans off
519 : bool SetPointErrorFlag = false; // True if any needed setpoints not set; if true, program terminates
520 : bool DoSetPointTest = false; // True one time only for sensed node setpoint test
521 : bool NightVentOn = false; // set TRUE in SimAirServingZone if night ventilation is happening
522 :
523 : int NumTempContComps = 0;
524 : Real64 HPWHInletDBTemp = 0.0; // Used by curve objects when calculating DX coil performance for HEAT PUMP:WATER HEATER
525 : Real64 HPWHInletWBTemp = 0.0; // Used by curve objects when calculating DX coil performance for HEAT PUMP:WATER HEATER
526 : Real64 HPWHCrankcaseDBTemp = 0.0; // Used for HEAT PUMP:WATER HEATER crankcase heater ambient temperature calculations
527 : bool AirLoopInit = false; // flag for whether InitAirLoops has been called
528 : bool AirLoopsSimOnce = false; // True means that the air loops have been simulated once in this environment
529 : bool GetAirPathDataDone = false; // True means that air loops inputs have been processed
530 : bool StandardRatingsMyOneTimeFlag = true;
531 : bool StandardRatingsMyCoolOneTimeFlag = true;
532 : bool StandardRatingsMyCoolOneTimeFlag2 = true;
533 : bool StandardRatingsMyCoolOneTimeFlag3 = true;
534 : bool StandardRatingsMyHeatOneTimeFlag = true;
535 : bool StandardRatingsMyHeatOneTimeFlag2 = true;
536 :
537 796 : void init_state([[maybe_unused]] EnergyPlusData &state) override
538 : {
539 796 : }
540 :
541 0 : void clear_state() override
542 : {
543 0 : new (this) HVACGlobalsData();
544 0 : }
545 : };
546 :
547 : } // namespace EnergyPlus
548 :
549 : #endif
|