LCOV - code coverage report
Current view: top level - EnergyPlus - DataSizing.hh (source / functions) Hit Total Coverage
Test: lcov.output.filtered Lines: 52 55 94.5 %
Date: 2024-08-24 18:31:18 Functions: 12 13 92.3 %

          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 DataSizing_hh_INCLUDED
      49             : #define DataSizing_hh_INCLUDED
      50             : 
      51             : // ObjexxFCL Headers
      52             : #include <ObjexxFCL/Array1D.hh>
      53             : #include <ObjexxFCL/Array2D.hh>
      54             : 
      55             : // EnergyPlus Headers
      56             : #include <EnergyPlus/Data/BaseData.hh>
      57             : #include <EnergyPlus/DataGlobals.hh>
      58             : #include <EnergyPlus/DataHVACGlobals.hh>
      59             : #include <EnergyPlus/DataStringGlobals.hh>
      60             : #include <EnergyPlus/EPVector.hh>
      61             : #include <EnergyPlus/EnergyPlus.hh>
      62             : #include <EnergyPlus/ScheduleManager.hh>
      63             : 
      64             : namespace EnergyPlus {
      65             : 
      66             : // Forward declarations
      67             : struct EnergyPlusData;
      68             : 
      69             : namespace DataSizing {
      70             : 
      71             :     enum class OAFlowCalcMethod
      72             :     // parameters for outside air flow method
      73             :     {
      74             :         Invalid = -1,
      75             :         PerPerson,    // set the outdoor air flow rate based on number of people in the zone
      76             :         PerZone,      // sum the outdoor air flow rate per zone based on user input
      77             :         PerArea,      // sum the outdoor air flow rate based on zone area
      78             :         ACH,          // sum the outdoor air flow rate based on number of air changes for the zone
      79             :         Sum,          // sum the outdoor air flow rate of the people component and the space floor area component
      80             :         Max,          // use the maximum of the outdoor air flow rate of the people component and the space floor area component
      81             :         IAQProcedure, // Use ASHRAE Standard 62.1-2007 IAQP to calculate the zone level outdoor air flow rates
      82             :         PCOccSch,     // ProportionalControlBasedOnOccupancySchedule, Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) to
      83             :                       // calculate the zone level outdoor air flow rates based on scheduled occupancy
      84             :         PCDesOcc,     // ProportionalControlBasedOnDesignOccupancy, Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) to
      85             :                       // calculate the zone level outdoor air flow rates based on design occupancy
      86             :         Num
      87             :     };
      88             : 
      89             :     constexpr std::array<std::string_view, static_cast<int>(OAFlowCalcMethod::Num)> OAFlowCalcMethodNames{
      90             :         "Flow/Person",
      91             :         "Flow/Zone",
      92             :         "Flow/Area",
      93             :         "AirChanges/Hour",
      94             :         "Sum",
      95             :         "Maximum",
      96             :         "IndoorAirQualityProcedure",
      97             :         "ProportionalControlBasedOnOccupancySchedule",
      98             :         "ProportionalControlBasedOnDesignOccupancy"};
      99             : 
     100             :     // parameters for outside air
     101             :     enum class OAControl
     102             :     {
     103             :         Invalid = -1,
     104             :         AllOA,
     105             :         MinOA,
     106             :         Num
     107             :     };
     108             : 
     109             :     // parameters for loop fluid type
     110             :     enum class TypeOfPlantLoop
     111             :     {
     112             :         Invalid = -1,
     113             :         Heating,
     114             :         Cooling,
     115             :         Condenser,
     116             :         Steam,
     117             :         Num
     118             :     };
     119             : 
     120             :     // parameters for sizing (keep this for now to avoid plant sizing output changes)
     121             :     constexpr int NonCoincident(1);
     122             :     constexpr int Coincident(2);
     123             : 
     124             :     // parameters for zone and system sizing concurrence method
     125             :     enum class SizingConcurrence
     126             :     {
     127             :         Invalid = -1,
     128             :         NonCoincident,
     129             :         Coincident,
     130             :         Num
     131             :     };
     132             : 
     133             :     constexpr std::array<std::string_view, static_cast<int>(SizingConcurrence::Num)> SizingConcurrenceNamesUC{"NONCOINCIDENT", "COINCIDENT"};
     134             : 
     135             :     // parameters for coil sizing concurrence method
     136             :     enum class CoilSizingConcurrence
     137             :     {
     138             :         Invalid = -1,
     139             :         NonCoincident,
     140             :         Coincident,
     141             :         Combination,
     142             :         NA,
     143             :         Num
     144             :     };
     145             : 
     146             :     constexpr std::array<std::string_view, static_cast<int>(CoilSizingConcurrence::Num)> CoilSizingConcurrenceNames{
     147             :         "Non-Coincident", "Coincident", "Combination", "N/A"};
     148             : 
     149             :     // parameters for Cooling Peak Load Type
     150             :     enum class PeakLoad
     151             :     {
     152             :         Invalid = -1,
     153             :         SensibleCooling,
     154             :         TotalCooling,
     155             :         Num
     156             :     };
     157             : 
     158             :     // parameters for Central Cooling Capacity Control Method
     159             :     enum class CapacityControl
     160             :     {
     161             :         Invalid = -1,
     162             :         VAV,
     163             :         Bypass,
     164             :         VT,
     165             :         OnOff,
     166             :         Num
     167             :     };
     168             : 
     169             :     // parameters for supply air flow rate method
     170             :     constexpr int SupplyAirTemperature(1);
     171             :     constexpr int TemperatureDifference(2);
     172             :     constexpr int SupplyAirHumidityRatio(3);
     173             :     constexpr int HumidityRatioDifference(4);
     174             : 
     175             :     // parameters for sizing
     176             :     enum class AirflowSizingMethod
     177             :     {
     178             :         Invalid = -1,
     179             :         FromDDCalc,
     180             :         InpDesAirFlow,
     181             :         DesAirFlowWithLim,
     182             :         Num
     183             :     };
     184             : 
     185             :     enum class DOASControl
     186             :     {
     187             :         Invalid = -1,
     188             :         NeutralSup,
     189             :         NeutralDehumSup,
     190             :         CoolSup,
     191             :         Num
     192             :     };
     193             : 
     194             :     // parameters for Type of Load to Size On
     195             :     enum class LoadSizing
     196             :     {
     197             :         Invalid = -1,
     198             :         Sensible,
     199             :         Latent,
     200             :         Total,
     201             :         Ventilation,
     202             :         Num
     203             :     };
     204             : 
     205             :     // parameter for autosize
     206             :     constexpr Real64 AutoSize(-99999.0);
     207             : 
     208             :     // parameter for (time-of-peak) sizing format
     209             :     static constexpr std::string_view PeakHrMinFmt("{:02}:{:02}:00");
     210             : 
     211             :     // Zone Outdoor Air Method
     212             :     constexpr int ZOAM_ProportionalControlDesOcc(9); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5)
     213             :     // to calculate the zone level outdoor air flow rates based on design occupancy
     214             : 
     215             :     enum class SysOAMethod
     216             :     {
     217             :         Invalid = -1,
     218             :         ZoneSum, // Sum the outdoor air flow rates of all zones
     219             :         VRP,     // Use ASHRAE Standard 62.1-2007 to calculate the system level outdoor air flow rates
     220             :         IAQP,    // Use ASHRAE Standard 62.1-2007 IAQP to calculate the system level outdoor air flow rates based on the CO2 setpoint
     221             :         ProportionalControlSchOcc, // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) to calculate the system level outdoor
     222             :                                    // air flow rates based on scheduled occupancy
     223             :         IAQPGC,  // Use ASHRAE Standard 62.1-2004 IAQP to calculate the system level outdoor air flow rates based on the generic contaminant setpoint
     224             :         IAQPCOM, // Take the maximum outdoor air rate from both CO2 and generic contaminant controls based on the generic contaminant setpoint
     225             :         ProportionalControlDesOcc, // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) to calculate the system level outdoor
     226             :                                    // air flow rates based on design occupancy
     227             :         ProportionalControlDesOARate, // Calculate the system level outdoor air flow rates based on design OA rate
     228             :         SP,   // Use the ASHRAE Standard 62.1 Simplified Procedure to calculate the system level outdoor air flow rates considering the zone air
     229             :               // distribution effectiveness and the system ventilation efficiency
     230             :         VRPL, // Use ASHRAE Standard 62.1-2007 to calculate the system level outdoor air flow rates
     231             :         Num
     232             :     };
     233             : 
     234             :     constexpr std::array<std::string_view, static_cast<int>(SysOAMethod::Num)> SysOAMethodNames{"Zone Sum",
     235             :                                                                                                 "Ventilation Rate Procedure",
     236             :                                                                                                 "IAQ Proc",
     237             :                                                                                                 "Proportional - Sch Occupancy",
     238             :                                                                                                 "IAQ Proc - Generic Contaminant",
     239             :                                                                                                 "IAQ Proc - Max Gen Cont or CO2.",
     240             :                                                                                                 "Proportional - Des Occupancy",
     241             :                                                                                                 "Proportional - Des OA Rate",
     242             :                                                                                                 "Simplified Procure",
     243             :                                                                                                 "Ventilation Rate Procedure Level"};
     244             : 
     245             :     // Zone HVAC Equipment Sizing Option
     246             :     enum class DesignSizingType
     247             :     {
     248             :         Invalid = -1,
     249             :         Dummy1BasedOffset,
     250             :         None, // until all models use this enum this numeric must match with constexpr int None(1) below
     251             :         SupplyAirFlowRate,
     252             :         FlowPerFloorArea,
     253             :         FractionOfAutosizedCoolingAirflow,
     254             :         FractionOfAutosizedHeatingAirflow,
     255             :         FlowPerCoolingCapacity,
     256             :         FlowPerHeatingCapacity,
     257             :         CoolingDesignCapacity,
     258             :         HeatingDesignCapacity,
     259             :         CapacityPerFloorArea,
     260             :         FractionOfAutosizedCoolingCapacity,
     261             :         FractionOfAutosizedHeatingCapacity,
     262             :         Num
     263             : 
     264             :     };
     265             :     constexpr std::array<std::string_view, static_cast<int>(DesignSizingType::Num)> DesignSizingTypeNamesUC{"DUMMY1BASEDOFFSET",
     266             :                                                                                                             "NONE",
     267             :                                                                                                             "SUPPLYAIRFLOWRATE",
     268             :                                                                                                             "FLOWPERFLOORAREA",
     269             :                                                                                                             "FRACTIONOFAUTOSIZEDCOOLINGAIRFLOW",
     270             :                                                                                                             "FRACTIONOFAUTOSIZEDHEATINGAIRFLOW",
     271             :                                                                                                             "FLOWPERCOOLINGCAPACITY",
     272             :                                                                                                             "FLOWPERHEATINGCAPACITY",
     273             :                                                                                                             "COOLINGDESIGNCAPACITY",
     274             :                                                                                                             "HEATINGDESIGNCAPACITY",
     275             :                                                                                                             "CAPACITYPERFLOORAREA",
     276             :                                                                                                             "FRACTIONOFAUTOSIZEDCOOLINGCAPACITY",
     277             :                                                                                                             "FRACTIONOFAUTOSIZEDHEATINGCAPACITY"};
     278             : 
     279             :     constexpr int None(1);
     280             :     constexpr int SupplyAirFlowRate(2);
     281             :     constexpr int FlowPerFloorArea(3);
     282             :     constexpr int FractionOfAutosizedCoolingAirflow(4);
     283             :     constexpr int FractionOfAutosizedHeatingAirflow(5);
     284             :     constexpr int FlowPerCoolingCapacity(6);
     285             :     constexpr int FlowPerHeatingCapacity(7);
     286             : 
     287             :     constexpr int CoolingDesignCapacity(8);
     288             :     constexpr int HeatingDesignCapacity(9);
     289             :     constexpr int CapacityPerFloorArea(10);
     290             :     constexpr int FractionOfAutosizedCoolingCapacity(11);
     291             :     constexpr int FractionOfAutosizedHeatingCapacity(12);
     292             : 
     293             :     constexpr int NoSizingFactorMode(101);
     294             :     constexpr int GlobalHeatingSizingFactorMode(102);
     295             :     constexpr int GlobalCoolingSizingFactorMode(103);
     296             :     constexpr int LoopComponentSizingFactorMode(104);
     297             : 
     298             :     enum class ZoneSizing
     299             :     {
     300             :         Invalid = -1,
     301             :         Sensible,
     302             :         Latent,
     303             :         SensibleAndLatent,
     304             :         SensibleOnly,
     305             :         Num
     306             :     };
     307             :     constexpr std::array<std::string_view, static_cast<int>(ZoneSizing::Num)> ZoneSizingMethodNamesUC{
     308             :         "SENSIBLE LOAD", "LATENT LOAD", "SENSIBLE AND LATENT LOAD", "SENSIBLE LOAD ONLY NO LATENT LOAD"};
     309             : 
     310             :     // Types
     311             : 
     312             :     struct ZoneSizingInputData
     313             :     {
     314             :         // Members
     315             :         std::string ZoneName;      // name of a zone
     316             :         int ZoneNum = 0;           // index of the zone
     317             :         int ZnCoolDgnSAMethod = 0; // choice of how to get zone cooling design air temperature;
     318             :         //  1 = specify supply air temperature, 2 = calculate from the temperature difference
     319             :         int ZnHeatDgnSAMethod = 0; // choice of how to get zone heating design air temperature;
     320             :         //  1 = specify supply air temperature, 2 = calculate from the temperature difference
     321             :         Real64 CoolDesTemp = 0.0;        // zone design cooling supply air temperature [C]
     322             :         Real64 HeatDesTemp = 0.0;        // zone design heating supply air temperature [C]
     323             :         Real64 CoolDesTempDiff = 0.0;    // zone design cooling supply air temperature difference [deltaC]
     324             :         Real64 HeatDesTempDiff = 0.0;    // zone design heating supply air temperature difference [deltaC]
     325             :         Real64 CoolDesHumRat = 0.0;      // zone design cooling supply air humidity ratio [kgWater/kgDryAir]
     326             :         Real64 HeatDesHumRat = 0.0;      // zone design heating supply air humidity ratio [kgWater/kgDryAir]
     327             :         std::string DesignSpecOAObjName; // name of the DesignSpecification:OutdoorAir or DesignSpecification:OutdoorAir:SpaceList object
     328             :         AirflowSizingMethod CoolAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get zone cooling design air flow rates;
     329             :         //  0 = calc from des day simulation; 1 = m3/s per zone, user input' 2 = apply limits to air flow rate from DD calc
     330             :         Real64 DesCoolAirFlow = 0.0;           // design zone supply air flow rate [m3/s]
     331             :         Real64 DesCoolMinAirFlowPerArea = 0.0; // design cooling minimum air flow rate per zone area [m3/s / m2]
     332             :         Real64 DesCoolMinAirFlow = 0.0;        // design cooling minimum air flow rate [m3/s]
     333             :         Real64 DesCoolMinAirFlowFrac = 0.0;    // design cooling minimum air flow rate fraction
     334             :         //  (of the cooling design air flow rate)
     335             :         AirflowSizingMethod HeatAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get zone heating design air flow rates;
     336             :         //  0 = calc from des day simulation; 1 = m3/s per zone, user input; 2 = apply limits to air flow rate from DD calc
     337             :         Real64 DesHeatAirFlow = 0.0;           // design zone heating supply air flow rate [m3/s]
     338             :         Real64 DesHeatMaxAirFlowPerArea = 0.0; // design heating maximum air flow rate per zone area [m3/s / m2]
     339             :         Real64 DesHeatMaxAirFlow = 0.0;        // design heating maximum air flow rate [m3/s]
     340             :         Real64 DesHeatMaxAirFlowFrac = 0.0;    // design heating maximum air flow rate fraction (of the cooling design air flow rate)
     341             :         Real64 HeatSizingFactor = 0.0;         // the zone heating sizing ratio
     342             :         Real64 CoolSizingFactor = 0.0;         // the zone cooling sizing ratio
     343             :         Real64 ZoneADEffCooling = 0.0;
     344             :         Real64 ZoneADEffHeating = 0.0;
     345             :         std::string ZoneAirDistEffObjName;       // name of the zone air distribution effectiveness object name
     346             :         int ZoneAirDistributionIndex = 0;        // index to the zone air distribution object
     347             :         int ZoneDesignSpecOAIndex = 0;           // index to the zone design spec OA object
     348             :         Real64 ZoneSecondaryRecirculation = 0.0; // the zone secondary air recirculation fraction
     349             :         Real64 ZoneVentilationEff = 0.0;         // zone ventilation efficiency
     350             :         bool AccountForDOAS = false;             // False: do nothing; True: calculate the effect of a DOA system on the zone sizing arrays
     351             :         DOASControl DOASControlStrategy = DOASControl::Invalid; // 0=neutral ventilation air; 1=neutral dehumidified ventilation air, 2 = cooled air;
     352             :         Real64 DOASLowSetpoint = 0.0;                           // Dedicated Outside Air Low Setpoint for Design [C]
     353             :         Real64 DOASHighSetpoint = 0.0;                          // Dedicated Outside Air High Setpoint for Design [C]
     354             :         DataSizing::SizingConcurrence spaceConcurrence = DataSizing::SizingConcurrence::Coincident; // coincident or noncoincident space loads
     355             : 
     356             :         // zone latent sizing inputs
     357             :         bool zoneLatentSizing = false;
     358             :         Real64 zoneRHDehumidifySetPoint = 50.0;
     359             :         Real64 zoneRHHumidifySetPoint = 50.0;
     360             :         Real64 LatentCoolDesHumRat = 0.0;                  // zone design dehumidification supply air humidity ratio [kgw/kga]
     361             :         Real64 CoolDesHumRatDiff = 0.005;                  // zone design cooling supply air humidity ratio difference [deltakgw/kga]
     362             :         Real64 LatentHeatDesHumRat = 0.0;                  // zone design humidification supply air humidity ratio [kgw/kga]
     363             :         Real64 HeatDesHumRatDiff = 0.005;                  // zone design heating supply air humidity ratio temperature difference [deltakgw/kga]
     364             :         int ZnLatCoolDgnSAMethod = 0;                      // choice of how to get zone latent cooling design air humidity ratio;
     365             :         int ZnLatHeatDgnSAMethod = 0;                      // choice of how to get zone latent heating design air humidity ratio;
     366             :         int zoneRHDehumidifySchIndex = 0;                  // index to zone RH dehumidifying schedule used for zone sizing
     367             :         int zoneRHHumidifySchIndex = 0;                    // index to zone RH humidifying schedule used for zone sizing
     368             :         ZoneSizing zoneSizingMethod = ZoneSizing::Invalid; // load to sizing on: sensible, latent, sensibleandlatent, sensibleonlynolatent
     369             :     };
     370             : 
     371             :     // based on ZoneSizingData but only member variables that are actually used by terminal unit sizing
     372             :     struct TermUnitZoneSizingCommonData
     373             :     {
     374             :         std::string ZoneName;           // name of a zone
     375             :         std::string ADUName;            // Terminal Unit Name (air distribution unit or direct air unit) - only assigned for TermUnitFinalZoneSizing
     376             :         Real64 CoolDesTemp = 0.0;       // zone design cooling supply air temperature [C]
     377             :         Real64 HeatDesTemp = 0.0;       // zone design heating supply air temperature [C]
     378             :         Real64 CoolDesHumRat = 0.0;     // zone design cooling supply air humidity ratio [kgWater/kgDryAir]
     379             :         Real64 HeatDesHumRat = 0.0;     // zone design heating supply air humidity ratio [kgWater/kgDryAir]
     380             :         Real64 DesOAFlowPPer = 0.0;     // design outside air flow per person in zone [m3/s] (average for zone across spaces)
     381             :         Real64 DesOAFlowPerArea = 0.0;  // design outside air flow per zone area [m3/s / m2] (average for zone across spaces)
     382             :         Real64 DesCoolMinAirFlow = 0.0; // design cooling minimum air flow rate [m3/s]
     383             :         Real64 DesCoolMinAirFlowFrac = 0.0; // design cooling minimum air flow rate fraction (of the cooling design air flow rate)
     384             :         Real64 DesHeatMaxAirFlow = 0.0;     // design heating maximum air flow rate [m3/s]
     385             :         Real64 DesHeatMaxAirFlowFrac = 0.0; // design heating maximum air flow rate fraction (of the cooling design air flow rate)
     386             :         int ZoneNum = 0;                    // index into the Zone data array (in DataHeatBalance)
     387             :         Real64 DesHeatMassFlow = 0.0;       // zone design heating air mass flow rate [kg/s]
     388             :         Real64 DesHeatMassFlowNoOA = 0.0;   // zone design heating air mass flow rate without applying MinOA as a limit [kg/s]
     389             :         Real64 DesHeatOAFlowFrac = 0.0;     // zone design heating OA air volume fraction [-]
     390             :         Real64 DesCoolMassFlow = 0.0;       // zone design cooling air mass flow rate [kg/s]
     391             :         Real64 DesCoolMassFlowNoOA = 0.0;   // zone design cooling air mass flow rate without applying MinOA as a limit [kg/s]
     392             :         Real64 DesCoolOAFlowFrac = 0.0;     // zone design cooling OA air volume fraction [-]
     393             :         Real64 DesHeatLoad = 0.0;           // zone design heating load including sizing factor and scaled to match airflow sizing [W]
     394             :         Real64 NonAirSysDesHeatLoad = 0.0;  // base zone design heating load including sizing factor [W]
     395             :         Real64 DesCoolLoad = 0.0;           // zone design cooling load including sizing factor and scaled to match airflow sizing [W]
     396             :         Real64 NonAirSysDesCoolLoad = 0.0;  // base zone design cooling load including sizing factor [W]
     397             :         Real64 DesHeatVolFlow = 0.0;     // zone design heating air volume flow rate including sizing factor and scaled to match airflow sizing [m3/s]
     398             :         Real64 DesHeatVolFlowNoOA = 0.0; // zone design heating air volume flow rate including sizing factor and scaled to match airflow sizing
     399             :                                          // without MinOA limit [m3/s]
     400             :         Real64 NonAirSysDesHeatVolFlow = 0.0;    // base zone design heating air volume flow rate including sizing factor [m3/s]
     401             :         Real64 DesCoolVolFlow = 0.0;             // zone design cooling air volume flow rate [m3/s]
     402             :         Real64 DesCoolVolFlowNoOA = 0.0;         // zone design cooling air volume flow rate without applying MinOA as a limit [m3/s]
     403             :         Real64 NonAirSysDesCoolVolFlow = 0.0;    // base zone design cooling air volume flow rate including sizing factor [m3/s]
     404             :         Real64 DesHeatVolFlowMax = 0.0;          // zone design heating maximum air volume flow rate [m3/s]
     405             :         Real64 DesCoolVolFlowMin = 0.0;          // zone design cooling minimum air volume flow rate [m3/s]
     406             :         Real64 DesHeatCoilInTempTU = 0.0;        // zone heating coil design air inlet temperature (supply air)([C]
     407             :         Real64 DesCoolCoilInTempTU = 0.0;        // zone cooling coil design air inlet temperature (supply air)[C]
     408             :         Real64 DesHeatCoilInHumRatTU = 0.0;      // zone heating coil design air inlet humidity ratio  [kg/kg]
     409             :         Real64 DesCoolCoilInHumRatTU = 0.0;      // zone cooling coil design air inlet humidity ratio  [kg/kg]
     410             :         Real64 ZoneTempAtHeatPeak = 0.0;         // zone temp at max heating [C]
     411             :         Real64 ZoneRetTempAtHeatPeak = 0.0;      // zone return temp at max heating [C]
     412             :         Real64 ZoneTempAtCoolPeak = 0.0;         // zone temp at max cooling [C]
     413             :         Real64 ZoneRetTempAtCoolPeak = 0.0;      // zone return temp at max cooling [C]
     414             :         Real64 ZoneHumRatAtHeatPeak = 0.0;       // zone humidity ratio at max heating [kg/kg]
     415             :         Real64 ZoneHumRatAtCoolPeak = 0.0;       // zone humidity ratio at max cooling [kg/kg]
     416             :         int TimeStepNumAtHeatMax = 0;            // time step number (in day) at Heating peak
     417             :         int TimeStepNumAtCoolMax = 0;            // time step number (in day) at cooling peak
     418             :         int HeatDDNum = 0;                       // design day index of design day causing heating peak
     419             :         int CoolDDNum = 0;                       // design day index of design day causing cooling peak
     420             :         Real64 MinOA = 0.0;                      // design minimum outside air in m3/s
     421             :         Real64 DesCoolMinAirFlow2 = 0.0;         // design cooling minimum air flow rate [m3/s] derived from DesCoolMinAirFlowPerArea
     422             :         Real64 DesHeatMaxAirFlow2 = 0.0;         // design heating maximum air flow rate [m3/s] derived from DesHeatMaxAirFlowPerArea
     423             :         Array1D<Real64> HeatFlowSeq;             // daily sequence of zone heating air mass flow rate (zone time step) [kg/s]
     424             :         Array1D<Real64> HeatFlowSeqNoOA;         // daily sequence of zone heating air mass flow rate (zone time step) without MinOA limit [kg/s]
     425             :         Array1D<Real64> CoolFlowSeq;             // daily sequence of zone cooling air mass flow rate (zone time step) [kg/s]
     426             :         Array1D<Real64> CoolFlowSeqNoOA;         // daily sequence of zone cooling air mass flow rate (zone time step) without MinOA limit [kg/s]
     427             :         EPVector<Real64> HeatZoneTempSeq;        // daily sequence of zone temperatures (heating, zone time step)
     428             :         Array1D<Real64> HeatZoneRetTempSeq;      // daily sequence of zone return temperatures (heating, zone time step)
     429             :         EPVector<Real64> CoolZoneTempSeq;        // daily sequence of zone temperatures (cooling, zone time step)
     430             :         Array1D<Real64> CoolZoneRetTempSeq;      // daily sequence of zone return temperatures (cooling, zone time step)
     431             :         Real64 ZoneADEffCooling = 1.0;           // the zone air distribution effectiveness in cooling mode
     432             :         Real64 ZoneADEffHeating = 1.0;           // the zone air distribution effectiveness in heating mode
     433             :         Real64 ZoneSecondaryRecirculation = 0.0; // the zone secondary air recirculation fraction
     434             :         Real64 ZoneVentilationEff = 0.0;         // zone ventilation efficiency
     435             :         Real64 ZonePrimaryAirFraction = 0.0;     // the zone primary air fraction for cooling based calculations
     436             :         Real64 ZonePrimaryAirFractionHtg = 0.0;  // the zone primary air fraction for heating based calculations
     437             :         Real64 ZoneOAFracCooling = 0.0;          // OA fraction in cooling mode
     438             :         Real64 ZoneOAFracHeating = 0.0;          // OA fraction in heating mode
     439             :         Real64 TotalOAFromPeople = 0.0;          // Zone OA required due to people
     440             :         Real64 TotalOAFromArea = 0.0;            // Zone OA required based on floor area
     441             :         Real64 TotPeopleInZone = 0.0;            // total number of people in the zone
     442             :         Real64 TotalZoneFloorArea = 0.0;         // total zone floor area
     443             :         Real64 SupplyAirAdjustFactor = 1.0;      // supply air adjustment factor for next time step if OA is capped
     444             :         Real64 ZpzClgByZone = 0.0;               // OA Std 62.1 required fraction in cooling mode ? should this be ZdzClgByZone
     445             :         Real64 ZpzHtgByZone = 0.0;               // OA Std 62.1 required fraction in heating mode ? should this be ZdzHtgByZone
     446             :         Real64 VozClgByZone = 0.0; // value of required cooling vent to zone, used in 62.1 tabular report, already includes people diversity term
     447             :         Real64 VozHtgByZone = 0.0; // value of required heating vent to zone, used in 62.1 tabular report, already includes people diversity term
     448             :         bool VpzMinByZoneSPSized = false;    // is Vpz_min sized using the 62.1 Standard Simplified Procedure
     449             :         Real64 ZoneSizThermSetPtHi = 0.0;    // highest zone thermostat setpoint during zone sizing calcs
     450             :         Real64 ZoneSizThermSetPtLo = 1000.0; // lowest zone thermostat setpoint during zone sizing calcs
     451             :     };
     452             : 
     453             :     struct ZoneSizingData : TermUnitZoneSizingCommonData
     454             :     {
     455             :         // Members
     456             :         std::string CoolDesDay;    // name of a cooling design day
     457             :         std::string HeatDesDay;    // name of a heating design day
     458             :         int ZnCoolDgnSAMethod = 0; // choice of how to get zone cooling design air temperature;
     459             :         //  1 = specify supply air temperature, 2 = calculate from the temperature difference
     460             :         int ZnHeatDgnSAMethod = 0; // choice of how to get zone heating design air temperature;
     461             :         //  1 = specify supply air temperature, 2 = calculate from the temperature difference
     462             :         Real64 CoolDesTempDiff = 0.0;                                        // zone design cooling supply air temperature difference [deltaC]
     463             :         Real64 HeatDesTempDiff = 0.0;                                        // zone design heating supply air temperature difference [deltaC]
     464             :         int ZoneAirDistributionIndex = 0;                                    // index to DesignSpecification:ZoneAirDistribution object
     465             :         int ZoneDesignSpecOAIndex = 0;                                       // index to DesignSpecification:OutdoorAir object
     466             :         AirflowSizingMethod CoolAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get zone cooling design air flow rates;
     467             :         //  0 = calc from des day simulation; 1 = m3/s per zone, user input; 2 = apply limits to air flow rate from DD calc
     468             :         Real64 InpDesCoolAirFlow = 0.0;                                      // design zone supply air flow rate [m3/s]
     469             :         Real64 DesCoolMinAirFlowPerArea = 0.0;                               // design cooling minimum air flow rate per zone area [m3/s / m2]
     470             :         AirflowSizingMethod HeatAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get zone heating design air flow rates;
     471             :         //  1 = calc from des day simulation; 2 = m3/s per zone, user input
     472             :         //  3 = apply limits to air flow rate from DD calc
     473             :         Real64 InpDesHeatAirFlow = 0.0;        // design zone heating supply air flow rate [m3/s]
     474             :         Real64 DesHeatMaxAirFlowPerArea = 0.0; // design heating maximum air flow rate per zone area [m3/s / m2]
     475             :         Real64 HeatSizingFactor = 0.0;         // the zone heating sizing ratio
     476             :         Real64 CoolSizingFactor = 0.0;         // the zone cooling sizing ratio
     477             :         bool AccountForDOAS = false;           // False: do nothing; True: calculate the effect of a DOA system on the zone sizing arrays
     478             :         DOASControl DOASControlStrategy = DOASControl::Invalid; // 0=neutral ventilation air; 1=neutral dehumidified ventilation air, 2 = cooled air;
     479             :         // 3=supply cold ventilation air
     480             :         Real64 DOASLowSetpoint = 0.0;  // Dedicated Outside Air Low Setpoint for Design [C]
     481             :         Real64 DOASHighSetpoint = 0.0; // Dedicated Outside Air High Setpoint for Design [C]
     482             :         DataSizing::SizingConcurrence spaceConcurrence = DataSizing::SizingConcurrence::Coincident; // coincident or noncoincident space loads
     483             :         bool EMSOverrideDesHeatMassOn = false;                                                      // true if EMS is acting on this structure
     484             :         Real64 EMSValueDesHeatMassFlow = 0.0;  // Value EMS directing to use for Design Heating air mass flow [kg/s]
     485             :         bool EMSOverrideDesCoolMassOn = false; // true if EMS is acting on this structure
     486             :         Real64 EMSValueDesCoolMassFlow = 0.0;  // Value EMS directing to use for Design Cooling air mass flow [kg/s]
     487             :         bool EMSOverrideDesHeatLoadOn = false; // true if EMS is acting on this structure
     488             :         Real64 EMSValueDesHeatLoad = 0.0;      // Value EMS directing to use for zone design heating load  [W]
     489             :         bool EMSOverrideDesCoolLoadOn = false; // true if EMS is acting on this structure
     490             :         Real64 EMSValueDesCoolLoad = 0.0;      // Value EMS directing to use for zone design cooling load  [W]
     491             :         Real64 DesHeatDens = 0.0;              // zone design heating air density [kg/m3]
     492             :         Real64 DesCoolDens = 0.0;              // zone design cooling air density [kg/m3]
     493             :         bool EMSOverrideDesHeatVolOn = false;  // true if EMS is acting on this structure
     494             :         Real64 EMSValueDesHeatVolFlow = 0.0;   // Value EMS directing to use for Design Heating air volume flow [m3/s]
     495             :         bool EMSOverrideDesCoolVolOn = false;  // true if EMS is acting on this structure
     496             :         Real64 EMSValueDesCoolVolFlow = 0.0;   // Value EMS directing to use for Design cooling air volume flow [m3/s]
     497             :         Real64 DesHeatCoilInTemp = 0.0;        // zone heating coil design air inlet temperature [C]
     498             :         Real64 DesCoolCoilInTemp = 0.0;        // zone cooling coil design air inlet temperature [C]
     499             :         Real64 DesHeatCoilInHumRat = 0.0;      // zone heating coil design air inlet humidity ratio [kg/kg]
     500             :         Real64 DesCoolCoilInHumRat = 0.0;      // zone cooling coil design air inlet humidity ratio [kg/kg]
     501             :         Real64 HeatMassFlow = 0.0;             // current zone heating air mass flow rate (HVAC time step)
     502             :         Real64 CoolMassFlow = 0.0;             // current zone cooling air mass flow rate (HVAC time step)
     503             :         Real64 HeatLoad = 0.0;                 // current zone heating load (HVAC time step)
     504             :         Real64 CoolLoad = 0.0;                 // current zone heating load (HVAC time step)
     505             :         Real64 HeatZoneTemp = 0.0;             // current zone temperature (heating, time step)
     506             :         Real64 HeatOutTemp = 0.0;              // current outdoor temperature (heating, time step)
     507             :         Real64 HeatZoneRetTemp = 0.0;          // current zone return temperature (heating, time step)
     508             :         Real64 HeatTstatTemp = 0.0;            // current zone thermostat temperature (heating, time step)
     509             :         Real64 CoolZoneTemp = 0.0;             // current zone temperature (cooling, time step)
     510             :         Real64 CoolOutTemp = 0.0;              // current Outdoor temperature (cooling, time step)
     511             :         Real64 CoolZoneRetTemp = 0.0;          // current zone return temperature (cooling, time step)
     512             :         Real64 CoolTstatTemp = 0.0;            // current zone thermostat temperature (cooling, time step)
     513             :         Real64 HeatZoneHumRat = 0.0;           // current zone humidity ratio (heating, time step)
     514             :         Real64 CoolZoneHumRat = 0.0;           // current zone humidity ratio (cooling, time step)
     515             :         Real64 HeatOutHumRat = 0.0;            // current outdoor humidity ratio (heating, time step)
     516             :         Real64 CoolOutHumRat = 0.0;            // current outdoor humidity ratio (cooling, time step)
     517             :         Real64 OutTempAtHeatPeak = 0.0;        // outdoor temperature at max heating [C]
     518             :         Real64 OutTempAtCoolPeak = 0.0;        // outdoor temperature at max cooling [C]
     519             :         Real64 OutHumRatAtHeatPeak = 0.0;      // outdoor humidity at max heating [kg/kg]
     520             :         Real64 OutHumRatAtCoolPeak = 0.0;      // outdoor humidity at max cooling [kg/kg]
     521             :         std::string cHeatDDDate;               // date of design day causing heating peak
     522             :         std::string cCoolDDDate;               // date of design day causing cooling peak
     523             :         Array1D<Real64> HeatLoadSeq;           // daily sequence of zone heating load (zone time step)
     524             :         Array1D<Real64> CoolLoadSeq;           // daily sequence of zone cooling load (zone time step)
     525             :         Array1D<Real64> HeatOutTempSeq;        // daily sequence of outdoor temperatures (heating, zone time step)
     526             :         Array1D<Real64> HeatTstatTempSeq;      // daily sequence of zone thermostat temperatures (heating, zone time step)
     527             :         Array1D<Real64> DesHeatSetPtSeq;       // daily sequence of indoor set point temperatures (zone time step)
     528             :         Array1D<Real64> CoolOutTempSeq;        // daily sequence of outdoor temperatures (cooling, zone time step)
     529             :         Array1D<Real64> CoolTstatTempSeq;      // daily sequence of zone thermostat temperatures (cooling, zone time step)
     530             :         Array1D<Real64> DesCoolSetPtSeq;       // daily sequence of indoor set point temperatures (zone time step)
     531             :         Array1D<Real64> HeatZoneHumRatSeq;     // daily sequence of zone humidity ratios (heating, zone time step)
     532             :         Array1D<Real64> CoolZoneHumRatSeq;     // daily sequence of zone humidity ratios (cooling, zone time step)
     533             :         Array1D<Real64> HeatOutHumRatSeq;      // daily sequence of outdoor humidity ratios (heating, zone time step)
     534             :         Array1D<Real64> CoolOutHumRatSeq;      // daily sequence of outdoor humidity ratios (cooling, zone time step)
     535             :         Real64 ZonePeakOccupancy = 0.0;        // zone peak occupancy based on max schedule value
     536             :         Real64 DOASHeatLoad = 0.0;             // current heating load from DOAS supply air [W]
     537             :         Real64 DOASCoolLoad = 0.0;             // current cooling load from DOAS supply air [W]
     538             :         Real64 DOASHeatAdd = 0.0;              // current heat addition rate from DOAS supply air [W]
     539             :         Real64 DOASLatAdd = 0.0;               // current latent heat addition rate from DOAS supply air [W]
     540             :         Real64 DOASSupMassFlow = 0.0;          // current mass flow rate of DOAS supply air [kg/s]
     541             :         Real64 DOASSupTemp = 0.0;              // current DOAS supply air temperature [C]
     542             :         Real64 DOASSupHumRat = 0.0;            // current DOAS supply air humidity ratio [kgWater/kgDryAir]
     543             :         Real64 DOASTotCoolLoad = 0.0;          // current total cooling load imposed by DOAS supply air [W]
     544             :         Array1D<Real64> DOASHeatLoadSeq;       // daily sequence of zone DOAS heating load (zone time step) [W]
     545             :         Array1D<Real64> DOASCoolLoadSeq;       // daily sequence of zone DOAS cooling load (zone time step) [W]
     546             :         Array1D<Real64> DOASHeatAddSeq;        // daily sequence of zone DOAS heat addition rate (zone time step) [W]
     547             :         Array1D<Real64> DOASLatAddSeq;         // daily sequence of zone DOAS latent heat addition rate (zone time step) [W]
     548             :         Array1D<Real64> DOASSupMassFlowSeq;    // daily sequence of zone DOAS supply mass flow rate (zone time step) [Kg/s]
     549             :         Array1D<Real64> DOASSupTempSeq;        // daily sequence of zone DOAS supply temperature (zone time step) [C]
     550             :         Array1D<Real64> DOASSupHumRatSeq;      // daily sequence of zone DOAS supply humidity ratio (zone time step) [kgWater/kgDryAir]
     551             :         Array1D<Real64> DOASTotCoolLoadSeq;    // daily sequence of zone DOAS total cooling load (zone time step) [W]
     552             : 
     553             :         // Latent heat variables
     554             :         Real64 HeatLoadNoDOAS = 0.0;                       // current zone heating load no DOAS (HVAC time step)
     555             :         Real64 CoolLoadNoDOAS = 0.0;                       // current zone heating load no DOAS (HVAC time step)
     556             :         Real64 DesHeatLoadNoDOAS = 0.0;                    // design zone heating load no DOAS (HVAC time step)
     557             :         Real64 DesCoolLoadNoDOAS = 0.0;                    // design zone heating load no DOAS (HVAC time step)
     558             :         Real64 HeatLatentLoad = 0.0;                       // current zone humidification load (HVAC time step)
     559             :         Real64 CoolLatentLoad = 0.0;                       // current zone dehumidification load (HVAC time step)
     560             :         Real64 HeatLatentLoadNoDOAS = 0.0;                 // current zone humidification load without DOAS (HVAC time step)
     561             :         Real64 CoolLatentLoadNoDOAS = 0.0;                 // current zone dehumidification load without DOAS (HVAC time step)
     562             :         Real64 ZoneHeatLatentMassFlow = 0.0;               // current mass flow rate required to meet humidification load [kg/s]
     563             :         Real64 ZoneCoolLatentMassFlow = 0.0;               // current mass flow rate required to meet dehumidification load [kg/s]
     564             :         Real64 ZoneHeatLatentVolFlow = 0.0;                // current volume flow rate required to meet humidification load [m3/s]
     565             :         Real64 ZoneCoolLatentVolFlow = 0.0;                // current volume flow rate required to meet dehumidification load [m3/s]
     566             :         Real64 DesLatentHeatLoad = 0.0;                    // design zone humidification load (HVAC time step)
     567             :         Real64 DesLatentCoolLoad = 0.0;                    // design zone dehumidification load (HVAC time step)
     568             :         Real64 DesLatentHeatLoadNoDOAS = 0.0;              // design zone humidification load no DOAS (HVAC time step)
     569             :         Real64 DesLatentCoolLoadNoDOAS = 0.0;              // design zone dehumidification load no DOAS (HVAC time step)
     570             :         Real64 DesLatentHeatMassFlow = 0.0;                // design mass flow rate required to meet humidification load [kg/s]
     571             :         Real64 DesLatentCoolMassFlow = 0.0;                // design mass flow rate required to meet dehumidification load [kg/s]
     572             :         Real64 DesLatentHeatVolFlow = 0.0;                 // design volume flow rate required to meet humidification load [kg/s]
     573             :         Real64 DesLatentCoolVolFlow = 0.0;                 // design volume flow rate required to meet dehumidification load [kg/s]
     574             :         Real64 ZoneTempAtLatentCoolPeak = 0.0;             // zone temp at max latent cooling [C]
     575             :         Real64 OutTempAtLatentCoolPeak = 0.0;              // outdoor temp at max latent cooling [C]
     576             :         Real64 ZoneHumRatAtLatentCoolPeak = 0.0;           // zone humrat at max latent cooling [kg/kg]
     577             :         Real64 OutHumRatAtLatentCoolPeak = 0.0;            // outdoor humrat at max latent cooling [kg/kg]
     578             :         Real64 ZoneTempAtLatentHeatPeak = 0.0;             // zone temp at max latent heating [C]
     579             :         Real64 OutTempAtLatentHeatPeak = 0.0;              // outdoor temp at max latent heating [C]
     580             :         Real64 ZoneHumRatAtLatentHeatPeak = 0.0;           // zone humrat at max latent heating [kg/kg]
     581             :         Real64 OutHumRatAtLatentHeatPeak = 0.0;            // outdoor humrat at max latent heating [kg/kg]
     582             :         Real64 DesLatentHeatCoilInTemp = 0.0;              // zone latent heating coil design air inlet temperature [C]
     583             :         Real64 DesLatentCoolCoilInTemp = 0.0;              // zone latent cooling coil design air inlet temperature [C]
     584             :         Real64 DesLatentHeatCoilInHumRat = 0.0;            // zone latent heating coil design air inlet humidity ratio [kg/kg]
     585             :         Real64 DesLatentCoolCoilInHumRat = 0.0;            // zone latent cooling coil design air inlet humidity ratio [kg/kg]
     586             :         int TimeStepNumAtLatentHeatMax = 0;                // time step number (in day) at heating peak
     587             :         int TimeStepNumAtLatentCoolMax = 0;                // time step number (in day) at cooling peak
     588             :         int TimeStepNumAtLatentHeatNoDOASMax = 0;          // time step number (in day) at latent heating peak without DOAS
     589             :         int TimeStepNumAtLatentCoolNoDOASMax = 0;          // time step number (in day) at Latent cooling peak without DOAS
     590             :         int LatentHeatDDNum = 0;                           // design day index of design day causing heating peak
     591             :         int LatentCoolDDNum = 0;                           // design day index of design day causing cooling peak
     592             :         int LatentHeatNoDOASDDNum = 0;                     // design day index of design day causing latent heating peak with no DOAS
     593             :         int LatentCoolNoDOASDDNum = 0;                     // design day index of design day causing latent cooling peak with no DOAS
     594             :         std::string cLatentHeatDDDate;                     // date of design day causing heating peak
     595             :         std::string cLatentCoolDDDate;                     // date of design day causing cooling peak
     596             :         int TimeStepNumAtHeatNoDOASMax = 0;                // time step number (in day) at Heating peak without DOAS
     597             :         int TimeStepNumAtCoolNoDOASMax = 0;                // time step number (in day) at cooling peak without DOAS
     598             :         int HeatNoDOASDDNum = 0;                           // design day index of design day causing heating peak without DOAS
     599             :         int CoolNoDOASDDNum = 0;                           // design day index of design day causing cooling peak without DOAS
     600             :         std::string cHeatNoDOASDDDate;                     // date of design day causing heating peak without DOAS
     601             :         std::string cCoolNoDOASDDDate;                     // date of design day causing cooling peak without DOAS
     602             :         Array1D<Real64> HeatLoadNoDOASSeq;                 // daily sequence of zone heating load No DOAS (zone time step)
     603             :         Array1D<Real64> CoolLoadNoDOASSeq;                 // daily sequence of zone cooling load No DOAS (zone time step)
     604             :         Array1D<Real64> LatentHeatLoadSeq;                 // daily sequence of zone latent heating load (zone time step) [W]
     605             :         Array1D<Real64> LatentCoolLoadSeq;                 // daily sequence of zone latent cooling load (zone time step) [W]
     606             :         Array1D<Real64> HeatLatentLoadNoDOASSeq;           // daily sequence of zone latent heating load No DOAS (zone time step) [W]
     607             :         Array1D<Real64> CoolLatentLoadNoDOASSeq;           // daily sequence of zone latent cooling load No DOAS (zone time step) [W]
     608             :         Array1D<Real64> LatentCoolFlowSeq;                 // daily sequence of zone latent cooling supply mass flow rate (zone time step) [Kg/s]
     609             :         Array1D<Real64> LatentHeatFlowSeq;                 // daily sequence of zone latent heating supply mass flow rate (zone time step) [Kg/s]
     610             :         bool zoneLatentSizing = false;                     // trigger to do RH control during zone sizing
     611             :         Real64 zoneRHDehumidifySetPoint = 50.0;            // RH dehumidifying set point used during sizing, default to 50%
     612             :         int zoneRHDehumidifySchIndex = 0;                  // index to zone RH dehumidifying schedule used for zone sizing
     613             :         Real64 zoneRHHumidifySetPoint = 50.0;              // RH humidifying set point used during sizing, default to 50%
     614             :         int zoneRHHumidifySchIndex = 0;                    // index to zone RH humidifying schedule used for zone sizing
     615             :         Real64 LatentCoolDesHumRat = 0.0;                  // zone design dehumidification supply air humidity ratio [kgw/kga]
     616             :         Real64 CoolDesHumRatDiff = 0.005;                  // zone design cooling supply air humidity ratio difference [deltakgw/kga]
     617             :         Real64 LatentHeatDesHumRat = 0.0;                  // zone design humidification supply air humidity ratio [kgw/kga]
     618             :         Real64 HeatDesHumRatDiff = 0.005;                  // zone design heating supply air humidity ratio temperature difference [deltakgw/kga]
     619             :         int ZnLatCoolDgnSAMethod = 0;                      // choice of how to get zone latent cooling design air humidity ratio;
     620             :         int ZnLatHeatDgnSAMethod = 0;                      // choice of how to get zone latent heating design air humidity ratio;
     621             :         Real64 ZoneRetTempAtLatentCoolPeak = 0.0;          // zone return temp at latent cooling peak time step
     622             :         Real64 ZoneRetTempAtLatentHeatPeak = 0.0;          // zone return temp at latent heating peak time step
     623             :         std::string CoolNoDOASDesDay;                      // name of a cooling design day without DOAS
     624             :         std::string HeatNoDOASDesDay;                      // name of a heating design day without DOAS
     625             :         std::string LatCoolDesDay;                         // name of a cooling design day
     626             :         std::string LatHeatDesDay;                         // name of a heating design day
     627             :         std::string LatCoolNoDOASDesDay;                   // name of a cooling design day without DOAS
     628             :         std::string LatHeatNoDOASDesDay;                   // name of a heating design day without DOAS
     629             :         ZoneSizing zoneSizingMethod = ZoneSizing::Invalid; // load to sizing on: sensible, latent, sensibleandlatent, sensibleonlynolatent
     630             :         std::string CoolSizingType;                        // string reported to eio, Cooling or Latent Cooling
     631             :         std::string HeatSizingType;                        // string reported to eio, Heating or Latent Heating
     632             :         std::string CoolPeakDateHrMin;                     // date:hr:min of cooling peak
     633             :         std::string HeatPeakDateHrMin;                     // date:hr:min of heating peak
     634             :         std::string LatCoolPeakDateHrMin;                  // date:hr:min of latent cooling peak
     635             :         std::string LatHeatPeakDateHrMin;                  // date:hr:min of latent heating peak
     636             : 
     637             :         void zeroMemberData();
     638             :         void allocateMemberArrays(int numOfTimeStepInDay);
     639             :     };
     640             : 
     641             :     struct TermUnitZoneSizingData : TermUnitZoneSizingCommonData
     642             :     {
     643             :         void scaleZoneCooling(Real64 ratio);
     644             :         void scaleZoneHeating(Real64 ratio);
     645             :         void copyFromZoneSizing(DataSizing::ZoneSizingData const &sourceData);
     646             :         void allocateMemberArrays(int numOfTimeStepInDay);
     647             :     };
     648             : 
     649             :     struct TermUnitSizingData
     650             :     {
     651             :         // Members
     652             :         int CtrlZoneNum;               // Controlled zone number (index to FinalZoneSizing, etc.)
     653             :         std::string ADUName;           // Terminal Unit Name (air distribution unit or direct air unit)
     654             :         Real64 AirVolFlow;             // design air vol flow rate for single duct terminal unit [m3/s]
     655             :         Real64 MaxHWVolFlow;           // design Hot Water vol flow for single duct terminal unit [m3/s]
     656             :         Real64 MaxSTVolFlow;           // design Steam vol flow rate for single duct terminal unit [m3/s]
     657             :         Real64 MaxCWVolFlow;           // design Cold Water vol flow for single duct terminal unit [m3/s]
     658             :         Real64 MinPriFlowFrac;         // design minimum primary flow fraction for a terminal unit
     659             :         Real64 InducRat;               // design induction ratio for a terminal unit
     660             :         bool InducesPlenumAir;         // True if secondary air comes from the plenum
     661             :         Real64 ReheatAirFlowMult;      // multiplier for air flow in reheat coil UA calculation
     662             :         Real64 ReheatLoadMult;         // multiplier for load in reheat coil UA calculation
     663             :         Real64 DesCoolingLoad;         // design cooling load used for zone equipment [W]
     664             :         Real64 DesHeatingLoad;         // design heating load used for zone equipment [W]
     665             :         Real64 SpecDesSensCoolingFrac; // Fraction of Design Sensible Cooling Load from DesignSpecification:AirTerminal:Sizing
     666             :         Real64 SpecDesCoolSATRatio;    // Cooling Design Supply Air Temperature Difference Ratio from DesignSpecification:AirTerminal:Sizing
     667             :         Real64 SpecDesSensHeatingFrac; // Fraction of Design Sensible Heating Load from DesignSpecification:AirTerminal:Sizing
     668             :         Real64 SpecDesHeatSATRatio;    // Heating Design Supply Air Temperature Difference Ratio from DesignSpecification:AirTerminal:Sizing
     669             :         Real64 SpecMinOAFrac;          // Fraction of Minimum Outdoor Air Flow from DesignSpecification:AirTerminal:Sizing
     670             :         int plenumIndex = 0;           // plenum index for PIU inlet conditions
     671             : 
     672             :         // Default Constructor
     673        5145 :         TermUnitSizingData()
     674       10290 :             : CtrlZoneNum(0), AirVolFlow(0.0), MaxHWVolFlow(0.0), MaxSTVolFlow(0.0), MaxCWVolFlow(0.0), MinPriFlowFrac(0.0), InducRat(0.0),
     675        5145 :               InducesPlenumAir(false), ReheatAirFlowMult(1.0), ReheatLoadMult(1.0), DesCoolingLoad(0.0), DesHeatingLoad(0.0),
     676        5145 :               SpecDesSensCoolingFrac(1.0), SpecDesCoolSATRatio(1.0), SpecDesSensHeatingFrac(1.0), SpecDesHeatSATRatio(1.0), SpecMinOAFrac(1.0)
     677             :         {
     678        5145 :         }
     679             : 
     680             :         Real64 applyTermUnitSizingCoolFlow(Real64 coolFlowWithOA, // Cooling flow rate with MinOA limit applied
     681             :                                            Real64 coolFlowNoOA    // Cooling flow rate without MinOA limit applied
     682             :         );
     683             : 
     684             :         Real64 applyTermUnitSizingHeatFlow(Real64 heatFlowWithOA, // Heating flow rate with MinOA limit applied
     685             :                                            Real64 heatFlowNoOA    // Heating flow rate without MinOA limit applied
     686             :         );
     687             : 
     688      815040 :         Real64 applyTermUnitSizingCoolLoad(Real64 coolLoad) const
     689             :         {
     690      815040 :             return coolLoad * this->SpecDesSensCoolingFrac; // Apply DesignSpecification:AirTerminal:Sizing to cooling load
     691             :         }
     692             : 
     693      815040 :         Real64 applyTermUnitSizingHeatLoad(Real64 heatLoad) const
     694             :         {
     695      815040 :             return heatLoad * this->SpecDesSensHeatingFrac; // Apply DesignSpecification:AirTerminal:Sizing to heating load
     696             :         }
     697             :     };
     698             : 
     699             :     struct ZoneEqSizingData // data saved from zone eq component sizing and passed to subcomponents
     700             :     {
     701             :         // Members
     702             :         Real64 AirVolFlow;            // design air vol flow rate for zone equipment unit [m3/s]
     703             :         Real64 MaxHWVolFlow;          // design Hot Water vol flow for zone equipment unit [m3/s]
     704             :         Real64 MaxCWVolFlow;          // design Cold Water vol flow for zone equipment unit [m3/s]
     705             :         Real64 OAVolFlow;             // design outside air flow for zone equipment unit [m3/s]
     706             :         Real64 ATMixerVolFlow;        // design ventilation air flow rate from air terminal mixer (central DOAS) [m3/s]
     707             :         Real64 ATMixerCoolPriDryBulb; // design ventilation drybulb temperature from air terminal mixer during cooling (central DOAS) [C]
     708             :         Real64 ATMixerCoolPriHumRat;  // design ventilation humidity ratio from air terminal mixer during cooling (central DOAS) [kgWater/kgDryAir]
     709             :         Real64 ATMixerHeatPriDryBulb; // design ventilation drybulb temperature from air terminal mixer during heating (central DOAS) [C]
     710             :         Real64 ATMixerHeatPriHumRat;  // design ventilation humidity ratio from air terminal mixer during heating (central DOAS) [kgWater/kgDryAir]
     711             :         Real64 DesCoolingLoad;        // design cooling load used for zone equipment [W]
     712             :         Real64 DesHeatingLoad;        // design heating load used for zone equipment [W]
     713             :         Real64 CoolingAirVolFlow;     // design cooling air vol flow rate for equipment[m3/s]
     714             :         Real64 HeatingAirVolFlow;     // design heating air vol flow rate for equipment[m3/s]
     715             :         Real64 SystemAirVolFlow;      // design heating air vol flow rate for equipment[m3/s]
     716             :         bool AirFlow;                 // TRUE if AirloopHVAC system air flow rate is calculated
     717             :         bool CoolingAirFlow;          // TRUE if AirloopHVAC system cooling air flow rate is calculated
     718             :         bool HeatingAirFlow;          // TRUE if AirloopHVAC system heating air flow rate is calculated
     719             :         bool SystemAirFlow;           // TRUE if AirloopHVAC system heating air flow rate is calculated
     720             :         bool Capacity;                // TRUE if AirloopHVAC system capacity is calculated
     721             :         bool CoolingCapacity;         // TRUE if AirloopHVAC system cooling capacity is calculated
     722             :         bool HeatingCapacity;         // TRUE if AirloopHVAC system heating capacity is calculated
     723             :         bool SystemCapacity;          // TRUE if AirloopHVAC system heating capacity is calculated
     724             :         bool DesignSizeFromParent;    // TRUE if design size is set by parent object - normally false, set to true for special cases e.g. ERV
     725             :         int HVACSizingIndex;          // index to DesignSpecification:ZoneHVAC:Sizing
     726             :         Array1D_int SizingMethod;    // supply air flow rate sizing method (SupplyAirFlowRate, FlowPerFloorArea, FractionOfAutosizedCoolingAirflow and
     727             :                                      // FractionOfAutosizedHeatingAirflow)
     728             :         Array1D_int CapSizingMethod; // capacity sizing methods (HeatingDesignCapacity, CoolingDesignCapacity, CapacityPerFloorArea,
     729             :                                      // FractionOfAutosizedCoolingCapacity and FractionOfAutosizedHeatingCapacity )
     730             : 
     731             :         // Default Constructor
     732        9717 :         ZoneEqSizingData()
     733        9717 :             : AirVolFlow(0.0), MaxHWVolFlow(0.0), MaxCWVolFlow(0.0), OAVolFlow(0.0),
     734        9717 :               ATMixerVolFlow(0.0),         // design ventilation air flow rate from air terminal mixer (central DOAS) [m3/s]
     735        9717 :               ATMixerCoolPriDryBulb(0.0),  // design air terminal mixer cooling outlet temperature [C]
     736        9717 :               ATMixerCoolPriHumRat(0.0),   // design air terminal mixer cooling outlet humidity ratio [kgWater/kgDryAir]
     737        9717 :               ATMixerHeatPriDryBulb(0.0),  // design air terminal mixer heating outlet temperature [C]
     738        9717 :               ATMixerHeatPriHumRat(0.0),   // design air terminal mixer heating outlet humidity ratio [kgWater/kgDryAir]
     739        9717 :               DesCoolingLoad(0.0),         // design cooling load used for zone equipment [W]
     740        9717 :               DesHeatingLoad(0.0),         // design heating load used for zone equipment [W]
     741        9717 :               CoolingAirVolFlow(0.0),      // design cooling air vol flow rate for equipment[m3/s]
     742        9717 :               HeatingAirVolFlow(0.0),      // design heating air vol flow rate for equipment[m3/s]
     743        9717 :               SystemAirVolFlow(0.0),       // design heating air vol flow rate for equipment[m3/s]
     744        9717 :               AirFlow(false),              // TRUE if AirloopHVAC system air flow rate is calculated
     745        9717 :               CoolingAirFlow(false),       // TRUE if AirloopHVAC system cooling air flow rate is calculated
     746        9717 :               HeatingAirFlow(false),       // TRUE if AirloopHVAC system heating air flow rate is calculated
     747        9717 :               SystemAirFlow(false),        // TRUE if AirloopHVAC system heating air flow rate is calculated
     748        9717 :               Capacity(false),             // TRUE if AirloopHVAC system capacity is calculated
     749        9717 :               CoolingCapacity(false),      // TRUE if AirloopHVAC system cooling capacity is calculated
     750        9717 :               HeatingCapacity(false),      // TRUE if AirloopHVAC system heating capacity is calculated
     751        9717 :               SystemCapacity(false),       // TRUE if AirloopHVAC system heating capacity is calculated
     752        9717 :               DesignSizeFromParent(false), // TRUE if design size is set by parent object - normally false, set to true for special cases e.g. ERV
     753        9717 :               HVACSizingIndex(0)           // index to DesignSpecification:ZoneHVAC:Sizing
     754             :         {
     755        9717 :         }
     756             :     };
     757             : 
     758             :     // Data Structure for Zone HVAC sizing, referenced by various ZoneHVAC Equipment
     759             :     struct ZoneHVACSizingData
     760             :     {
     761             :         // Members
     762             :         std::string Name;
     763             :         int CoolingSAFMethod;           // - Method for cooling supply air flow rate sizing calculation (SupplyAirFlowRate,FlowPerFloorArea,
     764             :                                         // FractionOfAutoSizedCoolingValue, FlowPerCoolingCapacity)
     765             :         int HeatingSAFMethod;           // - Method for heating supply air flow rate sizing calculation (SupplyAirFlowRate,FlowPerFloorArea,
     766             :                                         // FractionOfAutoSizedHeatingValue, FlowPerHeatingCapacity,
     767             :         int NoCoolHeatSAFMethod;        // - Method for supply air flow sizing during no cooling and heating calculation (SupplyAirFlowRate,
     768             :                                         // FractionOfAutoSizedCoolingValue, FractionOfAutoSizedHeatingValue)
     769             :         int CoolingCapMethod;           // - Method for cooling capacity scaledsizing calculation (CoolingDesignCapacity, CapacityPerFloorArea,
     770             :                                         // FractionOfAutosizedHeatingCapacity)
     771             :         int HeatingCapMethod;           // - Method for heatiing capacity scaledsizing calculation (HeatingDesignCapacity, CapacityPerFloorArea,
     772             :                                         // FracOfAutosizedHeatingCapacity)
     773             :         Real64 MaxCoolAirVolFlow;       // - maximum cooling supply air flow rate, m3/s
     774             :         Real64 MaxHeatAirVolFlow;       // - maximum heating supply air flow rate, m3/s
     775             :         Real64 MaxNoCoolHeatAirVolFlow; // - maximum supply air flow rate when no cooling or heating, m3/s
     776             :         Real64 ScaledCoolingCapacity;   // - scaled maximum cooling capacity of zone HVAC equipment, W
     777             :         Real64 ScaledHeatingCapacity;   // - scaled maximum heating capacity of zone HVAC equipment, W
     778             :         bool RequestAutoSize;           // - true if autosizing is requested
     779             : 
     780             :         // Default Constructor
     781           4 :         ZoneHVACSizingData()
     782           8 :             : CoolingSAFMethod(0), HeatingSAFMethod(0), NoCoolHeatSAFMethod(0), CoolingCapMethod(0), HeatingCapMethod(0), MaxCoolAirVolFlow(0.0),
     783           4 :               MaxHeatAirVolFlow(0.0), MaxNoCoolHeatAirVolFlow(0.0), ScaledCoolingCapacity(0.0), ScaledHeatingCapacity(0.0), RequestAutoSize(false)
     784             :         {
     785           4 :         }
     786             :     };
     787             : 
     788             :     // Data Structure for air terminal sizing, referenced by ZoneHVAC:AirDistributionUnit
     789             :     struct AirTerminalSizingSpecData
     790             :     {
     791             :         // Members
     792             :         std::string Name;
     793             :         Real64 DesSensCoolingFrac; // Fraction of Design Sensible Cooling Load
     794             :         Real64 DesCoolSATRatio;    // Cooling Design Supply Air Temperature Difference Ratio
     795             :         Real64 DesSensHeatingFrac; // Fraction of Design Sensible Heating Load
     796             :         Real64 DesHeatSATRatio;    // Heating Design Supply Air Temperature Difference Ratio
     797             :         Real64 MinOAFrac;          // Fraction of Minimum Outdoor Air Flow
     798             : 
     799             :         // Default Constructor
     800          24 :         AirTerminalSizingSpecData() : DesSensCoolingFrac(1.0), DesCoolSATRatio(1.0), DesSensHeatingFrac(1.0), DesHeatSATRatio(1.0), MinOAFrac(1.0)
     801             :         {
     802          24 :         }
     803             :     };
     804             : 
     805             :     struct SystemSizingInputData
     806             :     {
     807             :         // Members
     808             :         std::string AirPriLoopName;                      // name of an AirLoopHVAC object
     809             :         int AirLoopNum = 0;                              // index number of air loop
     810             :         LoadSizing loadSizingType = LoadSizing::Invalid; // type of load to size on sensible, latent, total, ventilation
     811             :         DataSizing::SizingConcurrence SizingOption = DataSizing::SizingConcurrence::NonCoincident; // noncoincident, coincident
     812             :         OAControl CoolOAOption = OAControl::Invalid; // 1 = use 100% outside air; 2 = use min OA; for cooling sizing
     813             :         OAControl HeatOAOption = OAControl::Invalid; // 1 = use 100% outside air; 2 = use min OA; for heating sizing
     814             :         Real64 DesOutAirVolFlow = 0.0;               // design (minimum) outside air flow rate [m3/s]
     815             :         Real64 SysAirMinFlowRat = 0.0;               // minimum system air flow ratio for heating, Central Heating Maximum System Air Flow Ratio
     816             :         bool SysAirMinFlowRatWasAutoSized = false;   // true if central heating maximum system air flow ratio was autosize on input
     817             :         Real64 PreheatTemp = 0.0;                    // preheat design set temperature [C]
     818             :         Real64 PrecoolTemp = 0.0;                    // precool design set temperature [C]
     819             :         Real64 PreheatHumRat = 0.0;                  // preheat design humidity ratio [kg water/kg dry air]
     820             :         Real64 PrecoolHumRat = 0.0;                  // precool design humidity ratio [kg water/kg dry air]
     821             :         Real64 CoolSupTemp = 0.0;                    // cooling design supply air temperature [C]
     822             :         Real64 HeatSupTemp = 0.0;                    // heating design supply air temperature [C]
     823             :         Real64 CoolSupHumRat = 0.0;                  // cooling design supply air humidity ratio [kg water/kg dry air]
     824             :         Real64 HeatSupHumRat = 0.0;                  // heating design supply air humidity ratio [kg water/kg dry air]
     825             :         AirflowSizingMethod CoolAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get system cooling design air flow rates;
     826             :         //  1 = calc from des day simulation; 2=m3/s per system, user input
     827             :         Real64 DesCoolAirFlow = 0.0;                                         // design system supply air flow rate for cooling[m3/s]
     828             :         AirflowSizingMethod HeatAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get system heating design air flow rates;
     829             :         //  1 = calc from des day simulation; 2=m3/s per zone, user input
     830             :         Real64 DesHeatAirFlow = 0.0; // design system heating supply air flow rate [m3/s]
     831             :         int ScaleCoolSAFMethod = 0;  // choice of how to get system cooling scalable air flow rates; // (FlowPerFloorArea,
     832             :                                      // FractionOfAutosizedCoolingAirflow, FlowPerCoolingCapacity)
     833             :         int ScaleHeatSAFMethod = 0;  // choice of how to get system heating scalable air flow rates; // (FlowPerFloorArea,
     834             :                                      // FractionOfAutosizedCoolingAirflow, FractionOfAutosizedHeatingAirflow, FlowPerHeatingCapacity)
     835             :         SysOAMethod SystemOAMethod = SysOAMethod::Invalid; // System Outdoor Air Method; 1 = SOAM_ZoneSum, 2 = SOAM_VRP, 9 = SOAM_SP
     836             :         Real64 MaxZoneOAFraction = 0.0;                    // maximum value of min OA for zones served by system
     837             :         bool OAAutoSized = false;                          // Set to true if design OA vol flow is set to 'autosize' in Sizing:System
     838             :         int CoolingCapMethod = 0;           // - Method for cooling capacity scaledsizing calculation (CoolingDesignCapacity, CapacityPerFloorArea,
     839             :                                             // FractionOfAutosizedCoolingCapacity)
     840             :         int HeatingCapMethod = 0;           // - Method for heatiing capacity scaledsizing calculation (HeatingDesignCapacity, CapacityPerFloorArea,
     841             :                                             // FracOfAutosizedHeatingCapacity)
     842             :         Real64 ScaledCoolingCapacity = 0.0; // - scaled maximum cooling capacity of cooling coil in an air loop
     843             :         Real64 ScaledHeatingCapacity = 0.0; // - scaled maximum heating capacity of cooling coil in an air loop
     844             :         Real64 FloorAreaOnAirLoopCooled = 0.0; // total floor of cooled zones served by an airloop
     845             :         Real64 FloorAreaOnAirLoopHeated = 0.0; // total floor of heated zones served by an airloop
     846             :         Real64 FlowPerFloorAreaCooled = 0.0;   // ratio of cooling supply air flow rate to total floor area of cooled zones served by an airloop
     847             :         Real64 FlowPerFloorAreaHeated = 0.0;   // ratio of cooling supply air flow rate to total floor area of cooled zones served by an airloop
     848             :         Real64 FractionOfAutosizedCoolingAirflow = 1.0;            // fraction of of cooling supply air flow rate an airloop
     849             :         Real64 FractionOfAutosizedHeatingAirflow = 1.0;            // fraction of of heating supply air flow rate an airloop
     850             :         Real64 FlowPerCoolingCapacity = 0.0;                       // ratio of cooling supply air flow rate to cooling capacity of an airloop
     851             :         Real64 FlowPerHeatingCapacity = 0.0;                       // ratio of heating supply air flow rate to heating capacity of an airloop
     852             :         PeakLoad coolingPeakLoad = PeakLoad::Invalid;              // Type of peak to size cooling coils on SensibleCooling or TotalCooling
     853             :         CapacityControl CoolCapControl = CapacityControl::Invalid; // type of control of cooling coil  VAV, Bypass, VT, OnOff
     854             :         Real64 OccupantDiversity = 0.0;                            // occupant diversity
     855             :     };
     856             : 
     857             :     struct SystemSizingData // Contains data for system sizing
     858             :     {
     859             :         // Members
     860             :         std::string AirPriLoopName;                      // name of an AirLoopHVAC object
     861             :         std::string CoolDesDay;                          // name of a cooling design day
     862             :         std::string HeatDesDay;                          // name of a heating design day
     863             :         LoadSizing loadSizingType = LoadSizing::Invalid; // type of load to size on Sensible, Latent, Total, Ventilation
     864             :         DataSizing::SizingConcurrence SizingOption = DataSizing::SizingConcurrence::NonCoincident; // noncoincident, coincident.
     865             :         OAControl CoolOAOption = OAControl::Invalid; // 1 = use 100% outside air; 2 = use min OA; for cooling sizing
     866             :         OAControl HeatOAOption = OAControl::Invalid; // 1 = use 100% outside air; 2 = use min OA; for heating sizing
     867             :         Real64 DesOutAirVolFlow = 0.0;               // design (minimum) outside air flow rate [m3/s]
     868             :         Real64 SysAirMinFlowRat = 0.0;               // minimum system air flow ratio for heating, Central Heating Maximum System Air Flow Ratio
     869             :         bool SysAirMinFlowRatWasAutoSized = false;   // true if central heating maximum system air flow ratio was autosize on input
     870             :         Real64 PreheatTemp = 0.0;                    // preheat design set temperature
     871             :         Real64 PrecoolTemp = 0.0;                    // precool design set temperature [C]
     872             :         Real64 PreheatHumRat = 0.0;                  // preheat design humidity ratio [kg water/kg dry air]
     873             :         Real64 PrecoolHumRat = 0.0;                  // precool design humidity ratio [kg water/kg dry air]
     874             :         Real64 CoolSupTemp = 0.0;                    // cooling design supply air temperature [C]
     875             :         Real64 HeatSupTemp = 0.0;                    // heating design supply air temperature[C]
     876             :         Real64 CoolSupHumRat = 0.0;                  // cooling design supply air humidity ratio [kg water/kg dry air]
     877             :         Real64 HeatSupHumRat = 0.0;                  // heating design supply air humidity ratio [kg water/kg dry air]
     878             :         AirflowSizingMethod CoolAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get system design cooling air flow rates;
     879             :         //  1 = calc from des day simulation; 2=m3/s per system, user input
     880             :         AirflowSizingMethod HeatAirDesMethod = AirflowSizingMethod::Invalid; // choice of how to get system design heating air flow rates;
     881             :         //  1 = calc from des day simulation; 2=m3/s per system, user input
     882             :         Real64 InpDesCoolAirFlow = 0.0;                // input design system supply air flow rate [m3/s]
     883             :         Real64 InpDesHeatAirFlow = 0.0;                // input design system heating supply air flow rate [m3/s]
     884             :         Real64 CoinCoolMassFlow = 0.0;                 // coincident peak cooling mass flow rate [kg/s]
     885             :         bool EMSOverrideCoinCoolMassFlowOn = false;    // If true, EMS to change coincident peak cooling mass flow rate
     886             :         Real64 EMSValueCoinCoolMassFlow = 0.0;         // Value EMS wants for coincident peak cooling mass flow rate [kg/s]
     887             :         Real64 CoinHeatMassFlow = 0.0;                 // coincident peak heating mass flow rate [kg/s]
     888             :         bool EMSOverrideCoinHeatMassFlowOn = false;    // If true, EMS to set coincident peak heating mass flow rate
     889             :         Real64 EMSValueCoinHeatMassFlow = 0.0;         // Value EMS wants for coincident peak heating mass flow rate [kg/s]
     890             :         Real64 NonCoinCoolMassFlow = 0.0;              // noncoincident peak cooling mass flow rate [kg/s]
     891             :         bool EMSOverrideNonCoinCoolMassFlowOn = false; // true, EMS to set noncoincident peak cooling mass flow rate
     892             :         Real64 EMSValueNonCoinCoolMassFlow = 0.0;      // Value EMS for noncoincident peak cooling mass flow rate [kg/s]
     893             :         Real64 NonCoinHeatMassFlow = 0.0;              // noncoincident peak heating mass flow rate [kg/s]
     894             :         bool EMSOverrideNonCoinHeatMassFlowOn = false; // true, EMS to set noncoincident peak heating mass flow rate
     895             :         Real64 EMSValueNonCoinHeatMassFlow = 0.0;      // Value EMS for noncoincident peak heating mass flow rate [kg/s]
     896             :         Real64 DesMainVolFlow = 0.0;                   // design main supply duct volume flow [m3/s]
     897             :         bool EMSOverrideDesMainVolFlowOn = false;      // If true, EMS is acting to change DesMainVolFlow
     898             :         Real64 EMSValueDesMainVolFlow = 0.0;           // Value EMS providing for design main supply duct volume flow [m3/s]
     899             :         Real64 DesHeatVolFlow = 0.0;                   // design heat supply duct volume flow [m3/s]
     900             :         bool EMSOverrideDesHeatVolFlowOn = false;      // If true, EMS is acting to change DesCoolVolFlow
     901             :         Real64 EMSValueDesHeatVolFlow = 0.0;           // Value EMS providing for design cool  supply duct volume flow [m3/s]
     902             :         Real64 DesCoolVolFlow = 0.0;                   // design cool  supply duct volume flow [m3/s]
     903             :         bool EMSOverrideDesCoolVolFlowOn = false;      // If true, EMS is acting to change DesCoolVolFlow
     904             :         Real64 EMSValueDesCoolVolFlow = 0.0;           // Value EMS providing for design cool  supply duct volume flow [m3/s]
     905             :         Real64 SensCoolCap = 0.0;                      // design sensible cooling capacity [W]
     906             :         Real64 TotCoolCap = 0.0;                       // design total cooling capacity [W]
     907             :         Real64 HeatCap = 0.0;                          // design heating capacity [W]
     908             :         Real64 PreheatCap = 0.0;                       // design preheat capacity [W]
     909             :         Real64 MixTempAtCoolPeak = 0.0;                // design mixed air temperature for cooling [C]
     910             :         Real64 MixHumRatAtCoolPeak = 0.0;              // design mixed air hum ratio for cooling [kg water/kg dry air]
     911             :         Real64 RetTempAtCoolPeak = 0.0;                // design return air temperature for cooling [C]
     912             :         Real64 RetHumRatAtCoolPeak = 0.0;              // design return air hum ratio for cooling [kg water/kg dry air]
     913             :         Real64 OutTempAtCoolPeak = 0.0;                // design outside air temperature for cooling [C]
     914             :         Real64 OutHumRatAtCoolPeak = 0.0;              // design outside air hum ratio for cooling [kg water/kg dry air]
     915             :         Real64 MassFlowAtCoolPeak = 0.0;               // air mass flow rate at the cooling peak [kg/s]
     916             :         Real64 HeatMixTemp = 0.0;                      // design mixed air temperature for heating [C]
     917             :         Real64 HeatMixHumRat = 0.0;                    // design mixed air hum ratio for heating [kg water/kg dry air]
     918             :         Real64 HeatRetTemp = 0.0;                      // design return air temperature for heating [C]
     919             :         Real64 HeatRetHumRat = 0.0;                    // design return air hum ratio for heating [kg water/kg dry air]
     920             :         Real64 HeatOutTemp = 0.0;                      // design outside air temperature for heating [C]
     921             :         Real64 HeatOutHumRat = 0.0;                    // design outside air hum ratio for Heating [kg water/kg dry air]
     922             :         Real64 DesCoolVolFlowMin = 0.0;                // design minimum system cooling flow rate [m3/s]
     923             :         Array1D<Real64> HeatFlowSeq;                   // daily sequence of system heating air mass flow rate
     924             :         //  (zone time step)
     925             :         Array1D<Real64> SumZoneHeatLoadSeq; // daily sequence of zones summed heating load [W]
     926             :         //  (zone time step)
     927             :         Array1D<Real64> CoolFlowSeq; // daily sequence of system cooling air mass flow rate
     928             :         //  (zone time step)
     929             :         Array1D<Real64> SumZoneCoolLoadSeq; // daily sequence of zones summed cooling load [W]
     930             :         //  (zone time step)
     931             :         Array1D<Real64> CoolZoneAvgTempSeq; // daily sequence of zones flow weighted average temperature [C]
     932             :         //  (zone time step)
     933             :         Array1D<Real64> HeatZoneAvgTempSeq; // daily sequence of zones flow weighted average temperature [C]
     934             :         //  (zone time step)
     935             :         Array1D<Real64> SensCoolCapSeq; // daily sequence of system sensible cooling capacity
     936             :         //  (zone time step)
     937             :         Array1D<Real64> TotCoolCapSeq; // daily sequence of system total cooling capacity
     938             :         //  (zone time step)
     939             :         Array1D<Real64> HeatCapSeq;        // daily sequence of system heating capacity [zone time step]
     940             :         Array1D<Real64> PreheatCapSeq;     // daily sequence of system preheat capacity [zone time step]
     941             :         Array1D<Real64> SysCoolRetTempSeq; // daily sequence of system cooling return temperatures [C]
     942             :         //  [zone time step]
     943             :         Array1D<Real64> SysCoolRetHumRatSeq; // daily sequence of system cooling return humidity ratios
     944             :         //  [kg water/kg dry air] [zone time step]
     945             :         Array1D<Real64> SysHeatRetTempSeq; // daily sequence of system heating return temperatures [C]
     946             :         //   [zone time step]
     947             :         Array1D<Real64> SysHeatRetHumRatSeq; // daily sequence of system heating return humidity ratios
     948             :         //  [kg water/kg dry air] [zone time step]
     949             :         Array1D<Real64> SysCoolOutTempSeq; // daily sequence of system cooling outside temperatures [C]
     950             :         //  [zone time step]
     951             :         Array1D<Real64> SysCoolOutHumRatSeq; // daily sequence of system cooling outside humidity ratios
     952             :         //  [kg water/kg dry air] [zone time step]
     953             :         Array1D<Real64> SysHeatOutTempSeq; // daily sequence of system heating outside temperatures [C]
     954             :         //  [zone time step]
     955             :         Array1D<Real64> SysHeatOutHumRatSeq; // daily sequence of system heating outside humidity ratios
     956             :         //   [kg water/kg dry air] [zone time step]
     957             :         Array1D<Real64> SysDOASHeatAddSeq;                 // daily sequence of heat addition rate from DOAS supply air [W]
     958             :         Array1D<Real64> SysDOASLatAddSeq;                  // daily sequence of latent heat addition rate from DOAS supply air [W]
     959             :         SysOAMethod SystemOAMethod = SysOAMethod::Invalid; // System Outdoor Air Method; 1 = SOAM_ZoneSum, 2 = SOAM_VRP, 9 = SOAM_SP
     960             :         Real64 MaxZoneOAFraction = 0.0;                    // maximum value of min OA for zones served by system
     961             :         Real64 SysUncOA = 0.0;                             // uncorrected system outdoor air flow based on zone people and zone area
     962             :         bool OAAutoSized = false;                          // Set to true if design OA vol flow is set to 'autosize'
     963             :         int ScaleCoolSAFMethod = 0;                        // choice of how to get system cooling scalable air flow rates; (FlowPerFloorArea,
     964             :                                                            // FractionOfAutosizedCoolingAirflow,
     965             :                                                            // FlowPerCoolingCapacity)
     966             :         int ScaleHeatSAFMethod = 0;                        // choice of how to get system heating scalable air flow rates; (FlowPerFloorArea,
     967             :                                                            // FractionOfAutosizedCoolingAirflow,
     968             :                                                            // FractionOfAutosizedHeatingAirflow, FlowPerHeatingCapacity)
     969             :         int CoolingCapMethod = 0;           // - Method for cooling capacity scaledsizing calculation (CoolingDesignCapacity, CapacityPerFloorArea,
     970             :                                             // FractionOfAutosizedCoolingCapacity)
     971             :         int HeatingCapMethod = 0;           // - Method for heatiing capacity scaledsizing calculation (HeatingDesignCapacity, CapacityPerFloorArea,
     972             :                                             // FracOfAutosizedHeatingCapacity)
     973             :         Real64 ScaledCoolingCapacity = 0.0; // - scaled maximum cooling capacity of cooling coil in an air loop
     974             :         Real64 ScaledHeatingCapacity = 0.0; // - scaled maximum heating capacity of cooling coil in an air loop
     975             :         Real64 FloorAreaOnAirLoopCooled = 0.0; // total floor of cooled zones served by an airloop
     976             :         Real64 FloorAreaOnAirLoopHeated = 0.0; // total floor of heated zones served by an airloop
     977             :         Real64 FlowPerFloorAreaCooled = 0.0;   // ratio of cooling supply air flow rate to total floor area of cooled zones served by an airloop
     978             :         Real64 FlowPerFloorAreaHeated = 0.0;   // ratio of cooling supply air flow rate to total floor area of cooled zones served by an airloop
     979             :         Real64 FractionOfAutosizedCoolingAirflow = 0.0;            // fraction of of cooling supply air flow rate an airloop
     980             :         Real64 FractionOfAutosizedHeatingAirflow = 0.0;            // fraction of of heating supply air flow rate an airloop
     981             :         Real64 FlowPerCoolingCapacity = 0.0;                       // ratio of cooling supply air flow rate to cooling capacity of an airloop
     982             :         Real64 FlowPerHeatingCapacity = 0.0;                       // ratio of heating supply air flow rate to heating capacity of an airloop
     983             :         Real64 FractionOfAutosizedCoolingCapacity = 0.0;           // fraction of of cooling total capacity
     984             :         Real64 FractionOfAutosizedHeatingCapacity = 0.0;           // fraction of of heating total capacity
     985             :         Real64 CoolingTotalCapacity = 0.0;                         // system total cooling capacity
     986             :         Real64 HeatingTotalCapacity = 0.0;                         // system total heating capacity
     987             :         PeakLoad coolingPeakLoad = PeakLoad::Invalid;              // Type of peak to size cooling coils on SensibleCooling or TotalCooling
     988             :         CapacityControl CoolCapControl = CapacityControl::Invalid; // type of control of cooling coil  VAV, Bypass, VT, OnOff
     989             :         bool sysSizeHeatingDominant = false;
     990             :         bool sysSizeCoolingDominant = false;
     991             : 
     992             :         Real64 CoinCoolCoilMassFlow = 0.0; // coincident volume flow at time of cooling coil sensible+latent peak [m3/s]
     993             :         Real64 CoinHeatCoilMassFlow = 0.0; // coincident volume flow at time of heating coil sensible peak [m3/s]
     994             :         Real64 DesCoolCoilVolFlow = 0.0;   // design cooling air volume flow rate at time of coil sens+latent peak [m3/s]
     995             :         Real64 DesHeatCoilVolFlow = 0.0;   // design heating air volume flow rate at time of coil sens peak [m3/s]
     996             :         Real64 DesMainCoilVolFlow = 0.0;   // design main supply duct volume flow at time of coil peak [m3/s]
     997             :         // These are for reporting purposes
     998             : 
     999             :         int SysHeatCoilTimeStepPk = 0; // timestep in day of heating coil peak
    1000             :         int SysHeatAirTimeStepPk = 0;  // timestep in day of heating airflow peak
    1001             :         int HeatDDNum = 0;             // index of design day for heating
    1002             :         int CoolDDNum = 0;             // index of design day for cooling
    1003             : 
    1004             :         Real64 SysCoolCoinSpaceSens = 0.0; // sum of zone space sensible cooling loads at coincident peak
    1005             :         Real64 SysHeatCoinSpaceSens = 0.0; //  sum of zone space sensible heating loads at coincident peak
    1006             :         Real64 SysDesCoolLoad = 0.0;       // system peak load with coincident
    1007             :         int SysCoolLoadTimeStepPk = 0;     // timestep in day of cooling load peak
    1008             :         Real64 SysDesHeatLoad = 0.0;       // system peak load with coincident
    1009             :         int SysHeatLoadTimeStepPk = 0;     // timestep in day of cooling load peak
    1010             :     };
    1011             : 
    1012             :     struct SysSizPeakDDNumData
    1013             :     {
    1014             :         // Members
    1015             :         int SensCoolPeakDD;                // design day containing the sensible cooling peak
    1016             :         std::string cSensCoolPeakDDDate;   // date string of design day causing sensible cooling peak
    1017             :         int TotCoolPeakDD;                 // design day containing total cooling peak
    1018             :         std::string cTotCoolPeakDDDate;    // date string of design day causing total cooling peak
    1019             :         int CoolFlowPeakDD;                // design day containing the cooling air flow peak
    1020             :         std::string cCoolFlowPeakDDDate;   // date string of design day causing cooling air flow peak
    1021             :         int HeatPeakDD;                    // design day containing the heating peak
    1022             :         std::string cHeatPeakDDDate;       // date string of design day causing heating peak
    1023             :         Array1D<int> TimeStepAtSensCoolPk; // time step of the sensible cooling peak
    1024             :         Array1D<int> TimeStepAtTotCoolPk;  // time step of the total cooling peak
    1025             :         Array1D<int> TimeStepAtCoolFlowPk; // time step of the cooling air flow peak
    1026             :         Array1D<int> TimeStepAtHeatPk;     // time step of the heating peak
    1027             : 
    1028             :         // Default Constructor
    1029        1301 :         SysSizPeakDDNumData() : SensCoolPeakDD(0), TotCoolPeakDD(0), CoolFlowPeakDD(0), HeatPeakDD(0)
    1030             :         {
    1031        1301 :         }
    1032             :     };
    1033             : 
    1034             :     struct PlantSizingData
    1035             :     {
    1036             :         // Members
    1037             :         std::string PlantLoopName;                           // name of PLANT LOOP or CONDENSER LOOP object
    1038             :         TypeOfPlantLoop LoopType = TypeOfPlantLoop::Invalid; // type of loop: 1=heating, 2=cooling, 3=condenser
    1039             :         Real64 ExitTemp = 0.0;                               // loop design exit (supply) temperature [C]
    1040             :         Real64 DeltaT = 0.0;                                 // loop design temperature drop (or rise) [DelK]
    1041             :         int ConcurrenceOption = 0;                           // sizing option for coincident or noncoincident
    1042             :         int NumTimeStepsInAvg = 0;                           // number of zone timesteps in the averaging window for coincident plant flow
    1043             :         int SizingFactorOption = 0;                          // option for what sizing factor to apply
    1044             :         // Calculated
    1045             :         Real64 DesVolFlowRate = 0.0; // loop design flow rate in m3/s
    1046             :         bool VolFlowSizingDone = 0;  // flag to indicate when this loop has finished sizing flow rate
    1047             :         Real64 PlantSizFac = 0.0;    // hold the loop and pump sizing factor
    1048             :         Real64 DesCapacity = 0.0;    // final capacity in W
    1049             :     };
    1050             : 
    1051             :     // based on ZoneSizingData but only have member variables that are related to the CheckSum/
    1052             :     struct FacilitySizingData
    1053             :     {
    1054             :         // Members
    1055             :         int CoolDDNum;                    // design day index of design day causing heating peak
    1056             :         int HeatDDNum;                    // design day index of design day causing heating peak
    1057             :         int TimeStepNumAtCoolMax;         // time step number (in day) at cooling peak
    1058             :         Array1D<Real64> DOASHeatAddSeq;   // daily sequence of zone DOAS heat addition rate (zone time step) [W]
    1059             :         Array1D<Real64> DOASLatAddSeq;    // daily sequence of zone DOAS latent heat addition rate (zone time step) [W]
    1060             :         Array1D<Real64> CoolOutHumRatSeq; // daily sequence of outdoor humidity ratios (cooling, zone time step)
    1061             :         Array1D<Real64> CoolOutTempSeq;   // daily sequence of outdoor temperatures (cooling, zone time step)
    1062             :         Array1D<Real64> CoolZoneTempSeq;  // daily sequence of zone temperatures (cooling, zone time step)
    1063             :         Array1D<Real64> CoolLoadSeq;      // daily sequence of cooling load (cooling, zone time step)
    1064             :         Real64 DesCoolLoad;               // zone design cooling load [W]
    1065             :         int TimeStepNumAtHeatMax;         // time step number (in day) at Heating peak
    1066             :         Array1D<Real64> HeatOutHumRatSeq; // daily sequence of outdoor humidity ratios (heating, zone time step)
    1067             :         Array1D<Real64> HeatOutTempSeq;   // daily sequence of outdoor temperatures (heating, zone time step)
    1068             :         Array1D<Real64> HeatZoneTempSeq;  // daily sequence of zone temperatures (heating, zone time step)
    1069             :         Array1D<Real64> HeatLoadSeq;      // daily sequence of heating load (cooling, zone time step)
    1070             :         Real64 DesHeatLoad;               // zone design heating load [W]
    1071             : 
    1072             :         // Default Constructor
    1073        2124 :         FacilitySizingData() : CoolDDNum(0), HeatDDNum(0), TimeStepNumAtCoolMax(0), DesCoolLoad(0.0), TimeStepNumAtHeatMax(0), DesHeatLoad(0.0)
    1074             :         {
    1075        2124 :         }
    1076             :     };
    1077             : 
    1078             :     struct DesDayWeathData
    1079             :     {
    1080             :         // Members
    1081             :         std::string DateString; // date of design day weather values
    1082             :         Array1D<Real64> Temp;   // design day temperatures at the major time step
    1083             :         Array1D<Real64> HumRat; // design day humidity ratios at the major time step
    1084             :         Array1D<Real64> Press;  // design day barometric pressure at the major time step
    1085             :     };
    1086             : 
    1087             :     struct CompDesWaterFlowData // design water flow rate for components that use water as an
    1088             :     {
    1089             :         // Members
    1090             :         //  energy source or sink
    1091             :         int SupNode;           // water inlet node number (condenser side for water / water)
    1092             :         Real64 DesVolFlowRate; // water design flow rate [m3/s]
    1093             : 
    1094             :         // Default Constructor
    1095         920 :         CompDesWaterFlowData() : SupNode(0), DesVolFlowRate(0.0)
    1096             :         {
    1097         920 :         }
    1098             : 
    1099             :         // Member Constructor
    1100        6294 :         CompDesWaterFlowData(int SupNode,          // water inlet node number (condenser side for water / water)
    1101             :                              Real64 DesVolFlowRate // water design flow rate [m3/s]
    1102             :                              )
    1103        6294 :             : SupNode(SupNode), DesVolFlowRate(DesVolFlowRate)
    1104             :         {
    1105        6294 :         }
    1106             :     };
    1107             : 
    1108             :     struct OARequirementsData
    1109             :     {
    1110             :         // Holds complete data for a single DesignSpecification:OutdoorAir object or
    1111             :         // a list of indexes from a DesignSpecification:OutdoorAir:SpaceList object
    1112             :         std::string Name;                     // Name of DesignSpecification:OutdoorAir or DesignSpecification:OutdoorAir:SpaceList object
    1113             :         int numDSOA = 0;                      // Number of DesignSpecification:OutdoorAir objects for this instance (zero if not a list)
    1114             :         EPVector<int> dsoaIndexes;            // Indexes to DesignSpecification:OutdoorAir objects (if this is a DSOA:SpaceList object)
    1115             :         EPVector<std::string> dsoaSpaceNames; // Names of spaces if this is a (if this is a DSOA:SpaceList object)
    1116             :         EPVector<int> dsoaSpaceIndexes;       // Indexes to Spaces (if this is a DSOA:SpaceList object)
    1117             :         OAFlowCalcMethod OAFlowMethod =
    1118             :             OAFlowCalcMethod::PerPerson; // - Method for OA flow calculation (Flow/Person, Flow/Zone, Flow/Area, FlowACH, Sum, Maximum)
    1119             :         Real64 OAFlowPerPerson = 0.0;    // - OA requirement per person
    1120             :         Real64 OAFlowPerArea = 0.0;      // - OA requirement per zone area
    1121             :         Real64 OAFlowPerZone = 0.0;      // - OA requirement per zone
    1122             :         Real64 OAFlowACH = 0.0;          // - OA requirement per zone per hour
    1123             :         int OAFlowFracSchPtr = ScheduleManager::ScheduleAlwaysOn; // - Fraction schedule applied to total OA requirement
    1124             :         int OAPropCtlMinRateSchPtr =
    1125             :             ScheduleManager::ScheduleAlwaysOn; // - Fraction schedule applied to Proportional Control Minimum Outdoor Air Flow Rate
    1126             :         int CO2MaxMinLimitErrorCount = 0;      // Counter when max CO2 concentration < min CO2 concentration for SOAM_ProportionalControlSchOcc
    1127             :         int CO2MaxMinLimitErrorIndex = 0;      // Index for max CO2 concentration < min CO2 concentration recurring error message for
    1128             :                                                // SOAM_ProportionalControlSchOcc
    1129             :         int CO2GainErrorCount = 0;             // Counter when CO2 generation from people is zero for SOAM_ProportionalControlSchOcc
    1130             :         int CO2GainErrorIndex = 0; // Index for recurring error message when CO2 generation from people is zero for SOAM_ProportionalControlSchOcc
    1131             :         bool myEnvrnFlag = true;
    1132             : 
    1133             :         Real64 desFlowPerZoneArea(EnergyPlusData &state,
    1134             :                                   int const actualZoneNum // Zone index
    1135             :         );
    1136             : 
    1137             :         Real64 desFlowPerZonePerson(EnergyPlusData &state,
    1138             :                                     int const actualZoneNum // Zone index
    1139             :         );
    1140             : 
    1141             :         Real64 calcOAFlowRate(EnergyPlusData &state,
    1142             :                               int ActualZoneNum,           // Zone index
    1143             :                               bool UseOccSchFlag,          // Zone occupancy schedule will be used instead of using total zone occupancy
    1144             :                               bool UseMinOASchFlag,        // Use min OA schedule in DesignSpecification:OutdoorAir object
    1145             :                               bool const PerPersonNotSet,  // when calculation should not include occupants (e.g., dual duct)
    1146             :                               bool const MaxOAVolFlowFlag, // TRUE when calculation uses occupancy schedule  (e.g., dual duct)
    1147             :                               int const spaceNum = 0       // Space index (if applicable)
    1148             :         );
    1149             :     };
    1150             : 
    1151             :     struct ZoneAirDistributionData
    1152             :     {
    1153             :         // Members
    1154             :         std::string Name;
    1155             :         std::string ZoneADEffSchName;      // - Zone air distribution effectiveness schedule name
    1156             :         Real64 ZoneADEffCooling;           // - Zone air distribution effectiveness in cooling mode
    1157             :         Real64 ZoneADEffHeating;           // - Zone air distribution effectiveness in heating mode
    1158             :         Real64 ZoneSecondaryRecirculation; // - Zone air secondary recirculation ratio
    1159             :         int ZoneADEffSchPtr;               // - Zone air distribution effectiveness schedule index
    1160             :         Real64 ZoneVentilationEff;         // Zone ventilation effectiveness
    1161             : 
    1162             :         // Default Constructor
    1163         617 :         ZoneAirDistributionData()
    1164         617 :             : ZoneADEffCooling(1.0), ZoneADEffHeating(1.0), ZoneSecondaryRecirculation(0.0), ZoneADEffSchPtr(0), ZoneVentilationEff(0.0)
    1165             :         {
    1166         617 :         }
    1167             : 
    1168             :         Real64 calculateEz(EnergyPlusData &state, int ZoneNum); // Zone index
    1169             :     };
    1170             : 
    1171             :     // Resets Data globals so that previously set variables are not used in other equipment models
    1172             :     void resetHVACSizingGlobals(EnergyPlusData &state,
    1173             :                                 int curZoneEqNum,
    1174             :                                 int curSysNum,
    1175             :                                 bool &firstPassFlag // Can be set to false during the routine
    1176             :     );
    1177             : 
    1178             :     void GetCoilDesFlowT(EnergyPlusData &state,
    1179             :                          int SysNum,           // central air system index
    1180             :                          Real64 CpAir,         // specific heat to be used in calculations [J/kgC]
    1181             :                          Real64 &DesFlow,      // returned design mass flow [kg/s]
    1182             :                          Real64 &DesExitTemp,  // returned design coil exit temperature [kg/s]
    1183             :                          Real64 &DesExitHumRat // returned design coil exit humidity ratio [kg/kg]
    1184             :     );
    1185             : 
    1186             :     Real64 calcDesignSpecificationOutdoorAir(EnergyPlusData &state,
    1187             :                                              int const DSOAPtr,          // Pointer to DesignSpecification:OutdoorAir object
    1188             :                                              int const ActualZoneNum,    // Zone index
    1189             :                                              bool const UseOccSchFlag,   // Zone occupancy schedule will be used instead of using total zone occupancy
    1190             :                                              bool const UseMinOASchFlag, // Use min OA schedule in DesignSpecification:OutdoorAir object
    1191             :                                              bool const PerPersonNotSet = false, // when calculation should not include occupants (e.g., dual duct)
    1192             :                                              bool const MaxOAVolFlowFlag = false // TRUE when calculation uses occupancy schedule  (e.g., dual duct)
    1193             :     );
    1194             : 
    1195             : } // namespace DataSizing
    1196             : 
    1197             : struct SizingData : BaseGlobalStruct
    1198             : {
    1199             :     int NumOARequirements = 0;                                  // Number of OA Requirements objects
    1200             :     int NumZoneAirDistribution = 0;                             // Number of zone air distribution objects
    1201             :     int NumZoneSizingInput = 0;                                 // Number of Zone Sizing objects
    1202             :     int NumSysSizInput = 0;                                     // Number of System Sizing objects
    1203             :     int NumPltSizInput = 0;                                     // Number of Plant Sizing objects
    1204             :     int CurSysNum = 0;                                          // Current Air System index (0 if not in air loop)
    1205             :     int CurOASysNum = 0;                                        // Current outside air system index (0 if not in OA Sys)
    1206             :     int CurZoneEqNum = 0;                                       // Current Zone Equipment index (0 if not simulating ZoneEq)
    1207             :     int CurTermUnitSizingNum = 0;                               // Current terminal unit sizing index for TermUnitSizing and TermUnitFinalZoneSizing
    1208             :     int CurBranchNum = 0;                                       // Index of branch being simulated (or 0 if not air loop)
    1209             :     HVAC::AirDuctType CurDuctType = HVAC::AirDuctType::Invalid; // Duct type of current branch
    1210             :     int CurLoopNum = 0;                                         // the current plant loop index
    1211             :     int CurCondLoopNum = 0;                                     // the current condenser loop number
    1212             :     int CurEnvirNumSimDay = 0;                                  // current environment number for day simulated
    1213             :     int CurOverallSimDay = 0;                                   // current day of simulation
    1214             :     int NumTimeStepsInAvg = 0;                                  // number of time steps in the averaging window for the design flow and load sequences
    1215             :     int SaveNumPlantComps = 0;                                  // Number of components using water as an energy source or sink (e.g. water coils)
    1216             :     int DataTotCapCurveIndex = 0;                               // index to total capacity as a function of temperature curve
    1217             :     Real64 DataTotCapCurveValue = 0;                            // value of total capacity as a function of temperature curve for CoilVRF_FluidTCtrl_*
    1218             :     int DataPltSizCoolNum = 0;                                  // index to cooling plant sizing data
    1219             :     int DataPltSizHeatNum = 0;                                  // index to heating plant sizing data
    1220             :     int DataWaterLoopNum = 0;                                   // index to plant water loop
    1221             :     int DataCoilNum = 0;                                        // index to coil object
    1222             :     HVAC::FanOp DataFanOp = HVAC::FanOp::Invalid;               // fan operating mode (FanOp::Continuous or FanOp::Cycling)
    1223             :     bool DataCoilIsSuppHeater = false;                          // TRUE if heating coil used as supplemental heater
    1224             :     bool DataIsDXCoil = false;                                  // TRUE if direct-expansion coil
    1225             :     bool DataAutosizable = true;                                // TRUE if component is autosizable
    1226             :     bool DataEMSOverrideON = false;                             // boolean determines if user relies on EMS to override autosizing
    1227             :     bool DataScalableSizingON = false;                          // boolean determines scalable flow sizing is specified
    1228             :     bool DataScalableCapSizingON = false;                       // boolean determines scalable capacity sizing is specified
    1229             :     bool DataSysScalableFlowSizingON = false;                   // boolean determines scalable system flow sizing is specified
    1230             :     bool DataSysScalableCapSizingON = false;                    // boolean determines scalable system capacity sizing is specified
    1231             :     bool SysSizingRunDone = false;                              // True if a system sizing run is successfully completed.
    1232             :     bool TermUnitSingDuct = false;                              // TRUE if a non-induction single duct terminal unit
    1233             :     bool TermUnitPIU = false;                                   // TRUE if a powered induction terminal unit
    1234             :     bool TermUnitIU = false;                                    // TRUE if an unpowered induction terminal unit
    1235             :     bool ZoneEqFanCoil = false;                                 // TRUE if a 4 pipe fan coil unit is being simulated
    1236             :     bool ZoneEqOutdoorAirUnit = false;                          // TRUE if an OutdoorAirUnit is being simulated
    1237             :     bool ZoneEqUnitHeater = false;                              // TRUE if a unit heater is being simulated
    1238             :     bool ZoneEqUnitVent = false;                                // TRUE if a unit ventilator unit is being simulated
    1239             :     bool ZoneEqVentedSlab = false;                              // TRUE if a ventilated slab is being simulated
    1240             :     bool ZoneEqDXCoil = false;                                  // TRUE if a ZoneHVAC DX coil is being simulated
    1241             :     bool ZoneEqUnitarySys = false;                              // TRUE if a zone UnitarySystem is being simulated
    1242             :     bool ZoneCoolingOnlyFan = false;                            // TRUE if a ZoneHVAC DX cooling coil is only coil in parent
    1243             :     bool ZoneHeatingOnlyFan = false;                            // TRUE if zone unit only does heating and contains a fam (such as Unit Heater)
    1244             :     bool ZoneSizingRunDone = false;                             // True if a zone sizing run has been successfully completed.
    1245             :     bool DataErrorsFound = false;                               // used for simulation termination when errors are found
    1246             :     bool DataDXCoolsLowSpeedsAutozize = false;                  // true allows reporting lower speed CoilCoolingCurveFits Autosize
    1247             :     Real64 AutoVsHardSizingThreshold = 0.1;                     // criteria threshold used to determine if user hard size and autosize disagree 10%
    1248             :     Real64 AutoVsHardSizingDeltaTempThreshold = 1.5;            // temperature criteria threshold for autosize versus hard size [C]
    1249             :     Real64 DataCoilSizingAirInTemp = 0.0;                       // saves sizing data for use in coil object reporting
    1250             :     Real64 DataCoilSizingAirInHumRat = 0.0;                     // saves sizing data for use in coil object reporting
    1251             :     Real64 DataCoilSizingAirOutTemp = 0.0;                      // saves sizing data for use in coil object reporting
    1252             :     Real64 DataCoilSizingAirOutHumRat = 0.0;                    // saves sizing data for use in coil object reporting
    1253             :     Real64 DataCoilSizingFanCoolLoad = 0.0;                     // saves sizing data for use in coil object reporting
    1254             :     Real64 DataCoilSizingCapFT = 1.0;                           // saves sizing data for use in coil object reporting
    1255             :     bool DataDesAccountForFanHeat = true;                       // include fan heat when true
    1256             :     Real64 DataDesInletWaterTemp = 0.0;                         // coil inlet water temperature used for warning messages
    1257             :     Real64 DataDesInletAirHumRat = 0.0;                         // coil inlet air humidity ratio used for warning messages
    1258             :     Real64 DataDesInletAirTemp = 0.0;                           // coil inlet air temperature used for warning messages
    1259             :     Real64 DataDesOutletAirTemp = 0.0;                          // coil outlet air temperature used for sizing
    1260             :     Real64 DataDesOutletAirHumRat = 0.0;                        // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air]
    1261             :     Real64 DataCoolCoilCap = 0.0;                               // cooling coil capacity used for sizing with scalable inputs [W]
    1262             :     Real64 DataFlowUsedForSizing = 0.0;                         // air flow rate used for sizing with scalable inputs [m3/s]
    1263             :     Real64 DataAirFlowUsedForSizing = 0.0;                      // air flow rate used for sizing with scalable inputs [m3/s]
    1264             :     Real64 DataWaterFlowUsedForSizing = 0.0;                    // water flow rate used for sizing with scalable inputs [m3/s]
    1265             :     Real64 DataCapacityUsedForSizing = 0.0;                     // capacity used for sizing with scalable inputs [W]
    1266             :     Real64 DataDesignCoilCapacity = 0.0;                        // calculated capacity of coil at end of UA calculation
    1267             :     Real64 DataHeatSizeRatio = 1.0;                             // heating coil size as a ratio of cooling coil capacity
    1268             :     Real64 DataEMSOverride = 0.0;                               // value of EMS variable used to override autosizing
    1269             :     Real64 DataBypassFrac = 0.0;                                // value of bypass fraction for Coil:Cooling:DX:TwoStageWithHumidityControlMode coils
    1270             :     Real64 DataFracOfAutosizedCoolingAirflow = 1.0;             // fraction of design cooling supply air flow rate
    1271             :     Real64 DataFracOfAutosizedHeatingAirflow = 1.0;             // fraction of design heating supply air flow rate
    1272             :     Real64 DataFlowPerCoolingCapacity = 0.0;                    // cooling supply air flow per unit cooling capacity
    1273             :     Real64 DataFlowPerHeatingCapacity = 0.0;                    // heating supply air flow per unit heating capacity
    1274             :     Real64 DataFracOfAutosizedCoolingCapacity = 1.0;            // fraction of autosized cooling capacity
    1275             :     Real64 DataFracOfAutosizedHeatingCapacity = 1.0;            // fraction of autosized heating capacit
    1276             :     Real64 DataAutosizedCoolingCapacity = 0.0;                  // Autosized cooling capacity used for multiplying flow per capacity to get flow rate
    1277             :     Real64 DataAutosizedHeatingCapacity = 0.0;                  // Autosized heating capacit used for multiplying flow per capacity to get flow rate
    1278             :     Real64 DataConstantUsedForSizing = 0.0;                     // base value used for sizing inputs that are ratios of other inputs
    1279             :     Real64 DataFractionUsedForSizing = 0.0;               // fractional value of base value used for sizing inputs that are ratios of other inputs
    1280             :     Real64 DataNonZoneNonAirloopValue = 0.0;              // used when equipment is not located in a zone or airloop
    1281             :     Real64 DataSizingFraction = 1.0;                      // used when ratios of sizing is required
    1282             :     int DataZoneUsedForSizing = 0;                        // pointer to control zone for air loop equipment
    1283             :     int DataZoneNumber = 0;                               // a pointer to a served by zoneHVAC equipment
    1284             :     int NumZoneHVACSizing = 0;                            // Number of design specification zone HVAC sizing objects
    1285             :     int NumAirTerminalSizingSpec = 0;                     // Number of design specfication air terminal sizing objects
    1286             :     int NumAirTerminalUnits = 0;                          // Number of air terminal units (same as total number of zone inlet nodes)
    1287             :     Real64 DXCoolCap = 0.0;                               // The rated cooling capacity of a DX unit.
    1288             :     Real64 GlobalHeatSizingFactor = 0.0;                  // the global heating sizing ratio
    1289             :     Real64 GlobalCoolSizingFactor = 0.0;                  // the global cooling sizing ratio
    1290             :     Real64 SuppHeatCap = 0.0;                             // the heating capacity of the supplemental heater in a unitary system
    1291             :     Real64 UnitaryHeatCap = 0.0;                          // the heating capacity of a unitary system
    1292             :     char SizingFileColSep = DataStringGlobals::CharComma; // Character to separate columns in sizing outputs
    1293             :     int DataDesicDehumNum = 0;                            // index to desiccant dehumidifier
    1294             :     bool DataDesicRegCoil = false;                        // TRUE if heating coil desiccant regeneration coil
    1295             :     bool HRFlowSizingFlag = false;                        // True, if it is a heat recovery heat exchanger flow sizing
    1296             :     Real64 DataWaterCoilSizCoolDeltaT = 0.0;              // used for sizing cooling coil water design flow rate
    1297             :     Real64 DataWaterCoilSizHeatDeltaT = 0.0;              // used for sizing heating coil water design flow rate
    1298             :     bool DataNomCapInpMeth = false;                       // True if heating coil is sized by CoilPerfInpMeth == NomCa
    1299             :     HVAC::FanType DataFanType = HVAC::FanType::Invalid;   // Fan type used during sizing
    1300             :     int DataFanIndex = -1;                                // Fan index used during sizing
    1301             :     HVAC::FanPlace DataFanPlacement = HVAC::FanPlace::Invalid; // identifies location of fan wrt coil
    1302             :     int DataDXSpeedNum = 0;
    1303             :     int DataCoolCoilType = -1;
    1304             :     int DataCoolCoilIndex = -1;
    1305             :     EPVector<DataSizing::OARequirementsData> OARequirements;
    1306             :     EPVector<DataSizing::ZoneAirDistributionData> ZoneAirDistribution;
    1307             :     EPVector<DataSizing::ZoneSizingInputData> ZoneSizingInput;            // Input data for zone sizing
    1308             :     Array2D<DataSizing::ZoneSizingData> ZoneSizing;                       // Data for zone sizing (all data, all design)
    1309             :     EPVector<DataSizing::ZoneSizingData> FinalZoneSizing;                 // Final data for zone sizing including effects
    1310             :     Array2D<DataSizing::ZoneSizingData> CalcZoneSizing;                   // Data for zone sizing (all data)
    1311             :     EPVector<DataSizing::ZoneSizingData> CalcFinalZoneSizing;             // Final data for zone sizing (calculated only)
    1312             :     Array2D<DataSizing::ZoneSizingData> SpaceSizing;                      // Data for space sizing (all data, all design)
    1313             :     EPVector<DataSizing::ZoneSizingData> FinalSpaceSizing;                // Final data for space sizing including effects
    1314             :     Array2D<DataSizing::ZoneSizingData> CalcSpaceSizing;                  // Data for space sizing (all data)
    1315             :     EPVector<DataSizing::ZoneSizingData> CalcFinalSpaceSizing;            // Final data for space sizing (calculated only)
    1316             :     EPVector<DataSizing::TermUnitZoneSizingData> TermUnitFinalZoneSizing; // Final data for sizing terminal units (indexed per terminal unit)
    1317             :     EPVector<DataSizing::SystemSizingInputData> SysSizInput;              // Input data array for system sizing object
    1318             :     Array2D<DataSizing::SystemSizingData> SysSizing;                      // Data array for system sizing (all data)
    1319             :     EPVector<DataSizing::SystemSizingData> FinalSysSizing;                // Data array for system sizing (max heat/cool)
    1320             :     EPVector<DataSizing::SystemSizingData> CalcSysSizing;                 // Data array for system sizing (max heat/cool)
    1321             :     EPVector<DataSizing::SysSizPeakDDNumData> SysSizPeakDDNum;            // data array for peak des day indices
    1322             :     EPVector<DataSizing::TermUnitSizingData> TermUnitSizing;              // Data added in sizing routines (indexed per terminal unit)
    1323             :     EPVector<DataSizing::ZoneEqSizingData> ZoneEqSizing;                  // Data added in zone eq component sizing routines
    1324             :     EPVector<DataSizing::ZoneEqSizingData> UnitarySysEqSizing;            // Data added in unitary system sizing routines
    1325             :     EPVector<DataSizing::ZoneEqSizingData> OASysEqSizing;                 // Data added in unitary system sizing routines
    1326             :     EPVector<DataSizing::PlantSizingData> PlantSizData;                   // Input data array for plant sizing
    1327             :     EPVector<DataSizing::DesDayWeathData> DesDayWeath;                    // design day weather saved at major time step
    1328             :     EPVector<DataSizing::CompDesWaterFlowData> CompDesWaterFlow;          // array to store components' design water flow
    1329             :     EPVector<DataSizing::ZoneHVACSizingData> ZoneHVACSizing;              // Input data for zone HVAC sizing
    1330             :     EPVector<DataSizing::AirTerminalSizingSpecData>
    1331             :         AirTerminalSizingSpec;                                   // Input data for zone HVAC sizing used only for Facility Load Component Summary
    1332             :     EPVector<DataSizing::FacilitySizingData> CalcFacilitySizing; // Data for zone sizing
    1333             :     DataSizing::FacilitySizingData CalcFinalFacilitySizing;      // Final data for zone sizing
    1334             :     Array1D<Real64> VbzByZone;                                   // saved value of ZoneOAUnc which is Vbz used in 62.1 tabular report
    1335             :     Array1D<Real64> VdzClgByZone;    // saved value of cooling based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps)
    1336             :     Array1D<Real64> VdzMinClgByZone; // minimum discharge flow for cooling, Vdz includes secondary and primary flows for dual path
    1337             :     Array1D<Real64> VdzHtgByZone;    // saved value of heating based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps)
    1338             :     Array1D<Real64> VdzMinHtgByZone; // minimum discharge flow for heating, Vdz includes secondary and primary flows for dual path
    1339             :     Array1D<Real64> ZdzClgByZone;    // minimum discharge outdoor-air fraction for cooling
    1340             :     Array1D<Real64> ZdzHtgByZone;    // minimum discharge outdoor-air fraction for heating
    1341             :     Array1D<Real64> VpzClgByZone;    // saved value of cooling based ZonePA which is Vpz used in 62.1 tabular report
    1342             :     Array1D<Real64> VpzMinClgByZone; // saved value of minimum cooling based ZonePA which is VpzClg-min used in 62.1 tabular report
    1343             :     Array1D<Real64> VpzHtgByZone;    // saved value of heating based ZonePA which is Vpz used in 62.1 tabular report
    1344             :     Array1D<Real64> VpzMinHtgByZone; // saved value of minimum heating based ZonePA which is VpzHtg-min used in 62.1 tabular report
    1345             :     Array1D<Real64> VpzClgSumBySys;  // sum of saved value of cooling based ZonePA which is Vpz-sum used in 62.1 tabular report
    1346             :     Array1D<Real64> VpzHtgSumBySys;  // sum of saved value of heating based ZonePA which is Vpz-sum used in 62.1 tabular report
    1347             :     Array1D<Real64> PzSumBySys;      // sum of design people for system, Pz_sum
    1348             :     Array1D<Real64> PsBySys;         // sum of peak concurrent people by system, Ps
    1349             :     Array1D<Real64> DBySys;          // Population Diversity by system
    1350             :     Array1D<Real64> SumRpxPzBySys;   // Sum of per person OA times number of people by system, No D yet
    1351             :     Array1D<Real64> SumRaxAzBySys;   // sum of per area OA time zone area by system, does not get altered by D
    1352             :     Array1D<std::string> PeakPsOccurrenceDateTimeStringBySys;    // string describing when Ps peak occurs
    1353             :     Array1D<std::string> PeakPsOccurrenceEnvironmentStringBySys; // string describing Environment when Ps peak occurs
    1354             :     Array1D<Real64> VouBySys;                                    // uncorrected system outdoor air requirement, for std 62.1 VRP
    1355             :     Array1D<Real64> VpsClgBySys;                                 // System primary airflow Vps, for cooling for std 62.1 VRP
    1356             :     Array1D<Real64> VpsHtgBySys;                                 // system primary airflow Vps, for heating for std 62.1 VRP
    1357             :     Array1D<Real64> FaByZoneHeat;                                // saved value of Fa used in 62.1 tabular report
    1358             :     Array1D<Real64> FbByZoneCool;                                // saved value of Fb used in 62.1 tabular report
    1359             :     Array1D<Real64> FbByZoneHeat;                                // saved value of Fb used in 62.1 tabular report
    1360             :     Array1D<Real64> FcByZoneCool;                                // saved value of Fc used in 62.1 tabular report
    1361             :     Array1D<Real64> FcByZoneHeat;                                // saved value of Fc used in 62.1 tabular report
    1362             :     Array1D<Real64> XsBySysCool;                                 // saved value of Xs used in 62.1 tabular report
    1363             :     Array1D<Real64> XsBySysHeat;                                 // saved value of Xs used in 62.1 tabular report
    1364             :     Array1D<Real64> EvzByZoneCool;                               // saved value of Evz (zone vent effy) used in 62.1 tabular report
    1365             :     Array1D<Real64> EvzByZoneHeat;                               // saved value of Evz (zone vent effy) used in 62.1 tabular report
    1366             :     Array1D<Real64> EvzByZoneCoolPrev;                           // saved value of Evz (zone vent effy) used in 62.1 tabular report
    1367             :     Array1D<Real64> EvzByZoneHeatPrev;                           // saved value of Evz (zone vent effy) used in 62.1 tabular report
    1368             :     Array1D<Real64> VotClgBySys;     // saved value of cooling ventilation required at primary AHU, used in 62.1 tabular report
    1369             :     Array1D<Real64> VotHtgBySys;     // saved value of heating ventilation required at primary AHU, used in 62.1 tabular report
    1370             :     Array1D<Real64> VozSumClgBySys;  // saved value of cooling ventilation required at clg zones
    1371             :     Array1D<Real64> VozSumHtgBySys;  // saved value of cooling ventilation required at htg zones
    1372             :     Array1D<Real64> TotCoolCapTemp;  // scratch variable used for calculating peak load [W]
    1373             :     Array1D<Real64> EvzMinBySysHeat; // saved value of EvzMin used in 62.1 tabular report
    1374             :     Array1D<Real64> EvzMinBySysCool; // saved value of EvzMin used in 62.1 tabular report
    1375             :     Array1D<Real64> FaByZoneCool;    // triggers allocation in UpdateSysSizing
    1376             :     Array1D<Real64> SensCoolCapTemp; // triggers allocation in UpdateSysSizing
    1377             : 
    1378         796 :     void init_state([[maybe_unused]] EnergyPlusData &state) override
    1379             :     {
    1380         796 :     }
    1381             : 
    1382           0 :     void clear_state() override
    1383             :     {
    1384           0 :         new (this) SizingData();
    1385           0 :     }
    1386             : };
    1387             : 
    1388             : } // namespace EnergyPlus
    1389             : 
    1390             : #endif

Generated by: LCOV version 1.14