LCOV - code coverage report
Current view: top level - EnergyPlus - DataSizing.hh (source / functions) Hit Total Coverage
Test: lcov.output.filtered Lines: 61 64 95.3 %
Date: 2023-01-17 19:17:23 Functions: 54 69 78.3 %

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

Generated by: LCOV version 1.13