LCOV - code coverage report
Current view: top level - EnergyPlus/Plant - DataPlant.hh (source / functions) Coverage Total Hit
Test: lcov.output.filtered Lines: 100.0 % 22 22
Test Date: 2025-05-22 16:09:37 Functions: 100.0 % 3 3

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

Generated by: LCOV version 2.0-1