LCOV - code coverage report
Current view: top level - EnergyPlus/Autosizing - SystemAirFlowSizing.cc (source / functions) Coverage Total Hit
Test: lcov.output.filtered Lines: 28.8 % 760 219
Test Date: 2025-06-02 07:23:51 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         4245 : Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bool &errorsFound)
      60              : {
      61              : 
      62         4245 :     if (!this->checkInitialized(state, errorsFound)) {
      63            0 :         return 0.0;
      64              :     }
      65         4245 :     this->preSize(state, _originalValue);
      66         4245 :     std::string DDNameFanPeak;
      67         4245 :     std::string dateTimeFanPeak;
      68              : 
      69         4245 :     if (this->dataEMSOverrideON) {
      70            0 :         this->autoSizedValue = this->dataEMSOverride;
      71         4245 :     } else if (this->dataConstantUsedForSizing > 0.0 && this->dataFractionUsedForSizing > 0.0) {
      72          341 :         this->autoSizedValue = this->dataConstantUsedForSizing * this->dataFractionUsedForSizing;
      73              :     } else {
      74         3904 :         if (this->curZoneEqNum > 0) {
      75         2075 :             if (!this->wasAutoSized && !this->sizingDesRunThisZone) {
      76           60 :                 this->autoSizedValue = _originalValue;
      77         2015 :             } else if (this->zoneEqSizing(this->curZoneEqNum).DesignSizeFromParent) {
      78          214 :                 this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).AirVolFlow;
      79              :             } else {
      80         1801 :                 if ((this->zoneAirFlowSizMethod == DataSizing::SupplyAirFlowRate) || (this->zoneAirFlowSizMethod == DataSizing::None)) {
      81              : 
      82            0 :                     if (this->zoneEqSizing(this->curZoneEqNum).SystemAirFlow) {
      83            0 :                         this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).AirVolFlow,
      84            0 :                                                    this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
      85            0 :                                                    this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
      86            0 :                         if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
      87            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
      88            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
      89            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
      90              :                                 dateTimeFanPeak =
      91            0 :                                     format("{}/{} {}",
      92            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
      93            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
      94            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
      95            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
      96              :                             }
      97            0 :                         } else if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
      98            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
      99            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     100            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     101              :                                 dateTimeFanPeak =
     102            0 :                                     format("{}/{} {}",
     103            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     104            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     105            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     106            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     107              :                             }
     108            0 :                         } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).AirVolFlow) {
     109            0 :                             DDNameFanPeak = "Unknown";
     110              :                         }
     111              :                     } else {
     112            0 :                         if (this->zoneCoolingOnlyFan) {
     113            0 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     114            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     115            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     116            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     117              :                                 dateTimeFanPeak =
     118            0 :                                     format("{}/{} {}",
     119            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     120            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     121            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     122            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     123              :                             }
     124            0 :                         } else if (this->zoneHeatingOnlyFan) {
     125            0 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     126            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     127            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     128            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     129              :                                 dateTimeFanPeak =
     130            0 :                                     format("{}/{} {}",
     131            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     132            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     133            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     134            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     135              :                             }
     136            0 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     137            0 :                             this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     138            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     139            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     140            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     141              :                                 dateTimeFanPeak =
     142            0 :                                     format("{}/{} {}",
     143            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     144            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     145            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     146            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     147              :                             }
     148            0 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     149            0 :                             this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     150            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     151            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     152            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     153              :                                 dateTimeFanPeak =
     154            0 :                                     format("{}/{} {}",
     155            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     156            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     157            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     158            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     159              :                             }
     160            0 :                         } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     161            0 :                             this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     162            0 :                                                        this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     163            0 :                             if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     164            0 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     165            0 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     166            0 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     167              :                                     dateTimeFanPeak =
     168            0 :                                         format("{}/{} {}",
     169            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     170            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     171            0 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     172            0 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     173              :                                 }
     174            0 :                             } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     175            0 :                                 if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     176            0 :                                     this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     177            0 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     178              :                                     dateTimeFanPeak =
     179            0 :                                         format("{}/{} {}",
     180            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     181            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     182            0 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     183            0 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     184              :                                 }
     185              :                             }
     186              :                         } else {
     187            0 :                             this->autoSizedValue = max(this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     188            0 :                                                        this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     189            0 :                             if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     190            0 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     191            0 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     192            0 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     193              :                                     dateTimeFanPeak =
     194            0 :                                         format("{}/{} {}",
     195            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     196            0 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     197            0 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     198            0 :                                                    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         1801 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedCoolingAirflow) {
     215            0 :                     if (this->zoneCoolingOnlyFan) {
     216            0 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     217            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     218            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     219            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     220            0 :                             dateTimeFanPeak = format("{}/{} {}",
     221            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     222            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     223            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     224            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     225              :                         }
     226            0 :                     } else if (this->zoneHeatingOnlyFan) {
     227            0 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     228            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     229            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     230            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     231            0 :                             dateTimeFanPeak = format("{}/{} {}",
     232            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     233            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     234            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     235            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     236              :                         }
     237            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     238            0 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     239            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     240            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     241            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     242            0 :                             dateTimeFanPeak = format("{}/{} {}",
     243            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     244            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     245            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     246            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     247              :                         }
     248            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     249            0 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     250            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     251            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     252            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     253            0 :                             dateTimeFanPeak = format("{}/{} {}",
     254            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     255            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     256            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     257            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     258              :                         }
     259            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     260            0 :                         this->autoSizedValue =
     261            0 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     262            0 :                                 this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     263            0 :                         if (this->autoSizedValue ==
     264            0 :                             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            0 :                         } else if (this->autoSizedValue ==
     276            0 :                                    this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     277            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     278            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     279            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     280              :                                 dateTimeFanPeak =
     281            0 :                                     format("{}/{} {}",
     282            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     283            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     284            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     285            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     286              :                             }
     287              :                         }
     288              :                     } else {
     289            0 :                         this->autoSizedValue =
     290            0 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     291            0 :                                 this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     292            0 :                         if (this->autoSizedValue ==
     293            0 :                             this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     294            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     295            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     296            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     297              :                                 dateTimeFanPeak =
     298            0 :                                     format("{}/{} {}",
     299            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     300            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     301            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     302            0 :                                                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         1801 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedHeatingAirflow) {
     319            0 :                     if (this->zoneCoolingOnlyFan) {
     320            0 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     321            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     322            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     323            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     324            0 :                             dateTimeFanPeak = format("{}/{} {}",
     325            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     326            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     327            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     328            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     329              :                         }
     330            0 :                     } else if (this->zoneHeatingOnlyFan) {
     331            0 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     332            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     333            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     334            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     335            0 :                             dateTimeFanPeak = format("{}/{} {}",
     336            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     337            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     338            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     339            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     340              :                         }
     341            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     342            0 :                         this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     343            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     344            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     345            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     346            0 :                             dateTimeFanPeak = format("{}/{} {}",
     347            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     348            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     349            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     350            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     351              :                         }
     352            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     353            0 :                         this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     354            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     355            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     356            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     357            0 :                             dateTimeFanPeak = format("{}/{} {}",
     358            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     359            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     360            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     361            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     362              :                         }
     363            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     364            0 :                         this->autoSizedValue =
     365            0 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     366            0 :                                 this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     367            0 :                         if (this->autoSizedValue ==
     368            0 :                             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            0 :                         } else if (this->autoSizedValue ==
     380            0 :                                    this->dataFracOfAutosizedHeatingAirflow * this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     381            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     382            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     383            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     384              :                                 dateTimeFanPeak =
     385            0 :                                     format("{}/{} {}",
     386            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     387            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     388            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     389            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     390              :                             }
     391              :                         }
     392              :                     } else {
     393            0 :                         this->autoSizedValue =
     394            0 :                             max(this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     395            0 :                                 this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     396            0 :                         if (this->autoSizedValue ==
     397            0 :                             this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     398            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     399            0 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     400            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     401              :                                 dateTimeFanPeak =
     402            0 :                                     format("{}/{} {}",
     403            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     404            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     405            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     406            0 :                                                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         1801 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerCoolingCapacity) {
     423            0 :                     if (this->zoneCoolingOnlyFan) {
     424            0 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     425            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     426            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     427            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     428            0 :                             dateTimeFanPeak = format("{}/{} {}",
     429            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     430            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     431            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     432            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     433              :                         }
     434            0 :                     } else if (this->zoneHeatingOnlyFan) {
     435            0 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     436            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     437            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     438            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     439            0 :                             dateTimeFanPeak = format("{}/{} {}",
     440            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     441            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     442            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     443            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     444              :                         }
     445            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     446            0 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     447            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     448            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     449            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     450            0 :                             dateTimeFanPeak = format("{}/{} {}",
     451            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     452            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     453            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     454            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     455              :                         }
     456            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     457            0 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     458            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     459            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     460            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     461            0 :                             dateTimeFanPeak = format("{}/{} {}",
     462            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     463            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     464            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     465            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     466              :                         }
     467            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     468            0 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     469            0 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     470            0 :                         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            0 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     482            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     483            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     484            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     485              :                                 dateTimeFanPeak =
     486            0 :                                     format("{}/{} {}",
     487            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     488            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     489            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     490            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     491              :                             }
     492              :                         }
     493              :                     } else {
     494            0 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     495            0 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     496            0 :                         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            0 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     508            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     509            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     510            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     511              :                                 dateTimeFanPeak =
     512            0 :                                     format("{}/{} {}",
     513            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     514            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     515            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     516            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     517              :                             }
     518              :                         }
     519              :                     }
     520         1801 :                 } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerHeatingCapacity) {
     521            0 :                     if (this->zoneCoolingOnlyFan) {
     522            0 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     523            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     524            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     525            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     526            0 :                             dateTimeFanPeak = format("{}/{} {}",
     527            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     528            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     529            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     530            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     531              :                         }
     532            0 :                     } else if (this->zoneHeatingOnlyFan) {
     533            0 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     534            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     535            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     536            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     537            0 :                             dateTimeFanPeak = format("{}/{} {}",
     538            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     539            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     540            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     541            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     542              :                         }
     543            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     544            0 :                         this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity;
     545            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     546            0 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     547            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     548            0 :                             dateTimeFanPeak = format("{}/{} {}",
     549            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     550            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     551            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     552            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     553              :                         }
     554            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     555            0 :                         this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity;
     556            0 :                         if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     557            0 :                             this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     558            0 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     559            0 :                             dateTimeFanPeak = format("{}/{} {}",
     560            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     561            0 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     562            0 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     563            0 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     564              :                         }
     565            0 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     566            0 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     567            0 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     568            0 :                         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            0 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     580            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     581            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     582            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     583              :                                 dateTimeFanPeak =
     584            0 :                                     format("{}/{} {}",
     585            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     586            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     587            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     588            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     589              :                             }
     590              :                         }
     591              :                     } else {
     592            0 :                         this->autoSizedValue = max(this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity,
     593            0 :                                                    this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity);
     594            0 :                         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            0 :                         } else if (this->autoSizedValue == this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity) {
     606            0 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     607            0 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     608            0 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     609              :                                 dateTimeFanPeak =
     610            0 :                                     format("{}/{} {}",
     611            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     612            0 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     613            0 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     614            0 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     615              :                             }
     616              :                         }
     617              :                     }
     618              :                 } else {
     619         1801 :                     if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) {
     620           57 :                         this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow;
     621          114 :                         if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     622           57 :                             this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     623           48 :                             DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     624           96 :                             dateTimeFanPeak = format("{}/{} {}",
     625           48 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     626           48 :                                                      state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     627           48 :                                                      state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     628           96 :                                                          state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     629              :                         }
     630         1744 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     631            0 :                         this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow;
     632            0 :                         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         1744 :                     } else if (this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow && this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow) {
     642          962 :                         this->autoSizedValue =
     643          962 :                             max(this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow, this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     644          962 :                         if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow) {
     645         1922 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     646          961 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     647          961 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     648              :                                 dateTimeFanPeak =
     649         1922 :                                     format("{}/{} {}",
     650          961 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     651          961 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     652          961 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     653         1922 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     654              :                             }
     655            1 :                         } else if (this->autoSizedValue == this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow) {
     656            2 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     657            1 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     658            1 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     659              :                                 dateTimeFanPeak =
     660            2 :                                     format("{}/{} {}",
     661            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     662            1 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     663            1 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     664            2 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     665              :                             }
     666              :                         }
     667              :                     } else {
     668          782 :                         if (this->zoneEqSizing(this->curZoneEqNum).SystemAirFlow) {
     669            1 :                             this->autoSizedValue = max(this->zoneEqSizing(this->curZoneEqNum).AirVolFlow,
     670            1 :                                                        this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow,
     671            1 :                                                        this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow);
     672          781 :                         } else if (this->zoneCoolingOnlyFan) {
     673           62 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow;
     674          124 :                             if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     675           62 :                                 this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     676           53 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     677              :                                 dateTimeFanPeak =
     678          106 :                                     format("{}/{} {}",
     679           53 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     680           53 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     681           53 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     682          106 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     683              :                             }
     684          719 :                         } else if (this->zoneHeatingOnlyFan) {
     685           71 :                             this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow;
     686          142 :                             if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     687           71 :                                 this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     688           71 :                                 DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     689              :                                 dateTimeFanPeak =
     690          142 :                                     format("{}/{} {}",
     691           71 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     692           71 :                                            state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     693           71 :                                            state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     694          142 :                                                state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     695              :                             }
     696              :                         } else {
     697          648 :                             this->autoSizedValue = max(this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow,
     698          648 :                                                        this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow);
     699          648 :                             if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow) {
     700         1260 :                                 if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 &&
     701          630 :                                     this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) {
     702          630 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Title;
     703              :                                     dateTimeFanPeak =
     704         1260 :                                         format("{}/{} {}",
     705          630 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
     706          630 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
     707          630 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     708         1260 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
     709              :                                 }
     710           18 :                             } else if (this->autoSizedValue == this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow) {
     711           36 :                                 if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
     712           18 :                                     this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     713           18 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Title;
     714              :                                     dateTimeFanPeak =
     715           36 :                                         format("{}/{} {}",
     716           18 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
     717           18 :                                                state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
     718           18 :                                                state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     719           36 :                                                    state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
     720              :                                 }
     721              :                             }
     722              :                         }
     723              :                     }
     724         1801 :                     if (this->dataFractionUsedForSizing > 0.0) {
     725          359 :                         this->autoSizedValue = this->autoSizedValue * this->dataFractionUsedForSizing;
     726              :                     }
     727              :                 }
     728              :             }
     729         1829 :         } else if (this->curSysNum > 0) {
     730         1810 :             if (!this->wasAutoSized && !this->sizingDesRunThisAirSys) {
     731          360 :                 this->autoSizedValue = _originalValue;
     732              :             } else {
     733         1450 :                 if (this->dataHRFlowSizingFlag) { // HX sizing
     734           29 :                     if (this->curOASysNum) {
     735              :                         // size to supply air duct flow rate
     736           21 :                         if (this->outsideAirSys(this->curOASysNum).AirLoopDOASNum > -1) {
     737            0 :                             auto const &thisAirloopDOAS = this->airloopDOAS[this->outsideAirSys(this->curOASysNum).AirLoopDOASNum];
     738            0 :                             this->autoSizedValue = thisAirloopDOAS.SizingMassFlow / state.dataEnvrn->StdRhoAir;
     739           21 :                         } else if (this->finalSysSizing(this->curSysNum).DesOutAirVolFlow > 0.0) {
     740           21 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesOutAirVolFlow;
     741              :                         } else {
     742            0 :                             switch (this->curDuctType) {
     743            0 :                             case HVAC::AirDuctType::Main: {
     744            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     745            0 :                             } break;
     746            0 :                             case HVAC::AirDuctType::Cooling: {
     747            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     748            0 :                             } break;
     749            0 :                             case HVAC::AirDuctType::Heating: {
     750            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     751            0 :                             } break;
     752            0 :                             case HVAC::AirDuctType::Other: {
     753            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     754            0 :                             } break;
     755            0 :                             default: {
     756            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     757            0 :                             } break;
     758              :                             }
     759              :                         }
     760              :                     } else {
     761            8 :                         switch (this->curDuctType) {
     762            8 :                         case HVAC::AirDuctType::Main: {
     763            8 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     764            8 :                         } break;
     765            0 :                         case HVAC::AirDuctType::Cooling: {
     766            0 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     767            0 :                         } break;
     768            0 :                         case HVAC::AirDuctType::Heating: {
     769            0 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     770            0 :                         } break;
     771              : 
     772            0 :                         case HVAC::AirDuctType::Other: {
     773            0 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     774            0 :                         } break;
     775            0 :                         default: {
     776            0 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     777            0 :                         } break;
     778              :                         }
     779              :                     }
     780              : 
     781              :                 } else {
     782         1421 :                     if (this->curOASysNum > 0) {
     783              :                         // should a parent object ever override DOAS or OASystem flow rate (e.g., using oaSysEqSizing().AirVolFlow)?
     784            5 :                         if (outsideAirSys(this->curOASysNum).AirLoopDOASNum > -1) {
     785            0 :                             this->autoSizedValue =
     786            0 :                                 this->airloopDOAS[outsideAirSys(this->curOASysNum).AirLoopDOASNum].SizingMassFlow / state.dataEnvrn->StdRhoAir;
     787              :                         } else {
     788            5 :                             switch (this->curDuctType) {
     789            0 :                             case HVAC::AirDuctType::Cooling: {
     790            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesCoolVolFlow;
     791            0 :                             } break;
     792            0 :                             case HVAC::AirDuctType::Heating: {
     793            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesHeatVolFlow;
     794            0 :                             } break;
     795            5 :                             case HVAC::AirDuctType::Main:
     796              :                             case HVAC::AirDuctType::Other:
     797              :                             default: {
     798            5 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     799            5 :                             } break;
     800              :                             }
     801            5 :                             if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     802            4 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     803            2 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     804            2 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     805            2 :                                     DDNameFanPeak = desDayInput.Title;
     806            4 :                                     dateTimeFanPeak = format("{}/{} {}",
     807            2 :                                                              desDayInput.Month,
     808            2 :                                                              desDayInput.DayOfMonth,
     809            2 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     810            4 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     811              :                                 }
     812            3 :                             } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     813            3 :                                 auto &sysSizPeakDDNum = state.dataSize->SysSizPeakDDNum(this->curSysNum);
     814            3 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     815            3 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     816            3 :                                     DDNameFanPeak = desDayInput.Title;
     817            6 :                                     dateTimeFanPeak = format("{}/{} {}",
     818            3 :                                                              desDayInput.Month,
     819            3 :                                                              desDayInput.DayOfMonth,
     820            3 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     821            6 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     822              :                                 }
     823              :                             }
     824              :                         }
     825              :                     } else {
     826         1416 :                         auto &sysSizPeakDDNum = state.dataSize->SysSizPeakDDNum(this->curSysNum);
     827              : 
     828         1416 :                         if (this->airLoopSysFlag) {
     829          257 :                             auto const &unitarysysEqSizing = this->unitarySysEqSizing(this->curSysNum);
     830          257 :                             if (unitarysysEqSizing.CoolingAirFlow && unitarysysEqSizing.HeatingAirFlow) {
     831          250 :                                 this->autoSizedValue = std::max(unitarysysEqSizing.CoolingAirVolFlow, unitarysysEqSizing.HeatingAirVolFlow);
     832          250 :                                 if (this->autoSizedValue == unitarysysEqSizing.CoolingAirVolFlow) {
     833          250 :                                     if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     834          250 :                                         auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     835          250 :                                         DDNameFanPeak = desDayInput.Title;
     836          500 :                                         dateTimeFanPeak = format("{}/{} {}",
     837          250 :                                                                  desDayInput.Month,
     838          250 :                                                                  desDayInput.DayOfMonth,
     839          250 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     840          500 :                                                                      state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     841              :                                     }
     842              : 
     843            0 :                                 } else if (this->autoSizedValue == unitarysysEqSizing.HeatingAirVolFlow) {
     844            0 :                                     if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     845            0 :                                         this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     846            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     847            0 :                                         DDNameFanPeak = desDayInput.Title;
     848            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     849            0 :                                                                  desDayInput.Month,
     850            0 :                                                                  desDayInput.DayOfMonth,
     851            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     852            0 :                                                                      state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     853              :                                     }
     854              :                                 }
     855          257 :                             } else if (unitarysysEqSizing.CoolingAirFlow) {
     856            6 :                                 this->autoSizedValue = unitarysysEqSizing.CoolingAirVolFlow;
     857            6 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     858            6 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     859            6 :                                     DDNameFanPeak = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD).Title;
     860           12 :                                     dateTimeFanPeak = format("{}/{} {}",
     861            6 :                                                              desDayInput.Month,
     862            6 :                                                              desDayInput.DayOfMonth,
     863            6 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     864           12 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     865              :                                 }
     866            1 :                             } else if (unitarysysEqSizing.HeatingAirFlow) {
     867            1 :                                 this->autoSizedValue = unitarysysEqSizing.HeatingAirVolFlow;
     868            2 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     869            1 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     870            1 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     871            1 :                                     DDNameFanPeak = desDayInput.Title;
     872            2 :                                     dateTimeFanPeak = format("{}/{} {}",
     873            1 :                                                              desDayInput.Month,
     874            1 :                                                              desDayInput.DayOfMonth,
     875            1 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     876            2 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     877              :                                 }
     878              : 
     879              :                             } else {
     880            0 :                                 this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     881            0 :                                 if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     882            0 :                                     if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     883            0 :                                         this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     884            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     885            0 :                                         DDNameFanPeak = desDayInput.Title;
     886            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     887            0 :                                                                  desDayInput.Month,
     888            0 :                                                                  desDayInput.DayOfMonth,
     889            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     890            0 :                                                                      state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     891              :                                     }
     892            0 :                                 } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     893            0 :                                     if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     894            0 :                                         auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     895            0 :                                         DDNameFanPeak = desDayInput.Title;
     896            0 :                                         dateTimeFanPeak = format("{}/{} {}",
     897            0 :                                                                  desDayInput.Month,
     898            0 :                                                                  desDayInput.DayOfMonth,
     899            0 :                                                                  state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     900            0 :                                                                      state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     901              :                                     }
     902              :                                 }
     903              :                             }
     904              :                         } else {
     905         1159 :                             this->autoSizedValue = this->finalSysSizing(this->curSysNum).DesMainVolFlow;
     906         1159 :                             if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesHeatVolFlow) {
     907         1294 :                                 if (this->finalSysSizing(this->curSysNum).HeatDDNum > 0 &&
     908          643 :                                     this->finalSysSizing(this->curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) {
     909          643 :                                     auto &desDayInput = state.dataWeather->DesDayInput(this->finalSysSizing(this->curSysNum).HeatDDNum);
     910          643 :                                     DDNameFanPeak = desDayInput.Title;
     911         1286 :                                     dateTimeFanPeak = format("{}/{} {}",
     912          643 :                                                              desDayInput.Month,
     913          643 :                                                              desDayInput.DayOfMonth,
     914          643 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     915         1286 :                                                                  state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk));
     916              :                                 }
     917          508 :                             } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) {
     918          484 :                                 if (sysSizPeakDDNum.CoolFlowPeakDD > 0 && sysSizPeakDDNum.CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) {
     919          484 :                                     auto &desDayInput = state.dataWeather->DesDayInput(sysSizPeakDDNum.CoolFlowPeakDD);
     920          484 :                                     DDNameFanPeak = desDayInput.Title;
     921          968 :                                     dateTimeFanPeak = format("{}/{} {}",
     922          484 :                                                              desDayInput.Month,
     923          484 :                                                              desDayInput.DayOfMonth,
     924          484 :                                                              state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
     925          968 :                                                                  state, sysSizPeakDDNum.TimeStepAtCoolFlowPk(sysSizPeakDDNum.CoolFlowPeakDD)));
     926              :                                 }
     927              :                             }
     928              :                         }
     929         1416 :                         if (this->dataFractionUsedForSizing > 0.0) {
     930          347 :                             this->autoSizedValue = this->autoSizedValue * this->dataFractionUsedForSizing;
     931              :                         }
     932              :                     }
     933              :                 }
     934              :             }
     935           19 :         } else if (this->dataNonZoneNonAirloopValue > 0) {
     936           17 :             this->autoSizedValue = this->dataNonZoneNonAirloopValue;
     937            2 :         } else if (!this->wasAutoSized) {
     938            2 :             this->autoSizedValue = this->originalValue;
     939              :         } else {
     940            0 :             std::string msg = this->callingRoutine + ' ' + this->compType + ' ' + this->compName + ", Developer Error: Component sizing incomplete.";
     941            0 :             ShowSevereError(state, msg);
     942            0 :             this->addErrorMessage(msg);
     943            0 :             msg = format("SizingString = {}, SizingResult = {:.1T}", this->sizingString, this->autoSizedValue);
     944            0 :             ShowContinueError(state, msg);
     945            0 :             this->addErrorMessage(msg);
     946            0 :             errorsFound = true;
     947            0 :         }
     948              : 
     949         3904 :         if (this->dataScalableSizingON) {
     950            2 :             if (this->zoneAirFlowSizMethod == DataSizing::SupplyAirFlowRate || this->zoneAirFlowSizMethod == DataSizing::None) {
     951            0 :                 this->sizingStringScalable = "(scaled by flow / zone) ";
     952            2 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerFloorArea) {
     953            0 :                 this->sizingStringScalable = "(scaled by flow / area) ";
     954            2 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedCoolingAirflow ||
     955            2 :                        this->zoneAirFlowSizMethod == DataSizing::FractionOfAutosizedHeatingAirflow) {
     956            0 :                 this->sizingStringScalable = "(scaled by fractional multiplier) ";
     957            2 :             } else if (this->zoneAirFlowSizMethod == DataSizing::FlowPerCoolingCapacity ||
     958            2 :                        this->zoneAirFlowSizMethod == DataSizing::FlowPerHeatingCapacity) {
     959            0 :                 this->sizingStringScalable = "(scaled by flow / capacity) ";
     960              :             }
     961              :         }
     962              :     }
     963              : 
     964              :     // override sizing string
     965         4245 :     if (this->overrideSizeString) {
     966          309 :         if (Util::SameString(this->compType, "ZoneHVAC:FourPipeFanCoil")) {
     967           78 :             this->sizingString = "Maximum Supply Air Flow Rate [m3/s]";
     968           78 :             if (this->isEpJSON) {
     969            0 :                 this->sizingString = "maximum_supply_air_flow_rate [m3/s]";
     970              :             }
     971          231 :         } else if (Util::SameString(this->compType, "ZoneHVAC:UnitVentilator")) {
     972            0 :             this->sizingString = "Maximum Supply Air Flow Rate [m3/s]";
     973            0 :             if (this->isEpJSON) {
     974            0 :                 this->sizingString = "maximum_supply_air_flow_rate [m3/s]";
     975              :             }
     976          231 :         } else if (Util::SameString(this->compType, "Fan:SystemModel")) {
     977          231 :             this->sizingString = "Design Maximum Air Flow Rate [m3/s]";
     978              :             // if (this->isEpJSON) this->sizingString = "design_maximum_air_flow_rate [m3/s]";
     979              :         } else {
     980            0 :             if (this->isEpJSON) {
     981            0 :                 this->sizingString = "supply_air_maximum_flow_rate [m3/s]";
     982              :             }
     983              :         }
     984              :     }
     985              : 
     986         4245 :     this->selectSizerOutput(state, errorsFound);
     987         4245 :     if (this->isFanReportObject) {
     988              :         //  fill fan peak day and time here
     989         2215 :         if (state.dataRptCoilSelection->coilSelectionReportObj->isCompTypeFan(this->compType)) {
     990         2215 :             if (this->dataScalableSizingON) {
     991            2 :                 DDNameFanPeak = "Scaled size, not from any peak";
     992            2 :                 dateTimeFanPeak = "Scaled size, not from any peak";
     993              :             }
     994         2215 :             OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchFanDesDay, this->compName, DDNameFanPeak);
     995         2215 :             OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchFanPkTime, this->compName, dateTimeFanPeak);
     996              :         }
     997              :     }
     998         4245 :     return this->autoSizedValue;
     999         4245 : }
    1000              : 
    1001            0 : void SystemAirFlowSizer::clearState()
    1002              : {
    1003            0 :     BaseSizerWithScalableInputs::clearState();
    1004            0 : }
    1005              : 
    1006              : } // namespace EnergyPlus
        

Generated by: LCOV version 2.0-1