LCOV - code coverage report
Current view: top level - EnergyPlus/Autosizing - SystemAirFlowSizing.cc (source / functions) Coverage Total Hit
Test: lcov.output.filtered Lines: 79.7 % 755 602
Test Date: 2025-05-22 16:09:37 Functions: 50.0 % 2 1

            Line data    Source code
       1              : // EnergyPlus, Copyright (c) 1996-2025, The Board of Trustees of the University of Illinois,
       2              : // The Regents of the University of California, through Lawrence Berkeley National Laboratory
       3              : // (subject to receipt of any required approvals from the U.S. Dept. of Energy), Oak Ridge
       4              : // National Laboratory, managed by UT-Battelle, Alliance for Sustainable Energy, LLC, and other
       5              : // contributors. All rights reserved.
       6              : //
       7              : // NOTICE: This Software was developed under funding from the U.S. Department of Energy and the
       8              : // U.S. Government consequently retains certain rights. As such, the U.S. Government has been
       9              : // granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable,
      10              : // worldwide license in the Software to reproduce, distribute copies to the public, prepare
      11              : // derivative works, and perform publicly and display publicly, and to permit others to do so.
      12              : //
      13              : // Redistribution and use in source and binary forms, with or without modification, are permitted
      14              : // provided that the following conditions are met:
      15              : //
      16              : // (1) Redistributions of source code must retain the above copyright notice, this list of
      17              : //     conditions and the following disclaimer.
      18              : //
      19              : // (2) Redistributions in binary form must reproduce the above copyright notice, this list of
      20              : //     conditions and the following disclaimer in the documentation and/or other materials
      21              : //     provided with the distribution.
      22              : //
      23              : // (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory,
      24              : //     the University of Illinois, U.S. Dept. of Energy nor the names of its contributors may be
      25              : //     used to endorse or promote products derived from this software without specific prior
      26              : //     written permission.
      27              : //
      28              : // (4) Use of EnergyPlus(TM) Name. If Licensee (i) distributes the software in stand-alone form
      29              : //     without changes from the version obtained under this License, or (ii) Licensee makes a
      30              : //     reference solely to the software portion of its product, Licensee must refer to the
      31              : //     software as "EnergyPlus version X" software, where "X" is the version number Licensee
      32              : //     obtained under this License and may not use a different name for the software. Except as
      33              : //     specifically required in this Section (4), Licensee shall not use in a company name, a
      34              : //     product name, in advertising, publicity, or other promotional activities any name, trade
      35              : //     name, trademark, logo, or other designation of "EnergyPlus", "E+", "e+" or confusingly
      36              : //     similar designation, without the U.S. Department of Energy's prior written consent.
      37              : //
      38              : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
      39              : // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
      40              : // AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
      41              : // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      42              : // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
      43              : // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      44              : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
      45              : // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      46              : // POSSIBILITY OF SUCH DAMAGE.
      47              : 
      48              : #include <EnergyPlus/Autosizing/SystemAirFlowSizing.hh>
      49              : #include <EnergyPlus/Data/EnergyPlusData.hh>
      50              : #include <EnergyPlus/DataEnvironment.hh>
      51              : #include <EnergyPlus/DataHVACGlobals.hh>
      52              : #include <EnergyPlus/General.hh>
      53              : #include <EnergyPlus/OutputReportPredefined.hh>
      54              : #include <EnergyPlus/UtilityRoutines.hh>
      55              : #include <EnergyPlus/WeatherManager.hh>
      56              : 
      57              : namespace EnergyPlus {
      58              : 
      59          449 : Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bool &errorsFound)
      60              : {
      61              : 
      62          449 :     if (!this->checkInitialized(state, errorsFound)) {
      63            1 :         return 0.0;
      64              :     }
      65          448 :     this->preSize(state, _originalValue);
      66          448 :     std::string DDNameFanPeak;
      67          448 :     std::string dateTimeFanPeak;
      68              : 
      69          448 :     if (this->dataEMSOverrideON) {
      70            3 :         this->autoSizedValue = this->dataEMSOverride;
      71          445 :     } else if (this->dataConstantUsedForSizing > 0.0 && this->dataFractionUsedForSizing > 0.0) {
      72           16 :         this->autoSizedValue = this->dataConstantUsedForSizing * this->dataFractionUsedForSizing;
      73              :     } else {
      74          429 :         if (this->curZoneEqNum > 0) {
      75          276 :             if (!this->wasAutoSized && !this->sizingDesRunThisZone) {
      76           88 :                 this->autoSizedValue = _originalValue;
      77          188 :             } else if (this->zoneEqSizing(this->curZoneEqNum).DesignSizeFromParent) {
      78            5 :                 this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).AirVolFlow;
      79              :             } else {
      80          183 :                 if ((this->zoneAirFlowSizMethod == DataSizing::SupplyAirFlowRate) || (this->zoneAirFlowSizMethod == DataSizing::None)) {
      81              : 
      82          150 :                     if (this->zoneEqSizing(this->curZoneEqNum).SystemAirFlow) {
      83           23 :                         this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).AirVolFlow,
      84           23 :                                                    this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
      85           23 :                                                    this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
      86           23 :                         if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
      87           13 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
      88            1 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
      89            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
      90              :                                 dateTimeFanPeak =
      91            2 :                                     format("{}/{} {}",
      92            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
      93            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
      94            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
      95            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
      96              :                             }
      97           11 :                         } else if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
      98            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
      99            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     100            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     101              :                                 dateTimeFanPeak =
     102            2 :                                     format("{}/{} {}",
     103            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     104            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     105            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     106            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     107              :                             }
     108           10 :                         } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).AirVolFlow) {
     109           10 :                             DDNameFanPeak = "Unknown";
     110              :                         }
     111              :                     } else {
     112           52 :                         if (this->zoneCoolingOnlyFan) {
     113            7 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     114            8 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     115            1 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     116            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     117              :                                 dateTimeFanPeak =
     118            2 :                                     format("{}/{} {}",
     119            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     120            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     121            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     122            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     123              :                             }
     124           45 :                         } else if (this->zoneHeatingOnlyFan) {
     125            8 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     126           10 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     127            2 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     128            2 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     129              :                                 dateTimeFanPeak =
     130            4 :                                     format("{}/{} {}",
     131            2 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     132            2 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     133            2 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     134            4 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     135              :                             }
     136           37 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     137            1 :                             this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     138            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     139            1 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     140            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     141              :                                 dateTimeFanPeak =
     142            2 :                                     format("{}/{} {}",
     143            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     144            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     145            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     146            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     147              :                             }
     148           36 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     149            1 :                             this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     150            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     151            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     152            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     153              :                                 dateTimeFanPeak =
     154            2 :                                     format("{}/{} {}",
     155            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     156            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     157            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     158            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     159              :                             }
     160           35 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     161           19 :                             this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     162           19 :                                                        this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     163           19 :                             if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     164           18 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     165            7 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     166            1 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     167              :                                     dateTimeFanPeak =
     168            2 :                                         format("{}/{} {}",
     169            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     170            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     171            1 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     172            2 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     173              :                                 }
     174            8 :                             } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     175            9 :                                 if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     176            1 :                                     this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     177            1 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     178              :                                     dateTimeFanPeak =
     179            2 :                                         format("{}/{} {}",
     180            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     181            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     182            1 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     183            2 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     184              :                                 }
     185              :                             }
     186              :                         } else {
     187           16 :                             this->autoSizedValue = max(this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     188           16 :                                                        this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     189           16 :                             if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     190           32 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     191           16 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     192            1 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     193              :                                     dateTimeFanPeak =
     194            2 :                                         format("{}/{} {}",
     195            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     196            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     197            1 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     198            2 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     199              :                                 }
     200            0 :                             } else if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
     201            0 :                                 if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     202            0 :                                     this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     203            0 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     204              :                                     dateTimeFanPeak =
     205            0 :                                         format("{}/{} {}",
     206            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     207            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     208            0 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     209            0 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     210              :                                 }
     211              :                             }
     212              :                         }
     213              :                     }
     214          108 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedCoolingAirflow) {
     215            6 :                     if (this->zoneCoolingOnlyFan) {
     216            1 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     217            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     218            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     219            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     220            2 :                             dateTimeFanPeak = format("{}/{} {}",
     221            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     222            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     223            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     224            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     225              :                         }
     226            5 :                     } else if (this->zoneHeatingOnlyFan) {
     227            1 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     228            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     229            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     230            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     231            2 :                             dateTimeFanPeak = format("{}/{} {}",
     232            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     233            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     234            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     235            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     236              :                         }
     237            4 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     238            1 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     239            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     240            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     241            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     242            2 :                             dateTimeFanPeak = format("{}/{} {}",
     243            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     244            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     245            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     246            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     247              :                         }
     248            3 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     249            1 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     250            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     251            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     252            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     253            2 :                             dateTimeFanPeak = format("{}/{} {}",
     254            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     255            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     256            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     257            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     258              :                         }
     259            2 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     260            1 :                         this->autoSizedValue =
     261            1 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     262            1 :                                 this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     263            2 :                         if (this->autoSizedValue ==
     264            1 :                             this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     265            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     266            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     267            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     268              :                                 dateTimeFanPeak =
     269            0 :                                     format("{}/{} {}",
     270            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     271            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     272            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     273            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     274              :                             }
     275            2 :                         } else if (this->autoSizedValue ==
     276            1 :                                    this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     277            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     278            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     279            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     280              :                                 dateTimeFanPeak =
     281            2 :                                     format("{}/{} {}",
     282            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     283            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     284            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     285            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     286              :                             }
     287              :                         }
     288              :                     } else {
     289            1 :                         this->autoSizedValue =
     290            1 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     291            1 :                                 this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     292            2 :                         if (this->autoSizedValue ==
     293            1 :                             this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     294            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     295            1 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     296            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     297              :                                 dateTimeFanPeak =
     298            2 :                                     format("{}/{} {}",
     299            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     300            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     301            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     302            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     303              :                             }
     304            0 :                         } else if (this->autoSizedValue ==
     305            0 :                                    this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
     306            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     307            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     308            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     309              :                                 dateTimeFanPeak =
     310            0 :                                     format("{}/{} {}",
     311            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     312            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     313            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     314            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     315              :                             }
     316              :                         }
     317              :                     }
     318          102 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedHeatingAirflow) {
     319            6 :                     if (this->zoneCoolingOnlyFan) {
     320            1 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     321            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     322            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     323            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     324            2 :                             dateTimeFanPeak = format("{}/{} {}",
     325            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     326            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     327            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     328            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     329              :                         }
     330            5 :                     } else if (this->zoneHeatingOnlyFan) {
     331            1 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     332            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     333            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     334            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     335            2 :                             dateTimeFanPeak = format("{}/{} {}",
     336            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     337            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     338            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     339            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     340              :                         }
     341            4 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     342            1 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     343            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     344            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     345            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     346            2 :                             dateTimeFanPeak = format("{}/{} {}",
     347            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     348            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     349            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     350            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     351              :                         }
     352            3 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     353            1 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     354            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     355            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     356            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     357            2 :                             dateTimeFanPeak = format("{}/{} {}",
     358            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     359            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     360            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     361            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     362              :                         }
     363            2 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     364            1 :                         this->autoSizedValue =
     365            1 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     366            1 :                                 this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     367            2 :                         if (this->autoSizedValue ==
     368            1 :                             this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     369            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     370            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     371            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     372              :                                 dateTimeFanPeak =
     373            0 :                                     format("{}/{} {}",
     374            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     375            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     376            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     377            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     378              :                             }
     379            2 :                         } else if (this->autoSizedValue ==
     380            1 :                                    this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     381            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     382            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     383            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     384              :                                 dateTimeFanPeak =
     385            2 :                                     format("{}/{} {}",
     386            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     387            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     388            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     389            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     390              :                             }
     391              :                         }
     392              :                     } else {
     393            1 :                         this->autoSizedValue =
     394            1 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     395            1 :                                 this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     396            2 :                         if (this->autoSizedValue ==
     397            1 :                             this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     398            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     399            1 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     400            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     401              :                                 dateTimeFanPeak =
     402            2 :                                     format("{}/{} {}",
     403            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     404            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     405            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     406            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     407              :                             }
     408            0 :                         } else if (this->autoSizedValue ==
     409            0 :                                    this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
     410            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     411            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     412            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     413              :                                 dateTimeFanPeak =
     414            0 :                                     format("{}/{} {}",
     415            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     416            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     417            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     418            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     419              :                             }
     420              :                         }
     421              :                     }
     422           96 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerCoolingCapacity) {
     423            6 :                     if (this->zoneCoolingOnlyFan) {
     424            1 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     425            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     426            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     427            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     428            2 :                             dateTimeFanPeak = format("{}/{} {}",
     429            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     430            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     431            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     432            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     433              :                         }
     434            5 :                     } else if (this->zoneHeatingOnlyFan) {
     435            1 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     436            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     437            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     438            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     439            2 :                             dateTimeFanPeak = format("{}/{} {}",
     440            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     441            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     442            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     443            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     444              :                         }
     445            4 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     446            1 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     447            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     448            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     449            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     450            2 :                             dateTimeFanPeak = format("{}/{} {}",
     451            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     452            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     453            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     454            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     455              :                         }
     456            3 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     457            1 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     458            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     459            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     460            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     461            2 :                             dateTimeFanPeak = format("{}/{} {}",
     462            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     463            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     464            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     465            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     466              :                         }
     467            2 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     468            2 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     469            1 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     470            1 :                         if (this->autoSizedValue == this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity) {
     471            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     472            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     473            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     474              :                                 dateTimeFanPeak =
     475            0 :                                     format("{}/{} {}",
     476            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     477            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     478            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     479            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     480              :                             }
     481            1 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     482            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     483            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     484            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     485              :                                 dateTimeFanPeak =
     486            2 :                                     format("{}/{} {}",
     487            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     488            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     489            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     490            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     491              :                             }
     492              :                         }
     493              :                     } else {
     494            2 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     495            1 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     496            1 :                         if (this->autoSizedValue == this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity) {
     497            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     498            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     499            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     500              :                                 dateTimeFanPeak =
     501            0 :                                     format("{}/{} {}",
     502            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     503            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     504            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     505            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     506              :                             }
     507            1 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     508            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     509            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     510            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     511              :                                 dateTimeFanPeak =
     512            2 :                                     format("{}/{} {}",
     513            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     514            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     515            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     516            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     517              :                             }
     518              :                         }
     519              :                     }
     520           90 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerHeatingCapacity) {
     521            7 :                     if (this->zoneCoolingOnlyFan) {
     522            1 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     523            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     524            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     525            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     526            2 :                             dateTimeFanPeak = format("{}/{} {}",
     527            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     528            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     529            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     530            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     531              :                         }
     532            6 :                     } else if (this->zoneHeatingOnlyFan) {
     533            1 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     534            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     535            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     536            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     537            2 :                             dateTimeFanPeak = format("{}/{} {}",
     538            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     539            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     540            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     541            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     542              :                         }
     543            5 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     544            1 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     545            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     546            1 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     547            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     548            2 :                             dateTimeFanPeak = format("{}/{} {}",
     549            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     550            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     551            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     552            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     553              :                         }
     554            4 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     555            1 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     556            2 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     557            1 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     558            1 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     559            2 :                             dateTimeFanPeak = format("{}/{} {}",
     560            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     561            1 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     562            1 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     563            2 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     564              :                         }
     565            3 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     566            2 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     567            1 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     568            1 :                         if (this->autoSizedValue == this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity) {
     569            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     570            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     571            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     572              :                                 dateTimeFanPeak =
     573            0 :                                     format("{}/{} {}",
     574            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     575            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     576            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     577            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     578              :                             }
     579            1 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     580            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     581            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     582            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     583              :                                 dateTimeFanPeak =
     584            2 :                                     format("{}/{} {}",
     585            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     586            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     587            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     588            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     589              :                             }
     590              :                         }
     591              :                     } else {
     592            4 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     593            2 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     594            2 :                         if (this->autoSizedValue == this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity) {
     595            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     596            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     597            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     598              :                                 dateTimeFanPeak =
     599            0 :                                     format("{}/{} {}",
     600            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     601            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     602            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     603            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     604              :                             }
     605            2 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     606            4 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     607            2 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     608            2 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     609              :                                 dateTimeFanPeak =
     610            4 :                                     format("{}/{} {}",
     611            2 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     612            2 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     613            2 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     614            4 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     615              :                             }
     616              :                         }
     617              :                     }
     618              :                 } else {
     619           83 :                     if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     620           11 :                         this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     621           22 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     622           11 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     623            4 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     624            8 :                             dateTimeFanPeak = format("{}/{} {}",
     625            4 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     626            4 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     627            4 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     628            8 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     629              :                         }
     630           72 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     631           22 :                         this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     632           22 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     633            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     634            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     635            0 :                             dateTimeFanPeak = format("{}/{} {}",
     636            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     637            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     638            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     639            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     640              :                         }
     641           50 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     642           17 :                         this->autoSizedValue =
     643           17 :                             max(this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow, this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     644           17 :                         if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     645           34 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     646           17 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     647            6 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     648              :                                 dateTimeFanPeak =
     649           12 :                                     format("{}/{} {}",
     650            6 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     651            6 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     652            6 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     653           12 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     654              :                             }
     655            0 :                         } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     656            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     657            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     658            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     659              :                                 dateTimeFanPeak =
     660            0 :                                     format("{}/{} {}",
     661            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     662            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     663            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     664            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     665              :                             }
     666              :                         }
     667              :                     } else {
     668           33 :                         if (this->zoneEqSizing(this->curZoneEqNum).SystemAirFlow) {
     669            0 :                             this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).AirVolFlow,
     670            0 :                                                        this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     671            0 :                                                        this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     672           33 :                         } else if (this->zoneCoolingOnlyFan) {
     673            5 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     674           10 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     675            5 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     676            5 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     677              :                                 dateTimeFanPeak =
     678           10 :                                     format("{}/{} {}",
     679            5 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     680            5 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     681            5 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     682           10 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     683              :                             }
     684           28 :                         } else if (this->zoneHeatingOnlyFan) {
     685            1 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     686            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     687            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     688            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     689              :                                 dateTimeFanPeak =
     690            2 :                                     format("{}/{} {}",
     691            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     692            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     693            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     694            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     695              :                             }
     696              :                         } else {
     697           27 :                             this->autoSizedValue = max(this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     698           27 :                                                        this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     699           27 :                             if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     700           44 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     701           22 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     702           22 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     703              :                                     dateTimeFanPeak =
     704           44 :                                         format("{}/{} {}",
     705           22 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     706           22 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     707           22 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     708           44 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     709              :                                 }
     710            5 :                             } else if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
     711            6 :                                 if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     712            1 :                                     this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     713            1 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     714              :                                     dateTimeFanPeak =
     715            2 :                                         format("{}/{} {}",
     716            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     717            1 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     718            1 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     719            2 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     720              :                                 }
     721              :                             }
     722              :                         }
     723              :                     }
     724           83 :                     if (this->dataFractionUsedForSizing > 0.0) this->autoSizedValue = this->autoSizedValue * this->dataFractionUsedForSizing;
     725              :                 }
     726              :             }
     727          153 :         } else if (this->curSysNum > 0) {
     728           98 :             if (!this->wasAutoSized && !this->sizingDesRunThisAirSys) {
     729           19 :                 this->autoSizedValue = _originalValue;
     730              :             } else {
     731           79 :                 if (this->dataHRFlowSizingFlag) { // HX sizing
     732           25 :                     if (this->curOASysNum) {
     733              :                         // size to supply air duct flow rate
     734           13 :                         if (this->outsideAirSys(this->curOASysNum).AirLoopDOASNum > -1) {
     735            0 :                             auto const &thisAirloopDOAS = this->airloopDOAS[this->outsideAirSys(this->curOASysNum).AirLoopDOASNum];
     736            0 :                             this->autoSizedValue = thisAirloopDOAS.SizingMassFlow / state.dataEnvrn->StdRhoAir;
     737           13 :                         } else if (this->finalSysSizing(this->curSysNum).DesOutAirVolFlow > 0.0) {
     738            9 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesOutAirVolFlow;
     739              :                         } else {
     740            4 :                             switch (this->curDuctType) {
     741            1 :                             case HVAC::AirDuctType::Main: {
     742            1 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     743            1 :                             } break;
     744            1 :                             case HVAC::AirDuctType::Cooling: {
     745            1 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     746            1 :                             } break;
     747            1 :                             case HVAC::AirDuctType::Heating: {
     748            1 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     749            1 :                             } break;
     750            1 :                             case HVAC::AirDuctType::Other: {
     751            1 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     752            1 :                             } break;
     753            0 :                             default: {
     754            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     755            0 :                             } break;
     756              :                             }
     757              :                         }
     758              :                     } else {
     759           12 :                         switch (this->curDuctType) {
     760            4 :                         case HVAC::AirDuctType::Main: {
     761            4 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     762            4 :                         } break;
     763            1 :                         case HVAC::AirDuctType::Cooling: {
     764            1 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     765            1 :                         } break;
     766            1 :                         case HVAC::AirDuctType::Heating: {
     767            1 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     768            1 :                         } break;
     769              : 
     770            1 :                         case HVAC::AirDuctType::Other: {
     771            1 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     772            1 :                         } break;
     773            5 :                         default: {
     774            5 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     775            5 :                         } break;
     776              :                         }
     777              :                     }
     778              : 
     779              :                 } else {
     780           54 :                     if (this->curOASysNum > 0) {
     781              :                         // should a parent object ever override DOAS or OASystem flow rate (e.g., using oaSysEqSizing().AirVolFlow)?
     782            3 :                         if (outsideAirSys(this->curOASysNum).AirLoopDOASNum > -1) {
     783            1 :                             this->autoSizedValue =
     784            1 :                                 this->airloopDOAS[outsideAirSys(this->curOASysNum).AirLoopDOASNum].SizingMassFlow / state.dataEnvrn->StdRhoAir;
     785              :                         } else {
     786            2 :                             switch (this->curDuctType) {
     787            0 :                             case HVAC::AirDuctType::Cooling: {
     788            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     789            0 :                             } break;
     790            0 :                             case HVAC::AirDuctType::Heating: {
     791            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     792            0 :                             } break;
     793            2 :                             case HVAC::AirDuctType::Main:
     794              :                             case HVAC::AirDuctType::Other:
     795              :                             default: {
     796            2 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     797            2 :                             } break;
     798              :                             }
     799            2 :                             if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     800            0 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     801            0 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     802            0 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     803            0 :                                     DDNameFanPeak = desDayInput.Title;
     804            0 :                                     dateTimeFanPeak = format("{}/{} {}",
     805            0 :                                                              desDayInput.Month,
     806            0 :                                                              desDayInput.DayOfMonth,
     807            0 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     808            0 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     809              :                                 }
     810            2 :                             } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     811            2 :                                 auto &sysSizPeakDDNum = state.dataSize->SysSizPeakDDNum(this->curSysNum);
     812            2 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     813            2 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     814            2 :                                     DDNameFanPeak = desDayInput.Title;
     815            4 :                                     dateTimeFanPeak = format("{}/{} {}",
     816            2 :                                                              desDayInput.Month,
     817            2 :                                                              desDayInput.DayOfMonth,
     818            2 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     819            4 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     820              :                                 }
     821              :                             }
     822              :                         }
     823              :                     } else {
     824           51 :                         auto &sysSizPeakDDNum = state.dataSize->SysSizPeakDDNum(this->curSysNum);
     825              : 
     826           51 :                         if (this->airLoopSysFlag) {
     827            3 :                             auto const &unitarysysEqSizing = this->unitarySysEqSizing(this->curSysNum);
     828            3 :                             if (unitarysysEqSizing.CoolingAirFlow && unitarysysEqSizing.HeatingAirFlow) {
     829            1 :                                 this->autoSizedValue = std::max(unitarysysEqSizing.CoolingAirVolFlow, unitarysysEqSizing.HeatingAirVolFlow);
     830            1 :                                 if (this->autoSizedValue == unitarysysEqSizing.CoolingAirVolFlow) {
     831            0 :                                     if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     832            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     833            0 :                                         DDNameFanPeak = desDayInput.Title;
     834            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     835            0 :                                                                  desDayInput.Month,
     836            0 :                                                                  desDayInput.DayOfMonth,
     837            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     838            0 :                                                                      state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     839              :                                     }
     840              : 
     841            1 :                                 } else if (this->autoSizedValue == unitarysysEqSizing.HeatingAirVolFlow) {
     842            2 :                                     if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     843            1 :                                         this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     844            1 :                                         auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     845            1 :                                         DDNameFanPeak = desDayInput.Title;
     846            2 :                                         dateTimeFanPeak = format("{}/{} {}",
     847            1 :                                                                  desDayInput.Month,
     848            1 :                                                                  desDayInput.DayOfMonth,
     849            1 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     850            2 :                                                                      state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     851              :                                     }
     852              :                                 }
     853            3 :                             } else if (unitarysysEqSizing.CoolingAirFlow) {
     854            1 :                                 this->autoSizedValue = unitarysysEqSizing.CoolingAirVolFlow;
     855            1 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     856            1 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     857            1 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD).Title;
     858            2 :                                     dateTimeFanPeak = format("{}/{} {}",
     859            1 :                                                              desDayInput.Month,
     860            1 :                                                              desDayInput.DayOfMonth,
     861            1 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     862            2 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     863              :                                 }
     864            1 :                             } else if (unitarysysEqSizing.HeatingAirFlow) {
     865            1 :                                 this->autoSizedValue = unitarysysEqSizing.HeatingAirVolFlow;
     866            2 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     867            1 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     868            1 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     869            1 :                                     DDNameFanPeak = desDayInput.Title;
     870            2 :                                     dateTimeFanPeak = format("{}/{} {}",
     871            1 :                                                              desDayInput.Month,
     872            1 :                                                              desDayInput.DayOfMonth,
     873            1 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     874            2 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     875              :                                 }
     876              : 
     877              :                             } else {
     878            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     879            0 :                                 if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     880            0 :                                     if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     881            0 :                                         this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     882            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     883            0 :                                         DDNameFanPeak = desDayInput.Title;
     884            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     885            0 :                                                                  desDayInput.Month,
     886            0 :                                                                  desDayInput.DayOfMonth,
     887            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     888            0 :                                                                      state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     889              :                                     }
     890            0 :                                 } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     891            0 :                                     if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     892            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     893            0 :                                         DDNameFanPeak = desDayInput.Title;
     894            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     895            0 :                                                                  desDayInput.Month,
     896            0 :                                                                  desDayInput.DayOfMonth,
     897            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     898            0 :                                                                      state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     899              :                                     }
     900              :                                 }
     901              :                             }
     902              :                         } else {
     903           48 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     904           48 :                             if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     905           46 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     906           20 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     907           20 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     908           20 :                                     DDNameFanPeak = desDayInput.Title;
     909           40 :                                     dateTimeFanPeak = format("{}/{} {}",
     910           20 :                                                              desDayInput.Month,
     911           20 :                                                              desDayInput.DayOfMonth,
     912           20 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     913           40 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     914              :                                 }
     915           22 :                             } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     916           17 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     917           17 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     918           17 :                                     DDNameFanPeak = desDayInput.Title;
     919           34 :                                     dateTimeFanPeak = format("{}/{} {}",
     920           17 :                                                              desDayInput.Month,
     921           17 :                                                              desDayInput.DayOfMonth,
     922           17 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     923           34 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     924              :                                 }
     925              :                             }
     926              :                         }
     927           51 :                         if (this->dataFractionUsedForSizing > 0.0) this->autoSizedValue = this->autoSizedValue * this->dataFractionUsedForSizing;
     928              :                     }
     929              :                 }
     930              :             }
     931           55 :         } else if (this->dataNonZoneNonAirloopValue > 0) {
     932            7 :             this->autoSizedValue = this->dataNonZoneNonAirloopValue;
     933           48 :         } else if (!this->wasAutoSized) {
     934           45 :             this->autoSizedValue = this->originalValue;
     935              :         } else {
     936            3 :             std::string msg = this->callingRoutine + ' ' + this->compType + ' ' + this->compName + ", Developer Error: Component sizing incomplete.";
     937            3 :             ShowSevereError(state, msg);
     938            3 :             this->addErrorMessage(msg);
     939            3 :             msg = format("SizingString = {}, SizingResult = {:.1T}", this->sizingString, this->autoSizedValue);
     940            3 :             ShowContinueError(state, msg);
     941            3 :             this->addErrorMessage(msg);
     942            3 :             errorsFound = true;
     943            3 :         }
     944              : 
     945          429 :         if (this->dataScalableSizingON) {
     946            1 :             if (this->zoneAirFlowSizMethod == DataSizing::SupplyAirFlowRate || this->zoneAirFlowSizMethod == DataSizing::None) {
     947            0 :                 this->sizingStringScalable = "(scaled by flow / zone) ";
     948            1 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerFloorArea) {
     949            0 :                 this->sizingStringScalable = "(scaled by flow / area) ";
     950            1 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedCoolingAirflow ||
     951            1 :                        this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedHeatingAirflow) {
     952            0 :                 this->sizingStringScalable = "(scaled by fractional multiplier) ";
     953            1 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerCoolingCapacity ||
     954            1 :                        this->zoneAirFlowSizMethod == DataSizing::FlowPerHeatingCapacity) {
     955            0 :                 this->sizingStringScalable = "(scaled by flow / capacity) ";
     956              :             }
     957              :         }
     958              :     }
     959              : 
     960              :     // override sizing string
     961          448 :     if (this->overrideSizeString) {
     962          117 :         if (Util::SameString(this->compType, "ZoneHVAC:FourPipeFanCoil")) {
     963            7 :             this->sizingString = "Maximum Supply Air Flow Rate [m3/s]";
     964            7 :             if (this->isEpJSON) this->sizingString = "maximum_supply_air_flow_rate [m3/s]";
     965          110 :         } else if (Util::SameString(this->compType, "ZoneHVAC:UnitVentilator")) {
     966            0 :             this->sizingString = "Maximum Supply Air Flow Rate [m3/s]";
     967            0 :             if (this->isEpJSON) this->sizingString = "maximum_supply_air_flow_rate [m3/s]";
     968          110 :         } else if (Util::SameString(this->compType, "Fan:SystemModel")) {
     969           50 :             this->sizingString = "Design Maximum Air Flow Rate [m3/s]";
     970              :             // if (this->isEpJSON) this->sizingString = "design_maximum_air_flow_rate [m3/s]";
     971              :         } else {
     972           60 :             if (this->isEpJSON) this->sizingString = "supply_air_maximum_flow_rate [m3/s]";
     973              :         }
     974              :     }
     975              : 
     976          448 :     this->selectSizerOutput(state, errorsFound);
     977          448 :     if (this->isFanReportObject) {
     978              :         //  fill fan peak day and time here
     979          158 :         if (state.dataRptCoilSelection->coilSelectionReportObj->isCompTypeFan(this->compType)) {
     980          158 :             if (this->dataScalableSizingON) {
     981            1 :                 DDNameFanPeak = "Scaled size, not from any peak";
     982            1 :                 dateTimeFanPeak = "Scaled size, not from any peak";
     983              :             }
     984          158 :             OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchFanDesDay, this->compName, DDNameFanPeak);
     985          158 :             OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchFanPkTime, this->compName, dateTimeFanPeak);
     986              :         }
     987              :     }
     988          448 :     return this->autoSizedValue;
     989          448 : }
     990              : 
     991            0 : void SystemAirFlowSizer::clearState()
     992              : {
     993            0 :     BaseSizerWithScalableInputs::clearState();
     994            0 : }
     995              : 
     996              : } // namespace EnergyPlus
        

Generated by: LCOV version 2.0-1