LCOV - code coverage report
Current view: top level - EnergyPlus - ThermalComfort.hh (source / functions) Hit Total Coverage
Test: lcov.output.filtered Lines: 16 19 84.2 %
Date: 2023-01-17 19:17:23 Functions: 8 10 80.0 %

          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 ThermalComfort_hh_INCLUDED
      49             : #define ThermalComfort_hh_INCLUDED
      50             : 
      51             : // ObjexxFCL Headers
      52             : #include <ObjexxFCL/Optional.hh>
      53             : 
      54             : // EnergyPlus Headers
      55             : #include <EnergyPlus/Data/BaseData.hh>
      56             : #include <EnergyPlus/DataGlobals.hh>
      57             : #include <EnergyPlus/EnergyPlus.hh>
      58             : 
      59             : namespace EnergyPlus {
      60             : 
      61             : // Forward declarations
      62             : struct EnergyPlusData;
      63             : 
      64             : namespace ThermalComfort {
      65             : 
      66             :     Real64 constexpr TAbsConv = DataGlobalConstants::KelvinConv; // Converter for absolute temperature
      67             :     Real64 constexpr ActLevelConv = 58.2;                        // Converter for activity level (1Met = 58.2 W/m2)
      68             :     Real64 constexpr BodySurfArea = 1.8;                         // Dubois body surface area of the human body (m2)
      69             :     Real64 constexpr BodySurfAreaPierce = 1.8258;                // Pierce two node body surface area of the human body (m2)
      70             :     Real64 constexpr RadSurfEff = 0.72;                          // Fraction of surface effective for radiation
      71             :     Real64 constexpr StefanBoltz = 5.6697e-8;                    // Stefan-Boltzmann constant (W/m2K4)
      72             : 
      73             :     struct ThermalComfortDataType
      74             :     {
      75             :         // Members
      76             :         Real64 FangerPMV;
      77             :         Real64 FangerPPD;
      78             :         Real64 CloSurfTemp; // clothing surface temp from iteration in FANGER calcs
      79             :         Real64 PiercePMVET;
      80             :         Real64 PiercePMVSET;
      81             :         Real64 PierceDISC;
      82             :         Real64 PierceTSENS;
      83             :         Real64 PierceSET;
      84             :         Real64 KsuTSV;
      85             :         Real64 ThermalComfortMRT;
      86             :         Real64 ThermalComfortOpTemp;
      87             :         Real64 ClothingValue;
      88             :         int ThermalComfortAdaptiveASH5590;
      89             :         int ThermalComfortAdaptiveASH5580;
      90             :         int ThermalComfortAdaptiveCEN15251CatI;
      91             :         int ThermalComfortAdaptiveCEN15251CatII;
      92             :         int ThermalComfortAdaptiveCEN15251CatIII;
      93             :         Real64 TComfASH55;
      94             :         Real64 TComfCEN15251;
      95             :         Real64 ASHRAE55RunningMeanOutdoorTemp;
      96             :         Real64 CEN15251RunningMeanOutdoorTemp;
      97             :         Real64 CoolingEffectASH55;
      98             :         Real64 CoolingEffectAdjustedPMVASH55;
      99             :         Real64 CoolingEffectAdjustedPPDASH55;
     100             :         Real64 AnkleDraftPPDASH55;
     101             : 
     102             :         // Default Constructor
     103        4641 :         ThermalComfortDataType()
     104        4641 :             : FangerPMV(0.0), FangerPPD(0.0), CloSurfTemp(0.0), PiercePMVET(0.0), PiercePMVSET(0.0), PierceDISC(0.0), PierceTSENS(0.0),
     105             :               PierceSET(0.0), KsuTSV(0.0), ThermalComfortMRT(0.0), ThermalComfortOpTemp(0.0), ClothingValue(0.0), ThermalComfortAdaptiveASH5590(0),
     106             :               ThermalComfortAdaptiveASH5580(0), ThermalComfortAdaptiveCEN15251CatI(0), ThermalComfortAdaptiveCEN15251CatII(0),
     107             :               ThermalComfortAdaptiveCEN15251CatIII(0), TComfASH55(0.0), TComfCEN15251(0.0), ASHRAE55RunningMeanOutdoorTemp(0.0),
     108             :               CEN15251RunningMeanOutdoorTemp(0.0), CoolingEffectASH55(0.0), CoolingEffectAdjustedPMVASH55(0.0), CoolingEffectAdjustedPPDASH55(0.0),
     109        4641 :               AnkleDraftPPDASH55(0.0)
     110             :         {
     111        4641 :         }
     112             :     };
     113             : 
     114             :     struct ThermalComfortInASH55Type
     115             :     {
     116             :         // Members
     117             :         // for debugging
     118             :         // REAL(r64)    :: dCurAirTemp
     119             :         // REAL(r64)    :: dCurMeanRadiantTemp
     120             :         // REAL(r64)    :: dOperTemp
     121             :         // REAL(r64)    :: dHumidRatio
     122             :         Real64 timeNotSummer;      // time when not in summer comfort range based on ASHRAE 55 simplified
     123             :         Real64 timeNotWinter;      // time when not in winter comfort range based on ASHRAE 55 simplified
     124             :         Real64 timeNotEither;      // time when  not in summer or winter comfort range based on ASHRAE 55 simplified
     125             :         Real64 totalTimeNotSummer; // sum for simulation for summer
     126             :         Real64 totalTimeNotWinter; // sum for simulation for winter
     127             :         Real64 totalTimeNotEither; // sum for simulation for either
     128             :         bool ZoneIsOccupied;       // flag if zone has people
     129             :         int warningIndex;          // variable to store pointer to the recurring warning
     130             :         int warningIndex2;         // variable to store pointer to the recurring warning
     131             :         bool Enable55Warning;      // flag if the warning should be able to be shown if appropriate
     132             : 
     133             :         // Default Constructor
     134        5585 :         ThermalComfortInASH55Type()
     135        5585 :             : timeNotSummer(0.0), timeNotWinter(0.0), timeNotEither(0.0), totalTimeNotSummer(0.0), totalTimeNotWinter(0.0), totalTimeNotEither(0.0),
     136        5585 :               ZoneIsOccupied(false), warningIndex(0), warningIndex2(0), Enable55Warning(false)
     137             :         {
     138        5585 :         }
     139             :     };
     140             : 
     141             :     struct ThermalComfortSetPointType
     142             :     {
     143             :         // Members
     144             :         Real64 notMetHeating;
     145             :         Real64 notMetCooling;
     146             :         Real64 notMetHeatingOccupied;
     147             :         Real64 notMetCoolingOccupied;
     148             :         Real64 totalNotMetHeating;
     149             :         Real64 totalNotMetCooling;
     150             :         Real64 totalNotMetHeatingOccupied;
     151             :         Real64 totalNotMetCoolingOccupied;
     152             : 
     153             :         // Default Constructor
     154        5585 :         ThermalComfortSetPointType()
     155        5585 :             : notMetHeating(0.0), notMetCooling(0.0), notMetHeatingOccupied(0.0), notMetCoolingOccupied(0.0), totalNotMetHeating(0.0),
     156        5585 :               totalNotMetCooling(0.0), totalNotMetHeatingOccupied(0.0), totalNotMetCoolingOccupied(0.0)
     157             :         {
     158        5585 :         }
     159             :     };
     160             : 
     161         780 :     struct AngleFactorData
     162             :     {
     163             :         // Members
     164             :         EPVector<Real64> AngleFactor;      // Angle factor of each surface
     165             :         std::string Name;                  // Angle factor list name
     166             :         EPVector<std::string> SurfaceName; // Names of the Surfces
     167             :         EPVector<int> SurfacePtr;          // Surface indexes
     168             :         int TotAngleFacSurfaces = 0;       // Total number of surfaces
     169             :         int EnclosurePtr = 0;              // Enclosure index for the first surface
     170             :     };
     171             : 
     172             :     void ManageThermalComfort(EnergyPlusData &state,
     173             :                               bool const InitializeOnly); // when called from ZTPC and calculations aren't needed
     174             : 
     175             :     void InitThermalComfort(EnergyPlusData &state);
     176             : 
     177             :     void CalcThermalComfortFanger(EnergyPlusData &state,
     178             :                                   Optional_int_const PNum = _,     // People number for thermal comfort control
     179             :                                   Optional<Real64 const> Tset = _, // Temperature setpoint for thermal comfort control
     180             :                                   Optional<Real64> PMVResult = _   // PMV value for thermal comfort control
     181             :     );
     182             :     Real64 CalcFangerPMV(
     183             :         EnergyPlusData &state, Real64 AirTemp, Real64 RadTemp, Real64 RelHum, Real64 AirVel, Real64 ActLevel, Real64 CloUnit, Real64 WorkEff);
     184             : 
     185             :     Real64 CalcFangerPPD(Real64 PMV);
     186             : 
     187             :     Real64 CalcRelativeAirVelocity(Real64 AirVel, Real64 ActMet);
     188             : 
     189             :     void GetThermalComfortInputsASHRAE(EnergyPlusData &state);
     190             : 
     191             :     Real64 CalcStandardEffectiveTemp(
     192             :         EnergyPlusData &state, Real64 AirTemp, Real64 RadTemp, Real64 RelHum, Real64 AirVel, Real64 ActMet, Real64 CloUnit, Real64 WorkEff);
     193             : 
     194             :     void CalcCoolingEffectAdjustedPMV(EnergyPlusData &state, Real64 &CoolingEffect, Real64 &CoolingEffectAdjustedPMV);
     195             : 
     196             :     void CalcThermalComfortPierceASHRAE(EnergyPlusData &state);
     197             : 
     198             :     void CalcThermalComfortCoolingEffectASH(EnergyPlusData &state);
     199             : 
     200             :     void CalcThermalComfortAnkleDraftASH(EnergyPlusData &state);
     201             : 
     202             :     void CalcThermalComfortKSU(EnergyPlusData &state);
     203             : 
     204             :     void DERIV(EnergyPlusData &state,
     205             :                int &TempIndiceNum,         // Number of temperature indices  unused1208
     206             :                Array1D<Real64> &Temp,      // Temperature unused1208
     207             :                Array1D<Real64> &TempChange // Change of temperature
     208             :     );
     209             : 
     210             :     void RKG(EnergyPlusData &state, int &NEQ, Real64 &H, Real64 &X, Array1D<Real64> &Y, Array1D<Real64> &DY, Array1D<Real64> &C);
     211             : 
     212             :     void GetAngleFactorList(EnergyPlusData &state);
     213             : 
     214             :     Real64 CalcAngleFactorMRT(EnergyPlusData &state, int const AngleFacNum);
     215             : 
     216             :     Real64 CalcSurfaceWeightedMRT(EnergyPlusData &state, int const SurfNum, bool AveragewithSurface = true);
     217             : 
     218             :     Real64 CalcSatVapPressFromTemp(Real64 const Temp);
     219             : 
     220             :     Real64 CalcSatVapPressFromTempTorr(Real64 const Temp);
     221             : 
     222             :     Real64 CalcRadTemp(EnergyPlusData &state, int const PeopleListNum); // Type of MRT calculation (zone averaged or surface weighted)
     223             : 
     224             :     void CalcThermalComfortSimpleASH55(EnergyPlusData &state);
     225             : 
     226             :     void ResetThermalComfortSimpleASH55(EnergyPlusData &state);
     227             : 
     228             :     void CalcIfSetPointMet(EnergyPlusData &state);
     229             : 
     230             :     void ResetSetPointMet(EnergyPlusData &state);
     231             : 
     232             :     void CalcThermalComfortAdaptiveASH55(
     233             :         EnergyPlusData &state,
     234             :         bool const initiate,                  // true if supposed to initiate
     235             :         Optional_bool_const wthrsim = _,      // true if this is a weather simulation
     236             :         Optional<Real64 const> avgdrybulb = _ // approximate avg drybulb for design day.  will be used as previous period in design day
     237             :     );
     238             : 
     239             :     void CalcThermalComfortAdaptiveCEN15251(
     240             :         EnergyPlusData &state,
     241             :         bool const initiate,                  // true if supposed to initiate
     242             :         Optional_bool_const wthrsim = _,      // true if this is a weather simulation
     243             :         Optional<Real64 const> avgdrybulb = _ // approximate avg drybulb for design day.  will be used as previous period in design day
     244             :     );
     245             : 
     246             :     void DynamicClothingModel(EnergyPlusData &state);
     247             : 
     248             : } // namespace ThermalComfort
     249             : 
     250         771 : struct ThermalComfortsData : BaseGlobalStruct
     251             : {
     252             : 
     253             :     bool FirstTimeFlag = true;                // Flag set to make sure you get input once
     254             :     bool FirstTimeSurfaceWeightedFlag = true; // Flag set to make sure certain calcs related to surface weighted option are only done once
     255             :     int CoolingEffectWarningInd = 0;          // Counter for ankle draft invalid air velocity warnings.
     256             :     int AnkleDraftAirVelWarningInd = 0;       // Counter for ankle draft invalid air velocity warnings.
     257             :     int AnkleDraftCloUnitWarningInd = 0;      // Counter for ankle draft invalid clothing unit warnings.
     258             :     int AnkleDraftActMetWarningInd = 0;       // Counter for ankle draft invalid activity level warnings.
     259             : 
     260             :     // MODULE VARIABLE DECLARATIONS:
     261             :     Real64 AbsAirTemp = 0.0;                // Absolute air temperature; K
     262             :     Real64 AbsCloSurfTemp = 0.0;            // Absolute clothing surface temperature; K
     263             :     Real64 AbsRadTemp = 0.0;                // Absolute radiant temperature; K
     264             :     Real64 AcclPattern = 0.0;               // The pattern of acclimation
     265             :     Real64 ActLevel = 0.0;                  // Metabolic rate; w/m2
     266             :     Real64 ActMet = 0.0;                    // Metabolic rate; []
     267             :     Real64 AirVel = 0.0;                    // Air velocity; m/s
     268             :     Real64 AirTemp = 0.0;                   // Air temperature; C
     269             :     Real64 CloBodyRat = 0.0;                // Ratio of clothed body
     270             :     Real64 CloInsul = 0.0;                  // Clothing insulation
     271             :     Real64 CloPermeatEff = 0.0;             // Clothing permeation efficiency
     272             :     Real64 CloSurfTemp = 0.0;               // Clothing surface temperature; K
     273             :     Real64 CloThermEff = 0.0;               // The Burton thermal efficiency factor for clothing
     274             :     Real64 CloUnit = 0.0;                   // Clothing unit; CLO
     275             :     Real64 ConvHeatLoss = 0.0;              // Convective heat loss
     276             :     Real64 CoreTempChange = 0.0;            // Temperature change of core in 1 minute
     277             :     Real64 CoreTemp = 0.0;                  // Body core temperature
     278             :     Real64 CoreTempNeut = 0.0;              // Body core temperature of neutral state
     279             :     Real64 CoreThermCap = 0.0;              // Thermal capacity of core
     280             :     Real64 DryHeatLoss = 0.0;               // Heat loss from clothing surface due to both convection and radiation
     281             :     Real64 DryHeatLossET = 0.0;             // Effective heat loss from clothing surface due to both convection and radiation
     282             :     Real64 DryHeatLossSET = 0.0;            // Standard effective heat loss from clothing surface due to both convection and radiation
     283             :     Real64 DryRespHeatLoss = 0.0;           // Dry respiration heat loss
     284             :     Real64 EvapHeatLoss = 0.0;              // Evaporative heat loss from skin
     285             :     Real64 EvapHeatLossDiff = 0.0;          // Evaporative heat loss due to moisture diffusion through skin
     286             :     Real64 EvapHeatLossMax = 0.0;           // Maximum evaporative heat loss
     287             :     Real64 EvapHeatLossRegComf = 0.0;       // Evaporative heat loss due to regulatory sweating at the state of comfort
     288             :     Real64 EvapHeatLossRegSweat = 0.0;      // Evaporative heat loss from regulatory sweating
     289             :     Real64 EvapHeatLossSweat = 0.0;         // Evaporative heat loss from the sweat secreted
     290             :     Real64 EvapHeatLossSweatPrev = 0.0;     // Old value of evaporative heat loss from the sweat secreted (KSU)
     291             :     Real64 H = 0.0;                         // Combined heat transfer coefficient
     292             :     Real64 Hc = 0.0;                        // Convective heat transfer coeffiency
     293             :     Real64 HcFor = 0.0;                     // Convective heat transfer coeffiency - Forced
     294             :     Real64 HcNat = 0.0;                     // Convective heat transfer coeffiency - Natural
     295             :     Real64 HeatFlow = 0.0;                  // Heat flow from core to skin
     296             :     Real64 Hr = 0.0;                        // Radiant heat transfer coeffiency
     297             :     Real64 IntHeatProd = 0.0;               // Internal heat production
     298             :     int IterNum = 0;                        // Number of iteration
     299             :     Real64 LatRespHeatLoss = 0.0;           // Latent respiration heat loss
     300             :     int MaxZoneNum = 0;                     // Number of zones
     301             :     int MRTCalcType = 0;                    // The type of MRT calculation (ZoneAveraged or SurfaceWeighted)
     302             :     Real64 OpTemp = 0.0;                    // Operative temperature
     303             :     Real64 EffTemp = 0.0;                   // Effective temperature
     304             :     int PeopleNum = 0;                      // People number
     305             :     Real64 RadHeatLoss = 0.0;               // Radiant heat loss
     306             :     Real64 RadTemp = 0.0;                   // Radiant temperature; C
     307             :     Real64 RelHum = 0.0;                    // Relative humidity; Fraction
     308             :     Real64 RespHeatLoss = 0.0;              // The rate of respiratory heat loss
     309             :     Real64 SatSkinVapPress = 0.0;           // Saturated vapor pressure at skin temperature
     310             :     Real64 ShivResponse = 0.0;              // Metalbolic heat production due to shivering
     311             :     Real64 SkinComfTemp = 0.0;              // Skin temperature required to achieve thermal comfort; C
     312             :     Real64 SkinComfVPress = 0.0;            // Saturated water vapor pressure at required skin temperature; Torr
     313             :     Real64 SkinTemp = 0.0;                  // Skin temperature
     314             :     Real64 SkinTempChange = 0.0;            // Temperature change of skin in 1 minute
     315             :     Real64 SkinTempNeut = 0.0;              // Skin temperature at neutral state
     316             :     Real64 SkinThermCap = 0.0;              // Thermal capacity of Skin
     317             :     Real64 SkinWetDiff = 0.0;               // Skin wettedness for nonsweating portion of skin
     318             :     Real64 SkinWetSweat = 0.0;              // Skin wettedness required to evaporate regulatory sweat
     319             :     Real64 SkinWetTot = 0.0;                // Total skin wettedness
     320             :     Real64 SkinVapPress = 0.0;              // Vapor pressure at skin
     321             :     Real64 SurfaceTemp = 0.0;               // Surface temperature when MRTType is 'SurfaceWeighted'
     322             :     Real64 AvgBodyTemp = 0.0;               // Weighted average body temperature considering core and skin temperature
     323             :     Real64 ThermCndct = 0.0;                // Thermal conductance of skin
     324             :     Real64 ThermSensTransCoef = 0.0;        // Theraml sensation coefficient for PMV
     325             :     Real64 Time = 0.0;                      // Time, hr
     326             :     Real64 TimeChange = 0.0;                // Change of time, hr
     327             :     Real64 VapPress = 0.0;                  // Vapor pressure; Torr  ?? BG Oct 2005 humm, this should be kPa
     328             :     Real64 VasoconstrictFac = 0.0;          // Constriction factor of blood vessel
     329             :     Real64 VasodilationFac = 0.0;           // Dilation factor of blood vessel
     330             :     Real64 WorkEff = 0.0;                   // Energy cosumption by external work; w/m2
     331             :     int ZoneNum = 0;                        // Zone number
     332             :     Real64 TemporarySixAMTemperature = 0.0; // Temperature at 6am
     333             : 
     334             :     // time that any zone is not comfortable based on simple ASHRAE 55 using summer clothes
     335             :     Real64 AnyZoneTimeNotSimpleASH55Summer = 0.0;
     336             :     // time that any zone is not comfortable based on simple ASHRAE 55 using winter clothes
     337             :     Real64 AnyZoneTimeNotSimpleASH55Winter = 0.0;
     338             :     // time that any zone is not comfortable based on simple ASHRAE 55 using summer or winter clothes
     339             :     Real64 AnyZoneTimeNotSimpleASH55Either = 0.0;
     340             : 
     341             :     // time that any zone has unmet met loads
     342             :     Real64 AnyZoneNotMetHeating = 0.0;
     343             :     Real64 AnyZoneNotMetCooling = 0.0;
     344             :     Real64 AnyZoneNotMetHeatingOccupied = 0.0;
     345             :     Real64 AnyZoneNotMetCoolingOccupied = 0.0;
     346             :     Real64 AnyZoneNotMetOccupied = 0.0;
     347             :     // total time from beginning of simulation AnyZoneTimeNotSimpleASH55
     348             :     Real64 TotalAnyZoneTimeNotSimpleASH55Summer = 0.0;
     349             :     Real64 TotalAnyZoneTimeNotSimpleASH55Winter = 0.0;
     350             :     Real64 TotalAnyZoneTimeNotSimpleASH55Either = 0.0;
     351             :     // total time from beginning of simulation any zone not met
     352             :     Real64 TotalAnyZoneNotMetHeating = 0.0;
     353             :     Real64 TotalAnyZoneNotMetCooling = 0.0;
     354             :     Real64 TotalAnyZoneNotMetHeatingOccupied = 0.0;
     355             :     Real64 TotalAnyZoneNotMetCoolingOccupied = 0.0;
     356             :     Real64 TotalAnyZoneNotMetOccupied = 0.0;
     357             :     Array1D<Real64> ZoneOccHrs;
     358             :     bool useEpwData = false;
     359             :     Array1D<Real64> DailyAveOutTemp;
     360             : 
     361             :     EPVector<ThermalComfort::ThermalComfortInASH55Type> ThermalComfortInASH55;
     362             :     EPVector<ThermalComfort::ThermalComfortSetPointType> ThermalComfortSetPoint;
     363             :     EPVector<ThermalComfort::ThermalComfortDataType> ThermalComfortData;
     364             :     EPVector<ThermalComfort::AngleFactorData> AngleFactorList; // Angle Factor List data for each Angle Factor List
     365             : 
     366             :     Real64 runningAverageASH = 0.0;
     367             : 
     368             :     Array1D<Real64> Coeff = Array1D<Real64>(2);      // Coefficients used in Range-Kutta's Method
     369             :     Array1D<Real64> Temp = Array1D<Real64>(2);       // Temperature
     370             :     Array1D<Real64> TempChange = Array1D<Real64>(2); // Change of temperature
     371             :     bool FirstTimeError = true;                      // Only report the error message one time
     372             :     Real64 avgDryBulbASH = 0.0;
     373             :     Array1D<Real64> monthlyTemp = Array1D<Real64>(12, 0.0);
     374             :     bool useStatData = false;
     375             :     Real64 avgDryBulbCEN = 0.0;
     376             :     Real64 runningAverageCEN = 0.0;
     377             :     bool useEpwDataCEN = false;
     378             :     bool firstDaySet = false; // first day is set with initiate -- so do not update
     379             : 
     380           0 :     void clear_state() override
     381             :     {
     382           0 :         new (this) ThermalComfortsData();
     383           0 :     }
     384             : 
     385             :     // Default Constructor
     386         771 :     ThermalComfortsData() : DailyAveOutTemp(30, 0.0)
     387             :     {
     388         771 :     }
     389             : };
     390             : } // namespace EnergyPlus
     391             : 
     392             : #endif

Generated by: LCOV version 1.13