Line data Source code
1 : // EnergyPlus, Copyright (c) 1996-2023, 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 DataPlant_hh_INCLUDED
49 : #define DataPlant_hh_INCLUDED
50 :
51 : // C++ Headers
52 : #include <numeric>
53 :
54 : // ObjexxFCL Headers
55 : #include <ObjexxFCL/Array1D.hh>
56 : #include <ObjexxFCL/Fmath.hh>
57 : #include <ObjexxFCL/Optional.hh>
58 :
59 : // EnergyPlus Headers
60 : #include <EnergyPlus/Data/BaseData.hh>
61 : #include <EnergyPlus/DataGlobals.hh>
62 : #include <EnergyPlus/DataLoopNode.hh>
63 : #include <EnergyPlus/EnergyPlus.hh>
64 : #include <EnergyPlus/OutputProcessor.hh>
65 : #include <EnergyPlus/Plant/CallingOrder.hh>
66 : #include <EnergyPlus/Plant/Enums.hh>
67 : #include <EnergyPlus/Plant/Loop.hh>
68 : #include <EnergyPlus/Plant/PlantAvailManager.hh>
69 : #include <EnergyPlus/Plant/ReportLoopData.hh>
70 :
71 : namespace EnergyPlus {
72 :
73 : namespace DataPlant {
74 :
75 : // Using/Aliasing
76 : using DataLoopNode::SensedNodeFlagValue;
77 :
78 : // Criteria percentage limits for determining re-simulation of connected loop sides
79 : constexpr Real64 CriteriaDelta_MassFlowRate(0.001);
80 : constexpr Real64 CriteriaDelta_Temperature(0.010);
81 : constexpr Real64 CriteriaDelta_HeatTransferRate(0.100);
82 :
83 : // Parameters for tolerance
84 : constexpr Real64 LoopDemandTol(0.1); // minimum significant loop cooling or heating demand
85 : constexpr Real64 DeltaTempTol(0.0001); // minimum significant loop temperature difference
86 :
87 : // Parameters for Component/Equipment Types (ref: TypeOf in CompData)
88 :
89 : static constexpr std::array<std::string_view, static_cast<int>(PlantEquipmentType::Num)> PlantEquipTypeNames{
90 : "Boiler:HotWater",
91 : "Boiler:Steam",
92 : "Chiller:Absorption",
93 : "Chiller:Absorption:Indirect",
94 : "Chiller:CombustionTurbine",
95 : "Chiller:ConstantCOP",
96 : "ChillerHeater:Absorption:DirectFired",
97 : "Chiller:Electric",
98 : "Chiller:Electric:EIR",
99 : "Chiller:Electric:ReformulatedEIR",
100 : "Chiller:Electric:ASHRAE205",
101 : "Chiller:EngineDriven",
102 : "CoolingTower:SingleSpeed",
103 : "CoolingTower:TwoSpeed",
104 : "CoolingTower:VariableSpeed",
105 : "Generator:Fuelcell:ExhaustGastoWaterHeatExchanger",
106 : "WaterHeater:HeatPump:PumpedCondenser",
107 : "Heatpump:WatertoWater:Equationfit:Cooling",
108 : "Heatpump:WatertoWater:Equationfit:Heating",
109 : "Heatpump:WatertoWater:ParameterEstimation:Cooling",
110 : "Heatpump:WatertoWater:ParameterEstimation:Heating",
111 : "Pipe:Adiabatic",
112 : "Pipe:Adiabatic:Steam",
113 : "Pipe:Outdoor",
114 : "Pipe:Indoor",
115 : "Pipe:Underground",
116 : "DistrictCooling",
117 : "DistrictHeating",
118 : "ThermalStorage:Ice:Detailed",
119 : "ThermalStorage:Ice:Simple",
120 : "TemperingValve",
121 : "WaterHeater:Mixed",
122 : "WaterHeater:Stratified",
123 : "Pump:VariableSpeed",
124 : "Pump:ConstantSpeed",
125 : "Pump:VariableSpeed:Condensate",
126 : "HeaderedPumps:VariableSpeed",
127 : "HeaderedPumps:ConstantSpeed",
128 : "WaterUse:Connections",
129 : "Coil:Cooling:Water",
130 : "Coil:Cooling:Water:DetailedGeometry",
131 : "Coil:Heating:Water",
132 : "Coil:Heating:Steam",
133 : "Solarcollector:Flatplate:Water",
134 : "LoadProfile:Plant",
135 : "GroundHeatExchanger:System",
136 : "GroundHeatExchanger:Surface",
137 : "GroundHeatExchanger:Pond",
138 : "Generator:Microturbine",
139 : "Generator:InternalCombustionEngine",
140 : "Generator:CombustionTurbine",
141 : "Generator:Microchp",
142 : "Generator:Fuelcell:StackCooler",
143 : "FluidCooler:SingleSpeed",
144 : "FluidCooler:TwoSpeed",
145 : "EvaporativeFluidCooler:SingleSpeed",
146 : "EvaporativeFluidCooler:TwoSpeed",
147 : "ThermalStorage:ChilledWater:Mixed",
148 : "ThermalStorage:ChilledWater:Stratified",
149 : "SolarCollector:FlatPlate:PhotovoltaicThermal",
150 : "ZoneHVAC:Baseboard:Convective:Water",
151 : "ZoneHVAC:Baseboard:RadiantConvective:Steam",
152 : "ZoneHVAC:Baseboard:RadiantConvective:Water",
153 : "ZoneHVAC:LowTemperatureRadiant:VariableFlow",
154 : "ZoneHVAC:LowTemperatureRadiant:ConstantFlow",
155 : "AirTerminal:SingleDuct:ConstantVolume:CooledBeam",
156 : "Coil:Heating:WaterToAirHeatPump:EquationFit",
157 : "Coil:Cooling:WaterToAirHeatPump:EquationFit",
158 : "Coil:Heating:WaterToAirHeatPump:ParameterEstimation",
159 : "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation",
160 : "Refrigeration:Condenser:WaterCooled",
161 : "Refrigeration:CompressorRack",
162 : "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed",
163 : "ChillerHeater:Absorption:DoubleEffect",
164 : "PipingSystem:Underground:PipeCircuit",
165 : "SolarCollector:IntegralCollectorStorage",
166 : "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit",
167 : "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit",
168 : "PlantComponent:UserDefined",
169 : "Coil:UserDefined",
170 : "ZoneHVAC:ForcedAir:UserDefined",
171 : "AirTerminal:SingleDuct:UserDefined",
172 : "AirConditioner:VariableRefrigerantFlow",
173 : "GroundHeatExchanger:HorizontalTrench",
174 : "HeatExchanger:FluidToFluid",
175 : "PlantComponent:TemperatureSource",
176 : "CentralHeatPumpSystem",
177 : "AirLoopHVAC:UnitarySystem",
178 : "Coil:Cooling:DX:SingleSpeed:ThermalStorage",
179 : "CoolingTower:VariableSpeed:Merkel",
180 : "SwimmingPool:Indoor",
181 : "GroundHeatExchanger:Slinky",
182 : "WaterHeater:HeatPump:WrappedCondenser",
183 : "AirTerminal:SingleDuct:ConstantVolume:FourPipeBeam",
184 : "ZoneHVAC:CoolingPanel:RadiantConvective:Water",
185 : "HeatPump:PlantLoop:EIR:Cooling",
186 : "HeatPump:PlantLoop:EIR:Heating"};
187 :
188 : static constexpr std::array<std::string_view, static_cast<size_t>(PlantEquipmentType::Num)> PlantEquipTypeNamesUC{
189 : "BOILER:HOTWATER",
190 : "BOILER:STEAM",
191 : "CHILLER:ABSORPTION",
192 : "CHILLER:ABSORPTION:INDIRECT",
193 : "CHILLER:COMBUSTIONTURBINE",
194 : "CHILLER:CONSTANTCOP",
195 : "CHILLERHEATER:ABSORPTION:DIRECTFIRED",
196 : "CHILLER:ELECTRIC",
197 : "CHILLER:ELECTRIC:EIR",
198 : "CHILLER:ELECTRIC:REFORMULATEDEIR",
199 : "CHILLER:ELECTRIC:ASHRAE205",
200 : "CHILLER:ENGINEDRIVEN",
201 : "COOLINGTOWER:SINGLESPEED",
202 : "COOLINGTOWER:TWOSPEED",
203 : "COOLINGTOWER:VARIABLESPEED",
204 : "GENERATOR:FUELCELL:EXHAUSTGASTOWATERHEATEXCHANGER",
205 : "WATERHEATER:HEATPUMP:PUMPEDCONDENSER",
206 : "HEATPUMP:WATERTOWATER:EQUATIONFIT:COOLING",
207 : "HEATPUMP:WATERTOWATER:EQUATIONFIT:HEATING",
208 : "HEATPUMP:WATERTOWATER:PARAMETERESTIMATION:COOLING",
209 : "HEATPUMP:WATERTOWATER:PARAMETERESTIMATION:HEATING",
210 : "PIPE:ADIABATIC",
211 : "PIPE:ADIABATIC:STEAM",
212 : "PIPE:OUTDOOR",
213 : "PIPE:INDOOR",
214 : "PIPE:UNDERGROUND",
215 : "DISTRICTCOOLING",
216 : "DISTRICTHEATING",
217 : "THERMALSTORAGE:ICE:DETAILED",
218 : "THERMALSTORAGE:ICE:SIMPLE",
219 : "TEMPERINGVALVE",
220 : "WATERHEATER:MIXED",
221 : "WATERHEATER:STRATIFIED",
222 : "PUMP:VARIABLESPEED",
223 : "PUMP:CONSTANTSPEED",
224 : "PUMP:VARIABLESPEED:CONDENSATE",
225 : "HEADEREDPUMPS:VARIABLESPEED",
226 : "HEADEREDPUMPS:CONSTANTSPEED",
227 : "WATERUSE:CONNECTIONS",
228 : "COIL:COOLING:WATER",
229 : "COIL:COOLING:WATER:DETAILEDGEOMETRY",
230 : "COIL:HEATING:WATER",
231 : "COIL:HEATING:STEAM",
232 : "SOLARCOLLECTOR:FLATPLATE:WATER",
233 : "LOADPROFILE:PLANT",
234 : "GROUNDHEATEXCHANGER:SYSTEM",
235 : "GROUNDHEATEXCHANGER:SURFACE",
236 : "GROUNDHEATEXCHANGER:POND",
237 : "GENERATOR:MICROTURBINE",
238 : "GENERATOR:INTERNALCOMBUSTIONENGINE",
239 : "GENERATOR:COMBUSTIONTURBINE",
240 : "GENERATOR:MICROCHP",
241 : "GENERATOR:FUELCELL:STACKCOOLER",
242 : "FLUIDCOOLER:SINGLESPEED",
243 : "FLUIDCOOLER:TWOSPEED",
244 : "EVAPORATIVEFLUIDCOOLER:SINGLESPEED",
245 : "EVAPORATIVEFLUIDCOOLER:TWOSPEED",
246 : "THERMALSTORAGE:CHILLEDWATER:MIXED",
247 : "THERMALSTORAGE:CHILLEDWATER:STRATIFIED",
248 : "SOLARCOLLECTOR:FLATPLATE:PHOTOVOLTAICTHERMAL",
249 : "ZONEHVAC:BASEBOARD:CONVECTIVE:WATER",
250 : "ZONEHVAC:BASEBOARD:RADIANTCONVECTIVE:STEAM",
251 : "ZONEHVAC:BASEBOARD:RADIANTCONVECTIVE:WATER",
252 : "ZONEHVAC:LOWTEMPERATURERADIANT:VARIABLEFLOW",
253 : "ZONEHVAC:LOWTEMPERATURERADIANT:CONSTANTFLOW",
254 : "AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:COOLEDBEAM",
255 : "COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT",
256 : "COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT",
257 : "COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION",
258 : "COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION",
259 : "REFRIGERATION:CONDENSER:WATERCOOLED",
260 : "REFRIGERATION:COMPRESSORRACK",
261 : "AIRLOOPHVAC:UNITARYHEATPUMP:AIRTOAIR:MULTISPEED",
262 : "CHILLERHEATER:ABSORPTION:DOUBLEEFFECT",
263 : "PIPINGSYSTEM:UNDERGROUND:PIPECIRCUIT",
264 : "SOLARCOLLECTOR:INTEGRALCOLLECTORSTORAGE",
265 : "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT",
266 : "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT",
267 : "PLANTCOMPONENT:USERDEFINED",
268 : "COIL:USERDEFINED",
269 : "ZONEHVAC:FORCEDAIR:USERDEFINED",
270 : "AIRTERMINAL:SINGLEDUCT:USERDEFINED",
271 : "AIRCONDITIONER:VARIABLEREFRIGERANTFLOW",
272 : "GROUNDHEATEXCHANGER:HORIZONTALTRENCH",
273 : "HEATEXCHANGER:FLUIDTOFLUID",
274 : "PLANTCOMPONENT:TEMPERATURESOURCE",
275 : "CENTRALHEATPUMPSYSTEM",
276 : "AIRLOOPHVAC:UNITARYSYSTEM",
277 : "COIL:COOLING:DX:SINGLESPEED:THERMALSTORAGE",
278 : "COOLINGTOWER:VARIABLESPEED:MERKEL",
279 : "SWIMMINGPOOL:INDOOR",
280 : "GROUNDHEATEXCHANGER:SLINKY",
281 : "WATERHEATER:HEATPUMP:WRAPPEDCONDENSER",
282 : "AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:FOURPIPEBEAM",
283 : "ZONEHVAC:COOLINGPANEL:RADIANTCONVECTIVE:WATER",
284 : "HEATPUMP:PLANTLOOP:EIR:COOLING",
285 : "HEATPUMP:PLANTLOOP:EIR:HEATING"};
286 :
287 : static constexpr std::array<LoopType, static_cast<size_t>(PlantEquipmentType::Num)> ValidLoopEquipTypes{
288 : LoopType::Plant, // "Boiler:HotWater"
289 : LoopType::Plant, // "Boiler:Steam"
290 : LoopType::Plant, // "Chiller:Absorption"
291 : LoopType::Plant, // "Chiller:Absorption:Indirect"
292 : LoopType::Plant, // "Chiller:CombustionTurbine"
293 : LoopType::Plant, // "Chiller:ConstantCOP"
294 : LoopType::Plant, // "ChillerHeater:Absorption:DirectFired"
295 : LoopType::Plant, // "Chiller:Electric"
296 : LoopType::Plant, // "Chiller:Electric:EIR"
297 : LoopType::Plant, // "Chiller:Electric:ReformulatedEIR"
298 : LoopType::Plant, // "Chiller:Electric:ASHRAE205"
299 : LoopType::Plant, // "Chiller:EngineDriven"
300 : LoopType::Both, // "CoolingTower:SingleSpeed"
301 : LoopType::Both, // "CoolingTower:TwoSpeed"
302 : LoopType::Both, // "CoolingTower:VariableSpeed"
303 : LoopType::Plant, // "Generator:Fuelcell:ExhaustGastoWaterHeatExchanger"
304 : LoopType::Plant, // "WaterHeater:HeatPump:PumpedCondenser"
305 : LoopType::Plant, // "Heatpump:WatertoWater:Equationfit:Cooling"
306 : LoopType::Plant, // "Heatpump:WatertoWater:Equationfit:Heating"
307 : LoopType::Plant, // "Heatpump:WatertoWater:ParameterEstimation:Cooling"
308 : LoopType::Plant, // "Heatpump:WatertoWater:ParameterEstimation:Heating"
309 : LoopType::Both, // "Pipe:Adiabatic"
310 : LoopType::Both, // "Pipe:Adiabatic:Steam"
311 : LoopType::Both, // "Pipe:Outdoor"
312 : LoopType::Both, // "Pipe:Indoor"
313 : LoopType::Both, // "Pipe:Underground"
314 : LoopType::Both, // "DistrictCooling"
315 : LoopType::Both, // "DistrictHeating"
316 : LoopType::Plant, // "ThermalStorage:Ice:Detailed"
317 : LoopType::Plant, // "ThermalStorage:Ice:Simple"
318 : LoopType::Both, // "TemperingValve"
319 : LoopType::Both, // "WaterHeater:Mixed"
320 : LoopType::Both, // "WaterHeater:Stratified"
321 : LoopType::Both, // "Pump:VariableSpeed"
322 : LoopType::Both, // "Pump:ConstantSpeed"
323 : LoopType::Both, // "Pump:VariableSpeed:Condensate"
324 : LoopType::Both, // "HeaderedPumps:VariableSpeed"
325 : LoopType::Both, // "HeaderedPumps:ConstantSpeed"
326 : LoopType::Plant, // "WaterUse:Connections"
327 : LoopType::Plant, // "Coil:Cooling:Water"
328 : LoopType::Plant, // "Coil:Cooling:Water:DetailedGeometry"
329 : LoopType::Plant, // "Coil:Heating:Water"
330 : LoopType::Plant, // "Coil:Heating:Steam"
331 : LoopType::Plant, // "Solarcollector:Flatplate:Water"
332 : LoopType::Both, // "LoadProfile:Plant"
333 : LoopType::Both, // "GroundHeatExchanger:System"
334 : LoopType::Both, // "GroundHeatExchanger:Surface"
335 : LoopType::Both, // "GroundHeatExchanger:Pond"
336 : LoopType::Plant, // "Generator:Microturbine"
337 : LoopType::Plant, // "Generator:InternalCombustionEngine"
338 : LoopType::Plant, // "Generator:CombustionTurbine"
339 : LoopType::Plant, // "Generator:Microchp"
340 : LoopType::Plant, // "Generator:Fuelcell:StackCooler"
341 : LoopType::Both, // "FluidCooler:SingleSpeed"
342 : LoopType::Both, // "FluidCooler:TwoSpeed"
343 : LoopType::Both, // "EvaporativeFluidCooler:SingleSpeed"
344 : LoopType::Both, // "EvaporativeFluidCooler:TwoSpeed"
345 : LoopType::Both, // "ThermalStorage:ChilledWater:Mixed"
346 : LoopType::Both, // "ThermalStorage:ChilledWater:Stratified"
347 : LoopType::Both, // "SolarCollector:FlatPlate:PhotovoltaicThermal"
348 : LoopType::Plant, // "ZoneHVAC:Baseboard:Convective:Water"
349 : LoopType::Plant, // "ZoneHVAC:Baseboard:RadiantConvective:Steam"
350 : LoopType::Plant, // "ZoneHVAC:Baseboard:RadiantConvective:Water"
351 : LoopType::Plant, // "ZoneHVAC:LowTemperatureRadiant:VariableFlow"
352 : LoopType::Plant, // "ZoneHVAC:LowTemperatureRadiant:ConstantFlow"
353 : LoopType::Both, // "AirTerminal:SingleDuct:ConstantVolume:CooledBeam"
354 : LoopType::Both, // "Coil:Heating:WaterToAirHeatPump:EquationFit"
355 : LoopType::Both, // "Coil:Cooling:WaterToAirHeatPump:EquationFit"
356 : LoopType::Both, // "Coil:Heating:WaterToAirHeatPump:ParameterEstimation"
357 : LoopType::Both, // "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation"
358 : LoopType::Both, // "Refrigeration:Condenser:WaterCooled"
359 : LoopType::Both, // "Refrigeration:CompressorRack"
360 : LoopType::Plant, // "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed"
361 : LoopType::Plant, // "ChillerHeater:Absorption:DoubleEffect"
362 : LoopType::Both, // "PipingSystem:Underground:PipeCircuit"
363 : LoopType::Both, // "SolarCollector:IntegralCollectorStorage"
364 : LoopType::Both, // "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit"
365 : LoopType::Both, // "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit"
366 : LoopType::Both, // "PlantComponent:UserDefined"
367 : LoopType::Both, // "Coil:UserDefined"
368 : LoopType::Both, // "ZoneHVAC:ForcedAir:UserDefined"
369 : LoopType::Both, // "AirTerminal:SingleDuct:UserDefined"
370 : LoopType::Both, // "AirConditioner:VariableRefrigerantFlow"
371 : LoopType::Both, // "GroundHeatExchanger:HorizontalTrench"
372 : LoopType::Both, // "HeatExchanger:FluidToFluid"
373 : LoopType::Both, // "PlantComponent:TemperatureSource"
374 : LoopType::Plant, // "CentralHeatPumpSystem"
375 : LoopType::Plant, // "AirLoopHVAC:UnitarySystem"
376 : LoopType::Both, // "Coil:Cooling:DX:SingleSpeed:ThermalStorage"
377 : LoopType::Both, // "CoolingTower:VariableSpeed:Merkel"
378 : LoopType::Both, // "SwimmingPool:Indoor"
379 : LoopType::Both, // "GroundHeatExchanger:Slinky"
380 : LoopType::Plant, // "WaterHeater:HeatPump:WrappedCondenser"
381 : LoopType::Plant, // "AirTerminal:SingleDuct:ConstantVolume:FourPipeBeam"
382 : LoopType::Plant, // "ZoneHVAC:CoolingPanel:RadiantConvective:Water"
383 : LoopType::Both, // "HeatPump:PlantLoop:EIR:Cooling"
384 : LoopType::Both // "HeatPump:PlantLoop:EIR:Heating"
385 : };
386 : } // namespace DataPlant
387 :
388 1542 : struct DataPlantData : BaseGlobalStruct
389 : {
390 :
391 : int TotNumLoops = 0; // number of plant and condenser loops
392 : int TotNumHalfLoops = 0; // number of half loops (2 * TotNumLoops)
393 : bool PlantFirstSizeCompleted = false;
394 : bool PlantFirstSizesOkayToFinalize = false; // true if plant sizing is finishing and can save results
395 : bool PlantReSizingCompleted = false;
396 : bool PlantFirstSizesOkayToReport = false;
397 : bool PlantFinalSizesOkayToReport = false;
398 : bool AnyEMSPlantOpSchemesInModel = false;
399 : int PlantManageSubIterations = 0; // tracks plant iterations to characterize solver
400 : int PlantManageHalfLoopCalls = 0; // tracks number of half loop calls
401 : Array1D<DataPlant::PlantLoopData> PlantLoop;
402 : Array1D<DataPlant::PlantAvailMgrData> PlantAvailMgr;
403 : std::array<Array1D<DataPlant::ReportLoopData>, static_cast<int>(DataPlant::LoopSideLocation::Num)> VentRepPlant;
404 : std::array<Array1D<DataPlant::ReportLoopData>, static_cast<int>(DataPlant::LoopSideLocation::Num)> VentRepCond;
405 : Array1D<DataPlant::PlantCallingOrderInfoStruct> PlantCallingOrderInfo;
406 :
407 0 : void clear_state() override
408 : {
409 0 : this->TotNumLoops = 0;
410 0 : this->TotNumHalfLoops = 0;
411 0 : this->PlantFirstSizeCompleted = false;
412 0 : this->PlantFirstSizesOkayToFinalize = false;
413 0 : this->PlantReSizingCompleted = false;
414 0 : this->PlantFirstSizesOkayToReport = false;
415 0 : this->PlantFinalSizesOkayToReport = false;
416 0 : this->AnyEMSPlantOpSchemesInModel = false;
417 0 : this->PlantManageSubIterations = 0;
418 0 : this->PlantManageHalfLoopCalls = 0;
419 0 : this->PlantLoop.deallocate();
420 0 : this->PlantAvailMgr.deallocate();
421 0 : this->VentRepPlant[static_cast<int>(DataPlant::LoopSideLocation::Demand)].deallocate();
422 0 : this->VentRepPlant[static_cast<int>(DataPlant::LoopSideLocation::Supply)].deallocate();
423 0 : this->VentRepCond[static_cast<int>(DataPlant::LoopSideLocation::Demand)].deallocate();
424 0 : this->VentRepCond[static_cast<int>(DataPlant::LoopSideLocation::Supply)].deallocate();
425 0 : this->PlantCallingOrderInfo.deallocate();
426 0 : }
427 : };
428 :
429 : } // namespace EnergyPlus
430 :
431 : #endif
|