diff --git a/src/EnergyPlus/AirLoopHVACDOAS.cc b/src/EnergyPlus/AirLoopHVACDOAS.cc index 5274f68ba0b..e6bf3074c78 100644 --- a/src/EnergyPlus/AirLoopHVACDOAS.cc +++ b/src/EnergyPlus/AirLoopHVACDOAS.cc @@ -799,7 +799,7 @@ namespace AirLoopHVACDOAS { if (state.dataGlobal->BeginEnvrnFlag && this->MyEnvrnFlag) { Real64 rho; - DataSizing::CurSysNum = this->m_OASystemNum; + state.dataSize->CurSysNum = this->m_OASystemNum; for (int CompNum = 1; CompNum <= state.dataAirLoop->OutsideAirSys(this->m_OASystemNum).NumComponents; ++CompNum) { std::string CompType = state.dataAirLoop->OutsideAirSys(this->m_OASystemNum).ComponentType(CompNum); std::string CompName = state.dataAirLoop->OutsideAirSys(this->m_OASystemNum).ComponentName(CompNum); @@ -947,8 +947,8 @@ namespace AirLoopHVACDOAS { if (errorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); } - DataSizing::CurSysNum = DataHVACGlobals::NumPrimaryAirSys + this->m_AirLoopDOASNum + 1; - DataSizing::CurOASysNum = this->m_OASystemNum; + state.dataSize->CurSysNum = DataHVACGlobals::NumPrimaryAirSys + this->m_AirLoopDOASNum + 1; + state.dataSize->CurOASysNum = this->m_OASystemNum; } void getAirLoopHVACDOASInput(EnergyPlusData &state) diff --git a/src/EnergyPlus/Autosizing/Base.cc b/src/EnergyPlus/Autosizing/Base.cc index 5a40c74378f..dcccedaad99 100644 --- a/src/EnergyPlus/Autosizing/Base.cc +++ b/src/EnergyPlus/Autosizing/Base.cc @@ -78,37 +78,37 @@ void BaseSizer::initializeWithinEP(EnergyPlusData &state, this->printWarningFlag = _printWarningFlag; this->callingRoutine = _callingRoutine; this->stdRhoAir = state.dataEnvrn->StdRhoAir; - this->sysSizingRunDone = DataSizing::SysSizingRunDone; - this->zoneSizingRunDone = DataSizing::ZoneSizingRunDone; - this->curSysNum = DataSizing::CurSysNum; - this->curOASysNum = DataSizing::CurOASysNum; - this->curZoneEqNum = DataSizing::CurZoneEqNum; - this->curDuctType = DataSizing::CurDuctType; + this->sysSizingRunDone = state.dataSize->SysSizingRunDone; + this->zoneSizingRunDone = state.dataSize->ZoneSizingRunDone; + this->curSysNum = state.dataSize->CurSysNum; + this->curOASysNum = state.dataSize->CurOASysNum; + this->curZoneEqNum = state.dataSize->CurZoneEqNum; + this->curDuctType = state.dataSize->CurDuctType; this->numPrimaryAirSys = DataHVACGlobals::NumPrimaryAirSys; - this->numSysSizInput = DataSizing::NumSysSizInput; + this->numSysSizInput = state.dataSize->NumSysSizInput; this->doSystemSizing = state.dataGlobal->DoSystemSizing; - this->numZoneSizingInput = DataSizing::NumZoneSizingInput; + this->numZoneSizingInput = state.dataSize->NumZoneSizingInput; this->doZoneSizing = state.dataGlobal->DoZoneSizing; - this->curTermUnitSizingNum = DataSizing::CurTermUnitSizingNum; - this->termUnitSingDuct = DataSizing::TermUnitSingDuct; - this->termUnitPIU = DataSizing::TermUnitPIU; - this->termUnitIU = DataSizing::TermUnitIU; - this->zoneEqFanCoil = DataSizing::ZoneEqFanCoil; + this->curTermUnitSizingNum = state.dataSize->CurTermUnitSizingNum; + this->termUnitSingDuct = state.dataSize->TermUnitSingDuct; + this->termUnitPIU = state.dataSize->TermUnitPIU; + this->termUnitIU = state.dataSize->TermUnitIU; + this->zoneEqFanCoil = state.dataSize->ZoneEqFanCoil; this->otherEqType = !(this->termUnitSingDuct || this->termUnitPIU || this->termUnitIU || this->zoneEqFanCoil); - this->zoneEqUnitHeater = DataSizing::ZoneEqUnitHeater; - this->zoneEqUnitVent = DataSizing::ZoneEqUnitVent; - this->zoneEqVentedSlab = DataSizing::ZoneEqVentedSlab; - this->zoneSizingInput = DataSizing::ZoneSizingInput; - this->unitarySysEqSizing = DataSizing::UnitarySysEqSizing; - this->oaSysEqSizing = DataSizing::OASysEqSizing; + this->zoneEqUnitHeater = state.dataSize->ZoneEqUnitHeater; + this->zoneEqUnitVent = state.dataSize->ZoneEqUnitVent; + this->zoneEqVentedSlab = state.dataSize->ZoneEqVentedSlab; + this->zoneSizingInput = state.dataSize->ZoneSizingInput; + this->unitarySysEqSizing = state.dataSize->UnitarySysEqSizing; + this->oaSysEqSizing = state.dataSize->OASysEqSizing; this->outsideAirSys = state.dataAirLoop->OutsideAirSys; - this->termUnitSizing = DataSizing::TermUnitSizing; - this->finalZoneSizing = DataSizing::FinalZoneSizing; - this->termUnitFinalZoneSizing = DataSizing::TermUnitFinalZoneSizing; - this->zoneEqSizing = DataSizing::ZoneEqSizing; - this->sysSizingInputData = DataSizing::SysSizInput; - this->finalSysSizing = DataSizing::FinalSysSizing; - this->plantSizData = DataSizing::PlantSizData; + this->termUnitSizing = state.dataSize->TermUnitSizing; + this->finalZoneSizing = state.dataSize->FinalZoneSizing; + this->termUnitFinalZoneSizing = state.dataSize->TermUnitFinalZoneSizing; + this->zoneEqSizing = state.dataSize->ZoneEqSizing; + this->sysSizingInputData = state.dataSize->SysSizInput; + this->finalSysSizing = state.dataSize->FinalSysSizing; + this->plantSizData = state.dataSize->PlantSizData; this->primaryAirSystem = state.dataAirSystemsData->PrimaryAirSystems; this->airLoopControlInfo = state.dataAirLoop->AirLoopControlInfo; this->airloopDOAS = state.dataAirLoopHVACDOAS->airloopDOAS; @@ -120,52 +120,52 @@ void BaseSizer::initializeWithinEP(EnergyPlusData &state, } // global sizing data - dataEMSOverrideON = DataSizing::DataEMSOverrideON; - dataEMSOverride = DataSizing::DataEMSOverride; - this->dataAutosizable = DataSizing::DataAutosizable; + dataEMSOverrideON = state.dataSize->DataEMSOverrideON; + dataEMSOverride = state.dataSize->DataEMSOverride; + this->dataAutosizable = state.dataSize->DataAutosizable; this->minOA = DataSizing::MinOA; - this->dataConstantUsedForSizing = DataSizing::DataConstantUsedForSizing; - this->dataFractionUsedForSizing = DataSizing::DataFractionUsedForSizing; - DataSizing::DataConstantUsedForSizing = 0.0; // reset here instead of in component model? - DataSizing::DataFractionUsedForSizing = 0.0; + this->dataConstantUsedForSizing = state.dataSize->DataConstantUsedForSizing; + this->dataFractionUsedForSizing = state.dataSize->DataFractionUsedForSizing; + state.dataSize->DataConstantUsedForSizing = 0.0; // reset here instead of in component model? + state.dataSize->DataFractionUsedForSizing = 0.0; - this->dataFanIndex = DataSizing::DataFanIndex; - this->dataFanEnumType = DataSizing::DataFanEnumType; + this->dataFanIndex = state.dataSize->DataFanIndex; + this->dataFanEnumType = state.dataSize->DataFanEnumType; // global Data* sizing constants - this->dataPltSizHeatNum = DataSizing::DataPltSizHeatNum; - this->dataWaterLoopNum = DataSizing::DataWaterLoopNum; - this->dataPltSizCoolNum = DataSizing::DataPltSizCoolNum; - this->dataWaterCoilSizHeatDeltaT = DataSizing::DataWaterCoilSizHeatDeltaT; - this->dataWaterCoilSizCoolDeltaT = DataSizing::DataWaterCoilSizCoolDeltaT; - this->dataCapacityUsedForSizing = DataSizing::DataCapacityUsedForSizing; - this->dataHeatSizeRatio = DataSizing::DataHeatSizeRatio; - - this->dataAirFlowUsedForSizing = DataSizing::DataAirFlowUsedForSizing; - this->dataDesInletAirTemp = DataSizing::DataDesInletAirTemp; - this->dataDesAccountForFanHeat = DataSizing::DataDesAccountForFanHeat; - this->dataFanPlacement = DataSizing::DataFanPlacement; - this->dataDesInletAirHumRat = DataSizing::DataDesInletAirHumRat; - this->dataDesOutletAirHumRat = DataSizing::DataDesOutletAirHumRat; - this->dataDesOutletAirTemp = DataSizing::DataDesOutletAirTemp; - this->dataDesInletWaterTemp = DataSizing::DataDesInletWaterTemp; - this->dataFlowUsedForSizing = DataSizing::DataFlowUsedForSizing; - this->dataWaterFlowUsedForSizing = DataSizing::DataWaterFlowUsedForSizing; - - this->dataSizingFraction = DataSizing::DataSizingFraction; - this->dataDXSpeedNum = DataSizing::DataDXSpeedNum; - this->dataDesicRegCoil = DataSizing::DataDesicRegCoil; - this->dataZoneUsedForSizing = DataSizing::DataZoneUsedForSizing; - this->dataDesicDehumNum = DataSizing::DataDesicDehumNum; - - this->dataNomCapInpMeth = DataSizing::DataNomCapInpMeth; - this->dataCoilNum = DataSizing::DataCoilNum; - this->dataFanOpMode = DataSizing::DataFanOpMode; - this->dataDesignCoilCapacity = DataSizing::DataDesignCoilCapacity; - this->dataErrorsFound = DataSizing::DataErrorsFound; - this->dataBypassFrac = DataSizing::DataBypassFrac; - this->dataIsDXCoil = DataSizing::DataIsDXCoil; - this->dataNonZoneNonAirloopValue = DataSizing::DataNonZoneNonAirloopValue; + this->dataPltSizHeatNum = state.dataSize->DataPltSizHeatNum; + this->dataWaterLoopNum = state.dataSize->DataWaterLoopNum; + this->dataPltSizCoolNum = state.dataSize->DataPltSizCoolNum; + this->dataWaterCoilSizHeatDeltaT = state.dataSize->DataWaterCoilSizHeatDeltaT; + this->dataWaterCoilSizCoolDeltaT = state.dataSize->DataWaterCoilSizCoolDeltaT; + this->dataCapacityUsedForSizing = state.dataSize->DataCapacityUsedForSizing; + this->dataHeatSizeRatio = state.dataSize->DataHeatSizeRatio; + + this->dataAirFlowUsedForSizing = state.dataSize->DataAirFlowUsedForSizing; + this->dataDesInletAirTemp = state.dataSize->DataDesInletAirTemp; + this->dataDesAccountForFanHeat = state.dataSize->DataDesAccountForFanHeat; + this->dataFanPlacement = state.dataSize->DataFanPlacement; + this->dataDesInletAirHumRat = state.dataSize->DataDesInletAirHumRat; + this->dataDesOutletAirHumRat = state.dataSize->DataDesOutletAirHumRat; + this->dataDesOutletAirTemp = state.dataSize->DataDesOutletAirTemp; + this->dataDesInletWaterTemp = state.dataSize->DataDesInletWaterTemp; + this->dataFlowUsedForSizing = state.dataSize->DataFlowUsedForSizing; + this->dataWaterFlowUsedForSizing = state.dataSize->DataWaterFlowUsedForSizing; + + this->dataSizingFraction = state.dataSize->DataSizingFraction; + this->dataDXSpeedNum = state.dataSize->DataDXSpeedNum; + this->dataDesicRegCoil = state.dataSize->DataDesicRegCoil; + this->dataZoneUsedForSizing = state.dataSize->DataZoneUsedForSizing; + this->dataDesicDehumNum = state.dataSize->DataDesicDehumNum; + + this->dataNomCapInpMeth = state.dataSize->DataNomCapInpMeth; + this->dataCoilNum = state.dataSize->DataCoilNum; + this->dataFanOpMode = state.dataSize->DataFanOpMode; + this->dataDesignCoilCapacity = state.dataSize->DataDesignCoilCapacity; + this->dataErrorsFound = state.dataSize->DataErrorsFound; + this->dataBypassFrac = state.dataSize->DataBypassFrac; + this->dataIsDXCoil = state.dataSize->DataIsDXCoil; + this->dataNonZoneNonAirloopValue = state.dataSize->DataNonZoneNonAirloopValue; } void BaseSizer::initializeFromAPI(EnergyPlusData &state, Real64 const elevation) @@ -383,7 +383,7 @@ void BaseSizer::selectSizerOutput(EnergyPlusData &state, bool &errorsFound) this->reportSizerOutput(state, this->compType, this->compName, "Design Size " + this->sizingString, this->autoSizedValue); } } else if (this->autoSizedValue >= 0.0 && this->originalValue > 0.0) { - if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > state.dataSize->AutoVsHardSizingThreshold) { if (this->dataAutosizable) this->reportSizerOutput(state, this->compType, this->compName, @@ -397,7 +397,7 @@ void BaseSizer::selectSizerOutput(EnergyPlusData &state, bool &errorsFound) this->compType, this->compName, "User-Specified " + this->sizingStringScalable + this->sizingString, this->originalValue); } if (state.dataGlobal->DisplayExtraWarnings && this->dataAutosizable) { - if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > state.dataSize->AutoVsHardSizingThreshold) { std::string msg = this->callingRoutine + ": Potential issue with equipment sizing for " + this->compType + ' ' + this->compName; this->addErrorMessage(msg); ShowMessage(state, msg); @@ -490,7 +490,7 @@ void BaseSizer::select2StgDXHumCtrlSizerOutput(EnergyPlusData &state, bool &erro this->compType, this->compName, "Design Size " + this->sizingString + " ( non-bypassed )", this->autoSizedValue); } } else if (this->autoSizedValue >= 0.0 && this->originalValue > 0.0) { - if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > state.dataSize->AutoVsHardSizingThreshold) { this->reportSizerOutput(state, this->compType, this->compName, "Design Size " + this->sizingString, @@ -522,7 +522,7 @@ void BaseSizer::select2StgDXHumCtrlSizerOutput(EnergyPlusData &state, bool &erro } } if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(this->autoSizedValue - this->originalValue) / this->originalValue) > state.dataSize->AutoVsHardSizingThreshold) { std::string msg = this->callingRoutine + ": Potential issue with equipment sizing for " + this->compType + ' ' + this->compName; this->addErrorMessage(msg); ShowMessage(state, msg); diff --git a/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.cc b/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.cc index dfea510a842..d755556fcbb 100644 --- a/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.cc +++ b/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.cc @@ -58,7 +58,7 @@ namespace EnergyPlus { const std::string &_compName, const bool &_printWarningFlag, const std::string &_callingRoutine) { BaseSizer::initializeWithinEP(state, _compType, _compName, _printWarningFlag, _callingRoutine); - this->dataDesAccountForFanHeat = DataSizing::DataDesAccountForFanHeat; + this->dataDesAccountForFanHeat = state.dataSize->DataDesAccountForFanHeat; // water coils on main branch have no parent object to set DataFan* variables if (int(this->primaryAirSystem.size() > 0) && this->curSysNum > 0 && this->curOASysNum == 0) { if (this->primaryAirSystem(this->curSysNum).supFanModelTypeEnum == DataAirSystems::structArrayLegacyFanModels) { @@ -128,8 +128,8 @@ namespace EnergyPlus { return; } - void BaseSizerWithFanHeatInputs::setDataDesAccountForFanHeat(bool flag) { - DataSizing::DataDesAccountForFanHeat = flag; + void BaseSizerWithFanHeatInputs::setDataDesAccountForFanHeat(EnergyPlusData &state, bool flag) { + state.dataSize->DataDesAccountForFanHeat = flag; } } diff --git a/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.hh b/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.hh index 2040eb25cd8..c7c7e7308e3 100644 --- a/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.hh +++ b/src/EnergyPlus/Autosizing/BaseSizerWithFanHeatInputs.hh @@ -89,7 +89,7 @@ struct BaseSizerWithFanHeatInputs : BaseSizer { bool const &_printWarningFlag, std::string const &_callingRoutine) override; - void setDataDesAccountForFanHeat(bool flag); + void setDataDesAccountForFanHeat(EnergyPlusData &state, bool flag); void clearState() { BaseSizer::clearState(); diff --git a/src/EnergyPlus/Autosizing/BaseSizerWithScalableInputs.cc b/src/EnergyPlus/Autosizing/BaseSizerWithScalableInputs.cc index 340c6cc5585..54ef69b155d 100644 --- a/src/EnergyPlus/Autosizing/BaseSizerWithScalableInputs.cc +++ b/src/EnergyPlus/Autosizing/BaseSizerWithScalableInputs.cc @@ -63,34 +63,34 @@ void BaseSizerWithScalableInputs::initializeWithinEP(EnergyPlusData &state, { BaseSizerWithFanHeatInputs::initializeWithinEP(state, _compType, _compName, _printWarningFlag, _callingRoutine); - this->dataScalableSizingON = DataSizing::DataScalableSizingON; - this->dataScalableCapSizingON = DataSizing::DataScalableCapSizingON; - this->dataHRFlowSizingFlag = DataSizing::HRFlowSizingFlag; - this->zoneCoolingOnlyFan = DataSizing::ZoneCoolingOnlyFan; - this->zoneHeatingOnlyFan = DataSizing::ZoneHeatingOnlyFan; - this->dataFracOfAutosizedCoolingAirflow = DataSizing::DataFracOfAutosizedCoolingAirflow; - this->dataFracOfAutosizedHeatingAirflow = DataSizing::DataFracOfAutosizedHeatingAirflow; - this->dataFlowPerCoolingCapacity = DataSizing::DataFlowPerCoolingCapacity; - this->dataAutosizedCoolingCapacity = DataSizing::DataAutosizedCoolingCapacity; - this->dataFlowPerHeatingCapacity = DataSizing::DataFlowPerHeatingCapacity; - this->dataAutosizedHeatingCapacity = DataSizing::DataAutosizedHeatingCapacity; + this->dataScalableSizingON = state.dataSize->DataScalableSizingON; + this->dataScalableCapSizingON = state.dataSize->DataScalableCapSizingON; + this->dataHRFlowSizingFlag = state.dataSize->HRFlowSizingFlag; + this->zoneCoolingOnlyFan = state.dataSize->ZoneCoolingOnlyFan; + this->zoneHeatingOnlyFan = state.dataSize->ZoneHeatingOnlyFan; + this->dataFracOfAutosizedCoolingAirflow = state.dataSize->DataFracOfAutosizedCoolingAirflow; + this->dataFracOfAutosizedHeatingAirflow = state.dataSize->DataFracOfAutosizedHeatingAirflow; + this->dataFlowPerCoolingCapacity = state.dataSize->DataFlowPerCoolingCapacity; + this->dataAutosizedCoolingCapacity = state.dataSize->DataAutosizedCoolingCapacity; + this->dataFlowPerHeatingCapacity = state.dataSize->DataFlowPerHeatingCapacity; + this->dataAutosizedHeatingCapacity = state.dataSize->DataAutosizedHeatingCapacity; - this->dataCoilSizingAirInTemp = DataSizing::DataCoilSizingAirInTemp; - this->dataCoilSizingAirInHumRat = DataSizing::DataCoilSizingAirInHumRat; - this->dataCoilSizingAirOutTemp = DataSizing::DataCoilSizingAirOutTemp; - this->dataCoilSizingAirOutHumRat = DataSizing::DataCoilSizingAirOutHumRat; - this->dataCoilSizingFanCoolLoad = DataSizing::DataCoilSizingFanCoolLoad; - this->dataCoilSizingCapFT = DataSizing::DataCoilSizingCapFT; - this->dataTotCapCurveIndex = DataSizing::DataTotCapCurveIndex; - this->dataTotCapCurveValue = DataSizing::DataTotCapCurveValue; - this->dataFracOfAutosizedCoolingCapacity = DataSizing::DataFracOfAutosizedCoolingCapacity; - this->dataFracOfAutosizedHeatingCapacity = DataSizing::DataFracOfAutosizedHeatingCapacity; - this->dataCoolCoilCap = DataSizing::DataCoolCoilCap; - this->dataCoilIsSuppHeater = DataSizing::DataCoilIsSuppHeater; - this->suppHeatCap = DataSizing::SuppHeatCap; - this->unitaryHeatCap = DataSizing::UnitaryHeatCap; + this->dataCoilSizingAirInTemp = state.dataSize->DataCoilSizingAirInTemp; + this->dataCoilSizingAirInHumRat = state.dataSize->DataCoilSizingAirInHumRat; + this->dataCoilSizingAirOutTemp = state.dataSize->DataCoilSizingAirOutTemp; + this->dataCoilSizingAirOutHumRat = state.dataSize->DataCoilSizingAirOutHumRat; + this->dataCoilSizingFanCoolLoad = state.dataSize->DataCoilSizingFanCoolLoad; + this->dataCoilSizingCapFT = state.dataSize->DataCoilSizingCapFT; + this->dataTotCapCurveIndex = state.dataSize->DataTotCapCurveIndex; + this->dataTotCapCurveValue = state.dataSize->DataTotCapCurveValue; + this->dataFracOfAutosizedCoolingCapacity = state.dataSize->DataFracOfAutosizedCoolingCapacity; + this->dataFracOfAutosizedHeatingCapacity = state.dataSize->DataFracOfAutosizedHeatingCapacity; + this->dataCoolCoilCap = state.dataSize->DataCoolCoilCap; + this->dataCoilIsSuppHeater = state.dataSize->DataCoilIsSuppHeater; + this->suppHeatCap = state.dataSize->SuppHeatCap; + this->unitaryHeatCap = state.dataSize->UnitaryHeatCap; - this->zoneHVACSizing = DataSizing::ZoneHVACSizing; + this->zoneHVACSizing = state.dataSize->ZoneHVACSizing; // set supply air fan properties if (this->isCoilReportObject && this->curSysNum > 0 && int(this->primaryAirSystem.size()) > 0 && @@ -134,12 +134,12 @@ void BaseSizerWithScalableInputs::initializeWithinEP(EnergyPlusData &state, this->dataFractionUsedForSizing = 1.0; this->dataConstantUsedForSizing = this->zoneHVACSizing(this->zoneHVACSizingIndex).MaxCoolAirVolFlow; if (coolingSAFMethod == DataSizing::FlowPerFloorArea) { - DataSizing::DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; this->dataConstantUsedForSizing = - this->zoneHVACSizing(this->zoneHVACSizingIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataSizing::DataZoneNumber).FloorArea; + this->zoneHVACSizing(this->zoneHVACSizingIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; } else if (coolingSAFMethod == DataSizing::FractionOfAutosizedCoolingAirflow) { - DataSizing::DataFracOfAutosizedCoolingAirflow = this->zoneHVACSizing(this->zoneHVACSizingIndex).MaxCoolAirVolFlow; - DataSizing::DataScalableSizingON = true; + state.dataSize->DataFracOfAutosizedCoolingAirflow = this->zoneHVACSizing(this->zoneHVACSizingIndex).MaxCoolAirVolFlow; + state.dataSize->DataScalableSizingON = true; } } else { if (int(this->zoneEqSizing.size()) > 0 && int(this->zoneEqSizing(this->curZoneEqNum).SizingMethod.size()) > 0) { diff --git a/src/EnergyPlus/Autosizing/CoolingAirFlowSizing.cc b/src/EnergyPlus/Autosizing/CoolingAirFlowSizing.cc index 0721eb6acd8..f4f5808d9a5 100644 --- a/src/EnergyPlus/Autosizing/CoolingAirFlowSizing.cc +++ b/src/EnergyPlus/Autosizing/CoolingAirFlowSizing.cc @@ -97,7 +97,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } } else { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { @@ -108,7 +108,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b state.dataWeatherManager->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth, coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { @@ -192,7 +192,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else if (SELECT_CASE_var == DataSizing::FractionOfAutosizedCoolingAirflow) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { @@ -203,7 +203,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b state.dataWeatherManager->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth, coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { @@ -292,7 +292,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else if (SELECT_CASE_var == DataSizing::FractionOfAutosizedHeatingAirflow) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { @@ -303,7 +303,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b state.dataWeatherManager->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth, coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { @@ -392,7 +392,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else if (SELECT_CASE_var == DataSizing::FlowPerCoolingCapacity) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { @@ -403,7 +403,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b state.dataWeatherManager->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth, coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity; if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { @@ -486,7 +486,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else if (SELECT_CASE_var == DataSizing::FlowPerHeatingCapacity) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; if (this->finalZoneSizing(this->curZoneEqNum).CoolDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { @@ -497,7 +497,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b state.dataWeatherManager->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth, coilSelectionReportObj->getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax)); } - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity; if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 && this->finalZoneSizing(this->curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { @@ -580,7 +580,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; } else if (this->termUnitIU && (this->curTermUnitSizingNum > 0)) { this->autoSizedValue = this->termUnitSizing(this->curTermUnitSizingNum).AirVolFlow; diff --git a/src/EnergyPlus/Autosizing/CoolingCapacitySizing.cc b/src/EnergyPlus/Autosizing/CoolingCapacitySizing.cc index d1b5614f09e..434fabb1d10 100644 --- a/src/EnergyPlus/Autosizing/CoolingCapacitySizing.cc +++ b/src/EnergyPlus/Autosizing/CoolingCapacitySizing.cc @@ -93,12 +93,12 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, if (this->zoneEqSizing(this->curZoneEqNum).CoolingCapacity) { // Parent object calculated capacity this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).DesCoolingLoad; DesVolFlow = this->dataFlowUsedForSizing; - CoilInTemp = DataSizing::DataCoilSizingAirInTemp; - CoilInHumRat = DataSizing::DataCoilSizingAirInHumRat; - CoilOutTemp = DataSizing::DataCoilSizingAirOutTemp; - CoilOutHumRat = DataSizing::DataCoilSizingAirOutHumRat; - FanCoolLoad = DataSizing::DataCoilSizingFanCoolLoad; - TotCapTempModFac = DataSizing::DataCoilSizingCapFT; + CoilInTemp = state.dataSize->DataCoilSizingAirInTemp; + CoilInHumRat = state.dataSize->DataCoilSizingAirInHumRat; + CoilOutTemp = state.dataSize->DataCoilSizingAirOutTemp; + CoilOutHumRat = state.dataSize->DataCoilSizingAirOutHumRat; + FanCoolLoad = state.dataSize->DataCoilSizingFanCoolLoad; + TotCapTempModFac = state.dataSize->DataCoilSizingCapFT; } else { if (UtilityRoutines::SameString(this->compType, "COIL:COOLING:WATER") || UtilityRoutines::SameString(this->compType, "COIL:COOLING:WATER:DETAILEDGEOMETRY") || @@ -124,7 +124,7 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, DesVolFlow = this->dataFlowUsedForSizing; if (DesVolFlow >= DataHVACGlobals::SmallAirVolFlow) { // each of these IFs now seem the same and can be condensed to just CoilInTemp = set() and CoilInHumRat = set() - if (DataSizing::ZoneEqDXCoil) { + if (state.dataSize->ZoneEqDXCoil) { // ATMixer has priority over Equipment OA vol flow if (this->zoneEqSizing(this->curZoneEqNum).ATMixerVolFlow > 0.0) { // NEW ATMixer coil sizing method Real64 DesMassFlow = DesVolFlow * state.dataEnvrn->StdRhoAir; @@ -165,7 +165,7 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, int DDNum = this->finalZoneSizing(this->curZoneEqNum).CoolDDNum; Real64 OutTemp = 0.0; if (DDNum > 0 && TimeStepNumAtMax > 0) { - OutTemp = DataSizing::DesDayWeath(DDNum).Temp(TimeStepNumAtMax); + OutTemp = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepNumAtMax); } Real64 rhoair = Psychrometrics::PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, CoilInTemp, CoilInHumRat, this->callingRoutine); @@ -183,9 +183,9 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, Real64 CpAir = Psychrometrics::PsyCpAirFnW(CoilInHumRat); // adjust coil inlet/outlet temp with fan temperature rise if (this->dataDesAccountForFanHeat) { - if (DataSizing::DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { + if (state.dataSize->DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { CoilInTemp += FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * DesVolFlow); - } else if (DataSizing::DataFanPlacement == DataSizing::zoneFanPlacement::zoneDrawThru) { + } else if (state.dataSize->DataFanPlacement == DataSizing::zoneFanPlacement::zoneDrawThru) { CoilOutTemp -= FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * DesVolFlow); } } @@ -204,12 +204,12 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, this->autoSizedValue = PeakCoilLoad; } // save these conditions to use when this->zoneEqSizing(this->curZoneEqNum).CoolingCapacity = true - DataSizing::DataCoilSizingAirInTemp = CoilInTemp; - DataSizing::DataCoilSizingAirInHumRat = CoilInHumRat; - DataSizing::DataCoilSizingAirOutTemp = CoilOutTemp; - DataSizing::DataCoilSizingAirOutHumRat = CoilOutHumRat; - DataSizing::DataCoilSizingFanCoolLoad = FanCoolLoad; - DataSizing::DataCoilSizingCapFT = TotCapTempModFac; + state.dataSize->DataCoilSizingAirInTemp = CoilInTemp; + state.dataSize->DataCoilSizingAirInHumRat = CoilInHumRat; + state.dataSize->DataCoilSizingAirOutTemp = CoilOutTemp; + state.dataSize->DataCoilSizingAirOutHumRat = CoilOutHumRat; + state.dataSize->DataCoilSizingFanCoolLoad = FanCoolLoad; + state.dataSize->DataCoilSizingCapFT = TotCapTempModFac; } else { this->autoSizedValue = 0.0; CoilOutTemp = -999.0; @@ -260,12 +260,12 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, } else if (this->airLoopSysFlag) { this->autoSizedValue = this->unitarySysEqSizing(this->curSysNum).DesCoolingLoad; DesVolFlow = this->dataFlowUsedForSizing; - CoilInTemp = DataSizing::DataCoilSizingAirInTemp; - CoilInHumRat = DataSizing::DataCoilSizingAirInHumRat; - CoilOutTemp = DataSizing::DataCoilSizingAirOutTemp; - CoilOutHumRat = DataSizing::DataCoilSizingAirOutHumRat; - FanCoolLoad = DataSizing::DataCoilSizingFanCoolLoad; - TotCapTempModFac = DataSizing::DataCoilSizingCapFT; + CoilInTemp = state.dataSize->DataCoilSizingAirInTemp; + CoilInHumRat = state.dataSize->DataCoilSizingAirInHumRat; + CoilOutTemp = state.dataSize->DataCoilSizingAirOutTemp; + CoilOutHumRat = state.dataSize->DataCoilSizingAirOutHumRat; + FanCoolLoad = state.dataSize->DataCoilSizingFanCoolLoad; + TotCapTempModFac = state.dataSize->DataCoilSizingCapFT; if (coilSelectionReportObj->isCompTypeCoil(this->compType)) { coilSelectionReportObj->setCoilEntAirHumRat(state, this->compName, this->compType, CoilInHumRat); coilSelectionReportObj->setCoilEntAirTemp(state, this->compName, this->compType, CoilInTemp, this->curSysNum, this->curZoneEqNum); @@ -426,12 +426,12 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue, } else { NominalCapacityDes = PeakCoilLoad; } - DataSizing::DataCoilSizingAirInTemp = CoilInTemp; - DataSizing::DataCoilSizingAirInHumRat = CoilInHumRat; - DataSizing::DataCoilSizingAirOutTemp = CoilOutTemp; - DataSizing::DataCoilSizingAirOutHumRat = CoilOutHumRat; - DataSizing::DataCoilSizingFanCoolLoad = FanCoolLoad; - DataSizing::DataCoilSizingCapFT = TotCapTempModFac; + state.dataSize->DataCoilSizingAirInTemp = CoilInTemp; + state.dataSize->DataCoilSizingAirInHumRat = CoilInHumRat; + state.dataSize->DataCoilSizingAirOutTemp = CoilOutTemp; + state.dataSize->DataCoilSizingAirOutHumRat = CoilOutHumRat; + state.dataSize->DataCoilSizingFanCoolLoad = FanCoolLoad; + state.dataSize->DataCoilSizingCapFT = TotCapTempModFac; } else { NominalCapacityDes = 0.0; } diff --git a/src/EnergyPlus/Autosizing/CoolingSHRSizing.cc b/src/EnergyPlus/Autosizing/CoolingSHRSizing.cc index 04c4e9e5e9d..2e48555d34c 100644 --- a/src/EnergyPlus/Autosizing/CoolingSHRSizing.cc +++ b/src/EnergyPlus/Autosizing/CoolingSHRSizing.cc @@ -47,6 +47,7 @@ #include #include +#include #include #include @@ -124,12 +125,12 @@ Real64 CoolingSHRSizer::size(EnergyPlusData &state, Real64 _originalValue, bool } } } - this->updateSizingString(); + this->updateSizingString(state); this->selectSizerOutput(state, errorsFound); return this->autoSizedValue; } -void CoolingSHRSizer::updateSizingString() +void CoolingSHRSizer::updateSizingString(EnergyPlusData &state) { if (!overrideSizeString) return; // override sizingString to match existing text @@ -149,9 +150,9 @@ void CoolingSHRSizer::updateSizingString() } } else if (this->coilType_Num == DataHVACGlobals::CoilDX_MultiSpeedCooling) { if (this->isEpJSON) { - this->sizingString = fmt::format("speed_{}_rated_sensible_heat_ratio", DataSizing::DataDXSpeedNum); + this->sizingString = fmt::format("speed_{}_rated_sensible_heat_ratio", state.dataSize->DataDXSpeedNum); } else { - this->sizingString = fmt::format("Speed {} Rated Sensible Heat Ratio", DataSizing::DataDXSpeedNum); + this->sizingString = fmt::format("Speed {} Rated Sensible Heat Ratio", state.dataSize->DataDXSpeedNum); } } else if (this->coilType_Num == DataHVACGlobals::CoilVRF_FluidTCtrl_Cooling) { if (this->isEpJSON) { diff --git a/src/EnergyPlus/Autosizing/CoolingSHRSizing.hh b/src/EnergyPlus/Autosizing/CoolingSHRSizing.hh index 5900cb556ad..dfc5aef8d48 100644 --- a/src/EnergyPlus/Autosizing/CoolingSHRSizing.hh +++ b/src/EnergyPlus/Autosizing/CoolingSHRSizing.hh @@ -52,6 +52,9 @@ namespace EnergyPlus { +// Forward declarations +struct EnergyPlusData; + struct CoolingSHRSizer : BaseSizer { CoolingSHRSizer() @@ -62,9 +65,9 @@ struct CoolingSHRSizer : BaseSizer } ~CoolingSHRSizer() = default; - Real64 size(EnergyPlusData &State, Real64 originalValue, bool &errorsFound) override; + Real64 size(EnergyPlusData &state, Real64 originalValue, bool &errorsFound) override; - void updateSizingString(); + void updateSizingString(EnergyPlusData &state); }; diff --git a/src/EnergyPlus/Autosizing/CoolingWaterDesAirInletTempSizing.cc b/src/EnergyPlus/Autosizing/CoolingWaterDesAirInletTempSizing.cc index 5c266c47700..9807fdfe7f0 100644 --- a/src/EnergyPlus/Autosizing/CoolingWaterDesAirInletTempSizing.cc +++ b/src/EnergyPlus/Autosizing/CoolingWaterDesAirInletTempSizing.cc @@ -115,7 +115,7 @@ Real64 CoolingWaterDesAirInletTempSizer::size(EnergyPlusData &state, Real64 _ori if (this->dataDesInletAirHumRat > 0.0 && this->dataAirFlowUsedForSizing > 0.0) { Real64 CpAir = Psychrometrics::PsyCpAirFnW(this->dataDesInletAirHumRat); fanDeltaT = FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * this->dataAirFlowUsedForSizing); - this->setDataDesAccountForFanHeat(false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat + this->setDataDesAccountForFanHeat(state, false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat } } this->autoSizedValue += fanDeltaT; diff --git a/src/EnergyPlus/Autosizing/CoolingWaterDesAirOutletTempSizing.cc b/src/EnergyPlus/Autosizing/CoolingWaterDesAirOutletTempSizing.cc index b18262658f9..87bc2c40e40 100644 --- a/src/EnergyPlus/Autosizing/CoolingWaterDesAirOutletTempSizing.cc +++ b/src/EnergyPlus/Autosizing/CoolingWaterDesAirOutletTempSizing.cc @@ -92,7 +92,7 @@ Real64 CoolingWaterDesAirOutletTempSizer::size(EnergyPlusData &state, Real64 _or if (this->dataDesInletAirHumRat > 0.0 && this->dataAirFlowUsedForSizing > 0.0) { Real64 CpAir = Psychrometrics::PsyCpAirFnW(this->dataDesInletAirHumRat); fanDeltaT = FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * this->dataAirFlowUsedForSizing); - this->setDataDesAccountForFanHeat(false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat + this->setDataDesAccountForFanHeat(state, false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat } } this->autoSizedValue -= fanDeltaT; @@ -136,7 +136,7 @@ Real64 CoolingWaterDesAirOutletTempSizer::size(EnergyPlusData &state, Real64 _or if (this->dataDesInletAirHumRat > 0.0 && this->dataAirFlowUsedForSizing > 0.0) { Real64 CpAir = Psychrometrics::PsyCpAirFnW(this->dataDesInletAirHumRat); fanDeltaT = FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * this->dataAirFlowUsedForSizing); - this->setDataDesAccountForFanHeat(false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat + this->setDataDesAccountForFanHeat(state, false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat } } this->autoSizedValue -= fanDeltaT; @@ -149,7 +149,7 @@ Real64 CoolingWaterDesAirOutletTempSizer::size(EnergyPlusData &state, Real64 _or if (this->dataDesInletAirHumRat > 0.0 && this->dataAirFlowUsedForSizing > 0.0) { Real64 CpAir = Psychrometrics::PsyCpAirFnW(this->dataDesInletAirHumRat); fanDeltaT = FanCoolLoad / (CpAir * state.dataEnvrn->StdRhoAir * this->dataAirFlowUsedForSizing); - this->setDataDesAccountForFanHeat(false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat + this->setDataDesAccountForFanHeat(state, false); // used in CoolingCapacitySizing calculations to avoid double counting fan heat } } this->autoSizedValue -= fanDeltaT; diff --git a/src/EnergyPlus/Autosizing/HeatingAirFlowSizing.cc b/src/EnergyPlus/Autosizing/HeatingAirFlowSizing.cc index f80fd87e4dc..4894fb5de59 100644 --- a/src/EnergyPlus/Autosizing/HeatingAirFlowSizing.cc +++ b/src/EnergyPlus/Autosizing/HeatingAirFlowSizing.cc @@ -82,9 +82,9 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow, this->zoneEqSizing(this->curZoneEqNum).HeatingAirVolFlow); } else { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) { this->autoSizedValue = this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow; @@ -99,9 +99,9 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b } } } else if (SELECT_CASE_var == DataSizing::FractionOfAutosizedCoolingAirflow) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow; @@ -117,9 +117,9 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow); } } else if (SELECT_CASE_var == DataSizing::FractionOfAutosizedHeatingAirflow) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow; } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) { this->autoSizedValue = this->dataFracOfAutosizedCoolingAirflow * this->zoneEqSizing(this->curZoneEqNum).CoolingAirVolFlow; @@ -135,9 +135,9 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b this->dataFracOfAutosizedHeatingAirflow * this->finalZoneSizing(this->curZoneEqNum).DesHeatVolFlow); } } else if (SELECT_CASE_var == DataSizing::FlowPerCoolingCapacity) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity; } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; @@ -151,9 +151,9 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity); } } else if (SELECT_CASE_var == DataSizing::FlowPerHeatingCapacity) { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; - } else if (DataSizing::ZoneHeatingOnlyFan) { + } else if (state.dataSize->ZoneHeatingOnlyFan) { this->autoSizedValue = this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity; } else if (this->zoneEqSizing(this->curZoneEqNum).CoolingAirFlow && !this->zoneEqSizing(this->curZoneEqNum).HeatingAirFlow) { this->autoSizedValue = this->dataFlowPerCoolingCapacity * this->dataAutosizedCoolingCapacity; @@ -167,7 +167,7 @@ Real64 HeatingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b this->dataFlowPerHeatingCapacity * this->dataAutosizedHeatingCapacity); } } else { - if (DataSizing::ZoneCoolingOnlyFan) { + if (state.dataSize->ZoneCoolingOnlyFan) { this->autoSizedValue = this->finalZoneSizing(this->curZoneEqNum).DesCoolVolFlow; } else if (this->termUnitIU && (this->curTermUnitSizingNum > 0)) { this->autoSizedValue = this->termUnitSizing(this->curTermUnitSizingNum).AirVolFlow; diff --git a/src/EnergyPlus/Autosizing/SystemAirFlowSizing.cc b/src/EnergyPlus/Autosizing/SystemAirFlowSizing.cc index 51e7e973c92..f91b1e4ad93 100644 --- a/src/EnergyPlus/Autosizing/SystemAirFlowSizing.cc +++ b/src/EnergyPlus/Autosizing/SystemAirFlowSizing.cc @@ -58,6 +58,9 @@ namespace EnergyPlus { Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bool &errorsFound) { + + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + if (!this->checkInitialized(state, errorsFound)) { return 0.0; } @@ -739,16 +742,16 @@ Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bo this->autoSizedValue = std::max(this->unitarySysEqSizing(this->curSysNum).CoolingAirVolFlow, this->unitarySysEqSizing(this->curSysNum).HeatingAirVolFlow); if (this->autoSizedValue == this->unitarySysEqSizing(this->curSysNum).CoolingAirVolFlow) { - if (DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && - DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { - DDNameFanPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; + if (SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && + SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { + DDNameFanPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; dateTimeFanPeak = format( "{}/{} {}", - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, coilSelectionReportObj->getTimeText(state, - DataSizing::SysSizPeakDDNum(this->curSysNum) - .TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); + SysSizPeakDDNum(this->curSysNum) + .TimeStepAtCoolFlowPk(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); } } else if (this->autoSizedValue == this->unitarySysEqSizing(this->curSysNum).HeatingAirVolFlow) { @@ -764,16 +767,16 @@ Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bo } } else if (this->unitarySysEqSizing(this->curSysNum).CoolingAirFlow) { this->autoSizedValue = this->unitarySysEqSizing(this->curSysNum).CoolingAirVolFlow; - if (DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && - DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { - DDNameFanPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; + if (SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && + SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { + DDNameFanPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; dateTimeFanPeak = format( "{}/{} {}", - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, coilSelectionReportObj->getTimeText(state, - DataSizing::SysSizPeakDDNum(this->curSysNum) - .TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); + SysSizPeakDDNum(this->curSysNum) + .TimeStepAtCoolFlowPk(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); } } else if (this->unitarySysEqSizing(this->curSysNum).HeatingAirFlow) { this->autoSizedValue = this->unitarySysEqSizing(this->curSysNum).HeatingAirVolFlow; @@ -800,16 +803,16 @@ Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bo coilSelectionReportObj->getTimeText(state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk)); } } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) { - if (DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && - DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { - DDNameFanPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; + if (SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && + SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { + DDNameFanPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; dateTimeFanPeak = format( "{}/{} {}", - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, coilSelectionReportObj->getTimeText(state, - DataSizing::SysSizPeakDDNum(this->curSysNum) - .TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); + SysSizPeakDDNum(this->curSysNum) + .TimeStepAtCoolFlowPk(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); } } } @@ -826,16 +829,16 @@ Real64 SystemAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, bo coilSelectionReportObj->getTimeText(state, this->finalSysSizing(this->curSysNum).SysHeatAirTimeStepPk)); } } else if (this->autoSizedValue == this->finalSysSizing(this->curSysNum).DesCoolVolFlow) { - if (DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && - DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { - DDNameFanPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; + if (SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD > 0 && + SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { + DDNameFanPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Title; dateTimeFanPeak = format( "{}/{} {}", - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, - state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).Month, + state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD).DayOfMonth, coilSelectionReportObj->getTimeText(state, - DataSizing::SysSizPeakDDNum(this->curSysNum) - .TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); + SysSizPeakDDNum(this->curSysNum) + .TimeStepAtCoolFlowPk(SysSizPeakDDNum(this->curSysNum).CoolFlowPeakDD))); } } } diff --git a/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc b/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc index 64e7d863a57..5d1d5f14226 100644 --- a/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc +++ b/src/EnergyPlus/Autosizing/WaterHeatingCoilUASizing.cc @@ -382,7 +382,7 @@ Real64 WaterHeatingCoilUASizer::size(EnergyPlusData &state, Real64 _originalValu } } } - if (this->dataErrorsFound) DataSizing::DataErrorsFound = true; + if (this->dataErrorsFound) state.dataSize->DataErrorsFound = true; if (this->overrideSizeString) { if (this->isEpJSON) this->sizingString = "u-factor_times_area_value [W/K]"; } diff --git a/src/EnergyPlus/BaseboardElectric.cc b/src/EnergyPlus/BaseboardElectric.cc index 11386987504..1e2e467b2b1 100644 --- a/src/EnergyPlus/BaseboardElectric.cc +++ b/src/EnergyPlus/BaseboardElectric.cc @@ -468,42 +468,44 @@ namespace BaseboardElectric { int CapSizingMethod; // capacity sizing methods (HeatingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity, and // FractionOfAutosizedHeatingCapacity ) - DataScalableCapSizingON = false; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); - if (CurZoneEqNum > 0) { + state.dataSize->DataScalableCapSizingON = false; + + if (state.dataSize->CurZoneEqNum > 0) { CompType = baseboard->Baseboard(BaseboardNum).EquipType; CompName = baseboard->Baseboard(BaseboardNum).EquipName; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = true; SizingString = baseboard->BaseboardNumericFields(BaseboardNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = baseboard->Baseboard(BaseboardNum).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { if (baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity == AutoSize) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } TempSize = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = + baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; } @@ -512,7 +514,7 @@ namespace BaseboardElectric { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); baseboard->Baseboard(BaseboardNum).NominalCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } } } diff --git a/src/EnergyPlus/BaseboardRadiator.cc b/src/EnergyPlus/BaseboardRadiator.cc index 91fb1282cb8..7ecae9f1dc9 100644 --- a/src/EnergyPlus/BaseboardRadiator.cc +++ b/src/EnergyPlus/BaseboardRadiator.cc @@ -680,6 +680,10 @@ namespace BaseboardRadiator { bool PrintFlag; // TRUE when sizing information is reported in the eio file int CapSizingMethod(0); // capacity sizing methods (HeatingDesignCapacity, CapacityPerFloorArea, and FractionOfAutosizedHeatingCapacity ) + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + auto &FinalZoneSizing(state.dataSize->FinalZoneSizing); + auto &DataScalableCapSizingON(state.dataSize->DataScalableCapSizingON); auto &baseboard = state.dataBaseboardRadiator; // find the appropriate heating Plant Sizing object @@ -694,7 +698,7 @@ namespace BaseboardRadiator { if (baseboard->Baseboard(BaseboardNum).WaterVolFlowRateMax == AutoSize) { FlowAutoSize = true; } - if (!FlowAutoSize && !ZoneSizingRunDone) { // Simulation should continue + if (!FlowAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation should continue if (baseboard->Baseboard(BaseboardNum).WaterVolFlowRateMax > 0.0) { BaseSizer::reportSizerOutput(state, cCMO_BBRadiator_Water, baseboard->Baseboard(BaseboardNum).EquipID, @@ -705,8 +709,8 @@ namespace BaseboardRadiator { CheckZoneSizing(state, cCMO_BBRadiator_Water, baseboard->Baseboard(BaseboardNum).EquipID); CompType = cCMO_BBRadiator_Water; CompName = baseboard->Baseboard(BaseboardNum).EquipID; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = false; @@ -728,13 +732,13 @@ namespace BaseboardRadiator { } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; TempSize = AutoSize; DataScalableCapSizingON = true; @@ -762,7 +766,7 @@ namespace BaseboardRadiator { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(baseboard->Baseboard(BaseboardNum).LoopNum).FluidIndex, RoutineName); - WaterVolFlowRateMaxDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + WaterVolFlowRateMaxDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { WaterVolFlowRateMaxDes = 0.0; } @@ -785,7 +789,7 @@ namespace BaseboardRadiator { // Report a warning to note difference between the two if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(WaterVolFlowRateMaxDes - WaterVolFlowRateMaxUser) / WaterVolFlowRateMaxUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeBaseboard: Potential issue with equipment sizing for ZoneHVAC:Baseboard:Convective:Water=\"" + baseboard->Baseboard(BaseboardNum).EquipID + "\"."); ShowContinueError(state, @@ -807,7 +811,7 @@ namespace BaseboardRadiator { } else { UAUser = baseboard->Baseboard(BaseboardNum).UA; } - if (!UAAutoSize && !ZoneSizingRunDone) { // Simulation should continue + if (!UAAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation should continue if (baseboard->Baseboard(BaseboardNum).UA > 0.0) { BaseSizer::reportSizerOutput(state, cCMO_BBRadiator_Water, baseboard->Baseboard(BaseboardNum).EquipID, @@ -815,7 +819,7 @@ namespace BaseboardRadiator { baseboard->Baseboard(BaseboardNum).UA); } } else { - baseboard->Baseboard(BaseboardNum).WaterInletTemp = PlantSizData(PltSizHeatNum).ExitTemp; + baseboard->Baseboard(BaseboardNum).WaterInletTemp = state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp; baseboard->Baseboard(BaseboardNum).AirInletTemp = FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak; baseboard->Baseboard(BaseboardNum).AirInletHumRat = FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak; WaterInletNode = baseboard->Baseboard(BaseboardNum).WaterInletNode; @@ -828,8 +832,8 @@ namespace BaseboardRadiator { CompType = cCMO_BBRadiator_Water; CompName = baseboard->Baseboard(BaseboardNum).EquipID; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = baseboard->Baseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = false; @@ -850,13 +854,13 @@ namespace BaseboardRadiator { } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = baseboard->Baseboard(BaseboardNum).ScaledHeatingCapacity; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; TempSize = AutoSize; DataScalableCapSizingON = true; @@ -967,7 +971,7 @@ namespace BaseboardRadiator { UAUser); // Report difference between design size and hard-sized values if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(UADes - UAUser) / UAUser) > AutoVsHardSizingThreshold) { + if ((std::abs(UADes - UAUser) / UAUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeBaseboard: Potential issue with equipment sizing for ZoneHVAC:Baseboard:Convective:Water=\"" + baseboard->Baseboard(BaseboardNum).EquipID + "\"."); ShowContinueError(state, format("User-Specified U-Factor Times Area Value of {:.2R} [W/K]", UAUser)); @@ -990,7 +994,7 @@ namespace BaseboardRadiator { } // save the design water flow rate for use by the water loop sizing algorithms - RegisterPlantCompDesignFlow(baseboard->Baseboard(BaseboardNum).WaterInletNode, baseboard->Baseboard(BaseboardNum).WaterVolFlowRateMax); + RegisterPlantCompDesignFlow(state, baseboard->Baseboard(BaseboardNum).WaterInletNode, baseboard->Baseboard(BaseboardNum).WaterVolFlowRateMax); if (ErrorsFound) { ShowFatalError(state, "SizeBaseboard: Preceding sizing errors cause program termination"); @@ -1052,7 +1056,7 @@ namespace BaseboardRadiator { ZoneNum = baseboard->Baseboard(BaseboardNum).ZonePtr; QZnReq = state.dataZoneEnergyDemand->ZoneSysEnergyDemand(ZoneNum).RemainingOutputReqToHeatSP; if (baseboard->Baseboard(BaseboardNum).MySizeFlag) - QZnReq = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; // If in sizing, assign design condition + QZnReq = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; // If in sizing, assign design condition WaterInletTemp = baseboard->Baseboard(BaseboardNum).WaterInletTemp; AirInletTemp = baseboard->Baseboard(BaseboardNum).AirInletTemp; diff --git a/src/EnergyPlus/BoilerSteam.cc b/src/EnergyPlus/BoilerSteam.cc index 3b3ad715942..67169958d20 100644 --- a/src/EnergyPlus/BoilerSteam.cc +++ b/src/EnergyPlus/BoilerSteam.cc @@ -480,16 +480,16 @@ namespace BoilerSteam { int PltSizNum = state.dataPlnt->PlantLoop(this->LoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 SizingTemp = this->TempUpLimitBoilerOut; Real64 SteamDensity = FluidProperties::GetSatDensityRefrig(state, fluidNameSteam, SizingTemp, 1.0, this->FluidIndex, RoutineName); Real64 EnthSteamOutDry = FluidProperties::GetSatEnthalpyRefrig(state, fluidNameSteam, SizingTemp, 1.0, this->FluidIndex, RoutineName); Real64 EnthSteamOutWet = FluidProperties::GetSatEnthalpyRefrig(state, fluidNameSteam, SizingTemp, 0.0, this->FluidIndex, RoutineName); Real64 LatentEnthSteam = EnthSteamOutDry - EnthSteamOutWet; Real64 CpWater = FluidProperties::GetSatSpecificHeatRefrig(state, fluidNameSteam, SizingTemp, 0.0, this->FluidIndex, RoutineName); - tmpNomCap = (CpWater * SteamDensity * this->SizFac * DataSizing::PlantSizData(PltSizNum).DeltaT * - DataSizing::PlantSizData(PltSizNum).DesVolFlowRate + - DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * SteamDensity * LatentEnthSteam); + tmpNomCap = (CpWater * SteamDensity * this->SizFac * state.dataSize->PlantSizData(PltSizNum).DeltaT * + state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate + + state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * SteamDensity * LatentEnthSteam); } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -513,7 +513,7 @@ namespace BoilerSteam { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePump: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); diff --git a/src/EnergyPlus/Boilers.cc b/src/EnergyPlus/Boilers.cc index ef8c0a0d1f5..75cb6929fdd 100644 --- a/src/EnergyPlus/Boilers.cc +++ b/src/EnergyPlus/Boilers.cc @@ -556,7 +556,7 @@ namespace EnergyPlus::Boilers { int const PltSizNum = state.dataPlnt->PlantLoop(this->LoopNum).PlantSizNum; // Plant Sizing index corresponding to CurLoopNum if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 const rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, @@ -568,7 +568,7 @@ namespace EnergyPlus::Boilers { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * this->SizFac * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + tmpNomCap = Cp * rho * this->SizFac * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -592,7 +592,7 @@ namespace EnergyPlus::Boilers { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeBoilerHotWater: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -616,8 +616,8 @@ namespace EnergyPlus::Boilers { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpBoilerVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpBoilerVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->VolFlowRateWasAutoSized) tmpBoilerVolFlowRate = 0.0; } @@ -643,7 +643,7 @@ namespace EnergyPlus::Boilers { "User-Specified Design Water Flow Rate [m3/s]", VolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpBoilerVolFlowRate - VolFlowRateUser) / VolFlowRateUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpBoilerVolFlowRate - VolFlowRateUser) / VolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeBoilerHotWater: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Water Flow Rate of {:.2R} [m3/s]", VolFlowRateUser)); ShowContinueError( @@ -669,7 +669,7 @@ namespace EnergyPlus::Boilers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->BoilerInletNodeNum, tmpBoilerVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->BoilerInletNodeNum, tmpBoilerVolFlowRate); if (state.dataPlnt->PlantFinalSizesOkayToReport) { // create predefined report diff --git a/src/EnergyPlus/CTElectricGenerator.cc b/src/EnergyPlus/CTElectricGenerator.cc index 0f6564b6853..e5a0c3f231f 100644 --- a/src/EnergyPlus/CTElectricGenerator.cc +++ b/src/EnergyPlus/CTElectricGenerator.cc @@ -288,7 +288,7 @@ namespace CTElectricGenerator { } BranchNodeConnections::TestCompSet(state, DataIPShortCuts::cCurrentModuleObject, AlphArray(1), AlphArray(9), AlphArray(10), "Heat Recovery Nodes"); - PlantUtilities::RegisterPlantCompDesignFlow(state.dataCTElectricGenerator->CTGenerator(genNum).HeatRecInletNodeNum, state.dataCTElectricGenerator->CTGenerator(genNum).DesignHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataCTElectricGenerator->CTGenerator(genNum).HeatRecInletNodeNum, state.dataCTElectricGenerator->CTGenerator(genNum).DesignHeatRecVolFlowRate); } else { state.dataCTElectricGenerator->CTGenerator(genNum).HeatRecActive = false; state.dataCTElectricGenerator->CTGenerator(genNum).HeatRecInletNodeNum = 0; diff --git a/src/EnergyPlus/ChilledCeilingPanelSimple.cc b/src/EnergyPlus/ChilledCeilingPanelSimple.cc index e49a09cec9f..1bea28ce780 100644 --- a/src/EnergyPlus/ChilledCeilingPanelSimple.cc +++ b/src/EnergyPlus/ChilledCeilingPanelSimple.cc @@ -881,22 +881,11 @@ namespace EnergyPlus::CoolingPanelSimple { using DataHVACGlobals::CoolingCapacitySizing; using DataHVACGlobals::SmallLoad; using DataSizing::AutoSize; - using DataSizing::AutoVsHardSizingThreshold; using DataSizing::CapacityPerFloorArea; using DataSizing::CoolingDesignCapacity; - using DataSizing::CurZoneEqNum; - using DataSizing::DataConstantUsedForSizing; - using DataSizing::DataFractionUsedForSizing; - using DataSizing::DataScalableCapSizingON; - using DataSizing::FinalZoneSizing; using DataSizing::FractionOfAutosizedCoolingCapacity; - using DataSizing::PlantSizData; - using DataSizing::ZoneEqSizing; - using DataSizing::ZoneSizingRunDone; - using FluidProperties::GetDensityGlycol; using FluidProperties::GetSpecificHeatGlycol; - using PlantUtilities::MyPlantSizingIndex; using PlantUtilities::RegisterPlantCompDesignFlow; @@ -923,9 +912,10 @@ namespace EnergyPlus::CoolingPanelSimple { Real64 WaterVolFlowMaxCoolUser(0.0); // User hard-sized chilled water flow for reporting DesCoilLoad = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; auto &ThisCP(state.dataChilledCeilingPanelSimple->CoolingPanel(CoolingPanelNum)); + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); CompType = "ZoneHVAC:CoolingPanel:RadiantConvective:Water"; CompName = ThisCP.EquipID; @@ -935,7 +925,7 @@ namespace EnergyPlus::CoolingPanelSimple { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { SizingMethod = CoolingCapacitySizing; FieldNum = 4; @@ -943,21 +933,21 @@ namespace EnergyPlus::CoolingPanelSimple { bool errorsFound = false; SizingString = state.dataChilledCeilingPanelSimple->CoolingPanelSysNumericFields(CoolingPanelNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = ThisCP.CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (CapSizingMethod == CoolingDesignCapacity && ThisCP.ScaledCoolingCapacity > 0.0) { TempSize = ThisCP.ScaledCoolingCapacity; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, errorsFound); } else if (CapSizingMethod == CapacityPerFloorArea) { - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; TempSize = ThisCP.ScaledCoolingCapacity * state.dataHeatBal->Zone(ThisCP.ZonePtr).FloorArea; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (ThisCP.WaterVolFlowRateMax == AutoSize) { ShowSevereError(state, RoutineName + ": auto-sizing cannot be done for " + CompType + " = " + ThisCP.EquipID + "\"."); @@ -970,11 +960,11 @@ namespace EnergyPlus::CoolingPanelSimple { if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + state.dataSize->DataFractionUsedForSizing = 1.0; } if (ThisCP.ScaledCoolingCapacity == AutoSize) { TempSize = AutoSize; @@ -982,19 +972,19 @@ namespace EnergyPlus::CoolingPanelSimple { TempSize = ThisCP.ScaledCoolingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; } TempSize = ThisCP.ScaledCoolingCapacity * state.dataHeatBal->Zone(ThisCP.ZonePtr).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - TempSize = ZoneEqSizing(CurZoneEqNum).DesCoolingLoad * ThisCP.ScaledCoolingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad * ThisCP.ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = ThisCP.ScaledCoolingCapacity; @@ -1002,9 +992,9 @@ namespace EnergyPlus::CoolingPanelSimple { CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; } else { DesCoilLoad = 0.0; } @@ -1017,8 +1007,8 @@ namespace EnergyPlus::CoolingPanelSimple { if (ThisCP.WaterVolFlowRateMax == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (ThisCP.WaterVolFlowRateMax > 0.0) { BaseSizer::reportSizerOutput(state, CompType, ThisCP.EquipID, "User-Specified Maximum Cold Water Flow [m3/s]", ThisCP.WaterVolFlowRateMax); } @@ -1029,7 +1019,7 @@ namespace EnergyPlus::CoolingPanelSimple { if (DesCoilLoad >= SmallLoad) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(ThisCP.LoopNum).FluidName, 5., state.dataPlnt->PlantLoop(ThisCP.LoopNum).FluidIndex, RoutineName); Cp = GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(ThisCP.LoopNum).FluidName, 5.0, state.dataPlnt->PlantLoop(ThisCP.LoopNum).FluidIndex, RoutineName); - WaterVolFlowMaxCoolDes = DesCoilLoad / (PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); + WaterVolFlowMaxCoolDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); } else { WaterVolFlowMaxCoolDes = 0.0; } @@ -1053,7 +1043,7 @@ namespace EnergyPlus::CoolingPanelSimple { "User-Specified Maximum Cold Water Flow [m3/s]", WaterVolFlowMaxCoolUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(WaterVolFlowMaxCoolDes - WaterVolFlowMaxCoolUser) / WaterVolFlowMaxCoolUser) > AutoVsHardSizingThreshold) { + if ((std::abs(WaterVolFlowMaxCoolDes - WaterVolFlowMaxCoolUser) / WaterVolFlowMaxCoolUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeCoolingPanel: Potential issue with equipment sizing for ZoneHVAC:CoolingPanel:RadiantConvective:Water = \"" + ThisCP.EquipID + "\"."); @@ -1069,7 +1059,7 @@ namespace EnergyPlus::CoolingPanelSimple { } } - RegisterPlantCompDesignFlow(ThisCP.WaterInletNode, ThisCP.WaterVolFlowRateMax); + RegisterPlantCompDesignFlow(state, ThisCP.WaterInletNode, ThisCP.WaterVolFlowRateMax); bool SizeCoolingPanelUASuccess; SizeCoolingPanelUASuccess = ThisCP.SizeCoolingPanelUA(state); diff --git a/src/EnergyPlus/ChillerAbsorption.cc b/src/EnergyPlus/ChillerAbsorption.cc index caf2ace00b8..87317f2fd9f 100644 --- a/src/EnergyPlus/ChillerAbsorption.cc +++ b/src/EnergyPlus/ChillerAbsorption.cc @@ -903,8 +903,8 @@ namespace EnergyPlus::ChillerAbsorption { PltSizSteamNum = PlantUtilities::MyPlantSizingIndex(state, moduleObjectType, this->Name, this->GeneratorInletNodeNum, this->GeneratorOutletNodeNum, LoopErrorsFound); } else { - for (int PltSizIndex = 1; PltSizIndex <= DataSizing::NumPltSizInput; ++PltSizIndex) { - if (DataSizing::PlantSizData(PltSizIndex).LoopType == DataSizing::SteamLoop) { + for (int PltSizIndex = 1; PltSizIndex <= state.dataSize->NumPltSizInput; ++PltSizIndex) { + if (state.dataSize->PlantSizData(PltSizIndex).LoopType == DataSizing::SteamLoop) { PltSizSteamNum = PltSizIndex; } } @@ -914,8 +914,8 @@ namespace EnergyPlus::ChillerAbsorption { PltSizHeatingNum = PlantUtilities::MyPlantSizingIndex(state, moduleObjectType, this->Name, this->GeneratorInletNodeNum, this->GeneratorOutletNodeNum, LoopErrorsFound); } else { - for (int PltSizIndex = 1; PltSizIndex <= DataSizing::NumPltSizInput; ++PltSizIndex) { - if (DataSizing::PlantSizData(PltSizIndex).LoopType == DataSizing::HeatingLoop) { + for (int PltSizIndex = 1; PltSizIndex <= state.dataSize->NumPltSizInput; ++PltSizIndex) { + if (state.dataSize->PlantSizData(PltSizIndex).LoopType == DataSizing::HeatingLoop) { PltSizHeatingNum = PltSizIndex; } } @@ -923,7 +923,7 @@ namespace EnergyPlus::ChillerAbsorption { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::TimeStepSys) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::TimeStepSys) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, @@ -936,7 +936,7 @@ namespace EnergyPlus::ChillerAbsorption { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; if (!this->NomCapWasAutoSized) tmpNomCap = this->NomCap; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; @@ -961,7 +961,7 @@ namespace EnergyPlus::ChillerAbsorption { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -1012,7 +1012,7 @@ namespace EnergyPlus::ChillerAbsorption { "User-Specified Nominal Pumping Power [W]", NomPumpPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomPumpPower - NomPumpPowerUser) / NomPumpPowerUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomPumpPower - NomPumpPowerUser) / NomPumpPowerUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Pumping Power of {:.2R} [W]", NomPumpPowerUser)); ShowContinueError(state, format("differs from Design Size Nominal Pumping Power of {:.2R} [W]", tmpNomPumpPower)); @@ -1027,8 +1027,8 @@ namespace EnergyPlus::ChillerAbsorption { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::TimeStepSys) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::TimeStepSys) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; if (!this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = this->EvapVolFlowRate; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; @@ -1057,7 +1057,7 @@ namespace EnergyPlus::ChillerAbsorption { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1085,7 +1085,7 @@ namespace EnergyPlus::ChillerAbsorption { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (PltSizCondNum > 0 && PltSizNum > 0) { if (this->EvapVolFlowRate >= DataHVACGlobals::TimeStepSys && tmpNomCap > 0.0) { @@ -1103,7 +1103,7 @@ namespace EnergyPlus::ChillerAbsorption { state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); tmpCondVolFlowRate = - tmpNomCap * (1.0 + SteamInputRatNom + tmpNomPumpPower / tmpNomCap) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpNomCap * (1.0 + SteamInputRatNom + tmpNomPumpPower / tmpNomCap) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); if (!this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = this->CondVolFlowRate; } else { @@ -1133,7 +1133,7 @@ namespace EnergyPlus::ChillerAbsorption { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1163,7 +1163,7 @@ namespace EnergyPlus::ChillerAbsorption { } // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); if ((PltSizSteamNum > 0 && this->GenHeatSourceType == DataLoopNode::NodeType_Steam) || (PltSizHeatingNum > 0 && this->GenHeatSourceType == DataLoopNode::NodeType_Water)) { @@ -1171,13 +1171,13 @@ namespace EnergyPlus::ChillerAbsorption { if (this->GenHeatSourceType == DataLoopNode::NodeType_Water) { Real64 CpWater = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, - DataSizing::PlantSizData(PltSizHeatingNum).ExitTemp, + state.dataSize->PlantSizData(PltSizHeatingNum).ExitTemp, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidIndex, RoutineName); - Real64 SteamDeltaT = max(0.5, DataSizing::PlantSizData(PltSizHeatingNum).DeltaT); + Real64 SteamDeltaT = max(0.5, state.dataSize->PlantSizData(PltSizHeatingNum).DeltaT); Real64 RhoWater = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, - (DataSizing::PlantSizData(PltSizHeatingNum).ExitTemp - SteamDeltaT), + (state.dataSize->PlantSizData(PltSizHeatingNum).ExitTemp - SteamDeltaT), state.dataPlnt->PlantLoop(this->GenLoopNum).FluidIndex, RoutineName); tmpGeneratorVolFlowRate = (this->NomCap * SteamInputRatNom) / (CpWater * SteamDeltaT * RhoWater); @@ -1208,7 +1208,7 @@ namespace EnergyPlus::ChillerAbsorption { GeneratorVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpGeneratorVolFlowRate - GeneratorVolFlowRateUser) / GeneratorVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -1227,14 +1227,14 @@ namespace EnergyPlus::ChillerAbsorption { } } else { Real64 SteamDensity = FluidProperties::GetSatDensityRefrig( - state, fluidNameSteam, DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, RoutineNameLong); - Real64 SteamDeltaT = DataSizing::PlantSizData(PltSizSteamNum).DeltaT; - Real64 GeneratorOutletTemp = DataSizing::PlantSizData(PltSizSteamNum).ExitTemp - SteamDeltaT; + state, fluidNameSteam, state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, RoutineNameLong); + Real64 SteamDeltaT = state.dataSize->PlantSizData(PltSizSteamNum).DeltaT; + Real64 GeneratorOutletTemp = state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp - SteamDeltaT; Real64 EnthSteamOutDry = FluidProperties::GetSatEnthalpyRefrig( - state, fluidNameSteam, DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, moduleObjectType + this->Name); + state, fluidNameSteam, state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, moduleObjectType + this->Name); Real64 EnthSteamOutWet = FluidProperties::GetSatEnthalpyRefrig( - state, fluidNameSteam, DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, 0.0, this->SteamFluidIndex, moduleObjectType + this->Name); + state, fluidNameSteam, state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 0.0, this->SteamFluidIndex, moduleObjectType + this->Name); Real64 CpWater = FluidProperties::GetSpecificHeatGlycol(state, fluidNameWater, GeneratorOutletTemp, const_cast(waterIndex), RoutineName); Real64 HfgSteam = EnthSteamOutDry - EnthSteamOutWet; @@ -1269,7 +1269,7 @@ namespace EnergyPlus::ChillerAbsorption { GeneratorVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpGeneratorVolFlowRate - GeneratorVolFlowRateUser) / GeneratorVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorption: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -1312,14 +1312,14 @@ namespace EnergyPlus::ChillerAbsorption { // save the design steam or hot water volumetric flow rate for use by the steam or hot water loop sizing algorithms if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->GeneratorInletNodeNum, this->GeneratorVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->GeneratorInletNodeNum, this->GeneratorVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->GeneratorInletNodeNum, tmpGeneratorVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->GeneratorInletNodeNum, tmpGeneratorVolFlowRate); } if (this->GeneratorDeltaTempWasAutoSized) { if (PltSizHeatingNum > 0 && this->GenHeatSourceType == DataLoopNode::NodeType_Water) { - this->GeneratorDeltaTemp = max(0.5, DataSizing::PlantSizData(PltSizHeatingNum).DeltaT); + this->GeneratorDeltaTemp = max(0.5, state.dataSize->PlantSizData(PltSizHeatingNum).DeltaT); } else if (this->GenHeatSourceType == DataLoopNode::NodeType_Water) { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, diff --git a/src/EnergyPlus/ChillerElectricEIR.cc b/src/EnergyPlus/ChillerElectricEIR.cc index 8fe3dcfc3a2..2b33178aec0 100644 --- a/src/EnergyPlus/ChillerElectricEIR.cc +++ b/src/EnergyPlus/ChillerElectricEIR.cc @@ -575,7 +575,7 @@ namespace EnergyPlus::ChillerElectricEIR { "Heat Recovery Nodes"); // store heat recovery volume flow for plant sizing if (thisChiller.DesignHeatRecVolFlowRate > 0.0) { - PlantUtilities::RegisterPlantCompDesignFlow(thisChiller.HeatRecInletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); // CR 6953 } if (NumNums > 17) { @@ -1254,8 +1254,8 @@ namespace EnergyPlus::ChillerElectricEIR { int PltSizNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -1282,7 +1282,7 @@ namespace EnergyPlus::ChillerElectricEIR { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Reference Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1310,10 +1310,10 @@ namespace EnergyPlus::ChillerElectricEIR { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -1325,7 +1325,7 @@ namespace EnergyPlus::ChillerElectricEIR { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate; } else { tmpNomCap = 0.0; } @@ -1350,7 +1350,7 @@ namespace EnergyPlus::ChillerElectricEIR { "User-Specified Reference Capacity [W]", RefCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - RefCapUser) / RefCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - RefCapUser) / RefCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Reference Capacity of {:.2R} [W]", RefCapUser)); ShowContinueError(state, format("differs from Design Size Reference Capacity of {:.2R} [W]", tmpNomCap)); @@ -1375,7 +1375,7 @@ namespace EnergyPlus::ChillerElectricEIR { } if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, @@ -1388,7 +1388,7 @@ namespace EnergyPlus::ChillerElectricEIR { state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); tmpCondVolFlowRate = tmpNomCap * (1.0 + (1.0 / this->RefCOP) * this->CompPowerToCondenserFrac) / - (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; @@ -1416,7 +1416,7 @@ namespace EnergyPlus::ChillerElectricEIR { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Reference Condenser Fluid Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1451,8 +1451,8 @@ namespace EnergyPlus::ChillerElectricEIR { // Auto size condenser air flow to Total Capacity * 0.000114 m3/s/w (850 cfm/ton) if (state.dataPlnt->PlantFinalSizesOkayToReport) { std::string CompType = DataPlant::ccSimPlantEquipTypes(DataPlant::TypeOf_Chiller_ElectricEIR); - DataSizing::DataConstantUsedForSizing = this->RefCap; - DataSizing::DataFractionUsedForSizing = 0.000114; + state.dataSize->DataConstantUsedForSizing = this->RefCap; + state.dataSize->DataFractionUsedForSizing = 0.000114; Real64 TempSize = this->CondVolFlowRate; bool bPRINT = true; // TRUE if sizing is reported to output (eio) AutoCalculateSizer sizerCondAirFlow; @@ -1466,7 +1466,7 @@ namespace EnergyPlus::ChillerElectricEIR { } // save the reference condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); // now do heat recovery flow rate sizing if active if (this->HeatRecActive) { @@ -1502,7 +1502,7 @@ namespace EnergyPlus::ChillerElectricEIR { if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tempHeatRecVolFlowRate - nomHeatRecVolFlowRateUser) / nomHeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Heat Recovery Water Flow Rate of {:.5R} [m3/s]", nomHeatRecVolFlowRateUser)); @@ -1517,7 +1517,7 @@ namespace EnergyPlus::ChillerElectricEIR { } } if (!this->DesignHeatRecVolFlowRateWasAutoSized) tempHeatRecVolFlowRate = this->DesignHeatRecVolFlowRate; - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatRecInletNodeNum, tempHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatRecInletNodeNum, tempHeatRecVolFlowRate); } // Heat recovery active if (state.dataPlnt->PlantFinalSizesOkayToReport) { diff --git a/src/EnergyPlus/ChillerExhaustAbsorption.cc b/src/EnergyPlus/ChillerExhaustAbsorption.cc index eb7be53b51c..8312c21c9d9 100644 --- a/src/EnergyPlus/ChillerExhaustAbsorption.cc +++ b/src/EnergyPlus/ChillerExhaustAbsorption.cc @@ -931,7 +931,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { int PltSizCoolNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -943,7 +943,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); tmpNomCap = - Cp * rho * DataSizing::PlantSizData(PltSizCoolNum).DeltaT * DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; + Cp * rho * state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; if (!this->NomCoolingCapWasAutoSized) tmpNomCap = this->NomCoolingCap; } else { if (this->NomCoolingCapWasAutoSized) tmpNomCap = 0.0; @@ -970,7 +970,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { "User-Specified Nominal Cooling Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterAbsorptionDoubleEffect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -1002,8 +1002,8 @@ namespace EnergyPlus::ChillerExhaustAbsorption { } if (PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; if (!this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = this->EvapVolFlowRate; } else { @@ -1036,7 +1036,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionDoubleEffect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1072,11 +1072,11 @@ namespace EnergyPlus::ChillerExhaustAbsorption { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->ChillReturnNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->ChillReturnNodeNum, tmpEvapVolFlowRate); if (PltSizHeatNum > 0) { - if (DataSizing::PlantSizData(PltSizHeatNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpHeatRecVolFlowRate = DataSizing::PlantSizData(PltSizHeatNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizHeatNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpHeatRecVolFlowRate = state.dataSize->PlantSizData(PltSizHeatNum).DesVolFlowRate * this->SizFac; if (!this->HeatVolFlowRateWasAutoSized) tmpHeatRecVolFlowRate = this->HeatVolFlowRate; } else { @@ -1109,7 +1109,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { HeatRecVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - HeatRecVolFlowRateUser) / HeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterAbsorptionDoubleEffect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Hot Water Flow Rate of {:.5R} [m3/s]", HeatRecVolFlowRateUser)); @@ -1144,10 +1144,10 @@ namespace EnergyPlus::ChillerExhaustAbsorption { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatReturnNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatReturnNodeNum, tmpHeatRecVolFlowRate); if (PltSizCondNum > 0 && PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, @@ -1159,7 +1159,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { this->TempDesCondReturn, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + this->ThermalEnergyCoolRatio) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + this->ThermalEnergyCoolRatio) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); if (!this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = this->CondVolFlowRate; } else { @@ -1192,7 +1192,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionDoubleEffect: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1229,7 +1229,7 @@ namespace EnergyPlus::ChillerExhaustAbsorption { } // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - if (this->isWaterCooled) PlantUtilities::RegisterPlantCompDesignFlow(this->CondReturnNodeNum, tmpCondVolFlowRate); + if (this->isWaterCooled) PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondReturnNodeNum, tmpCondVolFlowRate); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/ChillerGasAbsorption.cc b/src/EnergyPlus/ChillerGasAbsorption.cc index edfc3c38fc5..4a25d566938 100644 --- a/src/EnergyPlus/ChillerGasAbsorption.cc +++ b/src/EnergyPlus/ChillerGasAbsorption.cc @@ -922,7 +922,7 @@ namespace EnergyPlus::ChillerGasAbsorption { int PltSizCoolNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -934,7 +934,7 @@ namespace EnergyPlus::ChillerGasAbsorption { state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); tmpNomCap = - Cp * rho * DataSizing::PlantSizData(PltSizCoolNum).DeltaT * DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; + Cp * rho * state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; if (!this->NomCoolingCapWasAutoSized) tmpNomCap = this->NomCoolingCap; } else { if (this->NomCoolingCapWasAutoSized) tmpNomCap = 0.0; @@ -961,7 +961,7 @@ namespace EnergyPlus::ChillerGasAbsorption { "User-Specified Nominal Cooling Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterAbsorptionDirectFired: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -993,8 +993,8 @@ namespace EnergyPlus::ChillerGasAbsorption { } if (PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate * this->SizFac; if (!this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = this->EvapVolFlowRate; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; @@ -1026,7 +1026,7 @@ namespace EnergyPlus::ChillerGasAbsorption { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionDirectFired: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1062,11 +1062,11 @@ namespace EnergyPlus::ChillerGasAbsorption { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->ChillReturnNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->ChillReturnNodeNum, tmpEvapVolFlowRate); if (PltSizHeatNum > 0) { - if (DataSizing::PlantSizData(PltSizHeatNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpHeatRecVolFlowRate = DataSizing::PlantSizData(PltSizHeatNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizHeatNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpHeatRecVolFlowRate = state.dataSize->PlantSizData(PltSizHeatNum).DesVolFlowRate * this->SizFac; if (!this->HeatVolFlowRateWasAutoSized) tmpHeatRecVolFlowRate = this->HeatVolFlowRate; } else { @@ -1099,7 +1099,7 @@ namespace EnergyPlus::ChillerGasAbsorption { HeatRecVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - HeatRecVolFlowRateUser) / HeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterAbsorptionDirectFired: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Hot Water Flow Rate of {:.5R} [m3/s]", HeatRecVolFlowRateUser)); @@ -1134,10 +1134,10 @@ namespace EnergyPlus::ChillerGasAbsorption { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatReturnNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatReturnNodeNum, tmpHeatRecVolFlowRate); if (PltSizCondNum > 0 && PltSizCoolNum > 0) { - if (DataSizing::PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizCoolNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, @@ -1149,7 +1149,7 @@ namespace EnergyPlus::ChillerGasAbsorption { this->TempDesCondReturn, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + this->FuelCoolRatio) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + this->FuelCoolRatio) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); if (!this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = this->CondVolFlowRate; // IF (PlantFirstSizesOkayToFinalize) GasAbsorber(ChillNum)%CondVolFlowRate = tmpCondVolFlowRate } else { @@ -1183,7 +1183,7 @@ namespace EnergyPlus::ChillerGasAbsorption { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionDirectFired: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1220,7 +1220,7 @@ namespace EnergyPlus::ChillerGasAbsorption { } // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - if (this->isWaterCooled) PlantUtilities::RegisterPlantCompDesignFlow(this->CondReturnNodeNum, tmpCondVolFlowRate); + if (this->isWaterCooled) PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondReturnNodeNum, tmpCondVolFlowRate); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/ChillerIndirectAbsorption.cc b/src/EnergyPlus/ChillerIndirectAbsorption.cc index 6da771dc25c..863e93f4b35 100644 --- a/src/EnergyPlus/ChillerIndirectAbsorption.cc +++ b/src/EnergyPlus/ChillerIndirectAbsorption.cc @@ -983,8 +983,8 @@ namespace EnergyPlus::ChillerIndirectAbsorption { PltSizSteamNum = PlantUtilities::MyPlantSizingIndex(state, "Chiller:Absorption:Indirect", this->Name, this->GeneratorInletNodeNum, this->GeneratorOutletNodeNum, LoopErrorsFound); } else { - for (int PltSizIndex = 1; PltSizIndex <= DataSizing::NumPltSizInput; ++PltSizIndex) { - if (DataSizing::PlantSizData(PltSizIndex).LoopType == DataSizing::SteamLoop) { + for (int PltSizIndex = 1; PltSizIndex <= state.dataSize->NumPltSizInput; ++PltSizIndex) { + if (state.dataSize->PlantSizData(PltSizIndex).LoopType == DataSizing::SteamLoop) { PltSizSteamNum = PltSizIndex; } } @@ -994,8 +994,8 @@ namespace EnergyPlus::ChillerIndirectAbsorption { PltSizHeatingNum = PlantUtilities::MyPlantSizingIndex(state, "Chiller:Absorption:Indirect", this->Name, this->GeneratorInletNodeNum, this->GeneratorOutletNodeNum, LoopErrorsFound); } else { - for (int PltSizIndex = 1; PltSizIndex <= DataSizing::NumPltSizInput; ++PltSizIndex) { - if (DataSizing::PlantSizData(PltSizIndex).LoopType == DataSizing::HeatingLoop) { + for (int PltSizIndex = 1; PltSizIndex <= state.dataSize->NumPltSizInput; ++PltSizIndex) { + if (state.dataSize->PlantSizData(PltSizIndex).LoopType == DataSizing::HeatingLoop) { PltSizHeatingNum = PltSizIndex; } } @@ -1003,7 +1003,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, @@ -1016,7 +1016,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; if (!this->NomCapWasAutoSized) tmpNomCap = this->NomCap; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; @@ -1043,7 +1043,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -1098,7 +1098,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { "User-Specified Nominal Pumping Power [W]", NomPumpPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomPumpPower - NomPumpPowerUser) / NomPumpPowerUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomPumpPower - NomPumpPowerUser) / NomPumpPowerUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Pumping Power of {:.2R} [W]", NomPumpPowerUser)); ShowContinueError(state, format("differs from Design Size Nominal Pumping Power of {:.2R} [W]", tmpNomPumpPower)); @@ -1113,8 +1113,8 @@ namespace EnergyPlus::ChillerIndirectAbsorption { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; if (!this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = this->EvapVolFlowRate; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; @@ -1144,7 +1144,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1178,9 +1178,9 @@ namespace EnergyPlus::ChillerIndirectAbsorption { } if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, this->EvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, this->EvapVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); } if (PltSizCondNum > 0 && PltSizNum > 0) { @@ -1199,7 +1199,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); tmpCondVolFlowRate = - tmpNomCap * (1.0 + SteamInputRatNom + tmpNomPumpPower / tmpNomCap) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpNomCap * (1.0 + SteamInputRatNom + tmpNomPumpPower / tmpNomCap) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); if (!this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = this->CondVolFlowRate; } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; @@ -1229,7 +1229,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1267,9 +1267,9 @@ namespace EnergyPlus::ChillerIndirectAbsorption { // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, this->CondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, this->CondVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); } if ((PltSizSteamNum > 0 && this->GenHeatSourceType == DataLoopNode::NodeType_Steam) || @@ -1278,14 +1278,14 @@ namespace EnergyPlus::ChillerIndirectAbsorption { if (this->GenHeatSourceType == DataLoopNode::NodeType_Water) { Real64 CpWater = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, - DataSizing::PlantSizData(PltSizHeatingNum).ExitTemp, + state.dataSize->PlantSizData(PltSizHeatingNum).ExitTemp, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidIndex, RoutineName); - Real64 SteamDeltaT = max(0.5, DataSizing::PlantSizData(PltSizHeatingNum).DeltaT); + Real64 SteamDeltaT = max(0.5, state.dataSize->PlantSizData(PltSizHeatingNum).DeltaT); Real64 RhoWater = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, - (DataSizing::PlantSizData(PltSizHeatingNum).ExitTemp - SteamDeltaT), + (state.dataSize->PlantSizData(PltSizHeatingNum).ExitTemp - SteamDeltaT), state.dataPlnt->PlantLoop(this->GenLoopNum).FluidIndex, RoutineName); tmpGeneratorVolFlowRate = (tmpNomCap * SteamInputRatNom) / (CpWater * SteamDeltaT * RhoWater); @@ -1317,7 +1317,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { GeneratorVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpGeneratorVolFlowRate - GeneratorVolFlowRateUser) / GeneratorVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -1337,17 +1337,17 @@ namespace EnergyPlus::ChillerIndirectAbsorption { } else { Real64 SteamDensity = FluidProperties::GetSatDensityRefrig(state, fluidNameSteam, - DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, + state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, SizeChillerAbsorptionIndirect + this->Name); - Real64 SteamDeltaT = DataSizing::PlantSizData(PltSizSteamNum).DeltaT; - Real64 GeneratorOutletTemp = DataSizing::PlantSizData(PltSizSteamNum).ExitTemp - SteamDeltaT; + Real64 SteamDeltaT = state.dataSize->PlantSizData(PltSizSteamNum).DeltaT; + Real64 GeneratorOutletTemp = state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp - SteamDeltaT; // dry enthalpy of steam (quality = 1) Real64 EnthSteamOutDry = FluidProperties::GetSatEnthalpyRefrig(state, fluidNameSteam, - DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, + state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 1.0, this->SteamFluidIndex, SizeChillerAbsorptionIndirect + this->Name); @@ -1355,7 +1355,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { // wet enthalpy of steam (quality = 0) Real64 EnthSteamOutWet = FluidProperties::GetSatEnthalpyRefrig(state, fluidNameSteam, - DataSizing::PlantSizData(PltSizSteamNum).ExitTemp, + state.dataSize->PlantSizData(PltSizSteamNum).ExitTemp, 0.0, this->SteamFluidIndex, SizeChillerAbsorptionIndirect + this->Name); @@ -1394,7 +1394,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { GeneratorVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpGeneratorVolFlowRate - GeneratorVolFlowRateUser) / GeneratorVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerAbsorptionIndirect: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -1444,14 +1444,14 @@ namespace EnergyPlus::ChillerIndirectAbsorption { // save the design steam or hot water volumetric flow rate for use by the steam or hot water loop sizing algorithms if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->GeneratorInletNodeNum, this->GeneratorVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->GeneratorInletNodeNum, this->GeneratorVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->GeneratorInletNodeNum, tmpGeneratorVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->GeneratorInletNodeNum, tmpGeneratorVolFlowRate); } if (this->GeneratorDeltaTempWasAutoSized) { if (PltSizHeatingNum > 0 && this->GenHeatSourceType == DataLoopNode::NodeType_Water) { - this->GeneratorDeltaTemp = max(0.5, DataSizing::PlantSizData(PltSizHeatingNum).DeltaT); + this->GeneratorDeltaTemp = max(0.5, state.dataSize->PlantSizData(PltSizHeatingNum).DeltaT); } else if (this->GenHeatSourceType == DataLoopNode::NodeType_Water) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, @@ -1460,7 +1460,7 @@ namespace EnergyPlus::ChillerIndirectAbsorption { RoutineName); Real64 CpWater = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidName, - DataSizing::PlantSizData(PltSizHeatingNum).ExitTemp, + state.dataSize->PlantSizData(PltSizHeatingNum).ExitTemp, state.dataPlnt->PlantLoop(this->GenLoopNum).FluidIndex, RoutineName); if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { diff --git a/src/EnergyPlus/ChillerReformulatedEIR.cc b/src/EnergyPlus/ChillerReformulatedEIR.cc index dd26026402d..edeb7532cae 100644 --- a/src/EnergyPlus/ChillerReformulatedEIR.cc +++ b/src/EnergyPlus/ChillerReformulatedEIR.cc @@ -542,7 +542,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { "Heat Recovery Nodes"); if (thisChiller.DesignHeatRecVolFlowRate > 0.0) { - PlantUtilities::RegisterPlantCompDesignFlow(thisChiller.HeatRecInletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); } if (NumNums > 14) { @@ -1022,8 +1022,8 @@ namespace EnergyPlus::ChillerReformulatedEIR { int PltSizNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -1054,7 +1054,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectricReformulatedEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Reference Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -1083,15 +1083,15 @@ namespace EnergyPlus::ChillerReformulatedEIR { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 SizingEvapOutletTemp = this->TempRefEvapOut; // Plant Sizing outlet temperature for CurLoopNum [C] Real64 SizingCondOutletTemp = this->TempRefCondOut; // Plant Sizing outlet temperature for condenser loop [C] if (PltSizCondNum > 0 && PltSizNum > 0) { - SizingEvapOutletTemp = DataSizing::PlantSizData(PltSizNum).ExitTemp; - SizingCondOutletTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; + SizingEvapOutletTemp = state.dataSize->PlantSizData(PltSizNum).ExitTemp; + SizingCondOutletTemp = state.dataSize->PlantSizData(PltSizCondNum).ExitTemp + state.dataSize->PlantSizData(PltSizCondNum).DeltaT; } Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, @@ -1104,7 +1104,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); Real64 RefCapFT = CurveManager::CurveValue(state, this->ChillerCapFTIndex, SizingEvapOutletTemp, SizingCondOutletTemp); - tmpNomCap = (Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate) / RefCapFT; + tmpNomCap = (Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate) / RefCapFT; } else { if (this->RefCapWasAutoSized) tmpNomCap = 0.0; } @@ -1130,7 +1130,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { "User-Specified Reference Capacity [W]", RefCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - RefCapUser) / RefCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - RefCapUser) / RefCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "Size:ChillerElectricReformulatedEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Reference Capacity of {:.2R} [W]", RefCapUser)); ShowContinueError(state, format("differs from Design Size Reference Capacity of {:.2R} [W]", tmpNomCap)); @@ -1156,7 +1156,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { } if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -1168,7 +1168,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); tmpCondVolFlowRate = tmpNomCap * (1.0 + (1.0 / this->RefCOP) * this->CompPowerToCondenserFrac) / - (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); // IF (DataPlant::PlantFirstSizesOkayToFinalize) ElecReformEIRChiller(EIRChillNum)%CondVolFlowRate = tmpCondVolFlowRate } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; @@ -1201,7 +1201,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "Size:ChillerElectricReformulatedEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Reference Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -1233,7 +1233,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { } // save the reference condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); if (this->HeatRecActive) { Real64 tmpHeatRecVolFlowRate = tmpCondVolFlowRate * this->HeatRecCapacityFraction; @@ -1265,7 +1265,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { DesignHeatRecVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - DesignHeatRecVolFlowRateUser) / DesignHeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "Size:ChillerElectricReformulatedEIR: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -1283,7 +1283,7 @@ namespace EnergyPlus::ChillerReformulatedEIR { } } // save the reference heat recovery fluid volumetric flow rate - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); } std::string equipName; // Name of chiller diff --git a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitOperatingMode.cc b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitOperatingMode.cc index 76248545d75..b5cc7fc748c 100644 --- a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitOperatingMode.cc +++ b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitOperatingMode.cc @@ -176,7 +176,7 @@ void CoilCoolingDXCurveFitOperatingMode::size(EnergyPlus::EnergyPlusData &state) Psychrometrics::PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, ratedInletAirTemp, ratedInletAirHumRat, RoutineName); std::string SizingString = "Rated Gross Total Cooling Capacity [W]"; - DataSizing::DataFlowUsedForSizing = this->ratedEvapAirFlowRate; // TODO: This is volume flow, right? + state.dataSize->DataFlowUsedForSizing = this->ratedEvapAirFlowRate; // TODO: This is volume flow, right? TempSize = this->original_input_specs.gross_rated_total_cooling_capacity; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); @@ -184,8 +184,8 @@ void CoilCoolingDXCurveFitOperatingMode::size(EnergyPlus::EnergyPlusData &state) this->ratedGrossTotalCap = sizerCoolingCapacity.size(state, TempSize, errorsFound); // Auto size condenser air flow to Total Capacity * 0.000114 m3/s/w (850 cfm/ton) - DataSizing::DataConstantUsedForSizing = this->ratedGrossTotalCap; - DataSizing::DataFractionUsedForSizing = 0.000114; + state.dataSize->DataConstantUsedForSizing = this->ratedGrossTotalCap; + state.dataSize->DataFractionUsedForSizing = 0.000114; TempSize = this->original_input_specs.rated_condenser_air_flow_rate; AutoCalculateSizer sizerCondAirFlow; @@ -199,8 +199,8 @@ void CoilCoolingDXCurveFitOperatingMode::size(EnergyPlus::EnergyPlusData &state) if (this->condenserType != AIRCOOLED) { // Auto size Nominal Evaporative Condenser Pump Power to Total Capacity * 0.004266 w/w (15 W/ton) AutoCalculateSizer sizerCondEvapPumpPower; - DataSizing::DataConstantUsedForSizing = this->ratedGrossTotalCap; - DataSizing::DataFractionUsedForSizing = 0.004266; + state.dataSize->DataConstantUsedForSizing = this->ratedGrossTotalCap; + state.dataSize->DataFractionUsedForSizing = 0.004266; stringOverride = "Nominal Evaporative Condenser Pump Power [W]"; sizerCondEvapPumpPower.overrideSizingString(stringOverride); TempSize = this->original_input_specs.nominal_evap_condenser_pump_power; diff --git a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitPerformance.cc b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitPerformance.cc index 7a42a7372bc..d3fe6fa9ddd 100644 --- a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitPerformance.cc +++ b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitPerformance.cc @@ -726,14 +726,14 @@ void CoilCoolingDXCurveFitPerformance::calcStandardRatings(EnergyPlus::EnergyPlu // } // // if (countStaticInputs == NumDXMulSpeedCoils) { - // OutputReportPredefined::addFootNoteSubTable(state.dataOutRptPredefined->pdstVAVDXCoolCoil, "Packaged VAV unit ratings per ANSI/AHRI + // OutputReportPredefined::addFootNoteSubTable(pdstVAVDXCoolCoil, "Packaged VAV unit ratings per ANSI/AHRI // Standard 340/360-2007 with Addenda 1 and 2"); // } else if (countStaticInputs == 0) { - // OutputReportPredefined::addFootNoteSubTable(state.dataOutRptPredefined->pdstVAVDXCoolCoil, + // OutputReportPredefined::addFootNoteSubTable(pdstVAVDXCoolCoil, // "Indoor-coil-only unit ratings per ANSI/AHRI Standard 340/360-2007 with Addenda 1 and 2, with " // "supply fan specific power at 365 {W/1000cfm} (773.3 {W/(m3/s)})"); // } else { // both - // OutputReportPredefined::addFootNoteSubTable(state.dataOutRptPredefined->pdstVAVDXCoolCoil, + // OutputReportPredefined::addFootNoteSubTable(pdstVAVDXCoolCoil, // "Packaged VAV unit ratings per ANSI/AHRI Standard 340/360-2007 with Addenda 1 and 2, " // "indoor-coil-only units with supply fan specific power at 365 {W/1000cfm} (773.3 {W/(m3/s)})"); // } diff --git a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitSpeed.cc b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitSpeed.cc index 52d12084918..2ab397265d7 100644 --- a/src/EnergyPlus/Coils/CoilCoolingDXCurveFitSpeed.cc +++ b/src/EnergyPlus/Coils/CoilCoolingDXCurveFitSpeed.cc @@ -359,23 +359,23 @@ void CoilCoolingDXCurveFitSpeed::size(EnergyPlus::EnergyPlusData &state) // DataSizing::DataEMSOverrideON = DXCoil( DXCoilNum ).RatedSHREMSOverrideOn( Mode ); // DataSizing::DataEMSOverride = DXCoil( DXCoilNum ).RatedSHREMSOverrideValue( Mode ); - DataSizing::DataFlowUsedForSizing = this->evap_air_flow_rate; - DataSizing::DataCapacityUsedForSizing = this->rated_total_capacity; + state.dataSize->DataFlowUsedForSizing = this->evap_air_flow_rate; + state.dataSize->DataCapacityUsedForSizing = this->rated_total_capacity; bool errorFound = false; CoolingSHRSizer sizerCoolingSHR; sizerCoolingSHR.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); if (this->grossRatedSHR == DataSizing::AutoSize && this->parentOperatingMode == 2) { - DataSizing::DataSizingFraction = 0.667; + state.dataSize->DataSizingFraction = 0.667; this->grossRatedSHR = sizerCoolingSHR.size(state, this->grossRatedSHR, errorFound); } else if (this->grossRatedSHR == DataSizing::AutoSize && this->parentOperatingMode == 3) { - DataSizing::DataSizingFraction = 0.333; + state.dataSize->DataSizingFraction = 0.333; this->grossRatedSHR = sizerCoolingSHR.size(state, this->grossRatedSHR, errorFound); } else { this->grossRatedSHR = sizerCoolingSHR.size(state, this->grossRatedSHR, errorFound); } - DataSizing::DataFlowUsedForSizing = 0.0; - DataSizing::DataCapacityUsedForSizing = 0.0; - DataSizing::DataSizingFraction = 1.0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataSizingFraction = 1.0; // DataSizing::DataEMSOverrideON = false; // DataSizing::DataEMSOverride = 0.0; diff --git a/src/EnergyPlus/CondenserLoopTowers.cc b/src/EnergyPlus/CondenserLoopTowers.cc index e808ed7a137..183a8f44eb4 100644 --- a/src/EnergyPlus/CondenserLoopTowers.cc +++ b/src/EnergyPlus/CondenserLoopTowers.cc @@ -2219,6 +2219,8 @@ namespace CondenserLoopTowers { Real64 tmpHighSpeedAirFlowRate = this->HighSpeedAirFlowRate; Real64 tmpLowSpeedAirFlowRate = this->LowSpeedAirFlowRate; + auto &PlantSizData(state.dataSize->PlantSizData); + // Find the appropriate Plant Sizing object int PltSizCondNum = state.dataPlnt->PlantLoop(this->LoopNum).PlantSizNum; @@ -2226,9 +2228,9 @@ namespace CondenserLoopTowers { if (this->TowerInletCondsAutoSize) { if (PltSizCondNum > 0) { // use plant sizing data - DesTowerExitWaterTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp; - DesTowerInletWaterTemp = DesTowerExitWaterTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; - DesTowerWaterDeltaT = DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesTowerExitWaterTemp = PlantSizData(PltSizCondNum).ExitTemp; + DesTowerInletWaterTemp = DesTowerExitWaterTemp + PlantSizData(PltSizCondNum).DeltaT; + DesTowerWaterDeltaT = PlantSizData(PltSizCondNum).DeltaT; } else { // set hard wired input assumptions // AssumedDeltaT = 11.0; @@ -2244,24 +2246,24 @@ namespace CondenserLoopTowers { DesTowerWaterDeltaT = this->DesRange; if (PltSizCondNum > 0) { // check the tower range against the plant sizing data - if (std::abs(DesTowerWaterDeltaT - DataSizing::PlantSizData(PltSizCondNum).DeltaT) > TolTemp) { + if (std::abs(DesTowerWaterDeltaT - PlantSizData(PltSizCondNum).DeltaT) > TolTemp) { ShowWarningError(state, "Error when autosizing the load for cooling tower = " + this->Name + ". Tower Design Range Temperature is different from the Design Loop Delta Temperature."); ShowContinueError(state, "Tower Design Range Temperature specified in tower = " + this->Name); ShowContinueError(state, "is inconsistent with Design Loop Delta Temperature specified in Sizing:Plant object = " + - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName + "."); + PlantSizData(PltSizCondNum).PlantLoopName + "."); ShowContinueError(state, format("..The Design Range Temperature specified in tower is = {:.2T}", this->DesRange)); ShowContinueError(state, format("..The Design Loop Delta Temperature specified in plant sizing data is = {:.2T}", - DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + PlantSizData(PltSizCondNum).DeltaT)); } // check if the tower approach is different from plant sizing data - DesTowerApproachFromPlant = DataSizing::PlantSizData(PltSizCondNum).ExitTemp - this->DesInletAirWBTemp; + DesTowerApproachFromPlant = PlantSizData(PltSizCondNum).ExitTemp - this->DesInletAirWBTemp; if (std::abs(DesTowerApproachFromPlant - this->DesApproach) > TolTemp) { ShowWarningError(state, "Error when autosizing the UA for cooling tower = " + this->Name + ". Tower Design Approach Temperature is inconsistent with Approach from Plant Sizing Data."); ShowContinueError(state, "The Design Approach Temperature from inputs specified in Sizing:Plant object = " + - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName); + PlantSizData(PltSizCondNum).PlantLoopName); ShowContinueError(state, "is inconsistent with Design Approach Temperature specified in tower = " + this->Name + "."); ShowContinueError(state, format("..The Design Approach Temperature from inputs specified is = {:.2T}", DesTowerApproachFromPlant)); @@ -2272,9 +2274,9 @@ namespace CondenserLoopTowers { } else { // CoolingTower_VariableSpeed if (PltSizCondNum > 0) { // use plant sizing data - DesTowerExitWaterTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp; - DesTowerInletWaterTemp = DesTowerExitWaterTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; - DesTowerWaterDeltaT = DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesTowerExitWaterTemp = PlantSizData(PltSizCondNum).ExitTemp; + DesTowerInletWaterTemp = DesTowerExitWaterTemp + PlantSizData(PltSizCondNum).DeltaT; + DesTowerWaterDeltaT = PlantSizData(PltSizCondNum).DeltaT; } else { // set hard wired input assumptions DesTowerWaterDeltaT = 11.0; @@ -2314,8 +2316,8 @@ namespace CondenserLoopTowers { if (this->DesignWaterFlowRateWasAutoSized) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpDesignWaterFlowRate = DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpDesignWaterFlowRate = PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->DesignWaterFlowRate = tmpDesignWaterFlowRate; } else { tmpDesignWaterFlowRate = 0.0; @@ -2367,7 +2369,7 @@ namespace CondenserLoopTowers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNodeNum, tmpDesignWaterFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNodeNum, tmpDesignWaterFlowRate); if (this->HighSpeedFanPowerWasAutoSized) { // We assume the nominal fan power is 0.0105 times the design load @@ -2376,7 +2378,7 @@ namespace CondenserLoopTowers { tmpHighSpeedFanPower = this->HighSpeedFanPower; } else { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 const rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -2448,7 +2450,7 @@ namespace CondenserLoopTowers { if (this->HighSpeedTowerUAWasAutoSized) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 const rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -2462,7 +2464,7 @@ namespace CondenserLoopTowers { DesTowerLoad = rho * Cp * tmpDesignWaterFlowRate * DesTowerWaterDeltaT; // This conditional statement is to trap when the user specified condenser/tower water design setpoint // temperature is less than design inlet air wet bulb temperature - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= this->DesInletAirWBTemp) { + if (PlantSizData(PltSizCondNum).ExitTemp <= this->DesInletAirWBTemp) { ShowSevereError(state, format("Error when autosizing the UA value for cooling tower = {}. Design Loop Exit Temperature must be " "greater than {:.2T} C when autosizing the tower UA.", @@ -2470,8 +2472,8 @@ namespace CondenserLoopTowers { this->DesInletAirWBTemp)); ShowContinueError(state, format("The Design Loop Exit Temperature specified in Sizing:Plant object = {} ({:.2T} C)", - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + PlantSizData(PltSizCondNum).PlantLoopName, + PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError( state, format("is less than or equal to the design inlet air wet-bulb temperature of {:.2T} C.", this->DesInletAirWBTemp)); @@ -3136,12 +3138,14 @@ namespace CondenserLoopTowers { Real64 DesTowerInletAirWBTemp = this->DesInletAirWBTemp; Real64 DesTowerInletAirDBTemp = this->DesInletAirDBTemp; + auto &PlantSizData(state.dataSize->PlantSizData); + if (this->TowerInletCondsAutoSize) { if (PltSizCondNum > 0) { // use plant sizing data - DesTowerExitWaterTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp; - DesTowerInletWaterTemp = DesTowerExitWaterTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; - DesTowerWaterDeltaT = DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesTowerExitWaterTemp = PlantSizData(PltSizCondNum).ExitTemp; + DesTowerInletWaterTemp = DesTowerExitWaterTemp + PlantSizData(PltSizCondNum).DeltaT; + DesTowerWaterDeltaT = PlantSizData(PltSizCondNum).DeltaT; } else { // set default values to replace hard wired input assumptions DesTowerExitWaterTemp = this->DesOutletWaterTemp; @@ -3155,24 +3159,24 @@ namespace CondenserLoopTowers { DesTowerWaterDeltaT = this->DesRange; if (PltSizCondNum > 0) { // check the tower range against the plant sizing data - if (std::abs(DesTowerWaterDeltaT - DataSizing::PlantSizData(PltSizCondNum).DeltaT) > TolTemp) { + if (std::abs(DesTowerWaterDeltaT - PlantSizData(PltSizCondNum).DeltaT) > TolTemp) { ShowWarningError(state, "Error when autosizing the load for cooling tower = " + this->Name + ". Tower Design Range Temperature is different from the Design Loop Delta Temperature."); ShowContinueError(state, "Tower Design Range Temperature specified in tower = " + this->Name); ShowContinueError(state, "is inconsistent with Design Loop Delta Temperature specified in Sizing:Plant object = " + - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName + "."); + PlantSizData(PltSizCondNum).PlantLoopName + "."); ShowContinueError(state, format("..The Design Range Temperature specified in tower is = {:.2T}", this->DesRange)); ShowContinueError(state, format("..The Design Loop Delta Temperature specified iin plant sizing data is = {:.2T}", - DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + PlantSizData(PltSizCondNum).DeltaT)); } // check if the tower approach is different from plant sizing data - DesTowerApproachFromPlant = DataSizing::PlantSizData(PltSizCondNum).ExitTemp - this->DesInletAirWBTemp; + DesTowerApproachFromPlant = PlantSizData(PltSizCondNum).ExitTemp - this->DesInletAirWBTemp; if (std::abs(DesTowerApproachFromPlant - this->DesApproach) > TolTemp) { ShowWarningError(state, "Error when autosizing the UA for cooling tower = " + this->Name + ". Tower Design Approach Temperature is inconsistent with Approach from Plant Sizing Data."); ShowContinueError(state, "The Design Approach Temperature from inputs specified in Sizing:Plant object = " + - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName); + PlantSizData(PltSizCondNum).PlantLoopName); ShowContinueError(state, "is inconsistent with Design Approach Temperature specified in tower = " + this->Name + "."); ShowContinueError(state, format("..The Design Approach Temperature from inputs specified is = {:.2T}", DesTowerApproachFromPlant)); @@ -3184,7 +3188,7 @@ namespace CondenserLoopTowers { if (this->PerformanceInputMethod_Num == PIM::NominalCapacity) { if (PltSizCondNum > 0) { // get nominal capacity from PlantSizData(PltSizCondNum)%DeltaT and PlantSizData(PltSizCondNum)%DesVolFlowRate - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DesTowerExitWaterTemp, @@ -3195,7 +3199,7 @@ namespace CondenserLoopTowers { DesTowerExitWaterTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, RoutineName); - DesTowerLoad = rho * Cp * DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT * this->SizFac; + DesTowerLoad = rho * Cp * PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT * this->SizFac; tmpNomTowerCap = DesTowerLoad / this->HeatRejectCapNomCapSizingRatio; } else { if (this->TowerNominalCapacityWasAutoSized) tmpNomTowerCap = 0.0; @@ -3247,7 +3251,7 @@ namespace CondenserLoopTowers { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomTowerCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomTowerCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomTowerCap)); @@ -3285,7 +3289,7 @@ namespace CondenserLoopTowers { "User-Specified Free Convection Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpTowerFreeConvNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpTowerFreeConvNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Free Convection Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError( @@ -3329,7 +3333,7 @@ namespace CondenserLoopTowers { NomDesWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpDesignWaterFlowRate - NomDesWaterFlowUser) / NomDesWaterFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Water Flow Rate of {:.2R} [m3/s]", NomDesWaterFlowUser)); ShowContinueError(state, format("differs from Design Water Flow Rate of {:.2R} [m3/s]", tmpDesignWaterFlowRate)); @@ -3343,7 +3347,7 @@ namespace CondenserLoopTowers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNodeNum, tmpDesignWaterFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNodeNum, tmpDesignWaterFlowRate); if (this->DefaultedDesignAirFlowScalingFactor) { tmpDesignAirFlowRate = tmpNomTowerCap * this->DesignAirFlowPerUnitNomCap * (101325.0 / state.dataEnvrn->StdBaroPress); @@ -3373,7 +3377,7 @@ namespace CondenserLoopTowers { DesignAirFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpDesignAirFlowRate - DesignAirFlowRateUser) / DesignAirFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Air Flow Rate of {:.2R} [m3/s]", DesignAirFlowRateUser)); ShowContinueError(state, format("differs from Design Air Flow Rate of {:.2R} [m3/s]", tmpDesignAirFlowRate)); @@ -3410,7 +3414,7 @@ namespace CondenserLoopTowers { FreeConvAirFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpFreeConvAirFlowRate - FreeConvAirFlowUser) / FreeConvAirFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -3522,8 +3526,8 @@ namespace CondenserLoopTowers { if (this->DesignWaterFlowRateWasAutoSized) { // get from plant sizing // UA input method using plant sizing for flow rate, whereas Nominal capacity method uses scalable sizing factor per cap if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpDesignWaterFlowRate = DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpDesignWaterFlowRate = PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { this->DesignWaterFlowRate = tmpDesignWaterFlowRate; if (state.dataPlnt->PlantFinalSizesOkayToReport) { @@ -3564,12 +3568,12 @@ namespace CondenserLoopTowers { } } } - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNodeNum, tmpDesignWaterFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNodeNum, tmpDesignWaterFlowRate); if (this->HighSpeedTowerUAWasAutoSized) { // get nominal capacity from PlantSizData(PltSizCondNum)%DeltaT and PlantSizData(PltSizCondNum)%DesVolFlowRate if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DesTowerExitWaterTemp, @@ -3580,7 +3584,7 @@ namespace CondenserLoopTowers { DesTowerExitWaterTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, RoutineName); - DesTowerLoad = rho * Cp * DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT * this->SizFac; + DesTowerLoad = rho * Cp * PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT * this->SizFac; tmpNomTowerCap = DesTowerLoad / this->HeatRejectCapNomCapSizingRatio; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { this->TowerNominalCapacity = tmpNomTowerCap; @@ -3804,7 +3808,7 @@ namespace CondenserLoopTowers { // need an air flow rate to find capacity from UA but flow rate is scaled off capacity // get nominal capacity from PlantSizData(PltSizCondNum)%DeltaT and PlantSizData(PltSizCondNum)%DesVolFlowRate if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DesTowerExitWaterTemp, @@ -3815,7 +3819,7 @@ namespace CondenserLoopTowers { DesTowerExitWaterTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, RoutineName); - DesTowerLoad = rho * Cp * DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT; + DesTowerLoad = rho * Cp * PlantSizData(PltSizCondNum).DesVolFlowRate * DesTowerWaterDeltaT; tmpNomTowerCap = DesTowerLoad / this->HeatRejectCapNomCapSizingRatio; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { this->TowerNominalCapacity = tmpNomTowerCap; @@ -3958,7 +3962,7 @@ namespace CondenserLoopTowers { HighSpeedFanPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHighSpeedFanPower - HighSpeedFanPowerUser) / HighSpeedFanPowerUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVSMerkelTower: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Fan Power of {:.2R} [W]", HighSpeedFanPowerUser)); ShowContinueError(state, format("differs from Design Fan Power of {:.2R} [W]", tmpHighSpeedFanPower)); diff --git a/src/EnergyPlus/ConvectionCoefficients.cc b/src/EnergyPlus/ConvectionCoefficients.cc index 091374fba0d..54221af7a78 100644 --- a/src/EnergyPlus/ConvectionCoefficients.cc +++ b/src/EnergyPlus/ConvectionCoefficients.cc @@ -5794,7 +5794,7 @@ namespace EnergyPlus::ConvectionCoefficients { // METHODOLOGY EMPLOYED: // Long case statement depends on surface classification determined in DynamicIntConvSurfaceClassification - // then simply map data stored in state.dataConvectionCoefficient->InsideFaceAdaptiveConvectionAlgo into the surface's structure + // then simply map data stored in InsideFaceAdaptiveConvectionAlgo into the surface's structure // if model type is user-defined, also store the index to the user curve to be used. auto &Surface(state.dataSurface->Surface); diff --git a/src/EnergyPlus/DXCoils.cc b/src/EnergyPlus/DXCoils.cc index 6dd6fbddd6d..f440846631b 100644 --- a/src/EnergyPlus/DXCoils.cc +++ b/src/EnergyPlus/DXCoils.cc @@ -6636,19 +6636,19 @@ namespace EnergyPlus::DXCoils { Real64 SecCoilAirFlowUser; // Hard-sized secondary DX coil air flow for reporting // Initiate all reporting variables - if (SysSizingRunDone || ZoneSizingRunDone) { + if (state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone) { HardSizeNoDesRun = false; } else { HardSizeNoDesRun = true; } - if (CurSysNum > 0) { - CheckThisAirSystemForSizing(CurSysNum, SizingDesRunThisAirSys); + if (state.dataSize->CurSysNum > 0) { + CheckThisAirSystemForSizing(state, state.dataSize->CurSysNum, SizingDesRunThisAirSys); } else { SizingDesRunThisAirSys = false; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); } else { SizingDesRunThisZone = false; } @@ -6716,8 +6716,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // DXCoil( DXCoilNum ).RatedAirVolFlowRate( 1 ) = DXCoil( DXCoilNum ).RatedTotCap2 * 0.00005035 - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap2; - DataFractionUsedForSizing = 0.00005035; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap2; + state.dataSize->DataFractionUsedForSizing = 0.00005035; TempSize = AutoSize; AutoCalculateSizer sizerHPRatedAirVolFlow; std::string stringOverride = "Rated Evaporator Air Flow Rate [m3/s]"; @@ -6734,8 +6734,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // DXCoil( DXCoilNum ).RatedAirVolFlowRate( 1 ) = DXCoil( DXCoilNum ).RatedTotCap2 * 0.00000004487 - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap2; - DataFractionUsedForSizing = 0.00000004487; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap2; + state.dataSize->DataFractionUsedForSizing = 0.00000004487; TempSize = AutoSize; AutoCalculateSizer sizerHPWHCondWaterFlow; std::string stringOverride = "Rated Condenser Water Flow Rate [m3/s]"; @@ -6751,12 +6751,12 @@ namespace EnergyPlus::DXCoils { if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name + ":" + state.dataDXCoils->DXCoil(DXCoilNum).CoilPerformanceName(Mode); FieldNum = 4; - DataBypassFrac = state.dataDXCoils->DXCoil(DXCoilNum).BypassedFlowFrac(Mode); + state.dataSize->DataBypassFrac = state.dataDXCoils->DXCoil(DXCoilNum).BypassedFlowFrac(Mode); } else if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_HeatingEmpirical) { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; FieldNum = 3; // doesn't look like this is needed for air flow sizing, only for heating capacity sizing - DataCoolCoilCap = DXCoolCap; // pass global variable used only for heat pumps (i.e., DX cooling and heating coils) + state.dataSize->DataCoolCoilCap = state.dataSize->DXCoolCap; // pass global variable used only for heat pumps (i.e., DX cooling and heating coils) if ((state.dataDXCoils->DXCoil(DXCoilNum).IsSecondaryDXCoilInZone) && (state.dataDXCoils->DXCoil(DXCoilNum).CondenserType(1) == AirCooled)) { // seconday DX coil in secondary zone is specified SizeSecDXCoil = true; @@ -6791,9 +6791,9 @@ namespace EnergyPlus::DXCoils { SizingString = "Rated Air Flow Rate [m3/s]"; } CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; - DataIsDXCoil = true; - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); + state.dataSize->DataIsDXCoil = true; + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_MultiSpeedHeating || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_FluidTCtrl_Heating || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_Heating || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_HeatingEmpirical) { @@ -6811,13 +6811,13 @@ namespace EnergyPlus::DXCoils { sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode) = sizingCoolingAirFlow.size(state, TempSize, errorsFound); } - DataIsDXCoil = false; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; - DataBypassFrac = 0.0; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataBypassFrac = 0.0; } - DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); + state.dataSize->DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); // get autosized air flow for capacity calc's if capacity is not autosized // *** RAR this if block is a last minute addition to correct capacity reporting when not autosized and a sizing run is done. Test // suite was not run with this code included. *** The question here is if the autosized air flow rate or the user specified air flow @@ -6854,7 +6854,7 @@ namespace EnergyPlus::DXCoils { // DataBypassFrac = 0.0; // } PrintFlag = true; - DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).CCapFTemp(Mode); + state.dataSize->DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).CCapFTemp(Mode); if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) { SizingMethod = CoolingCapacitySizing; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name + ":" + state.dataDXCoils->DXCoil(DXCoilNum).CoilPerformanceName(Mode); @@ -6868,7 +6868,7 @@ namespace EnergyPlus::DXCoils { FieldNum = 1; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(Mode).FieldNames(FieldNum) + " [W]"; - DataCoolCoilCap = DXCoolCap; + state.dataSize->DataCoolCoilCap = state.dataSize->DXCoolCap; } else if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_HeatPumpWaterHeaterPumped || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_HeatPumpWaterHeaterWrapped) { SizingMethod = CoolingCapacitySizing; @@ -6885,21 +6885,21 @@ namespace EnergyPlus::DXCoils { FieldNum = 1; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(Mode).FieldNames(FieldNum) + " [W]"; - if (CurZoneEqNum > 0) { - CoilInTemp = ZoneSizingRunDone ? FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp : 26; + if (state.dataSize->CurZoneEqNum > 0) { + CoilInTemp = state.dataSize->ZoneSizingRunDone ? state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp : 26; } else { - if (CurOASysNum > 0) { - CoilInTemp = SysSizingRunDone ? FinalSysSizing(CurSysNum).OutTempAtCoolPeak : 32; + if (state.dataSize->CurOASysNum > 0) { + CoilInTemp = state.dataSize->SysSizingRunDone ? state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak : 32; } else { - CoilInTemp = SysSizingRunDone ? FinalSysSizing(CurSysNum).MixTempAtCoolPeak : 26; + CoilInTemp = state.dataSize->SysSizingRunDone ? state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak : 26; } } - CalcVRFCoilCapModFac(state, 0, _, CompName, CoilInTemp, _, _, _, DataTotCapCurveValue); + CalcVRFCoilCapModFac(state, 0, _, CompName, CoilInTemp, _, _, _, state.dataSize->DataTotCapCurveValue); } else if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_MultiSpeedCooling) { SizingMethod = CoolingCapacitySizing; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; FieldNum = 7 + (state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds - 1) * 13; - DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + state.dataSize->DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); PrintFlag = false; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(Mode).FieldNames(FieldNum) + " [W]"; @@ -6907,7 +6907,7 @@ namespace EnergyPlus::DXCoils { SizingMethod = HeatingCapacitySizing; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; FieldNum = 10 + (state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds - 1) * 5; - DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + state.dataSize->DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); PrintFlag = false; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(Mode).FieldNames(FieldNum) + " [W]"; @@ -6919,9 +6919,9 @@ namespace EnergyPlus::DXCoils { SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(Mode).FieldNames(FieldNum) + " [W]"; } CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; - DataIsDXCoil = true; - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataIsDXCoil = true; + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_MultiSpeedHeating || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_HeatingEmpirical || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_Heating || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_FluidTCtrl_Heating) { HeatingCapacitySizer sizerHeatingCapacity; @@ -6934,21 +6934,21 @@ namespace EnergyPlus::DXCoils { sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode) = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); } - DataIsDXCoil = false; - DataFlowUsedForSizing = 0.0; - DataCoolCoilCap = 0.0; - DataTotCapCurveIndex = 0; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataTotCapCurveValue = 0.0; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataCoolCoilCap = 0.0; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataTotCapCurveValue = 0.0; // Cooling coil capacity if (state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_CoolingSingleSpeed || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_CoolingTwoSpeed || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_Cooling || state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType_Num == CoilVRF_FluidTCtrl_Cooling) { - DXCoolCap = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DXCoolCap = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); } // Sizing DX cooling coil SHR @@ -6963,19 +6963,19 @@ namespace EnergyPlus::DXCoils { } CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR(Mode); - DataDXSpeedNum = Mode; - DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); - DataCapacityUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideValue(Mode); + state.dataSize->DataDXSpeedNum = Mode; + state.dataSize->DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); + state.dataSize->DataCapacityUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideValue(Mode); bool ErrorsFound = false; sizerCoolingSHR.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR(Mode) = sizerCoolingSHR.size(state, TempSize, ErrorsFound); - DataDXSpeedNum = 0; - DataFlowUsedForSizing = 0.0; - DataCapacityUsedForSizing = 0.0; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; + state.dataSize->DataDXSpeedNum = 0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; } // End of Rated SHR @@ -7001,8 +7001,8 @@ namespace EnergyPlus::DXCoils { } CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size condenser air flow to Total Capacity * 0.000114 m3/s/w (850 cfm/ton) - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataFractionUsedForSizing = 0.000114; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataFractionUsedForSizing = 0.000114; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).EvapCondAirFlow(Mode); sizerEvapCondAirFlow.overrideSizingString(stringOverride); sizerEvapCondAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -7032,7 +7032,7 @@ namespace EnergyPlus::DXCoils { "User-Specified Secondary Coil Air Flow Rate [m3/s]", SecCoilAirFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(SecCoilAirFlowDes - SecCoilAirFlowUser) / SecCoilAirFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(SecCoilAirFlowDes - SecCoilAirFlowUser) / SecCoilAirFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeDxCoil: Potential issue with equipment sizing for " + state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType + ' ' + state.dataDXCoils->DXCoil(DXCoilNum).Name); ShowContinueError(state, @@ -7057,8 +7057,8 @@ namespace EnergyPlus::DXCoils { SizingMethod = AutoCalculateSizing; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed condenser air flow to 1/3 Total Capacity * 0.000114 m3/s/w (850 cfm/ton) - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataFractionUsedForSizing = 0.000114 * 0.3333; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataFractionUsedForSizing = 0.000114 * 0.3333; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).EvapCondAirFlow2; AutoCalculateSizer sizerEvapCondAirFlow2; std::string stringOverride = "Low Speed Evaporative Condenser Air Flow Rate [m3/s]"; @@ -7091,8 +7091,8 @@ namespace EnergyPlus::DXCoils { SizingMethod = AutoCalculateSizing; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size high speed evap condenser pump power to Total Capacity * 0.004266 w/w (15 w/ton) - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataFractionUsedForSizing = 0.004266; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataFractionUsedForSizing = 0.004266; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).EvapCondPumpElecNomPower(Mode); sizerEvapCondPumpPower.overrideSizingString(stringOverride); sizerEvapCondPumpPower.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -7105,8 +7105,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed evap condenser pump power to 1/3 Total Capacity * 0.004266 w/w (15 w/ton) - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataFractionUsedForSizing = 0.004266 * 0.3333; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataFractionUsedForSizing = 0.004266 * 0.3333; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).EvapCondPumpElecNomPower2; AutoCalculateSizer sizerEvapCondPumpPower2; std::string stringOverride = "Low Speed Evaporative Condenser Pump Rated Power Consumption [W]"; @@ -7121,8 +7121,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed air flow rate to 1/3 high speed air flow rate - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); - DataFractionUsedForSizing = 0.3333; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate(Mode); + state.dataSize->DataFractionUsedForSizing = 0.3333; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRate2; AutoCalculateSizer sizerLowSpdAirFlow; std::string stringOverride = "Low Speed Rated Air Flow Rate [m3/s]"; @@ -7137,8 +7137,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed capacity to 1/3 high speed capacity - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); - DataFractionUsedForSizing = 0.3333; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(Mode); + state.dataSize->DataFractionUsedForSizing = 0.3333; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap2; AutoCalculateSizer sizerLowSpdCap; std::string stringOverride = "Low Speed Gross Rated Total Cooling Capacity [W]"; @@ -7195,16 +7195,16 @@ namespace EnergyPlus::DXCoils { SizingMethod = AutoCalculateSizing; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed SHR to be the same as high speed SHR - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR(Mode); - DataFractionUsedForSizing = 1.0; - DataDXSpeedNum = 2; // refers to low speed in sizer + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR(Mode); + state.dataSize->DataFractionUsedForSizing = 1.0; + state.dataSize->DataDXSpeedNum = 2; // refers to low speed in sizer bool ErrorsFound = false; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR2; sizerCoolingSHR.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).RatedSHR2 = sizerCoolingSHR.size(state, TempSize, ErrorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataDXSpeedNum = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataDXSpeedNum = 0; } // // Sizing resistive defrost heater capacity @@ -7216,8 +7216,8 @@ namespace EnergyPlus::DXCoils { CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Auto size low speed capacity to 1/3 high speed capacity - DataConstantUsedForSizing = DXCoolCap; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataSize->DXCoolCap; + state.dataSize->DataFractionUsedForSizing = 1.0; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).DefrostCapacity; AutoCalculateSizer sizerResDefCap; std::string stringOverride = "Resistive Defrost Heater Capacity [W]"; @@ -7242,15 +7242,15 @@ namespace EnergyPlus::DXCoils { if (state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) == AutoSize) { IsAutoSize = true; } - DataSizing::DataIsDXCoil = true; + state.dataSize->DataIsDXCoil = true; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; if (Mode == state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds) { FieldNum = 10 + (Mode - 1) * 13; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(1).FieldNames(FieldNum) + " [m3/s]"; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); @@ -7258,8 +7258,8 @@ namespace EnergyPlus::DXCoils { sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizingCoolingAirFlow.size(state, TempSize, errorsFound); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) = TempSize; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; if (!IsAutoSize && !HardSizeNoDesRun) { TempSize = AutoSize; bPRINT = false; @@ -7276,25 +7276,25 @@ namespace EnergyPlus::DXCoils { if (IsAutoSize || !HardSizeNoDesRun) { SizingMethod = AutoCalculateSizing; // Auto size low speed flow to fraction of the highest speed flow - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); - if (!IsAutoSize && !HardSizeNoDesRun) DataConstantUsedForSizing = MSRatedAirVolFlowRateDes; - DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + if (!IsAutoSize && !HardSizeNoDesRun) state.dataSize->DataConstantUsedForSizing = MSRatedAirVolFlowRateDes; + state.dataSize->DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; } TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) = sizingCoolingAirFlow.size(state, TempSize, errorsFound); } - DataEMSOverride = 0.0; - DataEMSOverrideON = false; - DataSizing::DataIsDXCoil = false; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } // Ensure flow rate at lower speed must be lower or equal to the flow rate at higher speed. Otherwise, a severe error is isssued. @@ -7323,16 +7323,16 @@ namespace EnergyPlus::DXCoils { } CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; - DataSizing::DataIsDXCoil = true; - DataSizing::DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(Mode); + state.dataSize->DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(Mode); if (Mode == state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds) { PrintFlag = true; - DataSizing::DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); + state.dataSize->DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); SizingMethod = CoolingCapacitySizing; FieldNum = 7 + (Mode - 1) * 13; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(1).FieldNames(FieldNum) + " [W]"; - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); MSRatedTotCapDesAtMaxSpeed = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode); if (!HardSizeNoDesRun) { PrintFlag = false; @@ -7343,8 +7343,8 @@ namespace EnergyPlus::DXCoils { sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = TempSize; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = TempSize; + state.dataSize->DataFractionUsedForSizing = 1.0; MSRatedTotCapDesAtMaxSpeed = TempSize; state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCapDes(Mode) = TempSize; PrintFlag = true; @@ -7369,28 +7369,28 @@ namespace EnergyPlus::DXCoils { SizingMethod = AutoCalculateSizing; // auto size low speed capacity to fraction of the highest speed capacity if (!HardSizeNoDesRun) { - DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; + state.dataSize->DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; } else { - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); } - DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; - state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCapDes(Mode) = DataConstantUsedForSizing * DataFractionUsedForSizing; + state.dataSize->DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; + state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCapDes(Mode) = state.dataSize->DataConstantUsedForSizing * state.dataSize->DataFractionUsedForSizing; } TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode) = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); } - DataEMSOverride = 0.0; - DataEMSOverrideON = false; - DataSizing::DataIsDXCoil = false; - DataSizing::DataCoolCoilCap = 0.0; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataCoolCoilCap = 0.0; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } // Ensure capacity at lower speed must be lower or equal to the capacity at higher speed. @@ -7419,12 +7419,12 @@ namespace EnergyPlus::DXCoils { CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedSHR(Mode); - DataFlowUsedForSizing = MSRatedAirVolFlowRateDes; - DataCapacityUsedForSizing = MSRatedTotCapDesAtMaxSpeed; - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideValue(Mode); + state.dataSize->DataFlowUsedForSizing = MSRatedAirVolFlowRateDes; + state.dataSize->DataCapacityUsedForSizing = MSRatedTotCapDesAtMaxSpeed; + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedSHREMSOverrideValue(Mode); bool ErrorsFound = false; - DataDXSpeedNum = Mode; + state.dataSize->DataDXSpeedNum = Mode; sizerCoolingSHR.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedSHR(Mode) = sizerCoolingSHR.size(state, TempSize, ErrorsFound); // added for rated sensible cooling capacity estimate for html reporting, issue #7381 @@ -7436,20 +7436,20 @@ namespace EnergyPlus::DXCoils { } else { TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedSHR(Mode); bool ErrorsFound = false; - DataDXSpeedNum = Mode; - DataFractionUsedForSizing = MSRatedSHRDes; - DataConstantUsedForSizing = 1.0; + state.dataSize->DataDXSpeedNum = Mode; + state.dataSize->DataFractionUsedForSizing = MSRatedSHRDes; + state.dataSize->DataConstantUsedForSizing = 1.0; sizerCoolingSHR.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedSHR(Mode) = sizerCoolingSHR.size(state, TempSize, ErrorsFound); } } - DataFlowUsedForSizing = 0.0; - DataCapacityUsedForSizing = 0.0; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; - DataDXSpeedNum = 0; - DataFractionUsedForSizing = 0.0; - DataConstantUsedForSizing = 0.0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataDXSpeedNum = 0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; // Rated Evapovative condenser airflow rates for (Mode = 1; Mode <= state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; ++Mode) { @@ -7482,7 +7482,7 @@ namespace EnergyPlus::DXCoils { format("User-Specified Speed {} Evaporative Condenser Air Flow Rate [m3/s]", Mode), MSEvapCondAirFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MSEvapCondAirFlowDes - MSEvapCondAirFlowUser) / MSEvapCondAirFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MSEvapCondAirFlowDes - MSEvapCondAirFlowUser) / MSEvapCondAirFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeDxCoil: Potential issue with equipment sizing for " + state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType + ' ' + state.dataDXCoils->DXCoil(DXCoilNum).Name); ShowContinueError( @@ -7549,7 +7549,7 @@ namespace EnergyPlus::DXCoils { MSEvapCondPumpElecNomPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MSEvapCondPumpElecNomPowerDes - MSEvapCondPumpElecNomPowerUser) / MSEvapCondPumpElecNomPowerUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeDxCoil: Potential issue with equipment sizing for " + state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType + ' ' + state.dataDXCoils->DXCoil(DXCoilNum).Name); ShowContinueError(state, @@ -7593,7 +7593,7 @@ namespace EnergyPlus::DXCoils { if (state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) == AutoSize) { IsAutoSize = true; } - DataSizing::DataIsDXCoil = true; + state.dataSize->DataIsDXCoil = true; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; // Sizing rated air flow rate @@ -7601,8 +7601,8 @@ namespace EnergyPlus::DXCoils { FieldNum = 12 + (Mode - 1) * 5; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(1).FieldNames(FieldNum) + " [m3/s]"; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideON(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedAirVolFlowRateEMSOverrideValue(Mode); bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); @@ -7626,9 +7626,9 @@ namespace EnergyPlus::DXCoils { if (IsAutoSize || !HardSizeNoDesRun) { SizingMethod = AutoCalculateSizing; // Auto size low speed flow to fraction of the highest speed capacity - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); - if (!IsAutoSize && !HardSizeNoDesRun) DataConstantUsedForSizing = MSRatedAirVolFlowRateDes; - DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + if (!IsAutoSize && !HardSizeNoDesRun) state.dataSize->DataConstantUsedForSizing = MSRatedAirVolFlowRateDes; + state.dataSize->DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; } TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); bool errorsFound = false; @@ -7638,12 +7638,12 @@ namespace EnergyPlus::DXCoils { sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) = sizingHeatingAirFlow.size(state, TempSize, errorsFound); } - DataEMSOverride = 0.0; - DataEMSOverrideON = false; - DataSizing::DataIsDXCoil = false; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } // Ensure flow rate at lower speed must be lower or equal to the flow rate at higher speed. Otherwise, a severe error is isssued. @@ -7690,7 +7690,7 @@ namespace EnergyPlus::DXCoils { format("User-Specified Speed {} Secondary Coil Air Flow Rate [m3/s]", Mode), SecCoilAirFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(SecCoilAirFlowDes - SecCoilAirFlowUser) / SecCoilAirFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(SecCoilAirFlowDes - SecCoilAirFlowUser) / SecCoilAirFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeDxCoil: Potential issue with equipment sizing for " + state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType + ' ' + state.dataDXCoils->DXCoil(DXCoilNum).Name); ShowContinueError(state, @@ -7712,41 +7712,41 @@ namespace EnergyPlus::DXCoils { if (state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode) == AutoSize) { IsAutoSize = true; } - DataSizing::DataIsDXCoil = true; + state.dataSize->DataIsDXCoil = true; CompName = state.dataDXCoils->DXCoil(DXCoilNum).Name; CompType = state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType; if (Mode == state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds) { SizingMethod = HeatingCapacitySizing; - DataSizing::DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); + state.dataSize->DataFlowUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode); FieldNum = 10 + (Mode - 1) * 5; SizingString = state.dataDXCoils->DXCoilNumericFields(DXCoilNum).PerfMode(1).FieldNames(FieldNum) + " [W]"; - DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(Mode); + state.dataSize->DataTotCapCurveIndex = state.dataDXCoils->DXCoil(DXCoilNum).MSCCapFTemp(Mode); if (IsAutoSize || !HardSizeNoDesRun) { // Heating capacity is assumed to be equal to the cooling capacity PrintFlag = false; SizingMethod = AutoCalculateSizing; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataFractionUsedForSizing = 1.0; if (state.dataDXCoils->DXCoil(DXCoilNum).CompanionUpstreamDXCoil > 0) { NumOfSpeedCompanion = state.dataDXCoils->DXCoil(state.dataDXCoils->DXCoil(DXCoilNum).CompanionUpstreamDXCoil).NumOfSpeeds; - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(state.dataDXCoils->DXCoil(DXCoilNum).CompanionUpstreamDXCoil).MSRatedTotCapDes(NumOfSpeedCompanion); + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(state.dataDXCoils->DXCoil(DXCoilNum).CompanionUpstreamDXCoil).MSRatedTotCapDes(NumOfSpeedCompanion); } else { - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(1); // sized above + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCap(1); // sized above } TempSize = DataSizing::AutoSize; - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MSRatedTotCapDesAtMaxSpeed = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; + state.dataSize->DataFractionUsedForSizing = 1.0; } PrintFlag = true; TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -7764,15 +7764,15 @@ namespace EnergyPlus::DXCoils { SizingMethod = AutoCalculateSizing; // auto size low speed capacity to fraction of the highest speed capacity if (!HardSizeNoDesRun) { - DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; + state.dataSize->DataConstantUsedForSizing = MSRatedTotCapDesAtMaxSpeed; } else { - DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); + state.dataSize->DataConstantUsedForSizing = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds); } - DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; + state.dataSize->DataFractionUsedForSizing = (float)Mode / state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds; } TempSize = state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode); - DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); - DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); + state.dataSize->DataEMSOverrideON = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideOn(Mode); + state.dataSize->DataEMSOverride = state.dataDXCoils->DXCoil(DXCoilNum).RatedTotCapEMSOverrideValue(Mode); HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -7780,14 +7780,14 @@ namespace EnergyPlus::DXCoils { state.dataDXCoils->DXCoil(DXCoilNum).MSRatedTotCap(Mode) = TempSize; } PrintFlag = false; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; - DataSizing::DataIsDXCoil = false; - DataSizing::DataFlowUsedForSizing = 0.0; - DataSizing::DataCoolCoilCap = 0.0; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataCoolCoilCap = 0.0; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } // Ensure capacity at lower speed must be lower or equal to the capacity at higher speed. for (Mode = 1; Mode <= state.dataDXCoils->DXCoil(DXCoilNum).NumOfSpeeds - 1; ++Mode) { @@ -7830,7 +7830,7 @@ namespace EnergyPlus::DXCoils { "User-Specified Resistive Defrost Heater Capacity", DefrostCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowWarningMessage(state, "SizeDxCoil: Potential issue with equipment sizing for " + state.dataDXCoils->DXCoil(DXCoilNum).DXCoilType + ' ' + state.dataDXCoils->DXCoil(DXCoilNum).Name); ShowContinueError(state, format("User-Specified Resistive Defrost Heater Capacity of {:.2R}[W]", DefrostCapacityUser)); diff --git a/src/EnergyPlus/DataSizing.cc b/src/EnergyPlus/DataSizing.cc index 3ccd5d8a5a8..f88aa967a59 100644 --- a/src/EnergyPlus/DataSizing.cc +++ b/src/EnergyPlus/DataSizing.cc @@ -53,9 +53,7 @@ #include #include -namespace EnergyPlus { - -namespace DataSizing { +namespace EnergyPlus::DataSizing { // MODULE INFORMATION: // AUTHOR Fred Buhl @@ -67,17 +65,6 @@ namespace DataSizing { // capacities. This data is available to the HVAC component modules // for their self sizing calculations. - // parameters for outside air flow method - int const NumOAFlowMethods(9); - - int const OAFlowNone(0); - int const OAFlowPPer(1); - int const OAFlow(2); - int const OAFlowPerArea(3); - int const OAFlowACH(4); - int const OAFlowSum(5); - int const OAFlowMax(6); - Array1D_string const cOAFlowMethodTypes(NumOAFlowMethods, {"Flow/Person", "Flow/Zone", @@ -89,102 +76,6 @@ namespace DataSizing { "ProportionalControlBasedOnOccupancySchedule", "ProportionalControlBasedOnDesignOccupancy"}); - // parameters for outside air - int const AllOA(1); - int const MinOA(2); - - // parameters for loop fluid type - int const HeatingLoop(1); - int const CoolingLoop(2); - int const CondenserLoop(3); - int const SteamLoop(4); - - // paramters for sizing - int const NonCoincident(1); - int const Coincident(2); - - // parameters for Cooling Peak Load TYpe - int const SensibleCoolingLoad(1); - int const TotalCoolingLoad(2); - - // parameters for Central Cooling Capacity Control Method - int const VAV(1); - int const Bypass(2); - int const VT(3); - int const OnOff(4); - - // paramters for supply air flow rate method - int const SupplyAirTemperature(1); - int const TemperatureDifference(2); - - // paramters for sizing - int const FromDDCalc(1); - int const InpDesAirFlow(2); - int const DesAirFlowWithLim(3); - - int const DOANeutralSup(1); - int const DOANeutralDehumSup(2); - int const DOACoolSup(3); - - // parameters for Type of Load to Size On - int const Sensible(0); - int const Latent(1); - int const Total(2); - int const Ventilation(3); - - // parameter for autosize - Real64 const AutoSize(-99999.0); - - - // Zone Outdoor Air Method - int const ZOAM_FlowPerPerson(1); // set the outdoor air flow rate based on number of people in the zone - int const ZOAM_FlowPerZone(2); // sum the outdoor air flow rate per zone based on user input - int const ZOAM_FlowPerArea(3); // sum the outdoor air flow rate based on zone area - int const ZOAM_FlowPerACH(4); // sum the outdoor air flow rate based on number of air changes for the zone - int const ZOAM_Sum(5); // sum the outdoor air flow rate of the people component and the space floor area component - int const ZOAM_Max(6); // use the maximum of the outdoor air flow rate of the people component and the space floor area component - int const ZOAM_IAQP(7); // Use ASHRAE Standard 62.1-2007 IAQP to calculate the zone level outdoor air flow rates - int const ZOAM_ProportionalControlSchOcc(8); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the zone level outdoor air flow rates based on scheduled occupancy - int const ZOAM_ProportionalControlDesOcc(9); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the zone level outdoor air flow rates based on design occupancy - - // System Outdoor Air Method - int const SOAM_ZoneSum(1); // Sum the outdoor air flow rates of all zones - int const SOAM_VRP(2); // Use ASHRAE Standard 62.1-2007 to calculate the system level outdoor air flow rates - // considering the zone air distribution effectiveness and the system ventilation efficiency - int const SOAM_IAQP(3); // Use ASHRAE Standard 62.1-2007 IAQP to calculate the system level outdoor air flow rates - // based on the CO2 setpoint - int const SOAM_ProportionalControlSchOcc(4); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the system level outdoor air flow rates based on scheduled occupancy - int const SOAM_IAQPGC(5); // Use ASHRAE Standard 62.1-2004 IAQP to calculate the system level outdoor air flow rates - // based on the generic contaminant setpoint - int const SOAM_IAQPCOM(6); // Take the maximum outdoor air rate from both CO2 and generic contaminant controls - // based on the generic contaminant setpoint - int const SOAM_ProportionalControlDesOcc(7); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the system level outdoor air flow rates based on design occupancy - int const SOAM_ProportionalControlDesOARate(8); // Calculate the system level outdoor air flow rates based on design OA rate - - // Zone HVAC Equipment Supply Air Sizing Option - int const None(1); - int const SupplyAirFlowRate(2); - int const FlowPerFloorArea(3); - int const FractionOfAutosizedCoolingAirflow(4); - int const FractionOfAutosizedHeatingAirflow(5); - int const FlowPerCoolingCapacity(6); - int const FlowPerHeatingCapacity(7); - - int const CoolingDesignCapacity(8); - int const HeatingDesignCapacity(9); - int const CapacityPerFloorArea(10); - int const FractionOfAutosizedCoolingCapacity(11); - int const FractionOfAutosizedHeatingCapacity(12); - - int const NoSizingFactorMode(101); - int const GlobalHeatingSizingFactorMode(102); - int const GlobalCoolingSizingFactorMode(103); - int const LoopComponentSizingFactorMode(104); - // days; includes effects of user multiplier // and user set flows) // of user input multiplier and flows @@ -192,375 +83,6 @@ namespace DataSizing { // using user input system flow rates. // before applying user input sys flow rates. - int NumOARequirements(0); // Number of OA Requirements objects - int NumZoneAirDistribution(0); // Number of zone air distribution objects - int NumZoneSizingInput(0); // Number of Zone Sizing objects - int NumSysSizInput(0); // Number of System Sizing objects - int NumPltSizInput(0); // Number of Plant Sizing objects - int CurSysNum(0); // Current Air System index (0 if not in air loop) - int CurOASysNum(0); // Current outside air system index (0 if not in OA Sys) - int CurZoneEqNum(0); // Current Zone Equipment index (0 if not simulating ZoneEq) - int CurTermUnitSizingNum; // Current terminal unit sizing index for TermUnitSizing and TermUnitFinalZoneSizing - int CurBranchNum(0); // Index of branch being simulated (or 0 if not air loop) - int CurDuctType(0); // Duct type of current branch - int CurLoopNum(0); // the current plant loop index - int CurCondLoopNum(0); // the current condenser loop number - int CurEnvirNumSimDay(0); // current environment number for day simulated - int CurOverallSimDay(0); // current day of simulation - int NumTimeStepsInAvg(0); // number of time steps in the averaging window for the design flow and load sequences - int SaveNumPlantComps(0); // Number of components using water as an energy source or sink (e.g. water coils) - int DataTotCapCurveIndex(0); // index to total capacity as a function of temperature curve - Real64 DataTotCapCurveValue(0); // value of total capacity as a function of temperature curve for CoilVRF_FluidTCtrl_* - int DataPltSizCoolNum(0); // index to cooling plant sizing data - int DataPltSizHeatNum(0); // index to heating plant sizing data - int DataWaterLoopNum(0); // index to plant water loop - int DataCoilNum(0); // index to coil object - int DataFanOpMode(0); // fan operating mode (ContFanCycCoil or CycFanCycCoil) - bool DataCoilIsSuppHeater(false); // TRUE if heating coil used as supplemental heater - bool DataIsDXCoil(false); // TRUE if direct-expansion coil - bool DataAutosizable(true); // TRUE if component is autosizable - bool DataEMSOverrideON(false); // boolean determines if user relies on EMS to override autosizing - bool DataScalableSizingON(false); // boolean determines scalable flow sizing is specified - bool DataScalableCapSizingON(false); // boolean determines scalable capacity sizing is specified - bool DataSysScalableFlowSizingON(false); // boolean determines scalable system flow sizing is specified - bool DataSysScalableCapSizingON(false); // boolean determines scalable system capacity sizing is specified - bool SysSizingRunDone(false); // True if a system sizing run is successfully completed. - bool TermUnitSingDuct(false); // TRUE if a non-induction single duct terminal unit - bool TermUnitPIU(false); // TRUE if a powered induction terminal unit - bool TermUnitIU(false); // TRUE if an unpowered induction terminal unit - bool ZoneEqFanCoil(false); // TRUE if a 4 pipe fan coil unit is being simulated - bool ZoneEqOutdoorAirUnit(false); // TRUE if an OutdoorAirUnit is being simulated - bool ZoneEqUnitHeater(false); // TRUE if a unit heater is being simulated - bool ZoneEqUnitVent(false); // TRUE if a unit ventilator unit is being simulated - bool ZoneEqVentedSlab(false); // TRUE if a ventilated slab is being simulated - bool ZoneEqDXCoil(false); // TRUE if a ZoneHVAC DX coil is being simulated - bool ZoneEqUnitarySys(false); // TRUE if a zone UnitarySystem is being simulated - bool ZoneCoolingOnlyFan(false); // TRUE if a ZoneHVAC DX cooling coil is only coil in parent - bool ZoneHeatingOnlyFan(false); // TRUE if zone unit only does heating and contains a fam (such as Unit Heater) - bool ZoneSizingRunDone(false); // True if a zone sizing run has been successfully completed. - bool DataErrorsFound(false); // used for simulation termination when errors are found - Real64 AutoVsHardSizingThreshold(0.1); // criteria threshold used to determine if user hard size and autosize disagree 10% - Real64 AutoVsHardSizingDeltaTempThreshold(1.5); // temperature criteria threshold for autosize versus hard size [C] - Real64 DataCoilSizingAirInTemp(0.0); // saves sizing data for use in coil object reporting - Real64 DataCoilSizingAirInHumRat(0.0); // saves sizing data for use in coil object reporting - Real64 DataCoilSizingAirOutTemp(0.0); // saves sizing data for use in coil object reporting - Real64 DataCoilSizingAirOutHumRat(0.0); // saves sizing data for use in coil object reporting - Real64 DataCoilSizingFanCoolLoad(0.0); // saves sizing data for use in coil object reporting - Real64 DataCoilSizingCapFT(1.0); // saves sizing data for use in coil object reporting - bool DataDesAccountForFanHeat(true); // include fan heat when true - Real64 DataDesInletWaterTemp(0.0); // coil inlet water temperture used for warning messages - Real64 DataDesInletAirHumRat(0.0); // coil inlet air humidity ratio used for warning messages - Real64 DataDesInletAirTemp(0.0); // coil inlet air temperature used for warning messages - Real64 DataDesOutletAirTemp(0.0); // coil outlet air temperature used for sizing - Real64 DataDesOutletAirHumRat(0.0); // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air] - Real64 DataCoolCoilCap(0.0); // cooling coil capacity used for sizing with scalable inputs [W] - Real64 DataFlowUsedForSizing(0.0); // air flow rate used for sizing with scalable inputs [m3/s] - Real64 DataAirFlowUsedForSizing(0.0); // air flow rate used for sizing with scalable inputs [m3/s] - Real64 DataWaterFlowUsedForSizing(0.0); // water flow rate used for sizing with scalable inputs [m3/s] - Real64 DataCapacityUsedForSizing(0.0); // capacity used for sizing with scalable inputs [W] - Real64 DataDesignCoilCapacity(0.0); // calculated capacity of coil at end of UA calculation - Real64 DataHeatSizeRatio(1.0); // heating coil size as a ratio of cooling coil capacity - Real64 DataEMSOverride(0.0); // value of EMS variable used to override autosizing - Real64 DataBypassFrac(0.0); // value of bypass fraction for Coil:Cooling:DX:TwoStageWithHumidityControlMode coils - Real64 DataFracOfAutosizedCoolingAirflow(1.0); // fraction of design cooling supply air flow rate - Real64 DataFracOfAutosizedHeatingAirflow(1.0); // fraction of design heating supply air flow rate - Real64 DataFlowPerCoolingCapacity(0.0); // cooling supply air flow per unit cooling capacity - Real64 DataFlowPerHeatingCapacity(0.0); // heating supply air flow per unit heating capacity - Real64 DataFracOfAutosizedCoolingCapacity(1.0); // fraction of autosized cooling capacity - Real64 DataFracOfAutosizedHeatingCapacity(1.0); // fraction of autosized heating capacit - Real64 DataAutosizedCoolingCapacity(0.0); // Autosized cooling capacity used for multiplying flow per capacity to get flow rate - Real64 DataAutosizedHeatingCapacity(0.0); // Autosized heating capacit used for multiplying flow per capacity to get flow rate - Real64 DataConstantUsedForSizing(0.0); // base value used for sizing inputs that are ratios of other inputs - Real64 DataFractionUsedForSizing(0.0); // fractional value of base value used for sizing inputs that are ratios of other inputs - Real64 DataNonZoneNonAirloopValue(0.0); // used when equipment is not located in a zone or airloop - Real64 DataSizingFraction(1.0); // used when ratios of sizing is required - int DataZoneUsedForSizing(0); // pointer to control zone for air loop equipment - int DataZoneNumber(0); // a pointer to a served by zoneHVAC equipment - int NumZoneHVACSizing(0); // Number of design specification zone HVAC sizing objects - int NumAirTerminalSizingSpec(0); // Number of design specfication air terminal sizing objects - int NumAirTerminalUnits(0); // Number of air terminal units (same as total number of zone inlet nodes) - Real64 DXCoolCap(0.0); // The ARI cooling capacity of a DX unit. - Real64 GlobalHeatSizingFactor(0.0); // the global heating sizing ratio - Real64 GlobalCoolSizingFactor(0.0); // the global cooling sizing ratio - Real64 SuppHeatCap(0.0); // the heating capacity of the supplemental heater in a unitary system - Real64 UnitaryHeatCap(0.0); // the heating capacity of a unitary system - Array1D ZoneSizThermSetPtHi; // highest zone thermostat setpoint during zone sizing calcs - Array1D ZoneSizThermSetPtLo; // lowest zone thermostat setpoint during zone sizing calcs - Array1D_string CoolPeakDateHrMin; // date:hr:min of cooling peak - Array1D_string HeatPeakDateHrMin; // date:hr:min of heating peak - char SizingFileColSep; // Character to separate columns in sizing outputs - int DataDesicDehumNum(0); // index to desiccant dehumidifier - bool DataDesicRegCoil(false); // TRUE if heating coil desiccant regeneration coil - bool HRFlowSizingFlag(false); // True, if it is a heat recovery heat exchanger flow sizing - Real64 DataWaterCoilSizCoolDeltaT(0.0); // used for sizing cooling coil water design flow rate - Real64 DataWaterCoilSizHeatDeltaT(0.0); // used for sizing heating coil water design flow rate - bool DataNomCapInpMeth(false); // True if heating coil is sized by CoilPerfInpMeth == NomCa - int DataFanEnumType(-1); // Fan type used during sizing - int DataFanIndex(-1); // Fan index used during sizing - zoneFanPlacement DataFanPlacement(zoneFanPlacement::zoneFanPlaceNotSet); // identifies location of fan wrt coil - int DataDXSpeedNum(0); - - // Object Data - Array1D OARequirements; - Array1D ZoneAirDistribution; - Array1D ZoneSizingInput; // Input data for zone sizing - Array2D ZoneSizing; // Data for zone sizing (all data, all design) - Array1D FinalZoneSizing; // Final data for zone sizing including effects - Array2D CalcZoneSizing; // Data for zone sizing (all data) - Array1D CalcFinalZoneSizing; // Final data for zone sizing (calculated only) - Array1D TermUnitFinalZoneSizing; // Final data for sizing terminal units (indexed per terminal unit) - Array1D SysSizInput; // Input data array for system sizing object - Array2D SysSizing; // Data array for system sizing (all data) - Array1D FinalSysSizing; // Data array for system sizing (max heat/cool) - Array1D CalcSysSizing; // Data array for system sizing (max heat/cool) - Array1D SysSizPeakDDNum; // data array for peak des day indices - Array1D TermUnitSizing; // Data added in sizing routines (indexed per terminal unit) - Array1D ZoneEqSizing; // Data added in zone eq component sizing routines - Array1D UnitarySysEqSizing; // Data added in unitary system sizing routines - Array1D OASysEqSizing; // Data added in unitary system sizing routines - Array1D PlantSizData; // Input data array for plant sizing - Array1D DesDayWeath; // design day weather saved at major time step - Array1D CompDesWaterFlow; // array to store components' design water flow - Array1D ZoneHVACSizing; // Input data for zone HVAC sizing - Array1D AirTerminalSizingSpec; // Input data for zone HVAC sizing - // used only for Facility Load Component Summary - Array1D CalcFacilitySizing; // Data for zone sizing - FacilitySizingData CalcFinalFacilitySizing; // Final data for zone sizing - Array1D VbzByZone; // saved value of ZoneOAUnc which is Vbz used in 62.1 tabular report - Array1D VdzClgByZone; // saved value of cooling based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps) - Array1D VdzMinClgByZone; // minimum discarge flow for cooling, Vdz includes secondary and primary flows for dual path - Array1D VdzHtgByZone; // saved value of heating based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps) - Array1D VdzMinHtgByZone; // minimum discharge flow for heating, Vdz includes secondary and primary flows for dual path - Array1D ZdzClgByZone; // minimum discharge outdoor-air fraction for cooling - Array1D ZdzHtgByZone; // minimum discharge outdoor-air fraction for heating - Array1D VpzClgByZone; // saved value of cooling based ZonePA which is Vpz used in 62.1 tabular report - Array1D VpzMinClgByZone; // saved value of minimum cooling based ZonePA which is VpzClg-min used in 62.1 tabular report - Array1D VpzHtgByZone; // saved value of heating based ZonePA which is Vpz used in 62.1 tabular report - Array1D VpzMinHtgByZone; // saved value of minimum heating based ZonePA which is VpzHtg-min used in 62.1 tabular report - Array1D VpzClgSumBySys; // sum of saved value of cooling based ZonePA which is Vpz-sum used in 62.1 tabular report - Array1D VpzHtgSumBySys; // sum of saved value of heating based ZonePA which is Vpz-sum used in 62.1 tabular report - Array1D PzSumBySys; // sum of design people for system, Pz_sum - Array1D PsBySys; // sum of peak concurrent people by system, Ps - Array1D DBySys; // Population Diversity by system - Array1D SumRpxPzBySys; // Sum of per person OA times number of people by system, No D yet - Array1D SumRaxAzBySys; // sum of per area OA time zone area by system, does not get altered by D - Array1D PeakPsOccurrenceDateTimeStringBySys; // string describing when Ps peak occurs - Array1D PeakPsOccurrenceEnvironmentStringBySys; // string describing Environment when Ps peak occurs - Array1D VouBySys; // uncorrected system outdoor air requirement, for std 62.1 VRP - Array1D VpsClgBySys; // System primary airflow Vps, for cooling for std 62.1 VRP - Array1D VpsHtgBySys; // system primary airflow Vps, for heating for std 62.1 VRP - Array1D FaByZoneHeat; // saved value of Fa used in 62.1 tabular report - Array1D FbByZoneCool; // saved value of Fb used in 62.1 tabular report - Array1D FbByZoneHeat; // saved value of Fb used in 62.1 tabular report - Array1D FcByZoneCool; // saved value of Fc used in 62.1 tabular report - Array1D FcByZoneHeat; // saved value of Fc used in 62.1 tabular report - Array1D XsBySysCool; // saved value of Xs used in 62.1 tabular report - Array1D XsBySysHeat; // saved value of Xs used in 62.1 tabular report - Array1D EvzByZoneCool; // saved value of Evz (zone vent effy) used in 62.1 tabular report - Array1D EvzByZoneHeat; // saved value of Evz (zone vent effy) used in 62.1 tabular report - Array1D EvzByZoneCoolPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report - Array1D EvzByZoneHeatPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report - Array1D VotClgBySys; // saved value of cooling ventilation required at primary AHU, used in 62.1 tabular report - Array1D VotHtgBySys; // saved value of heating ventilation required at primary AHU, used in 62.1 tabular report - Array1D VozSumClgBySys; // saved value of cooling ventilation required at clg zones - Array1D VozSumHtgBySys; // saved value of cooling ventilation required at htg zones - Array1D TotCoolCapTemp; // scratch variable used for calulating peak load [W] - Array1D EvzMinBySysHeat; // saved value of EvzMin used in 62.1 tabular report - Array1D EvzMinBySysCool; // saved value of EvzMin used in 62.1 tabular report - Array1D FaByZoneCool; // triggers allocation in UpdateSysSizing - Array1D SensCoolCapTemp; // triggers allocation in UpdateSysSizing - - // Clears the global data in DataSizing. - // Needed for unit tests, should not be normally called. - void clear_state() - { - NumOARequirements = 0; - NumZoneAirDistribution = 0; - NumZoneSizingInput = 0; - NumSysSizInput = 0; - NumPltSizInput = 0; - CurSysNum = 0; - CurOASysNum = 0; - CurZoneEqNum = 0; - CurTermUnitSizingNum = 0; - CurBranchNum = 0; - CurDuctType = 0; - CurLoopNum = 0; - CurCondLoopNum = 0; - CurEnvirNumSimDay = 0; - CurOverallSimDay = 0; - NumTimeStepsInAvg = 0; - SaveNumPlantComps = 0; - SysSizingRunDone = false; - TermUnitSingDuct = false; - TermUnitPIU = false; - TermUnitIU = false; - ZoneEqFanCoil = false; - ZoneEqOutdoorAirUnit = false; - ZoneEqUnitHeater = false; - ZoneEqUnitVent = false; - ZoneEqVentedSlab = false; - ZoneEqDXCoil = false; - ZoneEqUnitarySys = false; - ZoneCoolingOnlyFan = false; - ZoneHeatingOnlyFan = false; - ZoneSizingRunDone = false; - DataErrorsFound = false; // used to flag fatal errors in water coils - AutoVsHardSizingThreshold = 0.1; - AutoVsHardSizingDeltaTempThreshold = 1.5; - - // Data globals used for sizing - DataTotCapCurveIndex = 0; - DataPltSizCoolNum = 0; - DataPltSizHeatNum = 0; - DataWaterLoopNum = 0; - DataCoilNum = 0; - DataFanOpMode = 0; - DataCoilIsSuppHeater = false; - DataIsDXCoil = false; - DataAutosizable = true; - DataEMSOverrideON = false; - DataScalableSizingON = false; - DataScalableCapSizingON = false; - DataSysScalableFlowSizingON = false; - DataSysScalableCapSizingON = false; - DataDesInletWaterTemp = 0.0; - DataDesInletAirHumRat = 0.0; - DataDesInletAirTemp = 0.0; - DataDesOutletAirTemp = 0.0; - DataDesOutletAirHumRat = 0.0; - DataCoolCoilCap = 0.0; - DataFlowUsedForSizing = 0.0; - DataAirFlowUsedForSizing = 0.0; - DataWaterFlowUsedForSizing = 0.0; - DataCapacityUsedForSizing = 0.0; - DataDesignCoilCapacity = 0.0; - DataHeatSizeRatio = 1.0; - DataEMSOverride = 0.0; - DataBypassFrac = 0.0; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFlowPerCoolingCapacity = 0.0; - DataFlowPerHeatingCapacity = 0.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataAutosizedCoolingCapacity = 0.0; - DataAutosizedHeatingCapacity = 0.0; - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataNonZoneNonAirloopValue = 0.0; - DataSizingFraction = 1.0; - DataZoneNumber = 0; - DataFanEnumType = -1; - DataFanIndex = -1; - DataFanPlacement = zoneFanPlacement::zoneFanPlaceNotSet; - DataWaterCoilSizCoolDeltaT = 0.0; - DataWaterCoilSizHeatDeltaT = 0.0; - DataNomCapInpMeth = false; - DataCoilSizingAirInTemp = 0.0; - DataCoilSizingAirInHumRat = 0.0; - DataCoilSizingAirOutTemp = 0.0; - DataCoilSizingAirOutHumRat = 0.0; - DataCoilSizingFanCoolLoad = 0.0; - DataCoilSizingCapFT = 1.0; - DataDesAccountForFanHeat = true; - - NumZoneHVACSizing = 0; - NumAirTerminalSizingSpec = 0; - NumAirTerminalUnits = 0; - DXCoolCap = 0.0; - GlobalHeatSizingFactor = 0.0; - GlobalCoolSizingFactor = 0.0; - SuppHeatCap = 0.0; - UnitaryHeatCap = 0.0; - ZoneSizThermSetPtHi.deallocate(); - ZoneSizThermSetPtLo.deallocate(); - CoolPeakDateHrMin.deallocate(); - HeatPeakDateHrMin.deallocate(); - SizingFileColSep = char(); - - OARequirements.deallocate(); - ZoneAirDistribution.deallocate(); - ZoneSizingInput.deallocate(); - ZoneSizing.deallocate(); - FinalZoneSizing.deallocate(); - CalcZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - SysSizInput.deallocate(); - SysSizing.deallocate(); - FinalSysSizing.deallocate(); - CalcSysSizing.deallocate(); - SysSizPeakDDNum.deallocate(); - TermUnitSizing.deallocate(); - ZoneEqSizing.deallocate(); - UnitarySysEqSizing.deallocate(); - OASysEqSizing.deallocate(); - PlantSizData.deallocate(); - DesDayWeath.deallocate(); - CompDesWaterFlow.deallocate(); - ZoneHVACSizing.deallocate(); - AirTerminalSizingSpec.deallocate(); - DataDesicDehumNum = 0; - DataDesicRegCoil = false; - - CalcFacilitySizing.deallocate(); - CalcFinalFacilitySizing.DOASHeatAddSeq.deallocate(); - CalcFinalFacilitySizing.DOASLatAddSeq.deallocate(); - CalcFinalFacilitySizing.CoolOutHumRatSeq.deallocate(); - CalcFinalFacilitySizing.CoolOutTempSeq.deallocate(); - CalcFinalFacilitySizing.CoolZoneTempSeq.deallocate(); - CalcFinalFacilitySizing.CoolLoadSeq.deallocate(); - CalcFinalFacilitySizing.HeatOutHumRatSeq.deallocate(); - CalcFinalFacilitySizing.HeatOutTempSeq.deallocate(); - CalcFinalFacilitySizing.HeatZoneTempSeq.deallocate(); - CalcFinalFacilitySizing.HeatLoadSeq.deallocate(); - - VbzByZone.deallocate(); - VdzClgByZone.deallocate(); - VdzMinClgByZone.deallocate(); - VdzHtgByZone.deallocate(); - VdzMinHtgByZone.deallocate(); - ZdzClgByZone.deallocate(); - ZdzHtgByZone.deallocate(); - VpzClgByZone.deallocate(); - VpzMinClgByZone.deallocate(); - VpzHtgByZone.deallocate(); - VpzMinHtgByZone.deallocate(); - VpzClgSumBySys.deallocate(); - VpzHtgSumBySys.deallocate(); - PzSumBySys.deallocate(); - PsBySys.deallocate(); - DBySys.deallocate(); - SumRpxPzBySys.deallocate(); - SumRaxAzBySys.deallocate(); - PeakPsOccurrenceDateTimeStringBySys.deallocate(); - PeakPsOccurrenceEnvironmentStringBySys.deallocate(); - VouBySys.deallocate(); - VpsClgBySys.deallocate(); - VpsHtgBySys.deallocate(); - FaByZoneHeat.deallocate(); - FbByZoneCool.deallocate(); - FbByZoneHeat.deallocate(); - FcByZoneCool.deallocate(); - FcByZoneHeat.deallocate(); - XsBySysCool.deallocate(); - XsBySysHeat.deallocate(); - EvzByZoneCool.deallocate(); - EvzByZoneHeat.deallocate(); - EvzByZoneCoolPrev.deallocate(); - EvzByZoneHeatPrev.deallocate(); - VotClgBySys.deallocate(); - VotHtgBySys.deallocate(); - VozSumClgBySys.deallocate(); - VozSumHtgBySys.deallocate(); - TotCoolCapTemp.deallocate(); - EvzMinBySysHeat.deallocate(); - EvzMinBySysCool.deallocate(); - FaByZoneCool.deallocate(); - SensCoolCapTemp.deallocate(); - } - Real64 TermUnitSizingData::applyTermUnitSizingCoolFlow(Real64 const &coolFlowWithOA, // Cooling flow rate with MinOA limit applied Real64 const &coolFlowNoOA // Cooling flow rate without MinOA limit applied ) @@ -737,65 +259,67 @@ namespace DataSizing { this->DOASTotCoolLoadSeq.dimension(numOfTimeStepInDay, 0.0); } - void resetHVACSizingGlobals(int const curZoneEqNum, int const curSysNum, bool &firstPassFlag) // called in zone equipment Report function + void resetHVACSizingGlobals(EnergyPlusData &state, int const curZoneEqNum, int const curSysNum, bool &firstPassFlag) // called in zone equipment Report function { - // reset Data globals so that prevoiusly set variables are not used in other equipment models - DataTotCapCurveIndex = 0; - DataPltSizCoolNum = 0; - DataPltSizHeatNum = 0; - DataWaterLoopNum = 0; - DataCoilNum = 0; - DataFanOpMode = 0; - DataCoilIsSuppHeater = false; - DataIsDXCoil = false; - DataAutosizable = true; - DataEMSOverrideON = false; - DataScalableSizingON = false; - DataScalableCapSizingON = false; - DataSysScalableFlowSizingON = false; - DataSysScalableCapSizingON = false; - DataDesAccountForFanHeat = true; - - DataDesInletWaterTemp = 0.0; - DataDesInletAirHumRat = 0.0; - DataDesInletAirTemp = 0.0; - DataDesOutletAirTemp = 0.0; - DataDesOutletAirHumRat = 0.0; - DataCoolCoilCap = 0.0; - DataFlowUsedForSizing = 0.0; - DataAirFlowUsedForSizing = 0.0; - DataWaterFlowUsedForSizing = 0.0; - DataCapacityUsedForSizing = 0.0; - DataDesignCoilCapacity = 0.0; - DataHeatSizeRatio = 1.0; - DataEMSOverride = 0.0; - DataBypassFrac = 0.0; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFlowPerCoolingCapacity = 0.0; - DataFlowPerHeatingCapacity = 0.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataAutosizedCoolingCapacity = 0.0; - DataAutosizedHeatingCapacity = 0.0; - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataNonZoneNonAirloopValue = 0.0; - DataZoneNumber = 0; - DataFanEnumType = -1; - DataFanIndex = -1; - DataWaterCoilSizCoolDeltaT = 0.0; - DataWaterCoilSizHeatDeltaT = 0.0; - DataNomCapInpMeth = false; - DataFanPlacement = zoneFanPlacement::zoneFanPlaceNotSet; - DataDXSpeedNum = 0; - DataCoilSizingAirInTemp = 0.0; - DataCoilSizingAirInHumRat = 0.0; - DataCoilSizingAirOutTemp = 0.0; - DataCoilSizingAirOutHumRat = 0.0; + // reset Data globals so that previously set variables are not used in other equipment models + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataPltSizCoolNum = 0; + state.dataSize->DataPltSizHeatNum = 0; + state.dataSize->DataWaterLoopNum = 0; + state.dataSize->DataCoilNum = 0; + state.dataSize->DataFanOpMode = 0; + state.dataSize->DataCoilIsSuppHeater = false; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataAutosizable = true; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->DataSysScalableFlowSizingON = false; + state.dataSize->DataSysScalableCapSizingON = false; + state.dataSize->DataDesAccountForFanHeat = true; + + state.dataSize->DataDesInletWaterTemp = 0.0; + state.dataSize->DataDesInletAirHumRat = 0.0; + state.dataSize->DataDesInletAirTemp = 0.0; + state.dataSize->DataDesOutletAirTemp = 0.0; + state.dataSize->DataDesOutletAirHumRat = 0.0; + state.dataSize->DataCoolCoilCap = 0.0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataAirFlowUsedForSizing = 0.0; + state.dataSize->DataWaterFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataDesignCoilCapacity = 0.0; + state.dataSize->DataHeatSizeRatio = 1.0; + state.dataSize->DataEMSOverride = 0.0; + state.dataSize->DataBypassFrac = 0.0; + state.dataSize->DataFracOfAutosizedCoolingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedHeatingAirflow = 1.0; + state.dataSize->DataFlowPerCoolingCapacity = 0.0; + state.dataSize->DataFlowPerHeatingCapacity = 0.0; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataAutosizedCoolingCapacity = 0.0; + state.dataSize->DataAutosizedHeatingCapacity = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataNonZoneNonAirloopValue = 0.0; + state.dataSize->DataZoneNumber = 0; + state.dataSize->DataFanEnumType = -1; + state.dataSize->DataFanIndex = -1; + state.dataSize->DataWaterCoilSizCoolDeltaT = 0.0; + state.dataSize->DataWaterCoilSizHeatDeltaT = 0.0; + state.dataSize->DataNomCapInpMeth = false; + state.dataSize->DataFanPlacement = zoneFanPlacement::zoneFanPlaceNotSet; + state.dataSize->DataDXSpeedNum = 0; + state.dataSize->DataCoilSizingAirInTemp = 0.0; + state.dataSize->DataCoilSizingAirInHumRat = 0.0; + state.dataSize->DataCoilSizingAirOutTemp = 0.0; + state.dataSize->DataCoilSizingAirOutHumRat = 0.0; // These zone specific sizing variables are set in zone equipment to use for sizing. // Reset to avoid chance that second zone equipment will size using these variables set by first zone equipment to be sized + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &UnitarySysEqSizing(state.dataSize->UnitarySysEqSizing); if (curZoneEqNum > 0) { if (ZoneEqSizing.size() == 0) { @@ -861,9 +385,6 @@ namespace DataSizing { // METHODOLOGY EMPLOYED: // energy and mass flow balance - // REFERENCES: - // na - // FUNCTION LOCAL VARIABLE DECLARATIONS: int DDAtSensPeak(0); int TimeStepAtSensPeak(0); @@ -880,6 +401,11 @@ namespace DataSizing { Real64 TotFlow(0.0); // total flow for bypass control [m3/s] Real64 MixTemp(0.0); // mixed air temperature at the peak [C] + auto &SysSizInput(state.dataSize->SysSizInput); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + CoolCapCtrl = SysSizInput(SysNum).CoolCapControl; PeakLoadType = SysSizInput(SysNum).CoolingPeakLoadType; DDAtSensPeak = SysSizPeakDDNum(SysNum).SensCoolPeakDD; @@ -910,7 +436,7 @@ namespace DataSizing { DesExitHumRat = FinalSysSizing(SysNum).CoolSupHumRat; } else if (CoolCapCtrl == OnOff) { DesExitTemp = FinalSysSizing(SysNum).CoolSupTemp; - DesFlow = DataAirFlowUsedForSizing; + DesFlow = state.dataSize->DataAirFlowUsedForSizing; DesExitHumRat = FinalSysSizing(SysNum).CoolSupHumRat; } else if (CoolCapCtrl == VT) { if (FinalSysSizing(SysNum).CoolingPeakLoadType == SensibleCoolingLoad) { @@ -970,6 +496,4 @@ namespace DataSizing { return zoneEz; } -} // namespace DataSizing - } // namespace EnergyPlus diff --git a/src/EnergyPlus/DataSizing.hh b/src/EnergyPlus/DataSizing.hh index c5a3bfa1337..645fb0dacc0 100644 --- a/src/EnergyPlus/DataSizing.hh +++ b/src/EnergyPlus/DataSizing.hh @@ -64,126 +64,115 @@ struct EnergyPlusData; namespace DataSizing { - // Using/Aliasing - - // Data - // -only module should be available to other modules and routines. - // Thus, all variables in this module must be PUBLIC. - - // MODULE PARAMETER DEFINITIONS: - // parameters for outside air flow method - extern int const NumOAFlowMethods; - - extern int const OAFlowNone; - extern int const OAFlowPPer; - extern int const OAFlow; - extern int const OAFlowPerArea; - extern int const OAFlowACH; - extern int const OAFlowSum; - extern int const OAFlowMax; + constexpr int NumOAFlowMethods(9); + constexpr int OAFlowNone(0); + constexpr int OAFlowPPer(1); + constexpr int OAFlow(2); + constexpr int OAFlowPerArea(3); + constexpr int OAFlowACH(4); + constexpr int OAFlowSum(5); + constexpr int OAFlowMax(6); extern Array1D_string const cOAFlowMethodTypes; // parameters for outside air - extern int const AllOA; - extern int const MinOA; + constexpr int AllOA(1); + constexpr int MinOA(2); // parameters for loop fluid type - extern int const HeatingLoop; - extern int const CoolingLoop; - extern int const CondenserLoop; - extern int const SteamLoop; + constexpr int HeatingLoop(1); + constexpr int CoolingLoop(2); + constexpr int CondenserLoop(3); + constexpr int SteamLoop(4); // parameters for sizing - extern int const NonCoincident; - extern int const Coincident; + constexpr int NonCoincident(1); + constexpr int Coincident(2); - // parameters for Cooling Peak Load Type - extern int const SensibleCoolingLoad; - extern int const TotalCoolingLoad; + // parameters for Cooling Peak Load TYpe + constexpr int SensibleCoolingLoad(1); + constexpr int TotalCoolingLoad(2); // parameters for Central Cooling Capacity Control Method - extern int const VAV; - extern int const Bypass; - extern int const VT; - extern int const OnOff; + constexpr int VAV(1); + constexpr int Bypass(2); + constexpr int VT(3); + constexpr int OnOff(4); - // paramters for supply air flow rate method - extern int const SupplyAirTemperature; - extern int const TemperatureDifference; + // parameters for supply air flow rate method + constexpr int SupplyAirTemperature(1); + constexpr int TemperatureDifference(2); - // paramters for sizing - extern int const FromDDCalc; - extern int const InpDesAirFlow; - extern int const DesAirFlowWithLim; + // parameters for sizing + constexpr int FromDDCalc(1); + constexpr int InpDesAirFlow(2); + constexpr int DesAirFlowWithLim(3); - // parameters for DOAs control method - extern int const DOANeutralSup; - extern int const DOANeutralDehumSup; - extern int const DOACoolSup; + constexpr int DOANeutralSup(1); + constexpr int DOANeutralDehumSup(2); + constexpr int DOACoolSup(3); // parameters for Type of Load to Size On - extern int const Sensible; - extern int const Latent; - extern int const Total; - extern int const Ventilation; + constexpr int Sensible(0); + constexpr int Latent(1); + constexpr int Total(2); + constexpr int Ventilation(3); // parameter for autosize - extern Real64 const AutoSize; + constexpr Real64 AutoSize(-99999.0); // parameter for (time-of-peak) sizing format static constexpr auto PeakHrMinFmt("{:02}:{:02}:00"); // Zone Outdoor Air Method - extern int const ZOAM_FlowPerPerson; // set the outdoor air flow rate based on number of people in the zone - extern int const ZOAM_FlowPerZone; // sum the outdoor air flow rate per zone based on user input - extern int const ZOAM_FlowPerArea; // sum the outdoor air flow rate based on zone area - extern int const ZOAM_FlowPerACH; // sum the outdoor air flow rate based on number of air changes for the zone - extern int const ZOAM_Sum; // sum the outdoor air flow rate of the people component and the space floor area component - extern int const ZOAM_Max; // use the maximum of the outdoor air flow rate of the people component and - // the space floor area component - extern int const ZOAM_IAQP; // Use ASHRAE Standard 62.1-2007 IAQP to calculate the zone level outdoor air flow rates - extern int const ZOAM_ProportionalControlSchOcc; // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the zone level outdoor air flow rates based on scheduled occupancy - extern int const ZOAM_ProportionalControlDesOcc; // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the zone level outdoor air flow rates based on design occupancy + constexpr int ZOAM_FlowPerPerson(1); // set the outdoor air flow rate based on number of people in the zone + constexpr int ZOAM_FlowPerZone(2); // sum the outdoor air flow rate per zone based on user input + constexpr int ZOAM_FlowPerArea(3); // sum the outdoor air flow rate based on zone area + constexpr int ZOAM_FlowPerACH(4); // sum the outdoor air flow rate based on number of air changes for the zone + constexpr int ZOAM_Sum(5); // sum the outdoor air flow rate of the people component and the space floor area component + constexpr int ZOAM_Max(6); // use the maximum of the outdoor air flow rate of the people component and the space floor area component + constexpr int ZOAM_IAQP(7); // Use ASHRAE Standard 62.1-2007 IAQP to calculate the zone level outdoor air flow rates + constexpr int ZOAM_ProportionalControlSchOcc(8); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) + // to calculate the zone level outdoor air flow rates based on scheduled occupancy + constexpr int ZOAM_ProportionalControlDesOcc(9); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) + // to calculate the zone level outdoor air flow rates based on design occupancy // System Outdoor Air Method - extern int const SOAM_ZoneSum; // Sum the outdoor air flow rates of all zones - extern int const SOAM_VRP; // Use ASHRAE Standard 62.1-2007 to calculate the system level outdoor air flow rates + constexpr int SOAM_ZoneSum(1); // Sum the outdoor air flow rates of all zones + constexpr int SOAM_VRP(2); // Use ASHRAE Standard 62.1-2007 to calculate the system level outdoor air flow rates // considering the zone air distribution effectiveness and the system ventilation efficiency - extern int const SOAM_IAQP; // Use ASHRAE Standard 62.1-2007 IAQP to calculate the system level outdoor air flow rates + constexpr int SOAM_IAQP(3); // Use ASHRAE Standard 62.1-2007 IAQP to calculate the system level outdoor air flow rates // based on the CO2 setpoint - extern int const SOAM_ProportionalControlSchOcc; // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) + constexpr int SOAM_ProportionalControlSchOcc(4); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) // to calculate the system level outdoor air flow rates based on scheduled occupancy - extern int const SOAM_ProportionalControlDesOcc; // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) - // to calculate the system level outdoor air flow rates based on design occupancy - extern int const SOAM_IAQPGC; // Use ASHRAE Standard 62.1-2004 IAQP to calculate the system level outdoor air flow rates + constexpr int SOAM_IAQPGC(5); // Use ASHRAE Standard 62.1-2004 IAQP to calculate the system level outdoor air flow rates // based on the generic contaminant setpoint - extern int const SOAM_IAQPCOM; // Take the maximum outdoor air rate from both CO2 and generic contaminant controls + constexpr int SOAM_IAQPCOM(6); // Take the maximum outdoor air rate from both CO2 and generic contaminant controls // based on the generic contaminant setpoint - extern int const SOAM_ProportionalControlDesOARate; // Calculate the system level outdoor air flow rates based on design OA rate + constexpr int SOAM_ProportionalControlDesOcc(7); // Use ASHRAE Standard 62.1-2004 or Trane Engineer's newsletter (volume 34-5) + // to calculate the system level outdoor air flow rates based on design occupancy + constexpr int SOAM_ProportionalControlDesOARate(8); // Calculate the system level outdoor air flow rates based on design OA rate // Zone HVAC Equipment Supply Air Sizing Option - extern int const None; - extern int const SupplyAirFlowRate; - extern int const FlowPerFloorArea; - extern int const FractionOfAutosizedCoolingAirflow; - extern int const FractionOfAutosizedHeatingAirflow; - extern int const FlowPerCoolingCapacity; - extern int const FlowPerHeatingCapacity; - extern int const CoolingDesignCapacity; - extern int const HeatingDesignCapacity; - extern int const CapacityPerFloorArea; - extern int const FractionOfAutosizedCoolingCapacity; - extern int const FractionOfAutosizedHeatingCapacity; - - // Plant Coincident sizing factor options - extern int const NoSizingFactorMode; - extern int const GlobalHeatingSizingFactorMode; - extern int const GlobalCoolingSizingFactorMode; - extern int const LoopComponentSizingFactorMode; + constexpr int None(1); + constexpr int SupplyAirFlowRate(2); + constexpr int FlowPerFloorArea(3); + constexpr int FractionOfAutosizedCoolingAirflow(4); + constexpr int FractionOfAutosizedHeatingAirflow(5); + constexpr int FlowPerCoolingCapacity(6); + constexpr int FlowPerHeatingCapacity(7); + + constexpr int CoolingDesignCapacity(8); + constexpr int HeatingDesignCapacity(9); + constexpr int CapacityPerFloorArea(10); + constexpr int FractionOfAutosizedCoolingCapacity(11); + constexpr int FractionOfAutosizedHeatingCapacity(12); + + constexpr int NoSizingFactorMode(101); + constexpr int GlobalHeatingSizingFactorMode(102); + constexpr int GlobalCoolingSizingFactorMode(103); + constexpr int LoopComponentSizingFactorMode(104); enum class zoneFanPlacement { @@ -192,140 +181,6 @@ namespace DataSizing { zoneDrawThru }; - // DERIVED TYPE DEFINITIONS: - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // MODULE VARIABLE DECLARATIONS: - - // days; includes effects of user multiplier - // and user set flows) - // of user input multiplier and flows - // all design days, calculated only) - // using user input system flow rates. - // before applying user input sys flow rates. - - extern int NumOARequirements; // Number of OA Requirements objects - extern int NumZoneAirDistribution; // Number of zone air distribution objects - extern int NumZoneSizingInput; // Number of Zone Sizing objects - extern int NumSysSizInput; // Number of System Sizing objects - extern int NumPltSizInput; // Number of Plant Sizing objects - extern int CurSysNum; // Current Air System index (0 if not in air loop) - extern int CurOASysNum; // Current outside air system index (0 if not in OA Sys) - extern int CurZoneEqNum; // Current Zone Equipment index (0 if not simulating ZoneEq) - extern int CurTermUnitSizingNum; // Current terminal unit sizing index for TermUnitSizing and TermUnitFinalZoneSizing - extern int CurBranchNum; // Index of branch being simulated (or 0 if not air loop) - extern int CurDuctType; // Duct type of current branch - extern int CurLoopNum; // the current plant loop index - extern int CurCondLoopNum; // the current condenser loop number - extern int CurEnvirNumSimDay; // current environment number for day simulated - extern int CurOverallSimDay; // current day of simulation - extern int NumTimeStepsInAvg; // number of time steps in the averaging window for the design flow and load sequences - extern int SaveNumPlantComps; // Number of components using water as an energy source or sink (e.g. water coils) - extern int DataTotCapCurveIndex; // index to total capacity as a function of temperature curve - extern Real64 DataTotCapCurveValue; // value of total capacity as a function of temperature curve for CoilVRF_FluidTCtrl_* - extern int DataPltSizCoolNum; // index to cooling plant sizing data - extern int DataPltSizHeatNum; // index to heating plant sizing data - extern int DataWaterLoopNum; // index to plant water loop - extern int DataCoilNum; // index to coil object - extern int DataFanOpMode; // fan operating mode (ContFanCycCoil or CycFanCycCoil) - extern bool DataCoilIsSuppHeater; // TRUE if heating coil used as supplemental heater - extern bool DataIsDXCoil; // TRUE if direct-expansion coil - extern bool DataAutosizable; // TRUE if component is autosizable - extern bool DataEMSOverrideON; // boolean determines if user relies on EMS to override autosizing - extern bool TermUnitSingDuct; // TRUE if a non-induction single duct terminal unit - extern bool TermUnitPIU; // TRUE if a powered induction terminal unit - extern bool TermUnitIU; // TRUE if an unpowered induction terminal unit - extern bool ZoneEqFanCoil; // TRUE if a 4 pipe fan coil unit is being simulated - extern bool ZoneEqOutdoorAirUnit; // TRUE if an OutdoorAirUnit is being simulated - extern bool ZoneEqUnitHeater; // TRUE if a unit heater is being simulated - extern bool ZoneEqUnitVent; // TRUE if a unit ventilator is being simulated - extern bool ZoneEqVentedSlab; // TRUE if a ventilated slab is being simulated - extern bool ZoneEqDXCoil; // TRUE if a ZoneHVAC DX coil is being simulated - extern bool ZoneEqUnitarySys; // TRUE if a zone UnitarySystem is being simulated - extern bool ZoneCoolingOnlyFan; // TRUE if a ZoneHVAC DX cooling coil is only coil in parent - extern bool ZoneHeatingOnlyFan; // TRUE if zone unit only does heating and contains a fam (such as Unit Heater) - extern bool SysSizingRunDone; // True if a system sizing run is successfully completed. - extern bool ZoneSizingRunDone; // True if a zone sizing run has been successfully completed. - extern bool DataErrorsFound; // used for simulation termination when errors are found - extern bool DataAutosizable; // TRUE if component is autosizable - extern bool DataEMSOverrideON; // boolean determines if user relies on EMS to override autosizing - extern bool DataScalableSizingON; // boolean determines scalable zone flow sizing is specified - extern bool DataScalableCapSizingON; // boolean determines scalable zone capacity sizing is specified - extern bool DataSysScalableFlowSizingON; // boolean determines scalable system flow sizing is specified - extern bool DataSysScalableCapSizingON; // boolean determines scalable system capacity sizing is specified - extern Real64 DataCoilSizingAirInTemp; // saves sizing data for use in coil object reporting - extern Real64 DataCoilSizingAirInHumRat; // saves sizing data for use in coil object reporting - extern Real64 DataCoilSizingAirOutTemp; // saves sizing data for use in coil object reporting - extern Real64 DataCoilSizingAirOutHumRat; // saves sizing data for use in coil object reporting - extern Real64 DataCoilSizingFanCoolLoad; // saves sizing data for use in coil object reporting - extern Real64 DataCoilSizingCapFT; // saves sizing data for use in coil object reporting - extern bool DataDesAccountForFanHeat; // include fan heat when true - extern Real64 DataDesInletWaterTemp; // coil inlet water temperture used for warning messages - extern Real64 DataDesInletAirHumRat; // coil inlet air humidity ratio used for warning messages - extern Real64 DataDesInletAirTemp; // coil inlet air temperature used for warning messages - extern Real64 DataDesOutletAirTemp; // coil outlet air temperature used for sizing - extern Real64 DataDesOutletAirHumRat; // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air] - extern Real64 DataCoolCoilCap; // cooling coil capacity used for sizing with scalable inputs - extern Real64 DataFlowUsedForSizing; // air flow rate used for sizing with scalable inputs [m3/s] - extern Real64 DataAirFlowUsedForSizing; // air flow rate used for sizing with scalable inputs [m3/s] - extern Real64 DataWaterFlowUsedForSizing; // water flow rate used for sizing with scalable inputs [m3/s] - extern Real64 DataCapacityUsedForSizing; // capacity used for sizing with scalable inputs [W] - extern Real64 DataDesignCoilCapacity; // calculated capacity of coil at end of UA calculation - extern Real64 DataHeatSizeRatio; // heating coil size as a ratio of cooling coil capacity - extern Real64 DataEMSOverride; // value of EMS variable used to override autosizing - extern Real64 DataBypassFrac; // value of bypass fraction for Coil:Cooling:DX:TwoStageWithHumidityControlMode coils - extern Real64 DataFracOfAutosizedCoolingAirflow; // fraction of design cooling supply air flow rate - extern Real64 DataFracOfAutosizedHeatingAirflow; // fraction of design heating supply air flow rate - extern Real64 DataFlowPerCoolingCapacity; // cooling supply air flow per unit cooling capacity - extern Real64 DataFlowPerHeatingCapacity; // heating supply air flow per unit heating capacity - extern Real64 DataFracOfAutosizedCoolingCapacity; // fraction of autosized cooling capacity - extern Real64 DataFracOfAutosizedHeatingCapacity; // fraction of autosized heating capacit - extern Real64 DataAutosizedCoolingCapacity; // Autosized cooling capacity used for multiplying flow per capacity to get flow rate - extern Real64 DataAutosizedHeatingCapacity; // Autosized heating capacit used for multiplying flow per capacity to get flow rate - extern Real64 DataConstantUsedForSizing; // base value used for sizing inputs that are ratios of other inputs - extern Real64 DataFractionUsedForSizing; // fractional value of base value used for sizing inputs that are ratios of other inputs - extern Real64 DataNonZoneNonAirloopValue; // used when equipment is not located in a zone or airloop - extern Real64 DataSizingFraction; // used when ratios of sizing is required - extern int DataZoneUsedForSizing; // pointer to control zone for air loop equipment - extern int DataZoneNumber; // a pointer to a zone served by zoneHVAC equipment - extern int NumZoneHVACSizing; // Number of design specification zone HVAC sizing objects - extern int NumAirTerminalSizingSpec; // Number of design specification air terminal sizing objects - extern int NumAirTerminalUnits; // Number of air terminal units (same as total number of zone inlet nodes) - extern bool TermUnitSingDuct; // TRUE if a non-induction single duct terminal unit - extern bool TermUnitPIU; // TRUE if a powered induction terminal unit - extern bool TermUnitIU; // TRUE if an unpowered induction terminal unit - extern bool ZoneEqFanCoil; // TRUE if a 4 pipe fan coil unit is being simulated - extern bool ZoneEqUnitVent; // TRUE if a unit ventilator unit is being simulated - extern bool ZoneEqDXCoil; // TRUE if a ZoneHVAC DX coil is being simulated - extern bool ZoneCoolingOnlyFan; // TRUE if a ZoneHVAC DX cooling coil is only coil in parent - extern bool ZoneHeatingOnlyFan; // TRUE if zone unit only does heating and contains a fam (such as Unit Heater) - extern bool SysSizingRunDone; // True if a system sizing run is successfully completed. - extern bool ZoneSizingRunDone; // True if a zone sizing run has been successfully completed. - extern Real64 AutoVsHardSizingThreshold; // criteria threshold used to determine if user hard size and autosize disagree 10% - extern Real64 AutoVsHardSizingDeltaTempThreshold; // temperature criteria threshold for autosize versus hard size [C] - extern Real64 DXCoolCap; // The ARI cooling capacity of a DX unit. - extern Real64 UnitaryHeatCap; // the heating capacity of a unitary system - extern Real64 SuppHeatCap; // the heating capacity of the supplemental heater in a unitary system - extern Real64 GlobalHeatSizingFactor; // the global heating sizing ratio - extern Real64 GlobalCoolSizingFactor; // the global cooling sizing ratio - extern Array1D ZoneSizThermSetPtHi; // highest zone thermostat setpoint during zone sizing calcs - extern Array1D ZoneSizThermSetPtLo; // lowest zone thermostat setpoint during zone sizing calcs - extern Array1D_string CoolPeakDateHrMin; // date:hr:min of cooling peak - extern Array1D_string HeatPeakDateHrMin; // date:hr:min of heating peak - extern char SizingFileColSep; // Character to separate columns in sizing outputs - extern int DataDesicDehumNum; // index to desiccant dehumidifier - extern bool DataDesicRegCoil; // TRUE if heating coil desiccant regeneration coil - extern bool HRFlowSizingFlag; // True, if it is a heat recovery heat exchanger flow sizing - extern Real64 DataWaterCoilSizCoolDeltaT; // used for sizing cooling coil water design flow rate - extern Real64 DataWaterCoilSizHeatDeltaT; // used for sizing heating coil water design flow rate - extern bool DataNomCapInpMeth; // True if heating coil is sized by CoilPerfInpMeth == NomCap - extern int DataFanEnumType; // Fan type used during sizing - extern int DataFanIndex; // Fan index used during sizing - extern zoneFanPlacement DataFanPlacement; // identifies location of fan wrt coil - extern int DataDXSpeedNum; // identifies multispeed DX max speed number - // Types struct ZoneSizingInputData @@ -410,16 +265,16 @@ namespace DataSizing { int ZnHeatDgnSAMethod; // choice of how to get zone heating design air temperature; // 1 = specify supply air temperature, // 2 = calculate from the temperature difference - Real64 CoolDesTemp; // zone design cooling supply air temperature [C] - Real64 HeatDesTemp; // zone design heating supply air temperature [C] - Real64 CoolDesTempDiff; // zone design cooling supply air temperature difference [deltaC] - Real64 HeatDesTempDiff; // zone design heating supply air temperature difference [deltaC] - Real64 CoolDesHumRat; // zone design cooling supply air humidity ratio [kgWater/kgDryAir] - Real64 HeatDesHumRat; // zone design heating supply air humidity ratio [kgWater/kgDryAir] + Real64 CoolDesTemp; // zone design cooling supply air temperature [C] + Real64 HeatDesTemp; // zone design heating supply air temperature [C] + Real64 CoolDesTempDiff; // zone design cooling supply air temperature difference [deltaC] + Real64 HeatDesTempDiff; // zone design heating supply air temperature difference [deltaC] + Real64 CoolDesHumRat; // zone design cooling supply air humidity ratio [kgWater/kgDryAir] + Real64 HeatDesHumRat; // zone design heating supply air humidity ratio [kgWater/kgDryAir] int ZoneAirDistributionIndex; // index to DesignSpecification:ZoneAirDistribution object int ZoneDesignSpecOAIndex; // index to DesignSpecification:OutdoorAir object - int OADesMethod; // choice of how to calculate minimum outside air; + int OADesMethod; // choice of how to calculate minimum outside air; // 1 = m3/s per person; 2 = m3/s per zone; 3 = m3/s per zone area; // 4 = sum of flow from 3 OA input fields; // 5 = max of flow from 3 OA input fields @@ -590,13 +445,13 @@ namespace DataSizing { // Default Constructor ZoneSizingData() : ZnCoolDgnSAMethod(0), ZnHeatDgnSAMethod(0), CoolDesTemp(0.0), HeatDesTemp(0.0), CoolDesTempDiff(0.0), HeatDesTempDiff(0.0), - CoolDesHumRat(0.0), HeatDesHumRat(0.0), ZoneAirDistributionIndex(0), ZoneDesignSpecOAIndex(0), OADesMethod(0), DesOAFlowPPer(0.0), DesOAFlowPerArea(0.0), - DesOAFlow(0.0), CoolAirDesMethod(0), InpDesCoolAirFlow(0.0), DesCoolMinAirFlowPerArea(0.0), DesCoolMinAirFlow(0.0), - DesCoolMinAirFlowFrac(0.0), HeatAirDesMethod(0), InpDesHeatAirFlow(0.0), DesHeatMaxAirFlowPerArea(0.0), DesHeatMaxAirFlow(0.0), - DesHeatMaxAirFlowFrac(0.0), HeatSizingFactor(0.0), CoolSizingFactor(0.0), AccountForDOAS(false), DOASControlStrategy(0), - DOASLowSetpoint(0.0), DOASHighSetpoint(0.0), ActualZoneNum(0), DesHeatMassFlow(0.0), DesHeatMassFlowNoOA(0.0), DesHeatOAFlowFrac(0.0), - EMSOverrideDesHeatMassOn(false), EMSValueDesHeatMassFlow(0.0), DesCoolMassFlow(0.0), DesCoolMassFlowNoOA(0.0), DesCoolOAFlowFrac(0.0), - EMSOverrideDesCoolMassOn(false), EMSValueDesCoolMassFlow(0.0), DesHeatLoad(0.0), NonAirSysDesHeatLoad(0.0), + CoolDesHumRat(0.0), HeatDesHumRat(0.0), ZoneAirDistributionIndex(0), ZoneDesignSpecOAIndex(0), OADesMethod(0), DesOAFlowPPer(0.0), + DesOAFlowPerArea(0.0), DesOAFlow(0.0), CoolAirDesMethod(0), InpDesCoolAirFlow(0.0), DesCoolMinAirFlowPerArea(0.0), + DesCoolMinAirFlow(0.0), DesCoolMinAirFlowFrac(0.0), HeatAirDesMethod(0), InpDesHeatAirFlow(0.0), DesHeatMaxAirFlowPerArea(0.0), + DesHeatMaxAirFlow(0.0), DesHeatMaxAirFlowFrac(0.0), HeatSizingFactor(0.0), CoolSizingFactor(0.0), AccountForDOAS(false), + DOASControlStrategy(0), DOASLowSetpoint(0.0), DOASHighSetpoint(0.0), ActualZoneNum(0), DesHeatMassFlow(0.0), DesHeatMassFlowNoOA(0.0), + DesHeatOAFlowFrac(0.0), EMSOverrideDesHeatMassOn(false), EMSValueDesHeatMassFlow(0.0), DesCoolMassFlow(0.0), DesCoolMassFlowNoOA(0.0), + DesCoolOAFlowFrac(0.0), EMSOverrideDesCoolMassOn(false), EMSValueDesCoolMassFlow(0.0), DesHeatLoad(0.0), NonAirSysDesHeatLoad(0.0), EMSOverrideDesHeatLoadOn(false), EMSValueDesHeatLoad(0.0), DesCoolLoad(0.0), NonAirSysDesCoolLoad(0.0), EMSOverrideDesCoolLoadOn(false), EMSValueDesCoolLoad(0.0), DesHeatDens(0.0), DesCoolDens(0.0), DesHeatVolFlow(0.0), DesHeatVolFlowNoOA(0.0), NonAirSysDesHeatVolFlow(0.0), EMSOverrideDesHeatVolOn(false), EMSValueDesHeatVolFlow(0.0), DesCoolVolFlow(0.0), DesCoolVolFlowNoOA(0.0), @@ -617,12 +472,12 @@ namespace DataSizing { { } - void scaleZoneCooling(Real64 const ratio // Scaling ratio + void scaleZoneCooling(Real64 ratio // Scaling ratio ); - void scaleZoneHeating(Real64 const ratio // Scaling ratio + void scaleZoneHeating(Real64 ratio // Scaling ratio ); void zeroMemberData(); - void allocateMemberArrays(int const numOfTimeStepInDay); + void allocateMemberArrays(int numOfTimeStepInDay); }; struct TermUnitSizingData @@ -691,10 +546,10 @@ namespace DataSizing { bool SystemCapacity; // TRUE if AirloopHVAC system heating capacity is calculated bool DesignSizeFromParent; // TRUE if design size is set by parent object - normally false, set to true for special cases e.g. ERV int HVACSizingIndex; // index to DesignSpecification:ZoneHVAC:Sizing - Array1D_int SizingMethod; // supply air flow rate sizing method (SupplyAirFlowRate, FlowPerFloorArea, FractionOfAutosizedCoolingAirflow and - // FractionOfAutosizedHeatingAirflow) - Array1D_int CapSizingMethod; // capacity sizing methods (HeatingDesignCapacity, CoolingDesignCapacity, CapacityPerFloorArea, - // FractionOfAutosizedCoolingCapacity and FractionOfAutosizedHeatingCapacity ) + Array1D_int SizingMethod; // supply air flow rate sizing method (SupplyAirFlowRate, FlowPerFloorArea, FractionOfAutosizedCoolingAirflow and + // FractionOfAutosizedHeatingAirflow) + Array1D_int CapSizingMethod; // capacity sizing methods (HeatingDesignCapacity, CoolingDesignCapacity, CapacityPerFloorArea, + // FractionOfAutosizedCoolingCapacity and FractionOfAutosizedHeatingCapacity ) // Default Constructor ZoneEqSizingData() @@ -1088,12 +943,7 @@ namespace DataSizing { std::string DateString; // date of design day weather values Array1D Temp; // design day temperatures at the major time step Array1D HumRat; // design day humidity ratios at the major time step - Array1D Press; // design day braometric pressure at the major time step - - // Default Constructor - DesDayWeathData() - { - } + Array1D Press; // design day barometric pressure at the major time step }; struct CompDesWaterFlowData // design water flow rate for components that use water as an @@ -1109,8 +959,8 @@ namespace DataSizing { } // Member Constructor - CompDesWaterFlowData(int const SupNode, // water inlet node number (condenser side for water / water) - Real64 const DesVolFlowRate // water design flow rate [m3/s] + CompDesWaterFlowData(int SupNode, // water inlet node number (condenser side for water / water) + Real64 DesVolFlowRate // water design flow rate [m3/s] ) : SupNode(SupNode), DesVolFlowRate(DesVolFlowRate) { @@ -1138,8 +988,8 @@ namespace DataSizing { // Default Constructor OARequirementsData() : OAFlowMethod(0), OAFlowPerPerson(0.0), OAFlowPerArea(0.0), OAFlowPerZone(0.0), OAFlowACH(0.0), - OAFlowFracSchPtr(DataGlobalConstants::ScheduleAlwaysOn), OAPropCtlMinRateSchPtr(DataGlobalConstants::ScheduleAlwaysOn), CO2MaxMinLimitErrorCount(0), - CO2MaxMinLimitErrorIndex(0), CO2GainErrorCount(0), CO2GainErrorIndex(0) + OAFlowFracSchPtr(DataGlobalConstants::ScheduleAlwaysOn), OAPropCtlMinRateSchPtr(DataGlobalConstants::ScheduleAlwaysOn), + CO2MaxMinLimitErrorCount(0), CO2MaxMinLimitErrorIndex(0), CO2GainErrorCount(0), CO2GainErrorIndex(0) { } }; @@ -1161,108 +1011,380 @@ namespace DataSizing { { } - Real64 calculateEz(EnergyPlusData &state, int const ZoneNum); // Zone index + Real64 calculateEz(EnergyPlusData &state, int ZoneNum); // Zone index }; - // Object Data - extern Array1D OARequirements; - extern Array1D ZoneAirDistribution; - extern Array1D ZoneSizingInput; // Input data for zone sizing - extern Array2D ZoneSizing; // Data for zone sizing (all data, all design) - extern Array1D FinalZoneSizing; // Final data for zone sizing including effects - extern Array2D CalcZoneSizing; // Data for zone sizing (all data) - extern Array1D CalcFinalZoneSizing; // Final data for zone sizing (calculated only) - extern Array1D TermUnitFinalZoneSizing; // Final data for sizing terminal units - extern Array1D SysSizInput; // Input data array for system sizing object - extern Array2D SysSizing; // Data array for system sizing (all data) - extern Array1D FinalSysSizing; // Data array for system sizing (max heat/cool) - extern Array1D CalcSysSizing; // Data array for system sizing (max heat/cool) - extern Array1D TermUnitSizing; // Data added in sizing routines - extern Array1D ZoneEqSizing; // Data added in zone eq component sizing routines - extern Array1D UnitarySysEqSizing; // Data added in unitary system sizing routines - extern Array1D OASysEqSizing; // Data added in unitary system sizing routines - extern Array1D PlantSizData; // Input data array for plant sizing - extern Array1D DesDayWeath; // design day weather saved at major time step - extern Array1D CompDesWaterFlow; // array to store components' design water flow - extern Array1D SysSizPeakDDNum; // data array for peak des day indices - extern Array1D ZoneHVACSizing; // Input data for zone HVAC sizing - extern Array1D AirTerminalSizingSpec; // Input data for air terminal sizing - // used only for Facility Load Component Summary - extern Array1D CalcFacilitySizing; // Data for facility sizing - extern FacilitySizingData CalcFinalFacilitySizing; // Final data for facility sizing - extern Array1D VbzByZone; // saved value of ZoneOAUnc which is Vbz used in 62.1 tabular report - extern Array1D VdzClgByZone; // saved value of cooling based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level - // Vps) Vdz includes secondary flows and primary flows - extern Array1D VdzMinClgByZone; // minimum discarge flow for cooling, Vdz includes secondary and primary flows for dual path - extern Array1D VdzHtgByZone; // saved value of heating based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level - // Vps) Vdz includes secondary flows and primary flows - extern Array1D VdzMinHtgByZone; // minimum discharge flow for heating, Vdz includes secondary and primary flows for dual path - extern Array1D ZdzClgByZone; // minimum discharge outdoor-air fraction for cooling - extern Array1D ZdzHtgByZone; // minimum discharge outdoor-air fraction for heating - extern Array1D VpzClgByZone; // saved value of cooling based ZonePA which is Vpz used in 62.1 tabular report - extern Array1D VpzMinClgByZone; // saved value of minimum cooling based ZonePA which is VpzClg-min used in 62.1 tabular report - extern Array1D VpzHtgByZone; // saved value of heating based ZonePA which is Vpz used in 62.1 tabular report - extern Array1D VpzMinHtgByZone; // saved value of minimum heating based ZonePA which is VpzHtg-min used in 62.1 tabular report - extern Array1D VpzClgSumBySys; // sum of saved value of cooling based ZonePA which is Vpz-sum used in 62.1 tabular report - extern Array1D VpzHtgSumBySys; // sum of saved value of heating based ZonePA which is Vpz-sum used in 62.1 tabular report - extern Array1D PzSumBySys; // sum of design people for system, Pz_sum - extern Array1D PsBySys; // sum of peak concurrent people by system, Ps - extern Array1D DBySys; // Population Diversity by system - extern Array1D SumRpxPzBySys; // Sum of per person OA times number of people by system, No D yet - extern Array1D SumRaxAzBySys; // sum of per area OA time zone area by system, does not get altered by D - extern Array1D PeakPsOccurrenceDateTimeStringBySys; // string describing date and time when Ps peak occurs - extern Array1D PeakPsOccurrenceEnvironmentStringBySys; // string describing Environment when Ps peak occurs - - extern Array1D VouBySys; // uncorrected system outdoor air requirement, for std 62.1 VRP - - extern Array1D VpsClgBySys; // System primary airflow Vps, for cooling for std 62.1 VRP - extern Array1D VpsHtgBySys; // system primary airflow Vps, for heating for std 62.1 VRP - extern Array1D FaByZoneHeat; // saved value of Fa used in 62.1 tabular report - extern Array1D FbByZoneCool; // saved value of Fb used in 62.1 tabular report - extern Array1D FbByZoneHeat; // saved value of Fb used in 62.1 tabular report - extern Array1D FcByZoneCool; // saved value of Fc used in 62.1 tabular report - extern Array1D FcByZoneHeat; // saved value of Fc used in 62.1 tabular report - extern Array1D XsBySysCool; // saved value of Xs used in 62.1 tabular report - extern Array1D XsBySysHeat; // saved value of Xs used in 62.1 tabular report - extern Array1D EvzByZoneCool; // saved value of Evz (zone vent effy) used in 62.1 tabular report - extern Array1D EvzByZoneHeat; // saved value of Evz (zone vent effy) used in 62.1 tabular report - extern Array1D EvzByZoneCoolPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report - extern Array1D EvzByZoneHeatPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report - extern Array1D VotClgBySys; // saved value of cooling ventilation required at primary AHU, used in 62.1 tabular report - extern Array1D VotHtgBySys; // saved value of heating ventilation required at primary AHU, used in 62.1 tabular report - extern Array1D VozSumClgBySys; // saved value of cooling ventilation required at clg zones - extern Array1D VozSumHtgBySys; // saved value of heating ventilation required at htg zones - extern Array1D TotCoolCapTemp; // scratch variable used for calulating peak load [W] - extern Array1D EvzMinBySysHeat; // saved value of EvzMin used in 62.1 tabular report - extern Array1D EvzMinBySysCool; // saved value of EvzMin used in 62.1 tabular report - extern Array1D FaByZoneCool; // triggers allocation in UpdateSysSizing - extern Array1D SensCoolCapTemp; // triggers allocation in UpdateSysSizing - - // Clears the global data in DataSizing. - // Needed for unit tests, should not be normally called. - void clear_state(); - - // Resets Data globals so that prevoiusly set variables are not used in other equipment models - void resetHVACSizingGlobals(int const curZoneEqNum, - int const curSysNum, - bool &firstPassFlag // Can be set to false during the routine + // Resets Data globals so that previously set variables are not used in other equipment models + void resetHVACSizingGlobals(EnergyPlusData &state, + int curZoneEqNum, + int curSysNum, + bool &firstPassFlag // Can be set to false during the routine ); void GetCoilDesFlowT(EnergyPlusData &state, - int SysNum, // central air system index - Real64 CpAir, // specific heat to be used in calculations [J/kgC] - Real64& DesFlow, // returned design mass flow [kg/s] - Real64& DesExitTemp, // returned design coil exit temperature [kg/s] - Real64& DesExitHumRat // returned design coil exit humidity ratio [kg/kg] + int SysNum, // central air system index + Real64 CpAir, // specific heat to be used in calculations [J/kgC] + Real64 &DesFlow, // returned design mass flow [kg/s] + Real64 &DesExitTemp, // returned design coil exit temperature [kg/s] + Real64 &DesExitHumRat // returned design coil exit humidity ratio [kg/kg] ); } // namespace DataSizing -struct SizingData : BaseGlobalStruct { +struct SizingData : BaseGlobalStruct +{ + int NumOARequirements = 0; // Number of OA Requirements objects + int NumZoneAirDistribution = 0; // Number of zone air distribution objects + int NumZoneSizingInput = 0; // Number of Zone Sizing objects + int NumSysSizInput = 0; // Number of System Sizing objects + int NumPltSizInput = 0; // Number of Plant Sizing objects + int CurSysNum = 0; // Current Air System index (0 if not in air loop) + int CurOASysNum = 0; // Current outside air system index (0 if not in OA Sys) + int CurZoneEqNum = 0; // Current Zone Equipment index (0 if not simulating ZoneEq) + int CurTermUnitSizingNum = 0; // Current terminal unit sizing index for TermUnitSizing and TermUnitFinalZoneSizing + int CurBranchNum = 0; // Index of branch being simulated (or 0 if not air loop) + int CurDuctType = 0; // Duct type of current branch + int CurLoopNum = 0; // the current plant loop index + int CurCondLoopNum = 0; // the current condenser loop number + int CurEnvirNumSimDay = 0; // current environment number for day simulated + int CurOverallSimDay = 0; // current day of simulation + int NumTimeStepsInAvg = 0; // number of time steps in the averaging window for the design flow and load sequences + int SaveNumPlantComps = 0; // Number of components using water as an energy source or sink (e.g. water coils) + int DataTotCapCurveIndex = 0; // index to total capacity as a function of temperature curve + Real64 DataTotCapCurveValue = 0; // value of total capacity as a function of temperature curve for CoilVRF_FluidTCtrl_* + int DataPltSizCoolNum = 0; // index to cooling plant sizing data + int DataPltSizHeatNum = 0; // index to heating plant sizing data + int DataWaterLoopNum = 0; // index to plant water loop + int DataCoilNum = 0; // index to coil object + int DataFanOpMode = 0; // fan operating mode (ContFanCycCoil or CycFanCycCoil) + bool DataCoilIsSuppHeater = false; // TRUE if heating coil used as supplemental heater + bool DataIsDXCoil = false; // TRUE if direct-expansion coil + bool DataAutosizable = true; // TRUE if component is autosizable + bool DataEMSOverrideON = false; // boolean determines if user relies on EMS to override autosizing + bool DataScalableSizingON = false; // boolean determines scalable flow sizing is specified + bool DataScalableCapSizingON = false; // boolean determines scalable capacity sizing is specified + bool DataSysScalableFlowSizingON = false; // boolean determines scalable system flow sizing is specified + bool DataSysScalableCapSizingON = false; // boolean determines scalable system capacity sizing is specified + bool SysSizingRunDone = false; // True if a system sizing run is successfully completed. + bool TermUnitSingDuct = false; // TRUE if a non-induction single duct terminal unit + bool TermUnitPIU = false; // TRUE if a powered induction terminal unit + bool TermUnitIU = false; // TRUE if an unpowered induction terminal unit + bool ZoneEqFanCoil = false; // TRUE if a 4 pipe fan coil unit is being simulated + bool ZoneEqOutdoorAirUnit = false; // TRUE if an OutdoorAirUnit is being simulated + bool ZoneEqUnitHeater = false; // TRUE if a unit heater is being simulated + bool ZoneEqUnitVent = false; // TRUE if a unit ventilator unit is being simulated + bool ZoneEqVentedSlab = false; // TRUE if a ventilated slab is being simulated + bool ZoneEqDXCoil = false; // TRUE if a ZoneHVAC DX coil is being simulated + bool ZoneEqUnitarySys = false; // TRUE if a zone UnitarySystem is being simulated + bool ZoneCoolingOnlyFan = false; // TRUE if a ZoneHVAC DX cooling coil is only coil in parent + bool ZoneHeatingOnlyFan = false; // TRUE if zone unit only does heating and contains a fam (such as Unit Heater) + bool ZoneSizingRunDone = false; // True if a zone sizing run has been successfully completed. + bool DataErrorsFound = false; // used for simulation termination when errors are found + Real64 AutoVsHardSizingThreshold = 0.1; // criteria threshold used to determine if user hard size and autosize disagree 10% + Real64 AutoVsHardSizingDeltaTempThreshold = 1.5; // temperature criteria threshold for autosize versus hard size [C] + Real64 DataCoilSizingAirInTemp = 0.0; // saves sizing data for use in coil object reporting + Real64 DataCoilSizingAirInHumRat = 0.0; // saves sizing data for use in coil object reporting + Real64 DataCoilSizingAirOutTemp = 0.0; // saves sizing data for use in coil object reporting + Real64 DataCoilSizingAirOutHumRat = 0.0; // saves sizing data for use in coil object reporting + Real64 DataCoilSizingFanCoolLoad = 0.0; // saves sizing data for use in coil object reporting + Real64 DataCoilSizingCapFT = 1.0; // saves sizing data for use in coil object reporting + bool DataDesAccountForFanHeat = true; // include fan heat when true + Real64 DataDesInletWaterTemp = 0.0; // coil inlet water temperature used for warning messages + Real64 DataDesInletAirHumRat = 0.0; // coil inlet air humidity ratio used for warning messages + Real64 DataDesInletAirTemp = 0.0; // coil inlet air temperature used for warning messages + Real64 DataDesOutletAirTemp = 0.0; // coil outlet air temperature used for sizing + Real64 DataDesOutletAirHumRat = 0.0; // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air] + Real64 DataCoolCoilCap = 0.0; // cooling coil capacity used for sizing with scalable inputs [W] + Real64 DataFlowUsedForSizing = 0.0; // air flow rate used for sizing with scalable inputs [m3/s] + Real64 DataAirFlowUsedForSizing = 0.0; // air flow rate used for sizing with scalable inputs [m3/s] + Real64 DataWaterFlowUsedForSizing = 0.0; // water flow rate used for sizing with scalable inputs [m3/s] + Real64 DataCapacityUsedForSizing = 0.0; // capacity used for sizing with scalable inputs [W] + Real64 DataDesignCoilCapacity = 0.0; // calculated capacity of coil at end of UA calculation + Real64 DataHeatSizeRatio = 1.0; // heating coil size as a ratio of cooling coil capacity + Real64 DataEMSOverride = 0.0; // value of EMS variable used to override autosizing + Real64 DataBypassFrac = 0.0; // value of bypass fraction for Coil:Cooling:DX:TwoStageWithHumidityControlMode coils + Real64 DataFracOfAutosizedCoolingAirflow = 1.0; // fraction of design cooling supply air flow rate + Real64 DataFracOfAutosizedHeatingAirflow = 1.0; // fraction of design heating supply air flow rate + Real64 DataFlowPerCoolingCapacity = 0.0; // cooling supply air flow per unit cooling capacity + Real64 DataFlowPerHeatingCapacity = 0.0; // heating supply air flow per unit heating capacity + Real64 DataFracOfAutosizedCoolingCapacity = 1.0; // fraction of autosized cooling capacity + Real64 DataFracOfAutosizedHeatingCapacity = 1.0; // fraction of autosized heating capacit + Real64 DataAutosizedCoolingCapacity = 0.0; // Autosized cooling capacity used for multiplying flow per capacity to get flow rate + Real64 DataAutosizedHeatingCapacity = 0.0; // Autosized heating capacit used for multiplying flow per capacity to get flow rate + Real64 DataConstantUsedForSizing = 0.0; // base value used for sizing inputs that are ratios of other inputs + Real64 DataFractionUsedForSizing = 0.0; // fractional value of base value used for sizing inputs that are ratios of other inputs + Real64 DataNonZoneNonAirloopValue = 0.0; // used when equipment is not located in a zone or airloop + Real64 DataSizingFraction = 1.0; // used when ratios of sizing is required + int DataZoneUsedForSizing = 0; // pointer to control zone for air loop equipment + int DataZoneNumber = 0; // a pointer to a served by zoneHVAC equipment + int NumZoneHVACSizing = 0; // Number of design specification zone HVAC sizing objects + int NumAirTerminalSizingSpec = 0; // Number of design specfication air terminal sizing objects + int NumAirTerminalUnits = 0; // Number of air terminal units (same as total number of zone inlet nodes) + Real64 DXCoolCap = 0.0; // The ARI cooling capacity of a DX unit. + Real64 GlobalHeatSizingFactor = 0.0; // the global heating sizing ratio + Real64 GlobalCoolSizingFactor = 0.0; // the global cooling sizing ratio + Real64 SuppHeatCap = 0.0; // the heating capacity of the supplemental heater in a unitary system + Real64 UnitaryHeatCap = 0.0; // the heating capacity of a unitary system + Array1D ZoneSizThermSetPtHi; // highest zone thermostat setpoint during zone sizing calcs + Array1D ZoneSizThermSetPtLo; // lowest zone thermostat setpoint during zone sizing calcs + Array1D_string CoolPeakDateHrMin; // date:hr:min of cooling peak + Array1D_string HeatPeakDateHrMin; // date:hr:min of heating peak + char SizingFileColSep; // Character to separate columns in sizing outputs + int DataDesicDehumNum = 0; // index to desiccant dehumidifier + bool DataDesicRegCoil = false; // TRUE if heating coil desiccant regeneration coil + bool HRFlowSizingFlag = false; // True, if it is a heat recovery heat exchanger flow sizing + Real64 DataWaterCoilSizCoolDeltaT = 0.0; // used for sizing cooling coil water design flow rate + Real64 DataWaterCoilSizHeatDeltaT = 0.0; // used for sizing heating coil water design flow rate + bool DataNomCapInpMeth = false; // True if heating coil is sized by CoilPerfInpMeth == NomCa + int DataFanEnumType = -1; // Fan type used during sizing + int DataFanIndex = -1; // Fan index used during sizing + DataSizing::zoneFanPlacement DataFanPlacement = DataSizing::zoneFanPlacement::zoneFanPlaceNotSet; // identifies location of fan wrt coil + int DataDXSpeedNum = 0; + Array1D OARequirements; + Array1D ZoneAirDistribution; + Array1D ZoneSizingInput; // Input data for zone sizing + Array2D ZoneSizing; // Data for zone sizing (all data, all design) + Array1D FinalZoneSizing; // Final data for zone sizing including effects + Array2D CalcZoneSizing; // Data for zone sizing (all data) + Array1D CalcFinalZoneSizing; // Final data for zone sizing (calculated only) + Array1D TermUnitFinalZoneSizing; // Final data for sizing terminal units (indexed per terminal unit) + Array1D SysSizInput; // Input data array for system sizing object + Array2D SysSizing; // Data array for system sizing (all data) + Array1D FinalSysSizing; // Data array for system sizing (max heat/cool) + Array1D CalcSysSizing; // Data array for system sizing (max heat/cool) + Array1D SysSizPeakDDNum; // data array for peak des day indices + Array1D TermUnitSizing; // Data added in sizing routines (indexed per terminal unit) + Array1D ZoneEqSizing; // Data added in zone eq component sizing routines + Array1D UnitarySysEqSizing; // Data added in unitary system sizing routines + Array1D OASysEqSizing; // Data added in unitary system sizing routines + Array1D PlantSizData; // Input data array for plant sizing + Array1D DesDayWeath; // design day weather saved at major time step + Array1D CompDesWaterFlow; // array to store components' design water flow + Array1D ZoneHVACSizing; // Input data for zone HVAC sizing + Array1D + AirTerminalSizingSpec; // Input data for zone HVAC sizing used only for Facility Load Component Summary + Array1D CalcFacilitySizing; // Data for zone sizing + DataSizing::FacilitySizingData CalcFinalFacilitySizing; // Final data for zone sizing + Array1D VbzByZone; // saved value of ZoneOAUnc which is Vbz used in 62.1 tabular report + Array1D VdzClgByZone; // saved value of cooling based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps) + Array1D VdzMinClgByZone; // minimum discharge flow for cooling, Vdz includes secondary and primary flows for dual path + Array1D VdzHtgByZone; // saved value of heating based ZoneSA which is Vdz used in 62.1 tabular report (also used for zone level Vps) + Array1D VdzMinHtgByZone; // minimum discharge flow for heating, Vdz includes secondary and primary flows for dual path + Array1D ZdzClgByZone; // minimum discharge outdoor-air fraction for cooling + Array1D ZdzHtgByZone; // minimum discharge outdoor-air fraction for heating + Array1D VpzClgByZone; // saved value of cooling based ZonePA which is Vpz used in 62.1 tabular report + Array1D VpzMinClgByZone; // saved value of minimum cooling based ZonePA which is VpzClg-min used in 62.1 tabular report + Array1D VpzHtgByZone; // saved value of heating based ZonePA which is Vpz used in 62.1 tabular report + Array1D VpzMinHtgByZone; // saved value of minimum heating based ZonePA which is VpzHtg-min used in 62.1 tabular report + Array1D VpzClgSumBySys; // sum of saved value of cooling based ZonePA which is Vpz-sum used in 62.1 tabular report + Array1D VpzHtgSumBySys; // sum of saved value of heating based ZonePA which is Vpz-sum used in 62.1 tabular report + Array1D PzSumBySys; // sum of design people for system, Pz_sum + Array1D PsBySys; // sum of peak concurrent people by system, Ps + Array1D DBySys; // Population Diversity by system + Array1D SumRpxPzBySys; // Sum of per person OA times number of people by system, No D yet + Array1D SumRaxAzBySys; // sum of per area OA time zone area by system, does not get altered by D + Array1D PeakPsOccurrenceDateTimeStringBySys; // string describing when Ps peak occurs + Array1D PeakPsOccurrenceEnvironmentStringBySys; // string describing Environment when Ps peak occurs + Array1D VouBySys; // uncorrected system outdoor air requirement, for std 62.1 VRP + Array1D VpsClgBySys; // System primary airflow Vps, for cooling for std 62.1 VRP + Array1D VpsHtgBySys; // system primary airflow Vps, for heating for std 62.1 VRP + Array1D FaByZoneHeat; // saved value of Fa used in 62.1 tabular report + Array1D FbByZoneCool; // saved value of Fb used in 62.1 tabular report + Array1D FbByZoneHeat; // saved value of Fb used in 62.1 tabular report + Array1D FcByZoneCool; // saved value of Fc used in 62.1 tabular report + Array1D FcByZoneHeat; // saved value of Fc used in 62.1 tabular report + Array1D XsBySysCool; // saved value of Xs used in 62.1 tabular report + Array1D XsBySysHeat; // saved value of Xs used in 62.1 tabular report + Array1D EvzByZoneCool; // saved value of Evz (zone vent effy) used in 62.1 tabular report + Array1D EvzByZoneHeat; // saved value of Evz (zone vent effy) used in 62.1 tabular report + Array1D EvzByZoneCoolPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report + Array1D EvzByZoneHeatPrev; // saved value of Evz (zone vent effy) used in 62.1 tabular report + Array1D VotClgBySys; // saved value of cooling ventilation required at primary AHU, used in 62.1 tabular report + Array1D VotHtgBySys; // saved value of heating ventilation required at primary AHU, used in 62.1 tabular report + Array1D VozSumClgBySys; // saved value of cooling ventilation required at clg zones + Array1D VozSumHtgBySys; // saved value of cooling ventilation required at htg zones + Array1D TotCoolCapTemp; // scratch variable used for calculating peak load [W] + Array1D EvzMinBySysHeat; // saved value of EvzMin used in 62.1 tabular report + Array1D EvzMinBySysCool; // saved value of EvzMin used in 62.1 tabular report + Array1D FaByZoneCool; // triggers allocation in UpdateSysSizing + Array1D SensCoolCapTemp; // triggers allocation in UpdateSysSizing void clear_state() override { - + this->NumOARequirements = 0; + this->NumZoneAirDistribution = 0; + this->NumZoneSizingInput = 0; + this->NumSysSizInput = 0; + this->NumPltSizInput = 0; + this->CurSysNum = 0; + this->CurOASysNum = 0; + this->CurZoneEqNum = 0; + this->CurTermUnitSizingNum = 0; + this->CurBranchNum = 0; + this->CurDuctType = 0; + this->CurLoopNum = 0; + this->CurCondLoopNum = 0; + this->CurEnvirNumSimDay = 0; + this->CurOverallSimDay = 0; + this->NumTimeStepsInAvg = 0; + this->SaveNumPlantComps = 0; + this->DataTotCapCurveIndex = 0; + this->DataTotCapCurveValue = 0; + this->DataPltSizCoolNum = 0; + this->DataPltSizHeatNum = 0; + this->DataWaterLoopNum = 0; + this->DataCoilNum = 0; + this->DataFanOpMode = 0; + this->DataCoilIsSuppHeater = false; + this->DataIsDXCoil = false; + this->DataAutosizable = true; + this->DataEMSOverrideON = false; + this->DataScalableSizingON = false; + this->DataScalableCapSizingON = false; + this->DataSysScalableFlowSizingON = false; + this->DataSysScalableCapSizingON = false; + this->SysSizingRunDone = false; + this->TermUnitSingDuct = false; + this->TermUnitPIU = false; + this->TermUnitIU = false; + this->ZoneEqFanCoil = false; + this->ZoneEqOutdoorAirUnit = false; + this->ZoneEqUnitHeater = false; + this->ZoneEqUnitVent = false; + this->ZoneEqVentedSlab = false; + this->ZoneEqDXCoil = false; + this->ZoneEqUnitarySys = false; + this->ZoneCoolingOnlyFan = false; + this->ZoneHeatingOnlyFan = false; + this->ZoneSizingRunDone = false; + this->DataErrorsFound = false; + this->AutoVsHardSizingThreshold = 0.1; + this->AutoVsHardSizingDeltaTempThreshold = 1.5; + this->DataCoilSizingAirInTemp = 0.0; + this->DataCoilSizingAirInHumRat = 0.0; + this->DataCoilSizingAirOutTemp = 0.0; + this->DataCoilSizingAirOutHumRat = 0.0; + this->DataCoilSizingFanCoolLoad = 0.0; + this->DataCoilSizingCapFT = 1.0; + this->DataDesAccountForFanHeat = true; + this->DataDesInletWaterTemp = 0.0; + this->DataDesInletAirHumRat = 0.0; + this->DataDesInletAirTemp = 0.0; + this->DataDesOutletAirTemp = 0.0; + this->DataDesOutletAirHumRat = 0.0; + this->DataCoolCoilCap = 0.0; + this->DataFlowUsedForSizing = 0.0; + this->DataAirFlowUsedForSizing = 0.0; + this->DataWaterFlowUsedForSizing = 0.0; + this->DataCapacityUsedForSizing = 0.0; + this->DataDesignCoilCapacity = 0.0; + this->DataHeatSizeRatio = 1.0; + this->DataEMSOverride = 0.0; + this->DataBypassFrac = 0.0; + this->DataFracOfAutosizedCoolingAirflow = 1.0; + this->DataFracOfAutosizedHeatingAirflow = 1.0; + this->DataFlowPerCoolingCapacity = 0.0; + this->DataFlowPerHeatingCapacity = 0.0; + this->DataFracOfAutosizedCoolingCapacity = 1.0; + this->DataFracOfAutosizedHeatingCapacity = 1.0; + this->DataAutosizedCoolingCapacity = 0.0; + this->DataAutosizedHeatingCapacity = 0.0; + this->DataConstantUsedForSizing = 0.0; + this->DataFractionUsedForSizing = 0.0; + this->DataNonZoneNonAirloopValue = 0.0; + this->DataSizingFraction = 1.0; + this->DataZoneUsedForSizing = 0; + this->DataZoneNumber = 0; + this->NumZoneHVACSizing = 0; + this->NumAirTerminalSizingSpec = 0; + this->NumAirTerminalUnits = 0; + this->DXCoolCap = 0.0; + this->GlobalHeatSizingFactor = 0.0; + this->GlobalCoolSizingFactor = 0.0; + this->SuppHeatCap = 0.0; + this->UnitaryHeatCap = 0.0; + this->ZoneSizThermSetPtHi.deallocate(); + this->ZoneSizThermSetPtLo.deallocate(); + this->CoolPeakDateHrMin.deallocate(); + this->HeatPeakDateHrMin.deallocate(); + this->SizingFileColSep = char(); + this->DataDesicDehumNum = 0; + this->DataDesicRegCoil = false; + this->HRFlowSizingFlag = false; + this->DataWaterCoilSizCoolDeltaT = 0.0; + this->DataWaterCoilSizHeatDeltaT = 0.0; + this->DataNomCapInpMeth = false; + this->DataFanEnumType = -1; + this->DataFanIndex = -1; + this->DataFanPlacement = DataSizing::zoneFanPlacement::zoneFanPlaceNotSet; + this->DataDXSpeedNum = 0; + this->OARequirements.deallocate(); + this->ZoneAirDistribution.deallocate(); + this->ZoneSizingInput.deallocate(); + this->ZoneSizing.deallocate(); + this->FinalZoneSizing.deallocate(); + this->CalcZoneSizing.deallocate(); + this->CalcFinalZoneSizing.deallocate(); + this->TermUnitFinalZoneSizing.deallocate(); + this->SysSizInput.deallocate(); + this->SysSizing.deallocate(); + this->FinalSysSizing.deallocate(); + this->CalcSysSizing.deallocate(); + this->SysSizPeakDDNum.deallocate(); + this->TermUnitSizing.deallocate(); + this->ZoneEqSizing.deallocate(); + this->UnitarySysEqSizing.deallocate(); + this->OASysEqSizing.deallocate(); + this->PlantSizData.deallocate(); + this->DesDayWeath.deallocate(); + this->CompDesWaterFlow.deallocate(); + this->ZoneHVACSizing.deallocate(); + this->AirTerminalSizingSpec.deallocate(); + this->CalcFacilitySizing.deallocate(); + this->CalcFinalFacilitySizing = DataSizing::FacilitySizingData(); + this->VbzByZone.deallocate(); + this->VdzClgByZone.deallocate(); + this->VdzMinClgByZone.deallocate(); + this->VdzHtgByZone.deallocate(); + this->VdzMinHtgByZone.deallocate(); + this->ZdzClgByZone.deallocate(); + this->ZdzHtgByZone.deallocate(); + this->VpzClgByZone.deallocate(); + this->VpzMinClgByZone.deallocate(); + this->VpzHtgByZone.deallocate(); + this->VpzMinHtgByZone.deallocate(); + this->VpzClgSumBySys.deallocate(); + this->VpzHtgSumBySys.deallocate(); + this->PzSumBySys.deallocate(); + this->PsBySys.deallocate(); + this->DBySys.deallocate(); + this->SumRpxPzBySys.deallocate(); + this->SumRaxAzBySys.deallocate(); + this->PeakPsOccurrenceDateTimeStringBySys.deallocate(); + this->PeakPsOccurrenceEnvironmentStringBySys.deallocate(); + this->VouBySys.deallocate(); + this->VpsClgBySys.deallocate(); + this->VpsHtgBySys.deallocate(); + this->FaByZoneHeat.deallocate(); + this->FbByZoneCool.deallocate(); + this->FbByZoneHeat.deallocate(); + this->FcByZoneCool.deallocate(); + this->FcByZoneHeat.deallocate(); + this->XsBySysCool.deallocate(); + this->XsBySysHeat.deallocate(); + this->EvzByZoneCool.deallocate(); + this->EvzByZoneHeat.deallocate(); + this->EvzByZoneCoolPrev.deallocate(); + this->EvzByZoneHeatPrev.deallocate(); + this->VotClgBySys.deallocate(); + this->VotHtgBySys.deallocate(); + this->VozSumClgBySys.deallocate(); + this->VozSumHtgBySys.deallocate(); + this->TotCoolCapTemp.deallocate(); + this->EvzMinBySysHeat.deallocate(); + this->EvzMinBySysCool.deallocate(); + this->FaByZoneCool.deallocate(); + this->SensCoolCapTemp.deallocate(); } }; diff --git a/src/EnergyPlus/DataZoneEquipment.cc b/src/EnergyPlus/DataZoneEquipment.cc index b8ab3a52e1c..caca4087ca4 100644 --- a/src/EnergyPlus/DataZoneEquipment.cc +++ b/src/EnergyPlus/DataZoneEquipment.cc @@ -159,6 +159,8 @@ namespace EnergyPlus::DataZoneEquipment { int Loop1; int Loop2; + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + struct EquipListAudit { // Members @@ -805,13 +807,13 @@ namespace EnergyPlus::DataZoneEquipment { // Allocate TermUnitSizing array and set zone number if (locTermUnitSizingCounter > 0) { - DataSizing::NumAirTerminalUnits = locTermUnitSizingCounter; - DataSizing::TermUnitSizing.allocate(DataSizing::NumAirTerminalUnits); + state.dataSize->NumAirTerminalUnits = locTermUnitSizingCounter; + TermUnitSizing.allocate(state.dataSize->NumAirTerminalUnits); for (int loopZoneNum = 1; loopZoneNum <= state.dataGlobal->NumOfZones; ++loopZoneNum) { { auto &thisZoneEqConfig(state.dataZoneEquip->ZoneEquipConfig(loopZoneNum)); for (int loopNodeNum = 1; loopNodeNum <= thisZoneEqConfig.NumInletNodes; ++loopNodeNum) { - DataSizing::TermUnitSizing(thisZoneEqConfig.AirDistUnitCool(loopNodeNum).TermUnitSizingIndex).CtrlZoneNum = loopZoneNum; + TermUnitSizing(thisZoneEqConfig.AirDistUnitCool(loopNodeNum).TermUnitSizingIndex).CtrlZoneNum = loopZoneNum; } } } @@ -1300,7 +1302,6 @@ namespace EnergyPlus::DataZoneEquipment { using DataSizing::OAFlowPerArea; using DataSizing::OAFlowPPer; using DataSizing::OAFlowSum; - using DataSizing::OARequirements; // to access DesignSpecification:OutdoorAir inputs using DataSizing::ZOAM_IAQP; using DataSizing::ZOAM_ProportionalControlDesOcc; using DataSizing::ZOAM_ProportionalControlSchOcc; @@ -1309,6 +1310,7 @@ namespace EnergyPlus::DataZoneEquipment { using ScheduleManager::GetScheduleMaxValue; auto &Zone(state.dataHeatBal->Zone); + auto &OARequirements(state.dataSize->OARequirements); // Return value Real64 OAVolumeFlowRate; // Return value for calculated outdoor air volume flow rate [m3/s] @@ -1339,7 +1341,7 @@ namespace EnergyPlus::DataZoneEquipment { if (DSOAPtr == 0) return OAVolumeFlowRate; if (state.dataZoneEquip->CalcDesignSpecificationOutdoorAirOneTimeFlag) { - MyEnvrnFlag.allocate(DataSizing::NumOARequirements); + MyEnvrnFlag.allocate(state.dataSize->NumOARequirements); MyEnvrnFlag = true; state.dataZoneEquip->CalcDesignSpecificationOutdoorAirOneTimeFlag = false; } diff --git a/src/EnergyPlus/DaylightingManager.cc b/src/EnergyPlus/DaylightingManager.cc index 143d72c2af9..9a779ee86d7 100644 --- a/src/EnergyPlus/DaylightingManager.cc +++ b/src/EnergyPlus/DaylightingManager.cc @@ -7013,7 +7013,7 @@ namespace EnergyPlus::DaylightingManager { } state.dataDaylightingData->ZoneDaylight(ZoneNum).ZonePowerReductionFactor = TotReduction; - // IF(DataDaylighting::TotIllumMaps > 0 .and. .not. state.dataGlobal->DoingSizing .and. .not. WarmupFlag .and. .not. KickoffSimulation) THEN + // IF(DataDaylighting::TotIllumMaps > 0 .and. .not. DoingSizing .and. .not. WarmupFlag .and. .not. KickoffSimulation) THEN if (state.dataDaylightingData->TotIllumMaps > 0 && !state.dataGlobal->DoingSizing && !state.dataGlobal->WarmupFlag) { // If an illuminance map is associated with this zone, generate the map if (state.dataGlobal->TimeStep == 1) state.dataDaylightingData->mapResultsToReport = false; diff --git a/src/EnergyPlus/DualDuct.cc b/src/EnergyPlus/DualDuct.cc index bbb1ac19652..544dcf4ff7c 100644 --- a/src/EnergyPlus/DualDuct.cc +++ b/src/EnergyPlus/DualDuct.cc @@ -210,7 +210,7 @@ namespace DualDuct { auto &thisDualDuct(dd_airterminal(DDNum)); if (CompIndex > 0) { - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(thisDualDuct.ADUNum).TermUnitSizingNum; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(thisDualDuct.ADUNum).TermUnitSizingNum; // With the correct DDNum Initialize thisDualDuct.InitDualDuct(state, FirstHVACIteration); // Initialize all Damper related parameters @@ -554,7 +554,7 @@ namespace DualDuct { } } if (!lAlphaBlanks(6)) { - dd_airterminal(DDNum).OARequirementsPtr = UtilityRoutines::FindItemInList(AlphArray(6), OARequirements); + dd_airterminal(DDNum).OARequirementsPtr = UtilityRoutines::FindItemInList(AlphArray(6), state.dataSize->OARequirements); if (dd_airterminal(DDNum).OARequirementsPtr == 0) { ShowSevereError(state, cAlphaFields(6) + " = " + AlphArray(6) + " not found."); ShowContinueError(state, "Occurs in " + cCMO_DDVariableVolume + " = " + dd_airterminal(DDNum).Name); @@ -739,7 +739,7 @@ namespace DualDuct { } } } - dd_airterminal(DDNum).OARequirementsPtr = UtilityRoutines::FindItemInList(AlphArray(6), OARequirements); + dd_airterminal(DDNum).OARequirementsPtr = UtilityRoutines::FindItemInList(AlphArray(6), state.dataSize->OARequirements); if (dd_airterminal(DDNum).OARequirementsPtr == 0) { ShowSevereError(state, cAlphaFields(6) + " = " + AlphArray(6) + " not found."); ShowContinueError(state, "Occurs in " + cCMO_DDVarVolOA + " = " + dd_airterminal(DDNum).Name); @@ -780,7 +780,7 @@ namespace DualDuct { } if (dd_airterminal(DDNum).OAPerPersonMode == PerPersonModeNotSet) { - DummyOAFlow = OARequirements(dd_airterminal(DDNum).OARequirementsPtr).OAFlowPerPerson; + DummyOAFlow = state.dataSize->OARequirements(dd_airterminal(DDNum).OARequirementsPtr).OAFlowPerPerson; if ((DummyOAFlow == 0.0) && (lAlphaBlanks(7))) { // no worries // do nothing, okay since no per person requirement involved } else if ((DummyOAFlow > 0.0) && (lAlphaBlanks(7))) { // missing input @@ -951,9 +951,9 @@ namespace DualDuct { PeopleFlow = 0.0; for (Loop = 1; Loop <= state.dataHeatBal->TotPeople; ++Loop) { if (state.dataHeatBal->People(Loop).ZonePtr != this->ActualZoneNum) continue; - int damperOAFlowMethod = OARequirements(this->OARequirementsPtr).OAFlowMethod; + int damperOAFlowMethod = state.dataSize->OARequirements(this->OARequirementsPtr).OAFlowMethod; if (damperOAFlowMethod == OAFlowPPer || damperOAFlowMethod == OAFlowSum || damperOAFlowMethod == OAFlowMax) { - PeopleFlow += state.dataHeatBal->People(Loop).NumberOfPeople * OARequirements(this->OARequirementsPtr).OAFlowPerPerson; + PeopleFlow += state.dataHeatBal->People(Loop).NumberOfPeople * state.dataSize->OARequirements(this->OARequirementsPtr).OAFlowPerPerson; } } this->OAPerPersonByDesignLevel = PeopleFlow; @@ -1140,7 +1140,7 @@ namespace DualDuct { if (this->MaxAirVolFlowRate == AutoSize) { - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if ((state.dataSize->CurZoneEqNum > 0) && (state.dataSize->CurTermUnitSizingNum > 0)) { if (this->DamperType == DualDuct_ConstantVolume) { DamperType = cCMO_DDConstantVolume; } else if (this->DamperType == DualDuct_VariableVolume) { @@ -1152,11 +1152,11 @@ namespace DualDuct { } CheckZoneSizing(state, DamperType, this->Name); this->MaxAirVolFlowRate = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); if (this->DamperType == DualDuct_OutdoorAir) { if (this->RecircIsUsed) { - this->DesignRecircFlowRate = max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + this->DesignRecircFlowRate = max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); this->MaxAirVolFlowRate = this->DesignRecircFlowRate + this->DesignOAFlowRate; } else { this->MaxAirVolFlowRate = this->DesignOAFlowRate; diff --git a/src/EnergyPlus/ElectricBaseboardRadiator.cc b/src/EnergyPlus/ElectricBaseboardRadiator.cc index 6192c2d49b3..38e3c3bafe2 100644 --- a/src/EnergyPlus/ElectricBaseboardRadiator.cc +++ b/src/EnergyPlus/ElectricBaseboardRadiator.cc @@ -711,43 +711,45 @@ namespace ElectricBaseboardRadiator { int CapSizingMethod(0); // capacity sizing methods (HeatingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity, and // FractionOfAutosizedHeatingCapacity ) - DataScalableCapSizingON = false; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); - if (CurZoneEqNum > 0) { + state.dataSize->DataScalableCapSizingON = false; + + if (state.dataSize->CurZoneEqNum > 0) { CompType = cCMO_BBRadiator_Electric; CompName = ElecBaseboard(BaseboardNum).EquipName; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = ElecBaseboard(BaseboardNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = ElecBaseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = true; SizingString = ElecBaseboardNumericFields(BaseboardNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = ElecBaseboard(BaseboardNum).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { if (ElecBaseboard(BaseboardNum).ScaledHeatingCapacity == AutoSize) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } else { - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; } - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; TempSize = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + if (state.dataSize->ZoneSizingRunDone) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } - TempSize = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + TempSize = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; FracOfAutoSzCap = AutoSize; bool ErrorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; @@ -755,8 +757,8 @@ namespace ElectricBaseboardRadiator { sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); FracOfAutoSzCap = sizerHeatingCapacity.size(state, FracOfAutoSzCap, ErrorsFound); TempSize = FracOfAutoSzCap; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = ElecBaseboard(BaseboardNum).ScaledHeatingCapacity; } @@ -765,7 +767,7 @@ namespace ElectricBaseboardRadiator { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); ElecBaseboard(BaseboardNum).NominalCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } } } diff --git a/src/EnergyPlus/EvaporativeCoolers.cc b/src/EnergyPlus/EvaporativeCoolers.cc index dcd688348c6..21c97e5ba63 100644 --- a/src/EnergyPlus/EvaporativeCoolers.cc +++ b/src/EnergyPlus/EvaporativeCoolers.cc @@ -117,7 +117,7 @@ namespace EvaporativeCoolers { using namespace ScheduleManager; using namespace Psychrometrics; using namespace DataGlobalConstants; - + void SimEvapCooler(EnergyPlusData &state, std::string const &CompName, int &CompIndex, Real64 const ZoneEvapCoolerPLR) { @@ -1056,20 +1056,23 @@ namespace EvaporativeCoolers { PadDepthDes = 0.0; PadDepthUser = 0.0; + auto &CurSysNum(state.dataSize->CurSysNum); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); auto &EvapCond(state.dataEvapCoolers->EvapCond); - if (SysSizingRunDone || ZoneSizingRunDone) { + if (state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone) { HardSizeNoDesRun = false; } else { HardSizeNoDesRun = true; } if (CurSysNum > 0) { - CheckThisAirSystemForSizing(CurSysNum, SizingDesRunThisAirSys); + CheckThisAirSystemForSizing(state, CurSysNum, SizingDesRunThisAirSys); } else { SizingDesRunThisAirSys = false; } if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + CheckThisZoneForSizing(state, CurZoneEqNum, SizingDesRunThisZone); } else { SizingDesRunThisZone = false; } @@ -1155,7 +1158,7 @@ namespace EvaporativeCoolers { } } else { // Autosize or hardsize with design data // zone equip evap coolers - IndirectVolFlowRateDes = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + IndirectVolFlowRateDes = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; // apply scaling factor the secondary air fan flow rate if (EvapCond(EvapCoolNum).evapCoolerType == EvapCoolerType::IndirectRDDSpecial) { IndirectVolFlowRateDes = IndirectVolFlowRateDes * EvapCond(EvapCoolNum).IndirectVolFlowScalingFactor; @@ -1185,7 +1188,7 @@ namespace EvaporativeCoolers { "User-Specified Secondary Fan Flow Rate [m3/s]", IndirectVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(IndirectVolFlowRateDes - IndirectVolFlowRateUser) / IndirectVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(IndirectVolFlowRateDes - IndirectVolFlowRateUser) / IndirectVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEvaporativeCooler:Indirect:ResearchSpecial: Potential issue with equipment sizing for " + EvapCond(EvapCoolNum).EvapCoolerName); ShowContinueError(state, format("User-Specified Secondary Fan Flow Rate of {:.5R} [m3/s]", IndirectVolFlowRateUser)); @@ -1233,7 +1236,7 @@ namespace EvaporativeCoolers { //"User-Specified Secondary Fan Flow Rate [m3/s]", EvapCond( EvapCoolNum ).VolFlowRate ); //} } else { // Autosize or hardsize with design data - volFlowRateDes = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + volFlowRateDes = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; } } else { // zone equipment @@ -1324,7 +1327,7 @@ namespace EvaporativeCoolers { } } else { // Autosize or hardsize with design data // zone equip evap coolers - IndirectVolFlowRateDes = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + IndirectVolFlowRateDes = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; // Face air velocity of 3m/s is assumed PadAreaDes = IndirectVolFlowRateDes / 3.0; } @@ -1346,7 +1349,7 @@ namespace EvaporativeCoolers { "User-Specified Celdek Pad Area [m2]", PadAreaUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(PadAreaDes - PadAreaUser) / PadAreaUser) > AutoVsHardSizingThreshold) { + if ((std::abs(PadAreaDes - PadAreaUser) / PadAreaUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEvaporativeCooler:Direct:CelDekPad: Potential issue with equipment sizing for " + EvapCond(EvapCoolNum).EvapCoolerName); ShowContinueError(state, format("User-Specified Celdek Pad Area of{:.2R} [m2]", PadAreaUser)); @@ -1385,7 +1388,7 @@ namespace EvaporativeCoolers { "User-Specified Celdek Pad Depth [m]", PadDepthUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(PadDepthDes - PadDepthUser) / PadDepthUser) > AutoVsHardSizingThreshold) { + if ((std::abs(PadDepthDes - PadDepthUser) / PadDepthUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEvaporativeCooler:Direct:CelDekPad: Potential issue with equipment sizing for " + EvapCond(EvapCoolNum).EvapCoolerName); ShowContinueError(state, format("User-Specified Celdek Pad Depth of{:.2R} [m]", PadDepthUser)); @@ -1455,7 +1458,7 @@ namespace EvaporativeCoolers { } } else { // Autosize or hardsize with design data // zone equip evap coolers - IndirectVolFlowRateDes = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + IndirectVolFlowRateDes = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; // Face air velocity of 3m/s is assumed PadAreaDes = IndirectVolFlowRateDes / 3.0; } @@ -1477,7 +1480,7 @@ namespace EvaporativeCoolers { "User-Specified Celdek Pad Area [m2]", PadAreaUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(PadAreaDes - PadAreaUser) / PadAreaUser) > AutoVsHardSizingThreshold) { + if ((std::abs(PadAreaDes - PadAreaUser) / PadAreaUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEvaporativeCooler:Indirect:CelDekPad: Potential issue with equipment sizing for " + EvapCond(EvapCoolNum).EvapCoolerName); ShowContinueError(state, format("User-Specified Celdek Pad Area {:.2R} [m2]", PadAreaUser)); @@ -1514,7 +1517,7 @@ namespace EvaporativeCoolers { "User-Specified Celdek Pad Depth [m]", PadDepthUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(PadDepthDes - PadDepthUser) / PadDepthUser) > AutoVsHardSizingThreshold) { + if ((std::abs(PadDepthDes - PadDepthUser) / PadDepthUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEvaporativeCooler:Indirect:CelDekPad: Potential issue with equipment sizing for " + EvapCond(EvapCoolNum).EvapCoolerName); ShowContinueError(state, format("User-Specified Celdek Pad Depth of{:.2R} [m]", PadDepthUser)); @@ -1990,7 +1993,7 @@ namespace EvaporativeCoolers { Real64 PartLoadFrac; Real64 DesOutTemp; // Set local variables - + auto &EvapCond(state.dataEvapCoolers->EvapCond); // Retrieve the load on the controlled zone @@ -3423,7 +3426,6 @@ namespace EvaporativeCoolers { // Using/Aliasing using BranchNodeConnections::SetUpCompSets; - using DataSizing::ZoneHVACSizing; using Fans::GetFanAvailSchPtr; using Fans::GetFanIndex; using Fans::GetFanInletNode; @@ -3699,7 +3701,7 @@ namespace EvaporativeCoolers { ZoneEvapUnit(UnitLoop).HVACSizingIndex = 0; if (!lAlphaBlanks(15)) { - ZoneEvapUnit(UnitLoop).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(15), ZoneHVACSizing); + ZoneEvapUnit(UnitLoop).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(15), state.dataSize->ZoneHVACSizing); if (ZoneEvapUnit(UnitLoop).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(15) + " = " + Alphas(15) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + ZoneEvapUnit(UnitLoop).Name); @@ -4027,36 +4029,14 @@ namespace EvaporativeCoolers { // MODIFIED January 2013 Daeho Kang, add component sizing table entries // RE-ENGINEERED na - // PURPOSE OF THIS SUBROUTINE: - // - - // METHODOLOGY EMPLOYED: - // - - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; using DataHVACGlobals::CoolingCapacitySizing; using DataSizing::AutoSize; - using DataSizing::AutoVsHardSizingThreshold; - using DataSizing::CurZoneEqNum; - using DataSizing::FinalZoneSizing; - using DataSizing::ZoneSizingRunDone; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeZoneEvaporativeCoolerUnit: "); // include trailing blank space - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: std::string CompName; // component name std::string CompType; // component type @@ -4071,46 +4051,49 @@ namespace EvaporativeCoolers { auto &ZoneEvapUnit(state.dataEvapCoolers->ZoneEvapUnit); - DataScalableSizingON = false; - ZoneHeatingOnlyFan = false; - ZoneCoolingOnlyFan = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->ZoneHeatingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; CompType = "ZoneHVAC:EvaporativeCoolerUnit"; CompName = ZoneEvapUnit(UnitNum).Name; - DataZoneNumber = ZoneEvapUnit(UnitNum).ZonePtr; + state.dataSize->DataZoneNumber = ZoneEvapUnit(UnitNum).ZonePtr; PrintFlag = true; bool errorsFound = false; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + if (CurZoneEqNum > 0) { if (ZoneEvapUnit(UnitNum).HVACSizingIndex > 0) { - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; zoneHVACIndex = ZoneEvapUnit(UnitNum).HVACSizingIndex; SizingMethod = DataHVACGlobals::CoolingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { PrintFlag = false; } } else if (SAFMethod == FlowPerFloorArea) { ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } CoolingAirFlowSizer sizingCoolingAirFlow; @@ -4124,16 +4107,16 @@ namespace EvaporativeCoolers { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; @@ -4144,13 +4127,13 @@ namespace EvaporativeCoolers { sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); ZoneEvapUnit(UnitNum).DesignAirVolumeFlowRate = sizingCoolingAirFlow.size(state, TempSize, errorsFound); } - DataScalableSizingON = false; - ZoneCoolingOnlyFan = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->ZoneCoolingOnlyFan = false; } else { // no scalble sizing method has been specified. Sizing proceeds using the method // specified in the zoneHVAC object // N1 , \field Maximum Supply Air Flow Rate - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; if (ZoneEvapUnit(UnitNum).DesignAirVolumeFlowRate > 0.0) { PrintFlag = false; } @@ -4161,7 +4144,7 @@ namespace EvaporativeCoolers { sizingCoolingAirFlow.overrideSizingString(stringOverride); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); ZoneEvapUnit(UnitNum).DesignAirVolumeFlowRate = sizingCoolingAirFlow.size(state, TempSize, errorsFound); - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; } } } @@ -4194,7 +4177,7 @@ namespace EvaporativeCoolers { { auto &ZoneEvapUnit(state.dataEvapCoolers->ZoneEvapUnit); - + if (ZoneEvapUnit(UnitNum).ControlSchemeType == ControlType::ZoneTemperatureDeadBandOnOffCycling) { ZoneTemp = Node(ZoneEvapUnit(UnitNum).ZoneNodeNum).Temp; CoolSetLowThrottle = ZoneThermostatSetPointHi(ZoneNum) - (0.5 * ZoneEvapUnit(UnitNum).ThrottlingRange); diff --git a/src/EnergyPlus/EvaporativeFluidCoolers.cc b/src/EnergyPlus/EvaporativeFluidCoolers.cc index 623b99bf55e..01f078065d8 100644 --- a/src/EnergyPlus/EvaporativeFluidCoolers.cc +++ b/src/EnergyPlus/EvaporativeFluidCoolers.cc @@ -1053,7 +1053,7 @@ namespace EvaporativeFluidCoolers { this->setupOutputVars(state); - this->FluidIndex = state.dataPlnt->PlantLoop(DataSizing::CurLoopNum).FluidIndex; + this->FluidIndex = state.dataPlnt->PlantLoop(state.dataSize->CurLoopNum).FluidIndex; std::string FluidName = FluidProperties::GetGlycolNameByIndex(this->FluidIndex); if (UtilityRoutines::SameString(this->PerformanceInputMethod, "STANDARDDESIGNCAPACITY")) { @@ -1062,7 +1062,7 @@ namespace EvaporativeFluidCoolers { ShowSevereError(state, DataIPShortCuts::cCurrentModuleObject + " = \"" + this->Name + R"(". StandardDesignCapacity performance input method is only valid for fluid type = "Water".)"); ShowContinueError(state, "Currently, Fluid Type = " + FluidName + - " in CondenserLoop = " + state.dataPlnt->PlantLoop(DataSizing::CurLoopNum).Name); + " in CondenserLoop = " + state.dataPlnt->PlantLoop(state.dataSize->CurLoopNum).Name); ErrorsFound = true; } } @@ -1215,8 +1215,8 @@ namespace EvaporativeFluidCoolers { if (this->DesignWaterFlowRateWasAutoSized && this->PerformanceInputMethod_Num != PIM::StandardDesignCapacity) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpDesignWaterFlowRate = DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpDesignWaterFlowRate = state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate * this->SizFac; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->DesignWaterFlowRate = tmpDesignWaterFlowRate; } else { @@ -1246,12 +1246,12 @@ namespace EvaporativeFluidCoolers { } else { DesignEnteringAirWetBulb = this->DesignEnteringAirWetBulbTemp; } - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= DesignEnteringAirWetBulb) { + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= DesignEnteringAirWetBulb) { ShowSevereError(state, "Error when autosizing the UA value for Evaporative Fluid Cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than design entering air wet-bulb temperature " "({:.2R} C) when autosizing the Evaporative Fluid Cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, DesignEnteringAirWetBulb)); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = Design Entering Air Wet-bulb Temp plus the Evaporative " "Fluid Cooler design approach temperature (e.g., 4 C)."); @@ -1270,10 +1270,10 @@ namespace EvaporativeFluidCoolers { CalledFrom); Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; this->HighSpeedStandardDesignCapacity = DesEvapFluidCoolerLoad / this->HeatRejectCapNomCapSizingRatio; } else { this->HighSpeedStandardDesignCapacity = 0.0; @@ -1318,7 +1318,7 @@ namespace EvaporativeFluidCoolers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNodeNum, tmpDesignWaterFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNodeNum, tmpDesignWaterFlowRate); if (this->HighSpeedFanPowerWasAutoSized) { // We assume the nominal fan power is 0.0105 times the design load @@ -1333,7 +1333,7 @@ namespace EvaporativeFluidCoolers { tmpHighSpeedFanPower = 0.0105 * DesEvapFluidCoolerLoad; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedFanPower = tmpHighSpeedFanPower; } else if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -1341,10 +1341,10 @@ namespace EvaporativeFluidCoolers { CalledFrom); Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; tmpHighSpeedFanPower = 0.0105 * DesEvapFluidCoolerLoad; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedFanPower = tmpHighSpeedFanPower; } else { @@ -1416,17 +1416,17 @@ namespace EvaporativeFluidCoolers { if (this->HighSpeedEvapFluidCoolerUAWasAutoSized && state.dataPlnt->PlantFirstSizesOkayToFinalize && this->PerformanceInputMethod_Num == PIM::UFactor) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { // This conditional statement is to trap when the user specified Condenser/Evaporative Fluid Cooler water design setpoint // temperature is less than design inlet air wet bulb temperature of 25.6 C - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= 25.6) { + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= 25.6) { ShowSevereError(state, "Error when autosizing the UA value for Evaporative Fluid Cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than 25.6 C when autosizing the " "Evaporative Fluid Cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError(state, "The Design Loop Exit Temperature specified in Sizing:Plant object = " + - DataSizing::PlantSizData(PltSizCondNum).PlantLoopName); + state.dataSize->PlantSizData(PltSizCondNum).PlantLoopName); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = 25.6 C plus the Evaporative Fluid Cooler design " "approach temperature (e.g., 4 C)."); ShowContinueError(state, "If using HVACTemplate:Plant:ChilledWaterLoop, then check that input field Condenser Water Design Setpoint " @@ -1440,10 +1440,10 @@ namespace EvaporativeFluidCoolers { CalledFrom); Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesEvapFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; Par(1) = DesEvapFluidCoolerLoad; Par(2) = rho * tmpDesignWaterFlowRate; // Design water mass flow rate Par(3) = tmpHighSpeedAirFlowRate; // Design air volume flow rate @@ -1452,7 +1452,7 @@ namespace EvaporativeFluidCoolers { // Lower bound for UA [W/C] Real64 UA0 = 0.0001 * DesEvapFluidCoolerLoad; // Assume deltaT = 10000K (limit) Real64 UA1 = DesEvapFluidCoolerLoad; // Assume deltaT = 1K - this->inletConds.WaterTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; + this->inletConds.WaterTemp = state.dataSize->PlantSizData(PltSizCondNum).ExitTemp + state.dataSize->PlantSizData(PltSizCondNum).DeltaT; this->inletConds.AirTemp = 35.0; this->inletConds.AirWetBulb = 25.6; this->inletConds.AirPress = state.dataEnvrn->StdBaroPress; @@ -1491,10 +1491,10 @@ namespace EvaporativeFluidCoolers { ShowContinueError(state, "Inputs to the plant sizing object:"); ShowContinueError(state, format("Design Exit Water Temp [C] = {:.2R}", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError(state, format("Loop Design Temperature Difference [C] = {:.2R}", - DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + state.dataSize->PlantSizData(PltSizCondNum).DeltaT)); ShowContinueError( state, format("Design Evaporative Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->inletConds.WaterTemp)); ShowContinueError( @@ -1673,10 +1673,10 @@ namespace EvaporativeFluidCoolers { ShowContinueError(state, "Inputs to the plant sizing object:"); ShowContinueError(state, format("Design Exit Water Temp [C] = {:.2R}", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError(state, format("Loop Design Temperature Difference [C] = {:.2R}", - DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + state.dataSize->PlantSizData(PltSizCondNum).DeltaT)); ShowContinueError(state, format("Design Evaporative Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->inletConds.WaterTemp)); ShowContinueError(state, @@ -1860,7 +1860,7 @@ namespace EvaporativeFluidCoolers { ShowContinueError(state, format("Design Evaporative Fluid Cooler Water Inlet Temp = {:.2R}", this->inletConds.WaterTemp)); ShowContinueError( state, - format("Design Exit Water Temp = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + format("Design Exit Water Temp = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError(state, format("Design Evaporative Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->inletConds.WaterTemp)); ShowContinueError(state, format("Calculated water outlet temperature at low UA({:.2R}) = {:.2R}", UA0, OutWaterTempAtUA0)); ShowContinueError(state, format("Calculated water outlet temperature at high UA({:.2R}) = {:.2R}", UA1, OutWaterTempAtUA1)); diff --git a/src/EnergyPlus/FanCoilUnits.cc b/src/EnergyPlus/FanCoilUnits.cc index 57b1f8b987d..ecb208e3d6c 100644 --- a/src/EnergyPlus/FanCoilUnits.cc +++ b/src/EnergyPlus/FanCoilUnits.cc @@ -268,7 +268,7 @@ namespace FanCoilUnits { } } - ZoneEqFanCoil = true; + state.dataSize->ZoneEqFanCoil = true; // Initialize the fan coil unit InitFanCoilUnits(state, FanCoilNum, ZoneNum, ControlledZoneNum); @@ -286,7 +286,7 @@ namespace FanCoilUnits { // Report the result of the simulation ReportFanCoilUnit(state, FanCoilNum); - ZoneEqFanCoil = false; + state.dataSize->ZoneEqFanCoil = false; } void GetFanCoilUnits(EnergyPlusData &state) @@ -323,7 +323,6 @@ namespace FanCoilUnits { using DataPlant::TypeOf_CoilWaterCooling; using DataPlant::TypeOf_CoilWaterDetailedFlatCooling; using DataPlant::TypeOf_CoilWaterSimpleHeating; - using DataSizing::ZoneHVACSizing; using HVACHXAssistedCoolingCoil::GetHXCoilTypeAndName; using MixedAir::GetOAMixerIndex; using MixedAir::GetOAMixerNodeNumbers; @@ -640,7 +639,7 @@ namespace FanCoilUnits { FanCoil(FanCoilNum).HVACSizingIndex = 0; if (!lAlphaBlanks(16)) { - FanCoil(FanCoilNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(16), ZoneHVACSizing); + FanCoil(FanCoilNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(16), state.dataSize->ZoneHVACSizing); if (FanCoil(FanCoilNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(16) + " = " + Alphas(16) + " not found."); ShowContinueError(state, "Occurs in " + cMO_FanCoil + " = " + FanCoil(FanCoilNum).Name); @@ -1451,41 +1450,43 @@ namespace FanCoilUnits { CoolingAirVolFlowDes = 0.0; HeatingAirVolFlowDes = 0.0; - ZoneHeatingOnlyFan = false; - ZoneCoolingOnlyFan = false; - DataScalableSizingON = false; - DataScalableCapSizingON = false; + state.dataSize->ZoneHeatingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedCoolingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedHeatingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; CompType = FanCoil(FanCoilNum).UnitType; CompName = FanCoil(FanCoilNum).Name; - DataZoneNumber = FanCoil(FanCoilNum).ControlZoneNum; + state.dataSize->DataZoneNumber = FanCoil(FanCoilNum).ControlZoneNum; if (FanCoil(FanCoilNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = FanCoil(FanCoilNum).FanIndex; + state.dataSize->DataFanIndex = FanCoil(FanCoilNum).FanIndex; // fan coil unit is always blow thru - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; - if (CurZoneEqNum > 0) { + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + + if (state.dataSize->CurZoneEqNum > 0) { if (FanCoil(FanCoilNum).HVACSizingIndex > 0) { // initialize OA flow for sizing other inputs (e.g., inlet temp, capacity, etc.) if (FanCoil(FanCoilNum).OutAirVolFlow == AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; } if (FanCoil(FanCoilNum).ATMixerExists) { // set up ATMixer conditions for scalable capacity sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, FanCoil(FanCoilNum).ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, FanCoil(FanCoilNum).ATMixerIndex, ControlledZoneNum, state.dataSize->CurZoneEqNum); } zoneHVACIndex = FanCoil(FanCoilNum).HVACSizingIndex; @@ -1493,28 +1494,28 @@ namespace FanCoilUnits { PrintFlag = true; SizingString = FanCoilNumericFields(FanCoilNum).FieldNames(FieldNum) + " [m3/s]"; if (state.dataGlobal->isEpJSON) SizingString = "maximum_supply_air_flow_rate [m3/s]"; - if (ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { SizingMethod = CoolingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); @@ -1529,43 +1530,43 @@ namespace FanCoilUnits { CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - if (ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); // sizingCoolingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolingAirVolFlowDes = sizingCoolingAirFlow.size(state, TempSize, ErrorsFound); } - } else if (ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { + } else if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { // now do heating supply air flow rate sizing SizingMethod = HeatingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -1577,23 +1578,23 @@ namespace FanCoilUnits { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; // initialize OA flow for sizing capacity if (FanCoil(FanCoilNum).OutAirVolFlow == AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; } bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } - DataAutosizedHeatingCapacity = TempSize; - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = TempSize; + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1606,7 +1607,7 @@ namespace FanCoilUnits { } } - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize || ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize || state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) { IsAutoSize = true; FanCoil(FanCoilNum).MaxAirVolFlow = AutoSize; MaxAirVolFlowDes = max(CoolingAirVolFlowDes, HeatingAirVolFlowDes); @@ -1630,9 +1631,9 @@ namespace FanCoilUnits { } } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { } else { if (MaxAirVolFlowDes < SmallAirVolFlow) { @@ -1667,7 +1668,7 @@ namespace FanCoilUnits { if (FanCoil(FanCoilNum).MaxAirVolFlow > 0.0 && MaxAirVolFlowDes > 0.0) { MaxAirVolFlowUser = FanCoil(FanCoilNum).MaxAirVolFlow; if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxAirVolFlowDes - MaxAirVolFlowUser) / MaxAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxAirVolFlowDes - MaxAirVolFlowUser) / MaxAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeFanCoilUnit: Potential issue with equipment sizing for " + FanCoil(FanCoilNum).UnitType + ' ' + FanCoil(FanCoilNum).Name); ShowContinueError(state, format("User-Specified Supply Air Maximum Flow Rate of {:.5R} [m3/s]", MaxAirVolFlowUser)); @@ -1706,8 +1707,8 @@ namespace FanCoilUnits { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (FanCoil(FanCoilNum).OutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, FanCoil(FanCoilNum).UnitType, FanCoil(FanCoilNum).Name, @@ -1716,7 +1717,7 @@ namespace FanCoilUnits { } } else { CheckZoneSizing(state, FanCoil(FanCoilNum).UnitType, FanCoil(FanCoilNum).Name); - OutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, FanCoil(FanCoilNum).MaxAirVolFlow); + OutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, FanCoil(FanCoilNum).MaxAirVolFlow); if (OutAirVolFlowDes < SmallAirVolFlow) { OutAirVolFlowDes = 0.0; } @@ -1734,7 +1735,7 @@ namespace FanCoilUnits { "User-Specified Maximum Outdoor Air Flow Rate [m3/s]", OutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeFanCoilUnit: Potential issue with equipment sizing for " + FanCoil(FanCoilNum).UnitType + ' ' + FanCoil(FanCoilNum).Name); ShowContinueError(state, format("User-Specified Maximum Outdoor Air Flow Rate of {:.5R} [m3/s]", OutAirVolFlowUser)); @@ -1747,11 +1748,11 @@ namespace FanCoilUnits { } } } - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; // sets OA frac in sizing + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow; // sets OA frac in sizing if (FanCoil(FanCoilNum).ATMixerExists) { // set up ATMixer conditions for use in component sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, FanCoil(FanCoilNum).ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, FanCoil(FanCoilNum).ATMixerIndex, ControlledZoneNum, state.dataSize->CurZoneEqNum); } } @@ -1762,8 +1763,8 @@ namespace FanCoilUnits { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (FanCoil(FanCoilNum).MaxHotWaterVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, FanCoil(FanCoilNum).UnitType, FanCoil(FanCoilNum).Name, @@ -1782,7 +1783,7 @@ namespace FanCoilUnits { DoWaterCoilSizing = true; } else { if (PltSizHeatNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizHeatNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizHeatNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -1794,51 +1795,51 @@ namespace FanCoilUnits { } if (DoWaterCoilSizing) { SizingMethod = HeatingCapacitySizing; - if (FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow > 0.0) { - FinalZoneSizing(CurZoneEqNum).DesHeatOAFlowFrac = - min(FanCoil(FanCoilNum).OutAirVolFlow / FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow, 1.0); + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatMassFlow > 0.0) { + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatOAFlowFrac = + min(FanCoil(FanCoilNum).OutAirVolFlow / state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatMassFlow, 1.0); } else { - FinalZoneSizing(CurZoneEqNum).DesHeatOAFlowFrac = 0.0; + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatOAFlowFrac = 0.0; } if (FanCoil(FanCoilNum).HVACSizingIndex > 0) { zoneHVACIndex = FanCoil(FanCoilNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad * ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad * state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = "Heating Design Capacity [W]"; @@ -1848,8 +1849,8 @@ namespace FanCoilUnits { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; - DataFlowUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->DataFlowUsedForSizing = 0.0; } else { SizingString = "Heating Design Capacity [W]"; @@ -1896,7 +1897,7 @@ namespace FanCoilUnits { "User-Specified Maximum Hot Water Flow [m3/s]", MaxHotWaterVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxHotWaterVolFlowDes - MaxHotWaterVolFlowUser) / MaxHotWaterVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxHotWaterVolFlowDes - MaxHotWaterVolFlowUser) / MaxHotWaterVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeFanCoilUnit: Potential issue with equipment sizing for " + FanCoil(FanCoilNum).UnitType + ' ' + FanCoil(FanCoilNum).Name); ShowContinueError(state, format("User-Specified Maximum Hot Water Flow of {:.5R} [m3/s]", MaxHotWaterVolFlowUser)); @@ -1930,8 +1931,8 @@ namespace FanCoilUnits { if (FanCoil(FanCoilNum).MaxColdWaterVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (FanCoil(FanCoilNum).MaxColdWaterVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, FanCoil(FanCoilNum).UnitType, FanCoil(FanCoilNum).Name, @@ -1956,7 +1957,7 @@ namespace FanCoilUnits { DoWaterCoilSizing = true; } else { if (PltSizCoolNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizCoolNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizCoolNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -1969,51 +1970,51 @@ namespace FanCoilUnits { if (DoWaterCoilSizing) { SizingMethod = CoolingCapacitySizing; - if (FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow > 0.0) { - FinalZoneSizing(CurZoneEqNum).DesCoolOAFlowFrac = - min(FanCoil(FanCoilNum).OutAirVolFlow / FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow, 1.0); + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolMassFlow > 0.0) { + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolOAFlowFrac = + min(FanCoil(FanCoilNum).OutAirVolFlow / state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolMassFlow, 1.0); } else { - FinalZoneSizing(CurZoneEqNum).DesCoolOAFlowFrac = 0.0; + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolOAFlowFrac = 0.0; } if (FanCoil(FanCoilNum).HVACSizingIndex > 0) { zoneHVACIndex = FanCoil(FanCoilNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity2; sizerCoolingCapacity2.overrideSizingString(SizingString); sizerCoolingCapacity2.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = sizerCoolingCapacity2.size(state, TempSize, ErrorsFound); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - TempSize = ZoneEqSizing(CurZoneEqNum).DesCoolingLoad * ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = sizerCoolingCapacity2.size(state, TempSize, ErrorsFound); + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad * state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = "Cooling Design Capacity [W]"; @@ -2022,13 +2023,13 @@ namespace FanCoilUnits { sizerCoolingCapacity3.overrideSizingString(SizingString); sizerCoolingCapacity3.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity3.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; - DataFlowUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->DataFlowUsedForSizing = 0.0; } else { SizingString = "Cooling Design Capacity [W]"; PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -2066,7 +2067,7 @@ namespace FanCoilUnits { "User-Specified Maximum Cold Water Flow [m3/s]", MaxColdWaterVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxColdWaterVolFlowDes - MaxColdWaterVolFlowUser) / MaxColdWaterVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxColdWaterVolFlowDes - MaxColdWaterVolFlowUser) / MaxColdWaterVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeFanCoilUnit: Potential issue with equipment sizing for " + FanCoil(FanCoilNum).UnitType + ' ' + FanCoil(FanCoilNum).Name); ShowContinueError(state, format("User-Specified Maximum Cold Water Flow of {:.5R}[m3/s]", MaxColdWaterVolFlowUser)); @@ -2095,48 +2096,48 @@ namespace FanCoilUnits { sizerZoneHeatingLoad.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); FanCoil(FanCoilNum).DesZoneHeatingLoad = sizerZoneHeatingLoad.size(state, FanCoil(FanCoilNum).DesZoneHeatingLoad, ErrorsFound); - FanCoil(FanCoilNum).DSOAPtr = FinalZoneSizing(CurZoneEqNum).ZoneDesignSpecOAIndex; + FanCoil(FanCoilNum).DSOAPtr = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneDesignSpecOAIndex; } else if (FanCoil(FanCoilNum).CapCtrlMeth_Num == CCM_ASHRAE && FanCoil(FanCoilNum).ASHRAETempControl) { CompType = FanCoil(FanCoilNum).UnitType; CompName = FanCoil(FanCoilNum).Name; Real64 capacityMultiplier = 0.6; // 60% of design zone load for water coils - DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesCoolingLoad * capacityMultiplier; - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + state.dataSize->DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesCoolingLoad * capacityMultiplier; + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (SizingDesRunThisZone) { - DataCapacityUsedForSizing = FinalZoneSizing(FanCoil(FanCoilNum).ControlZoneNum).DesCoolLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(FanCoil(FanCoilNum).ControlZoneNum).DesCoolLoad * capacityMultiplier; } else { - DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesCoolingLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesCoolingLoad * capacityMultiplier; } - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; PrintFlag = true; ASHRAEMinSATCoolingSizer sizerASHRAEMinSATCooling; sizerASHRAEMinSATCooling.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); FanCoil(FanCoilNum).DesignMinOutletTemp = sizerASHRAEMinSATCooling.size(state, FanCoil(FanCoilNum).DesignMinOutletTemp, ErrorsFound); if (SizingDesRunThisZone) { - DataCapacityUsedForSizing = FinalZoneSizing(FanCoil(FanCoilNum).ControlZoneNum).DesHeatLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(FanCoil(FanCoilNum).ControlZoneNum).DesHeatLoad * capacityMultiplier; } else { - DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesHeatingLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = FanCoil(FanCoilNum).DesHeatingLoad * capacityMultiplier; } - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; ASHRAEMaxSATHeatingSizer sizerASHRAEMaxSATHeating; sizerASHRAEMaxSATHeating.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); FanCoil(FanCoilNum).DesignMaxOutletTemp = sizerASHRAEMaxSATHeating.size(state, FanCoil(FanCoilNum).DesignMaxOutletTemp, ErrorsFound); - DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently - DataFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently + state.dataSize->DataFlowUsedForSizing = 0.0; SizingDesRunThisZone = false; - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (SizingDesRunThisZone) { FanCoil(FanCoilNum).DesZoneCoolingLoad = - -1.0 * (FanCoil(FanCoilNum).DesCoolingLoad / FinalZoneSizing(CurZoneEqNum).CoolSizingFactor); - FanCoil(FanCoilNum).DesZoneHeatingLoad = FanCoil(FanCoilNum).DesHeatingLoad / FinalZoneSizing(CurZoneEqNum).HeatSizingFactor; - FanCoil(FanCoilNum).DSOAPtr = FinalZoneSizing(CurZoneEqNum).ZoneDesignSpecOAIndex; + -1.0 * (FanCoil(FanCoilNum).DesCoolingLoad / state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolSizingFactor); + FanCoil(FanCoilNum).DesZoneHeatingLoad = FanCoil(FanCoilNum).DesHeatingLoad / state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).HeatSizingFactor; + FanCoil(FanCoilNum).DSOAPtr = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneDesignSpecOAIndex; } else { @@ -2155,20 +2156,20 @@ namespace FanCoilUnits { CoolingCoilName = FanCoil(FanCoilNum).CCoilName; CoolingCoilType = FanCoil(FanCoilNum).CCoilType; } - if (ZoneSizingRunDone) { - WaterCoils::SetCoilDesFlow(state, CoolingCoilType, CoolingCoilName, FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, ErrorsFound); - WaterCoils::SetCoilDesFlow(state, FanCoil(FanCoilNum).HCoilType, FanCoil(FanCoilNum).HCoilName, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow, ErrorsFound); + if (state.dataSize->ZoneSizingRunDone) { + WaterCoils::SetCoilDesFlow(state, CoolingCoilType, CoolingCoilName, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, ErrorsFound); + WaterCoils::SetCoilDesFlow(state, FanCoil(FanCoilNum).HCoilType, FanCoil(FanCoilNum).HCoilName, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow, ErrorsFound); } else { WaterCoils::SetCoilDesFlow(state, CoolingCoilType, CoolingCoilName, FanCoil(FanCoilNum).MaxAirVolFlow, ErrorsFound); WaterCoils::SetCoilDesFlow(state, FanCoil(FanCoilNum).HCoilType, FanCoil(FanCoilNum).HCoilName, FanCoil(FanCoilNum).MaxAirVolFlow, ErrorsFound); } - if (CurZoneEqNum > 0) { - ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow = FanCoil(FanCoilNum).MaxHotWaterVolFlow; - ZoneEqSizing(CurZoneEqNum).MaxCWVolFlow = FanCoil(FanCoilNum).MaxColdWaterVolFlow; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = FanCoil(FanCoilNum).MaxAirVolFlow; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FanCoil(FanCoilNum).DesCoolingLoad; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FanCoil(FanCoilNum).DesHeatingLoad; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = true; + if (state.dataSize->CurZoneEqNum > 0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxHWVolFlow = FanCoil(FanCoilNum).MaxHotWaterVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxCWVolFlow = FanCoil(FanCoilNum).MaxColdWaterVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = FanCoil(FanCoilNum).MaxAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = FanCoil(FanCoilNum).DesCoolingLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = FanCoil(FanCoilNum).DesHeatingLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent = true; } if (ErrorsFound) { @@ -4657,7 +4658,7 @@ namespace FanCoilUnits { if (FanCoil(FanCoilNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, FanCoil(FanCoilNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, FanCoil(FanCoilNum).FirstPass); } } } diff --git a/src/EnergyPlus/Fans.cc b/src/EnergyPlus/Fans.cc index 7535e670362..f5e73948b44 100644 --- a/src/EnergyPlus/Fans.cc +++ b/src/EnergyPlus/Fans.cc @@ -1016,7 +1016,6 @@ namespace Fans { // Uses the status flags to trigger initializations. // Using/Aliasing - using DataSizing::CurSysNum; using DataZoneEquipment::CheckZoneEquipmentList; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: @@ -1050,8 +1049,8 @@ namespace Fans { SizeFan(state, FanNum); // Set the loop cycling flag if (Fan(FanNum).FanType_Num == FanType_SimpleOnOff) { - if (CurSysNum > 0) { - state.dataAirLoop->AirLoopControlInfo(CurSysNum).CyclingFan = true; + if (state.dataSize->CurSysNum > 0) { + state.dataAirLoop->AirLoopControlInfo(state.dataSize->CurSysNum).CyclingFan = true; } } @@ -1220,11 +1219,11 @@ namespace Fans { SizingString = FanNumericFields(FanNum).FieldNames(FieldNum) + " [m3/s]"; TempFlow = Fan(FanNum).MaxAirFlowRate; - DataAutosizable = Fan(FanNum).MaxAirFlowRateIsAutosizable; + state.dataSize->DataAutosizable = Fan(FanNum).MaxAirFlowRateIsAutosizable; CompType = Fan(FanNum).FanType; CompName = Fan(FanNum).FanName; - DataEMSOverrideON = Fan(FanNum).MaxAirFlowRateEMSOverrideOn; - DataEMSOverride = Fan(FanNum).MaxAirFlowRateEMSOverrideValue; + state.dataSize->DataEMSOverrideON = Fan(FanNum).MaxAirFlowRateEMSOverrideOn; + state.dataSize->DataEMSOverride = Fan(FanNum).MaxAirFlowRateEMSOverrideValue; bool errorsFound = false; SystemAirFlowSizer sizerSystemAirFlow; @@ -1232,9 +1231,9 @@ namespace Fans { sizerSystemAirFlow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); Fan(FanNum).MaxAirFlowRate = sizerSystemAirFlow.size(state, TempFlow, errorsFound); - DataAutosizable = true; - DataEMSOverrideON = false; - DataEMSOverride = 0.0; + state.dataSize->DataAutosizable = true; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; FanVolFlow = Fan(FanNum).MaxAirFlowRate; // Maximum volumetric airflow through fan [m3/s at standard conditions] if (Fan(FanNum).FanType_Num == FanType_ComponentModel) { @@ -3161,9 +3160,6 @@ namespace Fans { // REFERENCES: EnergyPlus Engineering Reference - // Using/Aliasing - using DataSizing::CurSysNum; - // Return value Real64 DesignHeatGain; // returned heat gain of matched fan [W] diff --git a/src/EnergyPlus/FluidCoolers.cc b/src/EnergyPlus/FluidCoolers.cc index a2df7ab0352..817df6f1230 100644 --- a/src/EnergyPlus/FluidCoolers.cc +++ b/src/EnergyPlus/FluidCoolers.cc @@ -824,8 +824,8 @@ namespace EnergyPlus::FluidCoolers { if (this->DesignWaterFlowRateWasAutoSized) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpDesignWaterFlowRate = DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate; + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpDesignWaterFlowRate = state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->DesignWaterFlowRate = tmpDesignWaterFlowRate; } else { tmpDesignWaterFlowRate = 0.0; @@ -848,12 +848,12 @@ namespace EnergyPlus::FluidCoolers { } // This conditional statement is to trap when the user specified Condenser/Fluid Cooler water design setpoint // temperature is less than design inlet air dry bulb temperature - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { ShowSevereError(state, "Error when autosizing the UA value for fluid cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than design entering air dry-bulb temperature " "({:.2R} C) when autosizing the fluid cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, this->DesignEnteringAirTemp)); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = design inlet air dry-bulb temp plus the Fluid Cooler " "design approach temperature (e.g., 4 C)."); @@ -863,7 +863,7 @@ namespace EnergyPlus::FluidCoolers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNodeNum, tmpDesignWaterFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNodeNum, tmpDesignWaterFlowRate); if (this->PerformanceInputMethod_Num == PerfInputMethod::U_FACTOR && this->HighSpeedFluidCoolerUAWasAutoSized) { if (PltSizCondNum > 0) { @@ -874,10 +874,10 @@ namespace EnergyPlus::FluidCoolers { CalledFrom); Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->FluidCoolerNominalCapacity = DesFluidCoolerLoad; } else { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->FluidCoolerNominalCapacity = 0.0; @@ -894,16 +894,16 @@ namespace EnergyPlus::FluidCoolers { tmpHighSpeedFanPower = 0.0105 * DesFluidCoolerLoad; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedFanPower = tmpHighSpeedFanPower; } else if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { // This conditional statement is to trap when the user specified Condenser/Fluid Cooler water design setpoint // temperature is less than design inlet air dry bulb temperature - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { ShowSevereError(state, "Error when autosizing the UA value for fluid cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than design entering air dry-bulb " "temperature ({:.2R} C) when autosizing the fluid cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, this->DesignEnteringAirTemp)); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = design inlet air dry-bulb temp plus the " "Fluid Cooler design approach temperature (e.g., 4 C)."); @@ -918,10 +918,10 @@ namespace EnergyPlus::FluidCoolers { CalledFrom); Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; tmpHighSpeedFanPower = 0.0105 * DesFluidCoolerLoad; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedFanPower = tmpHighSpeedFanPower; } else { @@ -968,16 +968,16 @@ namespace EnergyPlus::FluidCoolers { tmpHighSpeedAirFlowRate = DesFluidCoolerLoad / (this->DesignEnteringWaterTemp - this->DesignEnteringAirTemp) * 4.0; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedAirFlowRate = tmpHighSpeedAirFlowRate; } else if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { // This conditional statement is to trap when the user specified Condenser/Fluid Cooler water design setpoint // temperature is less than design inlet air dry bulb temperature - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { ShowSevereError(state, "Error when autosizing the UA value for fluid cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than design entering air dry-bulb " "temperature ({:.2R} C) when autosizing the fluid cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, this->DesignEnteringAirTemp)); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = design inlet air dry-bulb temp plus the " "Fluid Cooler design approach temperature (e.g., 4 C)."); @@ -992,10 +992,10 @@ namespace EnergyPlus::FluidCoolers { CalledFrom); Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; tmpHighSpeedAirFlowRate = DesFluidCoolerLoad / (this->DesignEnteringWaterTemp - this->DesignEnteringAirTemp) * 4.0; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->HighSpeedAirFlowRate = tmpHighSpeedAirFlowRate; } else { @@ -1035,15 +1035,15 @@ namespace EnergyPlus::FluidCoolers { if (this->HighSpeedFluidCoolerUAWasAutoSized && state.dataPlnt->PlantFirstSizesOkayToFinalize) { if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizCondNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { // This conditional statement is to trap when the user specified Condenser/Fluid Cooler water design setpoint // temperature is less than design inlet air dry bulb temperature - if (DataSizing::PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { + if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= this->DesignEnteringAirTemp && state.dataPlnt->PlantFirstSizesOkayToFinalize) { ShowSevereError(state, "Error when autosizing the UA value for fluid cooler = " + this->Name + '.'); ShowContinueError(state, format("Design Loop Exit Temperature ({:.2R} C) must be greater than design entering air dry-bulb " "temperature ({:.2R} C) when autosizing the fluid cooler UA.", - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, this->DesignEnteringAirTemp)); ShowContinueError(state, "It is recommended that the Design Loop Exit Temperature = design inlet air dry-bulb temp plus the Fluid " "Cooler design approach temperature (e.g., 4 C)."); @@ -1058,10 +1058,10 @@ namespace EnergyPlus::FluidCoolers { CalledFrom); Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->LoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, CalledFrom); - DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * DataSizing::PlantSizData(PltSizCondNum).DeltaT; + DesFluidCoolerLoad = rho * Cp * tmpDesignWaterFlowRate * state.dataSize->PlantSizData(PltSizCondNum).DeltaT; Par(1) = DesFluidCoolerLoad; Par(2) = double(this->indexInArray); Par(3) = rho * tmpDesignWaterFlowRate; // design water mass flow rate @@ -1069,7 +1069,7 @@ namespace EnergyPlus::FluidCoolers { Par(5) = Cp; UA0 = 0.0001 * DesFluidCoolerLoad; // Assume deltaT = 10000K (limit) UA1 = DesFluidCoolerLoad; // Assume deltaT = 1K - this->WaterTemp = DataSizing::PlantSizData(PltSizCondNum).ExitTemp + DataSizing::PlantSizData(PltSizCondNum).DeltaT; + this->WaterTemp = state.dataSize->PlantSizData(PltSizCondNum).ExitTemp + state.dataSize->PlantSizData(PltSizCondNum).DeltaT; this->AirTemp = this->DesignEnteringAirTemp; this->AirWetBulb = this->DesignEnteringAirWetBulbTemp; this->AirPress = state.dataEnvrn->StdBaroPress; @@ -1102,10 +1102,10 @@ namespace EnergyPlus::FluidCoolers { ShowContinueError(state, "Inputs to the plant sizing object:"); ShowContinueError( state, - format("Design Exit Water Temp [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + format("Design Exit Water Temp [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError( state, - format("Loop Design Temperature Difference [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + format("Loop Design Temperature Difference [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).DeltaT)); ShowContinueError(state, format("Design Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->WaterTemp)); ShowContinueError(state, format("Calculated water outlet temp at low UA [C] (UA = {:.2R} W/K) = {:.2R}", UA0, OutWaterTempAtUA0)); @@ -1213,10 +1213,10 @@ namespace EnergyPlus::FluidCoolers { ShowContinueError(state, "Inputs to the plant sizing object:"); ShowContinueError( state, - format("Design Exit Water Temp [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + format("Design Exit Water Temp [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError( state, - format("Loop Design Temperature Difference [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + format("Loop Design Temperature Difference [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).DeltaT)); }; ShowContinueError(state, format("Design Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->WaterTemp)); ShowContinueError(state, format("Calculated water outlet temp at low UA [C] (UA = {:.2R} W/K) = {:.2R}", UA0, OutWaterTempAtUA0)); @@ -1362,10 +1362,10 @@ namespace EnergyPlus::FluidCoolers { ShowContinueError(state, "Inputs to the plant sizing object:"); ShowContinueError( state, - format("Design Exit Water Temp [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).ExitTemp)); + format("Design Exit Water Temp [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).ExitTemp)); ShowContinueError( state, - format("Loop Design Temperature Difference [C] = {:.2R}", DataSizing::PlantSizData(PltSizCondNum).DeltaT)); + format("Loop Design Temperature Difference [C] = {:.2R}", state.dataSize->PlantSizData(PltSizCondNum).DeltaT)); ShowContinueError(state, format("Design Fluid Cooler Water Inlet Temp [C] = {:.2R}", this->WaterTemp)); ShowContinueError(state, format("Calculated water outlet temp at low UA [C](UA = {:.2R} W/C) = {:.2R}", UA0, OutWaterTempAtUA0)); ShowContinueError(state, format("Calculated water outlet temp at high UA [C](UA = {:.2R} W/C) = {:.2R}", UA1, OutWaterTempAtUA1)); diff --git a/src/EnergyPlus/FuelCellElectricGenerator.cc b/src/EnergyPlus/FuelCellElectricGenerator.cc index 092ca85e45c..5bd28ebb58e 100644 --- a/src/EnergyPlus/FuelCellElectricGenerator.cc +++ b/src/EnergyPlus/FuelCellElectricGenerator.cc @@ -837,7 +837,7 @@ namespace FuelCellElectricGenerator { state.dataFuelCellElectGen->FuelCell(thisFuelCell).ExhaustHX.CondensationThresholdTemp = NumArray(19); // store cooling water volume flow rate for autosizing system - PlantUtilities::RegisterPlantCompDesignFlow(state.dataFuelCellElectGen->FuelCell(thisFuelCell).ExhaustHX.WaterInNode, + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataFuelCellElectGen->FuelCell(thisFuelCell).ExhaustHX.WaterInNode, state.dataFuelCellElectGen->FuelCell(thisFuelCell).ExhaustHX.WaterVolumeFlowMax); } else { ShowSevereError(state, "Invalid, " + DataIPShortCuts::cAlphaFieldNames(1) + " = " + AlphArray(1)); diff --git a/src/EnergyPlus/Furnaces.cc b/src/EnergyPlus/Furnaces.cc index ae4163c986f..d5520dfaa50 100644 --- a/src/EnergyPlus/Furnaces.cc +++ b/src/EnergyPlus/Furnaces.cc @@ -822,7 +822,6 @@ namespace Furnaces { using SteamCoils::GetCoilSteamInletNode; using SteamCoils::GetSteamCoilIndex; auto &GetCoilMaxSteamFlowRate(SteamCoils::GetCoilMaxSteamFlowRate); - using DataSizing::AutoSize; using Fans::GetFanAvailSchPtr; using Fans::GetFanDesignVolumeFlowRate; using Fans::GetFanIndex; @@ -1473,7 +1472,7 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = Numbers(2); // Compare the flow rates. - if (FanVolFlowRate != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate > FanVolFlowRate) { ShowWarningError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, "... The " + cNumericFields(2) + " > Max Volume Flow Rate defined in the associated fan object, should be <=."); @@ -1487,7 +1486,7 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = FanVolFlowRate; } } - if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate <= 0.0) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, "... The " + cNumericFields(2) + " <= 0.0, it must be > 0.0."); @@ -2614,30 +2613,30 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).DesignMaxOutletTemp = Numbers(1); state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = Numbers(2); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(2), Numbers(2))); ErrorsFound = true; } state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow = Numbers(3); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(3), Numbers(3))); ErrorsFound = true; } state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = Numbers(4); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow < 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow < 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(4), Numbers(4))); ErrorsFound = true; } - if (Numbers(2) != AutoSize && Numbers(3) != AutoSize && Numbers(4) != AutoSize) { + if (Numbers(2) != DataSizing::AutoSize && Numbers(3) != DataSizing::AutoSize && Numbers(4) != DataSizing::AutoSize) { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = max(Numbers(2), Numbers(3), Numbers(4)); } else { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = AutoSize; + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = DataSizing::AutoSize; } if (state.dataFurnaces->Furnace(FurnaceNum).CoolingCoilType_Num == Coil_CoolingAirToAirVariableSpeed) { @@ -2656,15 +2655,15 @@ namespace Furnaces { } state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = min(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = max(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); } else { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = AutoSize; + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = DataSizing::AutoSize; } } - if (FanVolFlowRate != AutoSize) { - if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize) { + if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError( state, @@ -2675,7 +2674,7 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = FanVolFlowRate; state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = FanVolFlowRate; } - if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize) { + if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError( state, @@ -3493,21 +3492,21 @@ namespace Furnaces { SetUpCompSets(state, CurrentModuleObject, Alphas(1), Alphas(12), Alphas(13), "UNDEFINED", Alphas(4)); state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = Numbers(1); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(1), Numbers(1))); ErrorsFound = true; } state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow = Numbers(2); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow <= 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(2), Numbers(2))); ErrorsFound = true; } state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = Numbers(3); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow < 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow < 0 && state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(3), Numbers(3))); ErrorsFound = true; @@ -3527,10 +3526,10 @@ namespace Furnaces { } } - if (Numbers(1) != AutoSize && Numbers(2) != AutoSize && Numbers(3) != AutoSize) { + if (Numbers(1) != DataSizing::AutoSize && Numbers(2) != DataSizing::AutoSize && Numbers(3) != DataSizing::AutoSize) { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = max(Numbers(1), Numbers(2), Numbers(3)); } else { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = AutoSize; + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = DataSizing::AutoSize; } if (state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilType_Num == Coil_HeatingAirToAirVariableSpeed) { @@ -3552,15 +3551,15 @@ namespace Furnaces { } state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = min(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = max(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); } else { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = AutoSize; + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = DataSizing::AutoSize; } } - if (FanVolFlowRate != AutoSize) { - if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize) { + if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError( state, @@ -3571,7 +3570,7 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = FanVolFlowRate; state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = FanVolFlowRate; } - if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize) { + if (FanVolFlowRate < state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow && state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize) { ShowSevereError(state, CurrentModuleObject + " = " + Alphas(1)); ShowContinueError( state, @@ -4339,15 +4338,15 @@ namespace Furnaces { } state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = min(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow != DataSizing::AutoSize) { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = max(state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow, state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow); } else { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = AutoSize; + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = DataSizing::AutoSize; } state.dataFurnaces->Furnace(FurnaceNum).AirFlowControl = AirFlowControlConstFan::UseCompressorOnFlow; - if (FanVolFlowRate != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate > FanVolFlowRate) { ShowContinueError(state, "...occurs in " + CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, "... has a Cooling or Heating Air Flow Rate > Max Fan Volume Flow Rate, should be <=."); @@ -4359,7 +4358,7 @@ namespace Furnaces { FanVolFlowRate)); } } - if (FanVolFlowRate != AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize && state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate <= 0.0) { ShowContinueError(state, "...occurs in " + CurrentModuleObject + " = " + Alphas(1)); ShowContinueError(state, "... has a Design Fan Flow Rate <= 0.0, it must be >0.0"); @@ -4740,7 +4739,6 @@ namespace Furnaces { using DataHeatBalFanSys::TempControlType; using DataPlant::TypeOf_CoilSteamAirHeating; using DataPlant::TypeOf_CoilWaterSimpleHeating; - using DataSizing::AutoSize; using Fans::GetFanDesignVolumeFlowRate; using Fans::GetFanSpeedRatioCurveIndex; @@ -4878,7 +4876,7 @@ namespace Furnaces { if (errFlag) { ShowContinueError(state, "...occurs in " + cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num) + " =" + state.dataFurnaces->Furnace(FurnaceNum).Name); } - if (FanVolFlowRate != AutoSize) { + if (FanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate > FanVolFlowRate) { ShowWarningError(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num) + '=' + state.dataFurnaces->Furnace(FurnaceNum).Name + " has a Design Fan Volume Flow Rate > Max Fan Volume Flow Rate, should be <="); @@ -5064,12 +5062,12 @@ namespace Furnaces { // set fluid-side hardware limits if (state.dataFurnaces->Furnace(FurnaceNum).CoilControlNode > 0) { - if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatCoilFluidFlow == AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatCoilFluidFlow == DataSizing::AutoSize) { // If water coil max water flow rate is autosized, simulate once in order to mine max flow rate if (state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilType_Num == Coil_HeatingWater) { SimulateWaterCoilComponents(state, state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilName, FirstHVACIteration, state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilIndex); CoilMaxVolFlowRate = GetCoilMaxWaterFlowRate(state, "Coil:Heating:Water", state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilName, ErrorsFound); - if (CoilMaxVolFlowRate != AutoSize) { + if (CoilMaxVolFlowRate != DataSizing::AutoSize) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataFurnaces->Furnace(FurnaceNum).LoopNum).FluidName, DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(state.dataFurnaces->Furnace(FurnaceNum).LoopNum).FluidIndex, @@ -5086,7 +5084,7 @@ namespace Furnaces { 1.0, QActual); // QCoilReq, simulate any load > 0 to get max capacity CoilMaxVolFlowRate = GetCoilMaxSteamFlowRate(state, state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilIndex, ErrorsFound); - if (CoilMaxVolFlowRate != AutoSize) { + if (CoilMaxVolFlowRate != DataSizing::AutoSize) { SteamIndex = 0; // Function GetSatDensityRefrig will look up steam index if 0 is passed SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, state.dataFurnaces->TempSteamIn, 1.0, SteamIndex, RoutineName); state.dataFurnaces->Furnace(FurnaceNum).MaxHeatCoilFluidFlow = CoilMaxVolFlowRate * SteamDensity; @@ -5104,12 +5102,12 @@ namespace Furnaces { state.dataFurnaces->Furnace(FurnaceNum).CompNum); } if (state.dataFurnaces->Furnace(FurnaceNum).SuppCoilControlNode > 0) { - if (state.dataFurnaces->Furnace(FurnaceNum).MaxSuppCoilFluidFlow == AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).MaxSuppCoilFluidFlow == DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).SuppHeatCoilType_Num == Coil_HeatingWater) { // If water coil max water flow rate is autosized, simulate once in order to mine max flow rate SimulateWaterCoilComponents(state, state.dataFurnaces->Furnace(FurnaceNum).SuppHeatCoilName, FirstHVACIteration, state.dataFurnaces->Furnace(FurnaceNum).SuppHeatCoilIndex); CoilMaxVolFlowRate = GetCoilMaxWaterFlowRate(state, "Coil:Heating:Water", state.dataFurnaces->Furnace(FurnaceNum).SuppHeatCoilName, ErrorsFound); - if (CoilMaxVolFlowRate != AutoSize) { + if (CoilMaxVolFlowRate != DataSizing::AutoSize) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataFurnaces->Furnace(FurnaceNum).LoopNumSupp).FluidName, DataGlobalConstants::HWInitConvTemp, @@ -5126,7 +5124,7 @@ namespace Furnaces { 1.0, QActual); // QCoilReq, simulate any load > 0 to get max capacity CoilMaxVolFlowRate = GetCoilMaxSteamFlowRate(state, state.dataFurnaces->Furnace(FurnaceNum).SuppHeatCoilIndex, ErrorsFound); - if (CoilMaxVolFlowRate != AutoSize) { + if (CoilMaxVolFlowRate != DataSizing::AutoSize) { SteamIndex = 0; // Function GetSatDensityRefrig will look up steam index if 0 is passed SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, state.dataFurnaces->TempSteamIn, 1.0, SteamIndex, RoutineName); state.dataFurnaces->Furnace(FurnaceNum).MaxSuppCoilFluidFlow = CoilMaxVolFlowRate * SteamDensity; @@ -5150,7 +5148,7 @@ namespace Furnaces { } if (state.dataFurnaces->MyFanFlag(FurnaceNum)) { - if (state.dataFurnaces->Furnace(FurnaceNum).ActualFanVolFlowRate != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).ActualFanVolFlowRate != DataSizing::AutoSize) { if (state.dataFurnaces->Furnace(FurnaceNum).ActualFanVolFlowRate > 0.0) { state.dataFurnaces->Furnace(FurnaceNum).HeatingSpeedRatio = state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow / state.dataFurnaces->Furnace(FurnaceNum).ActualFanVolFlowRate; state.dataFurnaces->Furnace(FurnaceNum).CoolingSpeedRatio = state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow / state.dataFurnaces->Furnace(FurnaceNum).ActualFanVolFlowRate; @@ -5462,7 +5460,7 @@ namespace Furnaces { IHPIndex = state.dataFurnaces->Furnace(FurnaceNum).CoolingCoilIndex; } - if (state.dataFurnaces->Furnace(FurnaceNum).FanVolFlow != AutoSize) { + if (state.dataFurnaces->Furnace(FurnaceNum).FanVolFlow != DataSizing::AutoSize) { // Check fan versus system supply air flow rates if (state.dataFurnaces->Furnace(FurnaceNum).FanVolFlow + 1e-10 < state.dataFurnaces->Furnace(FurnaceNum).CoolVolumeFlowRate(NumOfSpeedCooling)) { ShowWarningError(state, @@ -6022,25 +6020,25 @@ namespace Furnaces { ManageEMS(state, EMSManager::EMSCallFrom::UnitarySystemSizing, anyRan, ObjexxFCL::Optional_int_const()); // calling point ThisCtrlZoneNum = 0; - DXCoolCap = 0.0; - UnitaryHeatCap = 0.0; - SuppHeatCap = 0.0; + state.dataSize->DXCoolCap = 0.0; + state.dataSize->UnitaryHeatCap = 0.0; + state.dataSize->SuppHeatCap = 0.0; if (state.dataFurnaces->Furnace(FurnaceNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; } else { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanIndex = state.dataFurnaces->Furnace(FurnaceNum).FanIndex; } if (state.dataFurnaces->Furnace(FurnaceNum).FanPlace == BlowThru) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation = DataAirSystems::fanPlacement::BlowThru; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation = DataAirSystems::fanPlacement::BlowThru; } else if (state.dataFurnaces->Furnace(FurnaceNum).FanPlace == DrawThru) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; } if (state.dataFurnaces->Furnace(FurnaceNum).CoolingCoilType_Num == CoilDX_CoolingSingleSpeed) { @@ -6160,11 +6158,11 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { state.dataFurnaces->Furnace(FurnaceNum).DesignFanVolFlowRate = 0.0; } @@ -6182,11 +6180,11 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { state.dataFurnaces->Furnace(FurnaceNum).MaxHeatAirVolFlow = 0.0; } @@ -6203,11 +6201,11 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { state.dataFurnaces->Furnace(FurnaceNum).MaxCoolAirVolFlow = 0.0; } @@ -6225,11 +6223,11 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { state.dataFurnaces->Furnace(FurnaceNum).MaxNoCoolHeatAirVolFlow = 0.0; } @@ -6247,19 +6245,19 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num == UnitarySys_HeatPump_AirToAir || state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num == UnitarySys_HeatPump_WaterToAir) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity = DXCoolCap; + state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity = state.dataSize->DXCoolCap; } else { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity = FinalSysSizing(CurSysNum).HeatCap; + state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatCap; } if (state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity < SmallLoad) { @@ -6275,11 +6273,11 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).DesignCoolingCapacity == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - if (DXCoolCap >= SmallLoad) { - state.dataFurnaces->Furnace(FurnaceNum).DesignCoolingCapacity = DXCoolCap; + if (state.dataSize->DXCoolCap >= SmallLoad) { + state.dataFurnaces->Furnace(FurnaceNum).DesignCoolingCapacity = state.dataSize->DXCoolCap; } else { state.dataFurnaces->Furnace(FurnaceNum).DesignCoolingCapacity = 0.0; } @@ -6292,10 +6290,10 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).DesignMaxOutletTemp == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); - state.dataFurnaces->Furnace(FurnaceNum).DesignMaxOutletTemp = FinalSysSizing(CurSysNum).HeatSupTemp; + state.dataFurnaces->Furnace(FurnaceNum).DesignMaxOutletTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupTemp; BaseSizer::reportSizerOutput(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name, "Maximum Supply Air Temperature from Supplemental Heater [C]", @@ -6305,13 +6303,13 @@ namespace Furnaces { if (state.dataFurnaces->Furnace(FurnaceNum).DesignSuppHeatingCapacity == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, cFurnaceTypes(state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num), state.dataFurnaces->Furnace(FurnaceNum).Name); if (state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num == UnitarySys_HeatPump_AirToAir || state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num == UnitarySys_HeatPump_WaterToAir) { // set the supplemental heating capacity to the actual heating load - state.dataFurnaces->Furnace(FurnaceNum).DesignSuppHeatingCapacity = FinalSysSizing(CurSysNum).HeatCap; + state.dataFurnaces->Furnace(FurnaceNum).DesignSuppHeatingCapacity = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatCap; // if reheat needed for humidity control, make sure supplemental heating is at least as big // as the cooling capacity if (state.dataFurnaces->Furnace(FurnaceNum).Humidistat && state.dataFurnaces->Furnace(FurnaceNum).DehumidControlType_Num == DehumidificationControlMode::DehumidControl_CoolReheat) { @@ -6338,8 +6336,8 @@ namespace Furnaces { } } - UnitaryHeatCap = state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity; - SuppHeatCap = state.dataFurnaces->Furnace(FurnaceNum).DesignSuppHeatingCapacity; + state.dataSize->UnitaryHeatCap = state.dataFurnaces->Furnace(FurnaceNum).DesignHeatingCapacity; + state.dataSize->SuppHeatCap = state.dataFurnaces->Furnace(FurnaceNum).DesignSuppHeatingCapacity; } // End Initialization Section of the Module @@ -9584,7 +9582,7 @@ namespace Furnaces { } if (state.dataFurnaces->Furnace(FurnaceNum).FirstPass) { if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(0, DataSizing::CurSysNum, state.dataFurnaces->Furnace(FurnaceNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, 0, state.dataSize->CurSysNum, state.dataFurnaces->Furnace(FurnaceNum).FirstPass); } } DataHVACGlobals::OnOffFanPartLoadFraction = diff --git a/src/EnergyPlus/GeneralRoutines.cc b/src/EnergyPlus/GeneralRoutines.cc index a37e2ad4bd0..edf52f5ef7b 100644 --- a/src/EnergyPlus/GeneralRoutines.cc +++ b/src/EnergyPlus/GeneralRoutines.cc @@ -699,40 +699,19 @@ void CheckSysSizing(EnergyPlusData &state, // METHODOLOGY EMPLOYED: // Checks SysSizingRunDone flag. If false throws a fatal error. - // REFERENCES: - // na - - // Using/Aliasing - using DataSizing::NumSysSizInput; - using DataSizing::SysSizingRunDone; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - - if (!SysSizingRunDone) { + if (!state.dataSize->SysSizingRunDone) { ShowSevereError(state, "For autosizing of " + CompType + ' ' + CompName + ", a system sizing run must be done."); - if (NumSysSizInput == 0) { + if (state.dataSize->NumSysSizInput == 0) { ShowContinueError(state, "No \"Sizing:System\" objects were entered."); } if (!state.dataGlobal->DoSystemSizing) { - ShowContinueError(state, "The \"SimulationControl\" object did not have the field \"Do System Sizing Calculation\" set to Yes."); + ShowContinueError(state, R"(The "SimulationControl" object did not have the field "Do System Sizing Calculation" set to Yes.)"); } ShowFatalError(state, "Program terminates due to previously shown condition(s)."); } } -void CheckThisAirSystemForSizing(int const AirLoopNum, bool &AirLoopWasSized) +void CheckThisAirSystemForSizing(EnergyPlusData &state, int const AirLoopNum, bool &AirLoopWasSized) { // SUBROUTINE INFORMATION: @@ -741,39 +720,13 @@ void CheckThisAirSystemForSizing(int const AirLoopNum, bool &AirLoopWasSized) // MODIFIED na // RE-ENGINEERED na - // PURPOSE OF THIS SUBROUTINE: - // - - // METHODOLOGY EMPLOYED: - // - - // REFERENCES: - // na - - // Using/Aliasing - using DataSizing::NumSysSizInput; - using DataSizing::SysSizingRunDone; - using DataSizing::SysSizInput; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - // na int ThisAirSysSizineInputLoop; AirLoopWasSized = false; - if (SysSizingRunDone) { - for (ThisAirSysSizineInputLoop = 1; ThisAirSysSizineInputLoop <= NumSysSizInput; ++ThisAirSysSizineInputLoop) { - if (SysSizInput(ThisAirSysSizineInputLoop).AirLoopNum == AirLoopNum) { + if (state.dataSize->SysSizingRunDone) { + for (ThisAirSysSizineInputLoop = 1; ThisAirSysSizineInputLoop <= state.dataSize->NumSysSizInput; ++ThisAirSysSizineInputLoop) { + if (state.dataSize->SysSizInput(ThisAirSysSizineInputLoop).AirLoopNum == AirLoopNum) { AirLoopWasSized = true; break; } @@ -800,40 +753,20 @@ void CheckZoneSizing(EnergyPlusData &state, // METHODOLOGY EMPLOYED: // Checks ZoneSizingRunDone flag. If false throws a fatal error. - // REFERENCES: - // na - - // Using/Aliasing - using DataSizing::NumZoneSizingInput; - using DataSizing::ZoneSizingRunDone; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - - if (!ZoneSizingRunDone) { + if (!state.dataSize->ZoneSizingRunDone) { ShowSevereError(state, "For autosizing of " + CompType + ' ' + CompName + ", a zone sizing run must be done."); - if (NumZoneSizingInput == 0) { + if (state.dataSize->NumZoneSizingInput == 0) { ShowContinueError(state, "No \"Sizing:Zone\" objects were entered."); } if (!state.dataGlobal->DoZoneSizing) { - ShowContinueError(state, "The \"SimulationControl\" object did not have the field \"Do Zone Sizing Calculation\" set to Yes."); + ShowContinueError(state, R"(The "SimulationControl" object did not have the field "Do Zone Sizing Calculation" set to Yes.)"); } ShowFatalError(state, "Program terminates due to previously shown condition(s)."); } } -void CheckThisZoneForSizing(int const ZoneNum, // zone index to be checked +void CheckThisZoneForSizing(EnergyPlusData &state, + int const ZoneNum, // zone index to be checked bool &ZoneWasSized) { @@ -847,36 +780,13 @@ void CheckThisZoneForSizing(int const ZoneNum, // zone index to be checked // utility routine to see if a particular zone has a Sizing:Zone object for it // and that sizing was done. - // METHODOLOGY EMPLOYED: - // - - // REFERENCES: - // na - - // Using/Aliasing - using DataSizing::NumZoneSizingInput; - using DataSizing::ZoneSizingInput; - using DataSizing::ZoneSizingRunDone; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int ThisSizingInput; ZoneWasSized = false; - if (ZoneSizingRunDone) { - for (ThisSizingInput = 1; ThisSizingInput <= NumZoneSizingInput; ++ThisSizingInput) { - if (ZoneSizingInput(ThisSizingInput).ZoneNum == ZoneNum) { + if (state.dataSize->ZoneSizingRunDone) { + for (ThisSizingInput = 1; ThisSizingInput <= state.dataSize->NumZoneSizingInput; ++ThisSizingInput) { + if (state.dataSize->ZoneSizingInput(ThisSizingInput).ZoneNum == ZoneNum) { ZoneWasSized = true; break; } diff --git a/src/EnergyPlus/GeneralRoutines.hh b/src/EnergyPlus/GeneralRoutines.hh index e37e6db98eb..9abc3ba2673 100644 --- a/src/EnergyPlus/GeneralRoutines.hh +++ b/src/EnergyPlus/GeneralRoutines.hh @@ -92,14 +92,15 @@ void CheckSysSizing(EnergyPlusData &state, std::string const &CompName // Component Name (e.g. Big Chiller) ); -void CheckThisAirSystemForSizing(int const AirLoopNum, bool &AirLoopWasSized); +void CheckThisAirSystemForSizing(EnergyPlusData &state, int const AirLoopNum, bool &AirLoopWasSized); void CheckZoneSizing(EnergyPlusData &state, std::string const &CompType, // Component Type (e.g. Chiller:Electric) std::string const &CompName // Component Name (e.g. Big Chiller) ); -void CheckThisZoneForSizing(int const ZoneNum, // zone index to be checked +void CheckThisZoneForSizing(EnergyPlusData &state, + int const ZoneNum, // zone index to be checked bool &ZoneWasSized); void ValidateComponent(EnergyPlusData &state, diff --git a/src/EnergyPlus/GroundHeatExchangers.cc b/src/EnergyPlus/GroundHeatExchangers.cc index 0fbd263115b..d3cba73820c 100644 --- a/src/EnergyPlus/GroundHeatExchangers.cc +++ b/src/EnergyPlus/GroundHeatExchangers.cc @@ -155,7 +155,7 @@ namespace EnergyPlus::GroundHeatExchangers { // load data this->designFlow = j["design_flow_rate"]; - PlantUtilities::RegisterPlantCompDesignFlow(this->inletNodeNum, this->designFlow); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->inletNodeNum, this->designFlow); this->soil.k = j["soil_thermal_conductivity"]; this->soil.rho = j["soil_density"]; @@ -293,7 +293,7 @@ namespace EnergyPlus::GroundHeatExchangers { BranchNodeConnections::TestCompSet(state, this->moduleName, objName, inletNodeName, outletNodeName, "Condenser Water Nodes"); this->designFlow = j["design_flow_rate"]; - PlantUtilities::RegisterPlantCompDesignFlow(this->inletNodeNum, this->designFlow); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->inletNodeNum, this->designFlow); this->soil.k = j["ground_thermal_conductivity"]; this->soil.rhoCp = j["ground_thermal_heat_capacity"]; @@ -2136,7 +2136,7 @@ namespace EnergyPlus::GroundHeatExchangers { return; } - // Store state.dataGroundHeatExchanger->currentSimTime in prevTimeSteps only if a time step occurs + // Store currentSimTime in prevTimeSteps only if a time step occurs if (state.dataGroundHeatExchanger->prevTimeSteps(1) != state.dataGroundHeatExchanger->currentSimTime) { state.dataGroundHeatExchanger->prevTimeSteps = eoshift(state.dataGroundHeatExchanger->prevTimeSteps, -1, state.dataGroundHeatExchanger->currentSimTime); diff --git a/src/EnergyPlus/HVACControllers.cc b/src/EnergyPlus/HVACControllers.cc index 41ebcab059d..faa11199604 100644 --- a/src/EnergyPlus/HVACControllers.cc +++ b/src/EnergyPlus/HVACControllers.cc @@ -1354,9 +1354,9 @@ namespace HVACControllers { ActuatedNode = ControllerProps(ControlNum).ActuatedNode; if (ControllerProps(ControlNum).MaxVolFlowActuated == AutoSize) { - for (WaterCompNum = 1; WaterCompNum <= SaveNumPlantComps; ++WaterCompNum) { - if (CompDesWaterFlow(WaterCompNum).SupNode == ActuatedNode) { - ControllerProps(ControlNum).MaxVolFlowActuated = CompDesWaterFlow(WaterCompNum).DesVolFlowRate; + for (WaterCompNum = 1; WaterCompNum <= state.dataSize->SaveNumPlantComps; ++WaterCompNum) { + if (state.dataSize->CompDesWaterFlow(WaterCompNum).SupNode == ActuatedNode) { + ControllerProps(ControlNum).MaxVolFlowActuated = state.dataSize->CompDesWaterFlow(WaterCompNum).DesVolFlowRate; } } diff --git a/src/EnergyPlus/HVACCooledBeam.cc b/src/EnergyPlus/HVACCooledBeam.cc index 2b24d6241eb..571056ac5cd 100644 --- a/src/EnergyPlus/HVACCooledBeam.cc +++ b/src/EnergyPlus/HVACCooledBeam.cc @@ -204,7 +204,7 @@ namespace HVACCooledBeam { ShowFatalError(state, "Cool Beam Unit not found = " + CompName); } - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(CoolBeam(CBNum).ADUNum).TermUnitSizingNum; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(CoolBeam(CBNum).ADUNum).TermUnitSizingNum; // initialize the unit InitCoolBeam(state, CBNum, FirstHVACIteration); @@ -734,11 +734,11 @@ namespace HVACCooledBeam { if (CoolBeam(CBNum).MaxAirVolFlow == AutoSize) { - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->CurTermUnitSizingNum > 0) { CheckZoneSizing(state, CoolBeam(CBNum).UnitType, CoolBeam(CBNum).Name); CoolBeam(CBNum).MaxAirVolFlow = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); if (CoolBeam(CBNum).MaxAirVolFlow < SmallAirVolFlow) { CoolBeam(CBNum).MaxAirVolFlow = 0.0; } @@ -749,25 +749,25 @@ namespace HVACCooledBeam { if (CoolBeam(CBNum).MaxCoolWaterVolFlow == AutoSize) { - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if ((state.dataSize->CurZoneEqNum > 0) && (state.dataSize->CurTermUnitSizingNum > 0)) { CheckZoneSizing(state, CoolBeam(CBNum).UnitType, CoolBeam(CBNum).Name); if (PltSizCoolNum > 0) { - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolMassFlow >= SmallAirVolFlow) { + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolMassFlow >= SmallAirVolFlow) { DesAirVolFlow = CoolBeam(CBNum).MaxAirVolFlow; - CpAir = PsyCpAirFnW(TermUnitFinalZoneSizing(CurTermUnitSizingNum).CoolDesHumRat); + CpAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).CoolDesHumRat); // the design cooling coil load is the zone load minus whatever the central system does. Note that // DesCoolCoilInTempTU is really the primary air inlet temperature for the unit. - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { - DesCoilLoad = TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesCoolLoad - + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { + DesCoilLoad = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesCoolLoad - CpAir * RhoAir * DesAirVolFlow * - (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU); } else { DesCoilLoad = CpAir * RhoAir * DesAirVolFlow * - (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU - ZoneSizThermSetPtHi(CurZoneEqNum)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU - state.dataSize->ZoneSizThermSetPtHi(state.dataSize->CurZoneEqNum)); } rho = GetDensityGlycol(state, @@ -818,7 +818,7 @@ namespace HVACCooledBeam { if (CoolBeam(CBNum).BeamLength == AutoSize) { - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->CurTermUnitSizingNum > 0) { CheckZoneSizing(state, CoolBeam(CBNum).UnitType, CoolBeam(CBNum).Name); @@ -841,8 +841,8 @@ namespace HVACCooledBeam { DesAirFlowPerBeam = CoolBeam(CBNum).MaxAirVolFlow / NumBeams; WaterVolFlowPerBeam = CoolBeam(CBNum).MaxCoolWaterVolFlow / NumBeams; WaterVel = WaterVolFlowPerBeam / (DataGlobalConstants::Pi * pow_2(CoolBeam(CBNum).InDiam) / 4.0); - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { - DT = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak - + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { + DT = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak - 0.5 * (CoolBeam(CBNum).DesInletWaterTemp + CoolBeam(CBNum).DesOutletWaterTemp); if (DT <= 0.0) { DT = 7.8; @@ -888,7 +888,7 @@ namespace HVACCooledBeam { // save the design water volumetric flow rate for use by the water loop sizing algorithms if (CoolBeam(CBNum).MaxCoolWaterVolFlow > 0.0) { - RegisterPlantCompDesignFlow(CoolBeam(CBNum).CWInNode, CoolBeam(CBNum).MaxCoolWaterVolFlow); + RegisterPlantCompDesignFlow(state, CoolBeam(CBNum).CWInNode, CoolBeam(CBNum).MaxCoolWaterVolFlow); } if (ErrorsFound) { diff --git a/src/EnergyPlus/HVACFan.cc b/src/EnergyPlus/HVACFan.cc index f824dfa6153..7c863e9d328 100644 --- a/src/EnergyPlus/HVACFan.cc +++ b/src/EnergyPlus/HVACFan.cc @@ -235,18 +235,18 @@ namespace HVACFan { Real64 tempFlow = designAirVolFlowRate; bool bPRINT = true; - DataSizing::DataAutosizable = true; - DataSizing::DataEMSOverrideON = m_maxAirFlowRateEMSOverrideOn; - DataSizing::DataEMSOverride = m_maxAirFlowRateEMSOverrideValue; + state.dataSize->DataAutosizable = true; + state.dataSize->DataEMSOverrideON = m_maxAirFlowRateEMSOverrideOn; + state.dataSize->DataEMSOverride = m_maxAirFlowRateEMSOverrideValue; bool errorsFound = false; SystemAirFlowSizer sizerSystemAirFlow; sizerSystemAirFlow.initializeWithinEP(state, m_fanType, name, bPRINT, routineName); designAirVolFlowRate = sizerSystemAirFlow.size(state, tempFlow, errorsFound); - DataSizing::DataAutosizable = true; // should be false? - DataSizing::DataEMSOverrideON = false; - DataSizing::DataEMSOverride = 0.0; + state.dataSize->DataAutosizable = true; // should be false? + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataEMSOverride = 0.0; if (m_designElecPowerWasAutosized) { diff --git a/src/EnergyPlus/HVACFourPipeBeam.cc b/src/EnergyPlus/HVACFourPipeBeam.cc index a6ca0632df8..e5e82389417 100644 --- a/src/EnergyPlus/HVACFourPipeBeam.cc +++ b/src/EnergyPlus/HVACFourPipeBeam.cc @@ -588,7 +588,7 @@ namespace FourPipeBeam { } if (!state.dataGlobal->SysSizingCalc && this->mySizeFlag && !this->plantLoopScanFlag) { - // if ( state.dataGlobal->SysSizingCalc && this->mySizeFlag && ! this->plantLoopScanFlag ) { + // if ( SysSizingCalc && this->mySizeFlag && ! this->plantLoopScanFlag ) { this->airLoopNum = state.dataZoneEquip->ZoneEquipConfig(this->zoneIndex).InletNodeAirLoopNum(this->ctrlZoneInNodeIndex); state.dataDefineEquipment->AirDistUnit(this->aDUNum).AirLoopNum = this->airLoopNum; this->set_size(state); // calculate autosize values (in any) and convert volume flow rates to mass flow rates @@ -750,11 +750,11 @@ namespace FourPipeBeam { noHardSizeAnchorAvailable = false; - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->CurTermUnitSizingNum > 0) { originalTermUnitSizeMaxVDot = - std::max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); - originalTermUnitSizeCoolVDot = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow; - originalTermUnitSizeHeatVDot = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow; + std::max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); + originalTermUnitSizeCoolVDot = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow; + originalTermUnitSizeHeatVDot = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow; } if (this->totBeamLengthWasAutosized && this->vDotDesignPrimAirWasAutosized && this->vDotDesignCWWasAutosized && @@ -806,7 +806,7 @@ namespace FourPipeBeam { } // no air flow rate } // no beam length - if (noHardSizeAnchorAvailable && (CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { // need to use central sizing results to calculate + if (noHardSizeAnchorAvailable && (state.dataSize->CurZoneEqNum > 0) && (state.dataSize->CurTermUnitSizingNum > 0)) { // need to use central sizing results to calculate // set up for solver @@ -815,20 +815,20 @@ namespace FourPipeBeam { Real64 minFlow(0.0); Real64 maxFlowCool(0.0); minFlow = std::min(state.dataEnvrn->StdRhoAir * originalTermUnitSizeMaxVDot, - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesOAFlow * state.dataEnvrn->StdRhoAir); + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesOAFlow * state.dataEnvrn->StdRhoAir); minFlow = std::max(0.0, minFlow); // max flow is as if the air supply was sufficient to provide all the conditioning if (beamCoolingPresent) { - cpAir = PsyCpAirFnW(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInHumRatTU); + cpAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInHumRatTU); - if ((TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU) > 2.0) { // avoid div by zero and blow up - maxFlowCool = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolLoad / - (cpAir * (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU)); + if ((state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU) > 2.0) { // avoid div by zero and blow up + maxFlowCool = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolLoad / + (cpAir * (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU)); } else { - maxFlowCool = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolLoad / (cpAir * 2.0); + maxFlowCool = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolLoad / (cpAir * 2.0); } if (minFlow * 3.0 >= maxFlowCool) { minFlow = maxFlowCool / 3.0; // make sure min is significantly lower than max. @@ -840,15 +840,15 @@ namespace FourPipeBeam { ShowContinueError(state, "Occurs in " + this->unitType + " Object=" + this->name); ErrorsFound = true; } else { - this->cWTempIn = DataSizing::PlantSizData(pltSizCoolNum).ExitTemp; + this->cWTempIn = state.dataSize->PlantSizData(pltSizCoolNum).ExitTemp; } this->mDotHW = 0.0; - this->tDBZoneAirTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak; - this->tDBSystemAir = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU; - this->cpZoneAir = PsyCpAirFnW(DataSizing::TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneHumRatAtCoolPeak); - this->cpSystemAir = PsyCpAirFnW(DataSizing::TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInHumRatTU); - this->qDotZoneReq = -1.0 * TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolLoad; - this->qDotZoneToCoolSetPt = -1.0 * TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolLoad; + this->tDBZoneAirTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak; + this->tDBSystemAir = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU; + this->cpZoneAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtCoolPeak); + this->cpSystemAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInHumRatTU); + this->qDotZoneReq = -1.0 * state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolLoad; + this->qDotZoneToCoolSetPt = -1.0 * state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolLoad; this->airAvailable = true; this->coolingAvailable = true; this->heatingAvailable = false; @@ -864,15 +864,15 @@ namespace FourPipeBeam { } if (beamHeatingPresent) { - cpAir = PsyCpAirFnW(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); + cpAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU); Real64 maxFlowHeat = 0.0; - if ((TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak) > 2.0) { // avoid div by zero and blow up - maxFlowHeat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatLoad / - (cpAir * (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak)); + if ((state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak) > 2.0) { // avoid div by zero and blow up + maxFlowHeat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatLoad / + (cpAir * (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak)); } else { - maxFlowHeat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatLoad / (cpAir * 2.0); + maxFlowHeat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatLoad / (cpAir * 2.0); } pltSizHeatNum = MyPlantSizingIndex(state, "four pipe beam unit", this->name, this->hWInNodeNum, this->hWOutNodeNum, ErrorsFound); @@ -881,15 +881,15 @@ namespace FourPipeBeam { ShowContinueError(state, "Occurs in " + this->unitType + " Object=" + this->name); ErrorsFound = true; } else { - this->hWTempIn = DataSizing::PlantSizData(pltSizHeatNum).ExitTemp; + this->hWTempIn = state.dataSize->PlantSizData(pltSizHeatNum).ExitTemp; } this->mDotCW = 0.0; - this->tDBZoneAirTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak; - this->tDBSystemAir = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU; - this->cpZoneAir = PsyCpAirFnW(DataSizing::TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneHumRatAtHeatPeak); - this->cpSystemAir = PsyCpAirFnW(DataSizing::TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); - this->qDotZoneReq = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatLoad; - this->qDotZoneToHeatSetPt = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatLoad; + this->tDBZoneAirTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak; + this->tDBSystemAir = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU; + this->cpZoneAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtHeatPeak); + this->cpSystemAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU); + this->qDotZoneReq = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatLoad; + this->qDotZoneToHeatSetPt = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatLoad; this->airAvailable = true; this->heatingAvailable = true; this->coolingAvailable = false; @@ -908,7 +908,7 @@ namespace FourPipeBeam { this->mDotDesignPrimAir = std::max(mDotAirSolutionHeating, mDotAirSolutionCooling); // make sure this is higher than the zone OA requirement this->mDotDesignPrimAir = - std::max(this->mDotDesignPrimAir, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesOAFlow * state.dataEnvrn->StdRhoAir); + std::max(this->mDotDesignPrimAir, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesOAFlow * state.dataEnvrn->StdRhoAir); this->vDotDesignPrimAir = this->mDotDesignPrimAir / state.dataEnvrn->StdRhoAir; this->totBeamLength = this->vDotDesignPrimAir / this->vDotNormRatedPrimAir; if (this->vDotDesignCWWasAutosized) { @@ -921,15 +921,15 @@ namespace FourPipeBeam { // fill in mass flow rate versions of working variables (regardless of autosizing ) this->mDotDesignPrimAir = this->vDotDesignPrimAir * state.dataEnvrn->StdRhoAir; - if ((originalTermUnitSizeMaxVDot > 0.0) && (originalTermUnitSizeMaxVDot != this->vDotDesignPrimAir) && (CurZoneEqNum > 0)) { - if ((DataSizing::SysSizingRunDone) && (this->airLoopNum > 0)) { + if ((originalTermUnitSizeMaxVDot > 0.0) && (originalTermUnitSizeMaxVDot != this->vDotDesignPrimAir) && (state.dataSize->CurZoneEqNum > 0)) { + if ((state.dataSize->SysSizingRunDone) && (this->airLoopNum > 0)) { // perturb system size to handle change in system size calculated without knowing about 4 pipe beam // Note that this approach is not necessarily appropriate for coincident system design option // and it might be moved to make such adjustments in SizingManager::ManageSystemSizingAdjustments() - DataSizing::FinalSysSizing(this->airLoopNum).DesMainVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeMaxVDot); - DataSizing::FinalSysSizing(this->airLoopNum).DesCoolVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeCoolVDot); - DataSizing::FinalSysSizing(this->airLoopNum).DesHeatVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeHeatVDot); - DataSizing::FinalSysSizing(this->airLoopNum).MassFlowAtCoolPeak += + state.dataSize->FinalSysSizing(this->airLoopNum).DesMainVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeMaxVDot); + state.dataSize->FinalSysSizing(this->airLoopNum).DesCoolVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeCoolVDot); + state.dataSize->FinalSysSizing(this->airLoopNum).DesHeatVolFlow += (this->vDotDesignPrimAir - originalTermUnitSizeHeatVDot); + state.dataSize->FinalSysSizing(this->airLoopNum).MassFlowAtCoolPeak += (this->vDotDesignPrimAir - originalTermUnitSizeCoolVDot) * state.dataEnvrn->StdRhoAir; BaseSizer::reportSizerOutput(state, this->unitType, @@ -992,10 +992,10 @@ namespace FourPipeBeam { } // save the design water volume flow rate for use by the water loop sizing algorithms if (this->vDotDesignCW > 0.0 && this->beamCoolingPresent) { - RegisterPlantCompDesignFlow(this->cWInNodeNum, this->vDotDesignCW); + RegisterPlantCompDesignFlow(state, this->cWInNodeNum, this->vDotDesignCW); } if (this->vDotDesignHW > 0.0 && this->beamHeatingPresent) { - RegisterPlantCompDesignFlow(this->hWInNodeNum, this->vDotDesignHW); + RegisterPlantCompDesignFlow(state, this->hWInNodeNum, this->vDotDesignHW); } if (ErrorsFound) { ShowFatalError(state, "Preceding four pipe beam sizing errors cause program termination"); diff --git a/src/EnergyPlus/HVACManager.cc b/src/EnergyPlus/HVACManager.cc index 1f98fd29b9d..26193f20dc4 100644 --- a/src/EnergyPlus/HVACManager.cc +++ b/src/EnergyPlus/HVACManager.cc @@ -2669,7 +2669,7 @@ namespace EnergyPlus::HVACManager { // to tell ManageZoneAirUpdates (predict and correct) what to do with the heat to return air. // METHODOLOGY EMPLOYED: - // Uses program data structures state.dataAirLoop->AirLoopControlInfo and ZoneEquipInfo + // Uses program data structures AirLoopControlInfo and ZoneEquipInfo // Using/Aliasing using DataHVACGlobals::NumPrimaryAirSys; diff --git a/src/EnergyPlus/HVACMultiSpeedHeatPump.cc b/src/EnergyPlus/HVACMultiSpeedHeatPump.cc index fde573bd1ad..8470a6ab94c 100644 --- a/src/EnergyPlus/HVACMultiSpeedHeatPump.cc +++ b/src/EnergyPlus/HVACMultiSpeedHeatPump.cc @@ -2666,18 +2666,18 @@ namespace HVACMultiSpeedHeatPump { int NumOfSpeedHeating; // Number of speeds for heating int i; // Index to speed - if (CurSysNum > 0 && CurOASysNum == 0) { + if (state.dataSize->CurSysNum > 0 && state.dataSize->CurOASysNum == 0) { if (MSHeatPump(MSHeatPumpNum).FanType == DataHVACGlobals::FanType_SystemModelObject) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex = MSHeatPump(MSHeatPumpNum).FanNum; - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex = MSHeatPump(MSHeatPumpNum).FanNum; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; } else { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = MSHeatPump(MSHeatPumpNum).FanNum; - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum = MSHeatPump(MSHeatPumpNum).FanNum; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; } if (MSHeatPump(MSHeatPumpNum).FanPlaceType == BlowThru) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation = DataAirSystems::fanPlacement::BlowThru; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation = DataAirSystems::fanPlacement::BlowThru; } else if (MSHeatPump(MSHeatPumpNum).FanPlaceType == DrawThru) { - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; } } @@ -2688,10 +2688,10 @@ namespace HVACMultiSpeedHeatPump { for (i = NumOfSpeedCooling; i >= 1; --i) { if (MSHeatPump(MSHeatPumpNum).CoolVolumeFlowRate(i) == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (i == NumOfSpeedCooling) { CheckSysSizing(state, CurrentModuleObject, MSHeatPump(MSHeatPumpNum).Name); - MSHeatPump(MSHeatPumpNum).CoolVolumeFlowRate(i) = FinalSysSizing(CurSysNum).DesMainVolFlow; + MSHeatPump(MSHeatPumpNum).CoolVolumeFlowRate(i) = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; if (MSHeatPump(MSHeatPumpNum).FanVolFlow < MSHeatPump(MSHeatPumpNum).CoolVolumeFlowRate(i) && MSHeatPump(MSHeatPumpNum).FanVolFlow != AutoSize) { MSHeatPump(MSHeatPumpNum).CoolVolumeFlowRate(i) = MSHeatPump(MSHeatPumpNum).FanVolFlow; @@ -2725,10 +2725,10 @@ namespace HVACMultiSpeedHeatPump { for (i = NumOfSpeedHeating; i >= 1; --i) { if (MSHeatPump(MSHeatPumpNum).HeatVolumeFlowRate(i) == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (i == NumOfSpeedHeating) { CheckSysSizing(state, CurrentModuleObject, MSHeatPump(MSHeatPumpNum).Name); - MSHeatPump(MSHeatPumpNum).HeatVolumeFlowRate(i) = FinalSysSizing(CurSysNum).DesMainVolFlow; + MSHeatPump(MSHeatPumpNum).HeatVolumeFlowRate(i) = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; if (MSHeatPump(MSHeatPumpNum).FanVolFlow < MSHeatPump(MSHeatPumpNum).HeatVolumeFlowRate(i) && MSHeatPump(MSHeatPumpNum).FanVolFlow != AutoSize) { MSHeatPump(MSHeatPumpNum).HeatVolumeFlowRate(i) = MSHeatPump(MSHeatPumpNum).FanVolFlow; @@ -2761,9 +2761,9 @@ namespace HVACMultiSpeedHeatPump { } if (MSHeatPump(MSHeatPumpNum).IdleVolumeAirRate == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, CurrentModuleObject, MSHeatPump(MSHeatPumpNum).Name); - MSHeatPump(MSHeatPumpNum).IdleVolumeAirRate = FinalSysSizing(CurSysNum).DesMainVolFlow; + MSHeatPump(MSHeatPumpNum).IdleVolumeAirRate = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; if (MSHeatPump(MSHeatPumpNum).FanVolFlow < MSHeatPump(MSHeatPumpNum).IdleVolumeAirRate && MSHeatPump(MSHeatPumpNum).FanVolFlow != AutoSize) { MSHeatPump(MSHeatPumpNum).IdleVolumeAirRate = MSHeatPump(MSHeatPumpNum).FanVolFlow; @@ -2785,13 +2785,13 @@ namespace HVACMultiSpeedHeatPump { } if (MSHeatPump(MSHeatPumpNum).SuppMaxAirTemp == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (MSHeatPump(MSHeatPumpNum).SuppHeatCoilType == 1) { // Gas CheckZoneSizing(state, "Coil:Heating:Fuel", MSHeatPump(MSHeatPumpNum).Name); } else { CheckZoneSizing(state, "Coil:Heating:Electric", MSHeatPump(MSHeatPumpNum).Name); } - MSHeatPump(MSHeatPumpNum).SuppMaxAirTemp = FinalSysSizing(CurSysNum).HeatSupTemp; + MSHeatPump(MSHeatPumpNum).SuppMaxAirTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupTemp; BaseSizer::reportSizerOutput(state, CurrentModuleObject, MSHeatPump(MSHeatPumpNum).Name, "Maximum Supply Air Temperature from Supplemental Heater [C]", @@ -2800,13 +2800,13 @@ namespace HVACMultiSpeedHeatPump { } if (MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (MSHeatPump(MSHeatPumpNum).SuppHeatCoilType == 1) { // Gas CheckSysSizing(state, "Coil:Heating:Fuel", MSHeatPump(MSHeatPumpNum).Name); } else { CheckSysSizing(state, "Coil:Heating:Electric", MSHeatPump(MSHeatPumpNum).Name); } - MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity = FinalSysSizing(CurSysNum).HeatCap; + MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatCap; } else { MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity = 0.0; } @@ -2815,10 +2815,10 @@ namespace HVACMultiSpeedHeatPump { "Supplemental Heating Coil Nominal Capacity [W]", MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity); } - SuppHeatCap = MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity; + state.dataSize->SuppHeatCap = MSHeatPump(MSHeatPumpNum).DesignSuppHeatingCapacity; if (MSHeatPump(MSHeatPumpNum).HeatRecActive) { - RegisterPlantCompDesignFlow(MSHeatPump(MSHeatPumpNum).HeatRecInletNodeNum, MSHeatPump(MSHeatPumpNum).DesignHeatRecFlowRate); + RegisterPlantCompDesignFlow(state, MSHeatPump(MSHeatPumpNum).HeatRecInletNodeNum, MSHeatPump(MSHeatPumpNum).DesignHeatRecFlowRate); } } @@ -4053,7 +4053,7 @@ namespace HVACMultiSpeedHeatPump { if (MSHeatPump(MSHeatPumpNum).FirstPass) { if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, DataSizing::CurSysNum, MSHeatPump(MSHeatPumpNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, state.dataSize->CurSysNum, MSHeatPump(MSHeatPumpNum).FirstPass); } } diff --git a/src/EnergyPlus/HVACSingleDuctInduc.cc b/src/EnergyPlus/HVACSingleDuctInduc.cc index 10de020b4cf..877ed72e0e7 100644 --- a/src/EnergyPlus/HVACSingleDuctInduc.cc +++ b/src/EnergyPlus/HVACSingleDuctInduc.cc @@ -179,9 +179,6 @@ namespace HVACSingleDuctInduc { // Manages the simulation of a passive (no fan) induction terminal unit. // Called from SimZoneAirLoopEquipment in module ZoneAirLoopEquipmentManager. - // Using/Aliasing - using DataSizing::TermUnitIU; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int IUNum; // index of terminal unit being simulated @@ -218,11 +215,11 @@ namespace HVACSingleDuctInduc { } } - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(IndUnit(IUNum).ADUNum).TermUnitSizingNum; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(IndUnit(IUNum).ADUNum).TermUnitSizingNum; // initialize the unit InitIndUnit(state, IUNum, FirstHVACIteration); - TermUnitIU = true; + state.dataSize->TermUnitIU = true; // Select the correct unit type { @@ -239,7 +236,7 @@ namespace HVACSingleDuctInduc { } } - TermUnitIU = false; + state.dataSize->TermUnitIU = false; // the tasks usually done by the Update and Report routines are not required in a compound terminal unit. @@ -301,6 +298,8 @@ namespace HVACSingleDuctInduc { int ADUNum; bool errFlag; + auto &ZoneEquipConfig(state.dataZoneEquip->ZoneEquipConfig); + // find the number of each type of induction unit CurrentModuleObject = "AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction"; NumFourPipes = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); @@ -436,20 +435,20 @@ namespace HVACSingleDuctInduc { } else { // Fill the Zone Equipment data with the supply air inlet node number of this unit. for (CtrlZone = 1; CtrlZone <= state.dataGlobal->NumOfZones; ++CtrlZone) { - if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZone).IsControlled) continue; - for (SupAirIn = 1; SupAirIn <= state.dataZoneEquip->ZoneEquipConfig(CtrlZone).NumInletNodes; ++SupAirIn) { - if (IndUnit(IUNum).OutAirNode == state.dataZoneEquip->ZoneEquipConfig(CtrlZone).InletNode(SupAirIn)) { - if (state.dataZoneEquip->ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).OutNode > 0) { + if (!ZoneEquipConfig(CtrlZone).IsControlled) continue; + for (SupAirIn = 1; SupAirIn <= ZoneEquipConfig(CtrlZone).NumInletNodes; ++SupAirIn) { + if (IndUnit(IUNum).OutAirNode == ZoneEquipConfig(CtrlZone).InletNode(SupAirIn)) { + if (ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).OutNode > 0) { ShowSevereError(state, "Error in connecting a terminal unit to a zone"); ShowContinueError(state, NodeID(IndUnit(IUNum).OutAirNode) + " already connects to another zone"); ShowContinueError(state, "Occurs for terminal unit " + IndUnit(IUNum).UnitType + " = " + IndUnit(IUNum).Name); ShowContinueError(state, "Check terminal unit node names for errors"); ErrorsFound = true; } else { - state.dataZoneEquip->ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).InNode = IndUnit(IUNum).PriAirInNode; - state.dataZoneEquip->ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).OutNode = IndUnit(IUNum).OutAirNode; + ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).InNode = IndUnit(IUNum).PriAirInNode; + ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).OutNode = IndUnit(IUNum).OutAirNode; state.dataDefineEquipment->AirDistUnit(IndUnit(IUNum).ADUNum).TermUnitSizingNum = - state.dataZoneEquip->ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).TermUnitSizingIndex; + ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).TermUnitSizingIndex; state.dataDefineEquipment->AirDistUnit(IndUnit(IUNum).ADUNum).ZoneEqNum = CtrlZone; IndUnit(IUNum).CtrlZoneNum = CtrlZone; } @@ -594,8 +593,8 @@ namespace HVACSingleDuctInduc { if (MyAirDistInitFlag(IUNum)) { // save the induction ratio in the term unit sizing array for use in the system sizing calculation - if (DataSizing::CurTermUnitSizingNum > 0) { - DataSizing::TermUnitSizing(DataSizing::CurTermUnitSizingNum).InducRat = IndUnit(IUNum).InducRatio; + if (state.dataSize->CurTermUnitSizingNum > 0) { + state.dataSize->TermUnitSizing(state.dataSize->CurTermUnitSizingNum).InducRat = IndUnit(IUNum).InducRatio; } if (IndUnit(IUNum).AirLoopNum == 0) { if ((IndUnit(IUNum).CtrlZoneNum > 0) && (IndUnit(IUNum).CtrlZoneInNodeIndex > 0)) { @@ -798,12 +797,14 @@ namespace HVACSingleDuctInduc { MaxVolColdWaterFlowDes = 0.0; MaxVolColdWaterFlowUser = 0.0; + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + if (IndUnit(IUNum).MaxTotAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (IndUnit(IUNum).MaxTotAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name, @@ -812,9 +813,9 @@ namespace HVACSingleDuctInduc { } } else { CheckZoneSizing(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name); - if (CurTermUnitSizingNum > 0) { - MaxTotAirVolFlowDes = max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + if (state.dataSize->CurTermUnitSizingNum > 0) { + MaxTotAirVolFlowDes = max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); } else { MaxTotAirVolFlowDes = 0.0; } @@ -835,7 +836,7 @@ namespace HVACSingleDuctInduc { "User-Specified Maximum Total Air Flow Rate [m3/s]", MaxTotAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxTotAirVolFlowDes - MaxTotAirVolFlowUser) / MaxTotAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxTotAirVolFlowDes - MaxTotAirVolFlowUser) / MaxTotAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuctInduction: Potential issue with equipment sizing for " + IndUnit(IUNum).UnitType + " = \"" + IndUnit(IUNum).Name + "\"."); ShowContinueError(state, format("User-Specified Maximum Total Air Flow Rate of {:.5R} [m3/s]", MaxTotAirVolFlowUser)); @@ -854,8 +855,8 @@ namespace HVACSingleDuctInduc { if (IndUnit(IUNum).MaxVolHotWaterFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (state.dataSize->CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (IndUnit(IUNum).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name, @@ -874,20 +875,20 @@ namespace HVACSingleDuctInduc { MyPlantSizingIndex(state, "Coil:Heating:Water", IndUnit(IUNum).HCoil, CoilWaterInletNode, CoilWaterOutletNode, ErrorsFound); if (PltSizHeatNum > 0) { - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { DesPriVolFlow = IndUnit(IUNum).MaxTotAirVolFlow / (1.0 + IndUnit(IUNum).InducRatio); - CpAir = PsyCpAirFnW(TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesHumRat); + CpAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).HeatDesHumRat); // the design heating coil load is the zone load minus whatever the central system does. Note that // DesHeatCoilInTempTU is really the primary air inlet temperature for the unit. - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak > 0.0) { - DesCoilLoad = TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesHeatLoad - + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak > 0.0) { + DesCoilLoad = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesHeatLoad - CpAir * RhoAir * DesPriVolFlow * - (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak); } else { DesCoilLoad = CpAir * RhoAir * DesPriVolFlow * - (ZoneSizThermSetPtLo(CurZoneEqNum) - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU); + (state.dataSize->ZoneSizThermSetPtLo(state.dataSize->CurZoneEqNum) - state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU); } IndUnit(IUNum).DesHeatingLoad = DesCoilLoad; Cp = GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(IndUnit(IUNum).HWLoopNum).FluidName, @@ -901,7 +902,7 @@ namespace HVACSingleDuctInduc { state.dataPlnt->PlantLoop(IndUnit(IUNum).HWLoopNum).FluidIndex, RoutineName); - MaxVolHotWaterFlowDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + MaxVolHotWaterFlowDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); MaxVolHotWaterFlowDes = max(MaxVolHotWaterFlowDes, 0.0); } else { MaxVolHotWaterFlowDes = 0.0; @@ -919,11 +920,11 @@ namespace HVACSingleDuctInduc { BaseSizer::reportSizerOutput(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name, "Design Size Inlet Air Temperature [C]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU); + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU); BaseSizer::reportSizerOutput(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name, "Design Size Inlet Air Humidity Ratio [kgWater/kgDryAir]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU); } else { if (IndUnit(IUNum).MaxVolHotWaterFlow > 0.0 && MaxVolHotWaterFlowDes > 0.0) { MaxVolHotWaterFlowUser = IndUnit(IUNum).MaxVolHotWaterFlow; @@ -934,7 +935,7 @@ namespace HVACSingleDuctInduc { "User-Specified Maximum Hot Water Flow Rate [m3/s]", MaxVolHotWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuctInduction: Potential issue with equipment sizing for " + IndUnit(IUNum).UnitType + " = \"" + IndUnit(IUNum).Name + "\"."); ShowContinueError(state, @@ -958,8 +959,8 @@ namespace HVACSingleDuctInduc { if (IndUnit(IUNum).MaxVolColdWaterFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (state.dataSize->CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (IndUnit(IUNum).MaxVolColdWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, IndUnit(IUNum).UnitType, IndUnit(IUNum).Name, @@ -979,20 +980,20 @@ namespace HVACSingleDuctInduc { MyPlantSizingIndex(state, IndUnit(IUNum).CCoilType, IndUnit(IUNum).CCoil, CoilWaterInletNode, CoilWaterOutletNode, ErrorsFound); if (PltSizCoolNum > 0) { - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolMassFlow >= SmallAirVolFlow) { + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolMassFlow >= SmallAirVolFlow) { DesPriVolFlow = IndUnit(IUNum).MaxTotAirVolFlow / (1.0 + IndUnit(IUNum).InducRatio); - CpAir = PsyCpAirFnW(TermUnitFinalZoneSizing(CurTermUnitSizingNum).CoolDesHumRat); + CpAir = PsyCpAirFnW(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).CoolDesHumRat); // the design cooling coil load is the zone load minus whatever the central system does. Note that // DesCoolCoilInTempTU is really the primary air inlet temperature for the unit. - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { - DesCoilLoad = TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesCoolLoad - + if (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak > 0.0) { + DesCoilLoad = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesCoolLoad - CpAir * RhoAir * DesPriVolFlow * - (TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtCoolPeak - - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtCoolPeak - + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU); } else { DesCoilLoad = CpAir * RhoAir * DesPriVolFlow * - (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolCoilInTempTU - ZoneSizThermSetPtHi(CurZoneEqNum)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolCoilInTempTU - state.dataSize->ZoneSizThermSetPtHi(state.dataSize->CurZoneEqNum)); } IndUnit(IUNum).DesCoolingLoad = DesCoilLoad; Cp = GetSpecificHeatGlycol( @@ -1001,7 +1002,7 @@ namespace HVACSingleDuctInduc { rho = GetDensityGlycol( state, state.dataPlnt->PlantLoop(IndUnit(IUNum).CWLoopNum).FluidName, 5.0, state.dataPlnt->PlantLoop(IndUnit(IUNum).CWLoopNum).FluidIndex, RoutineName); - MaxVolColdWaterFlowDes = DesCoilLoad / (PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); + MaxVolColdWaterFlowDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); MaxVolColdWaterFlowDes = max(MaxVolColdWaterFlowDes, 0.0); } else { MaxVolColdWaterFlowDes = 0.0; @@ -1027,7 +1028,7 @@ namespace HVACSingleDuctInduc { MaxVolColdWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxVolColdWaterFlowDes - MaxVolColdWaterFlowUser) / MaxVolColdWaterFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuctInduction: Potential issue with equipment sizing for " + IndUnit(IUNum).UnitType + " = \"" + IndUnit(IUNum).Name + "\"."); ShowContinueError( @@ -1047,23 +1048,23 @@ namespace HVACSingleDuctInduc { } } - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->CurTermUnitSizingNum > 0) { // note we save the induced air flow for use by the hw and cw coil sizing routines - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = IndUnit(IUNum).MaxTotAirVolFlow * IndUnit(IUNum).InducRatio / (1.0 + IndUnit(IUNum).InducRatio); // save the max hot and cold water flows for use in coil sizing - TermUnitSizing(CurTermUnitSizingNum).MaxHWVolFlow = IndUnit(IUNum).MaxVolHotWaterFlow; - TermUnitSizing(CurTermUnitSizingNum).MaxCWVolFlow = IndUnit(IUNum).MaxVolColdWaterFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MaxHWVolFlow = IndUnit(IUNum).MaxVolHotWaterFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MaxCWVolFlow = IndUnit(IUNum).MaxVolColdWaterFlow; // save the design load used for reporting - TermUnitSizing(CurTermUnitSizingNum).DesCoolingLoad = IndUnit(IUNum).DesCoolingLoad; - TermUnitSizing(CurTermUnitSizingNum).DesHeatingLoad = IndUnit(IUNum).DesHeatingLoad; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).DesCoolingLoad = IndUnit(IUNum).DesCoolingLoad; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).DesHeatingLoad = IndUnit(IUNum).DesHeatingLoad; // save the induction ratio for use in subsequent sizing calcs - TermUnitSizing(CurTermUnitSizingNum).InducRat = IndUnit(IUNum).InducRatio; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).InducRat = IndUnit(IUNum).InducRatio; if (UtilityRoutines::SameString(IndUnit(IUNum).HCoilType, "Coil:Heating:Water")) { - SetCoilDesFlow(state, IndUnit(IUNum).HCoilType, IndUnit(IUNum).HCoil, TermUnitSizing(CurTermUnitSizingNum).AirVolFlow, ErrorsFound); + SetCoilDesFlow(state, IndUnit(IUNum).HCoilType, IndUnit(IUNum).HCoil, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow, ErrorsFound); } if (UtilityRoutines::SameString(IndUnit(IUNum).CCoilType, "Coil:Cooling:Water:DetailedGeometry")) { - SetCoilDesFlow(state, IndUnit(IUNum).CCoilType, IndUnit(IUNum).CCoil, TermUnitSizing(CurTermUnitSizingNum).AirVolFlow, ErrorsFound); + SetCoilDesFlow(state, IndUnit(IUNum).CCoilType, IndUnit(IUNum).CCoil, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow, ErrorsFound); } } } diff --git a/src/EnergyPlus/HVACSizingSimulationManager.cc b/src/EnergyPlus/HVACSizingSimulationManager.cc index 31de7846e77..397918d0ec8 100644 --- a/src/EnergyPlus/HVACSizingSimulationManager.cc +++ b/src/EnergyPlus/HVACSizingSimulationManager.cc @@ -72,20 +72,18 @@ namespace EnergyPlus { void HVACSizingSimulationManager::DetermineSizingAnalysesNeeded(EnergyPlusData &state) { using DataSizing::Coincident; - using DataSizing::NumPltSizInput; - using DataSizing::PlantSizData; // currently the only type of advanced sizing analysis available is for coincident plant sizing // expect more specialized sizing analysis objects to be added, so minimizing code here and jump to a worker method once we know an instance is to // be created. // Loop over PlantSizData struct and find those plant loops that are to use coincident sizing - for (int i = 1; i <= NumPltSizInput; ++i) { + for (int i = 1; i <= state.dataSize->NumPltSizInput; ++i) { - if (PlantSizData(i).ConcurrenceOption == Coincident) { + if (state.dataSize->PlantSizData(i).ConcurrenceOption == Coincident) { // create an instance of analysis object for each loop - CreateNewCoincidentPlantAnalysisObject(state, PlantSizData(i).PlantLoopName, i); + CreateNewCoincidentPlantAnalysisObject(state, state.dataSize->PlantSizData(i).PlantLoopName, i); } } } @@ -94,7 +92,6 @@ void HVACSizingSimulationManager::CreateNewCoincidentPlantAnalysisObject(EnergyP { using DataPlant::SupplySide; using namespace FluidProperties; - using DataSizing::PlantSizData; Real64 density; Real64 cp; @@ -113,7 +110,7 @@ void HVACSizingSimulationManager::CreateNewCoincidentPlantAnalysisObject(EnergyP state.dataPlnt->PlantLoop(i).LoopSide(SupplySide).NodeNumIn, density, cp, - PlantSizData(PlantSizingIndex).NumTimeStepsInAvg, + state.dataSize->PlantSizData(PlantSizingIndex).NumTimeStepsInAvg, PlantSizingIndex); } } @@ -125,16 +122,15 @@ void HVACSizingSimulationManager::SetupSizingAnalyses(EnergyPlusData &state) using DataSizing::CondenserLoop; using DataSizing::CoolingLoop; using DataSizing::HeatingLoop; - using DataSizing::PlantSizData; using DataSizing::SteamLoop; for (auto &P : plantCoincAnalyObjs) { // call setup log routine for each coincident plant analysis object P.supplyInletNodeFlow_LogIndex = sizingLogger.SetupVariableSizingLog(state, Node(P.supplySideInletNodeNum).MassFlowRate, P.numTimeStepsInAvg); P.supplyInletNodeTemp_LogIndex = sizingLogger.SetupVariableSizingLog(state, Node(P.supplySideInletNodeNum).Temp, P.numTimeStepsInAvg); - if (PlantSizData(P.plantSizingIndex).LoopType == HeatingLoop || PlantSizData(P.plantSizingIndex).LoopType == SteamLoop) { + if (state.dataSize->PlantSizData(P.plantSizingIndex).LoopType == HeatingLoop || state.dataSize->PlantSizData(P.plantSizingIndex).LoopType == SteamLoop) { P.loopDemand_LogIndex = sizingLogger.SetupVariableSizingLog(state, state.dataPlnt->PlantLoop(P.plantLoopIndex).HeatingDemand, P.numTimeStepsInAvg); - } else if (PlantSizData(P.plantSizingIndex).LoopType == CoolingLoop || PlantSizData(P.plantSizingIndex).LoopType == CondenserLoop) { + } else if (state.dataSize->PlantSizData(P.plantSizingIndex).LoopType == CoolingLoop || state.dataSize->PlantSizData(P.plantSizingIndex).LoopType == CondenserLoop) { P.loopDemand_LogIndex = sizingLogger.SetupVariableSizingLog(state, state.dataPlnt->PlantLoop(P.plantLoopIndex).CoolingDemand, P.numTimeStepsInAvg); } } @@ -249,7 +245,7 @@ void ManageHVACSizingSimulation(EnergyPlusData &state, bool &ErrorsFound) hvacSizingSimulationManager->sizingLogger.SetupSizingLogsNewEnvironment(state); - // if (!state.dataGlobal->DoDesDaySim) continue; // not sure about this, may need to force users to set this on input for this method, but maybe not + // if (!DoDesDaySim) continue; // not sure about this, may need to force users to set this on input for this method, but maybe not if (state.dataGlobal->KindOfSim == DataGlobalConstants::KindOfSim::RunPeriodWeather) continue; if (state.dataGlobal->KindOfSim == DataGlobalConstants::KindOfSim::DesignDay) continue; if (state.dataGlobal->KindOfSim == DataGlobalConstants::KindOfSim::RunPeriodDesign) continue; diff --git a/src/EnergyPlus/HVACStandAloneERV.cc b/src/EnergyPlus/HVACStandAloneERV.cc index e0faf288fb0..5f4bbe32a94 100644 --- a/src/EnergyPlus/HVACStandAloneERV.cc +++ b/src/EnergyPlus/HVACStandAloneERV.cc @@ -1317,12 +1317,8 @@ namespace EnergyPlus::HVACStandAloneERV { // Obtains flow rates from the zone or system sizing arrays. // Using/Aliasing - using DataSizing::AutoVsHardSizingThreshold; - using DataSizing::CurZoneEqNum; - using DataSizing::ZoneEqSizing; using Fans::SetFanData; using Fans::SimulateFanComponents; - using HeatRecovery::SetHeatExchangerData; using ScheduleManager::GetScheduleMaxValue; @@ -1358,16 +1354,18 @@ namespace EnergyPlus::HVACStandAloneERV { bool PrintFlag = true; bool ErrorsFound = false; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + if (state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow == DataSizing::AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { // Sizing objects are not required for stand alone ERV // CALL CheckZoneSizing('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name) - ZoneName = state.dataZoneEquip->ZoneEquipConfig(CurZoneEqNum).ZoneName; - ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CurZoneEqNum).ActualZoneNum; + ZoneName = state.dataZoneEquip->ZoneEquipConfig(state.dataSize->CurZoneEqNum).ZoneName; + ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(state.dataSize->CurZoneEqNum).ActualZoneNum; ZoneMult = state.dataHeatBal->Zone(ActualZoneNum).Multiplier * state.dataHeatBal->Zone(ActualZoneNum).ListMultiplier; FloorArea = 0.0; if (UtilityRoutines::SameString(ZoneName, state.dataHeatBal->Zone(ActualZoneNum).Name)) { @@ -1399,8 +1397,8 @@ namespace EnergyPlus::HVACStandAloneERV { Real64 TempSize = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; std::string SizingString = "Supply Air Flow Rate [m3/s]"; if (IsAutoSize) { - DataSizing::DataConstantUsedForSizing = SupplyAirVolFlowDes; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = SupplyAirVolFlowDes; + state.dataSize->DataFractionUsedForSizing = 1.0; TempSize = SupplyAirVolFlowDes; if (state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ControllerNameDefined) { state.dataMixedAir->OAController(state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ControllerIndex).MaxOA = @@ -1408,8 +1406,8 @@ namespace EnergyPlus::HVACStandAloneERV { state.dataMixedAir->OAController(state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ControllerIndex).MinOA = SupplyAirVolFlowDes; } } else { - DataSizing::DataConstantUsedForSizing = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; } if (TempSize > 0.0) { SystemAirFlowSizer sizerSystemAirFlow; @@ -1421,13 +1419,13 @@ namespace EnergyPlus::HVACStandAloneERV { } // Size ERV exhaust flow rate - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataFractionUsedForSizing = 1.0; IsAutoSize = false; if (state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ExhaustAirVolFlow == DataSizing::AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { ExhaustAirVolFlowDes = SupplyAirVolFlowDes; @@ -1443,11 +1441,11 @@ namespace EnergyPlus::HVACStandAloneERV { Real64 TempSize = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ExhaustAirVolFlow; if (IsAutoSize) { TempSize = ExhaustAirVolFlowDes; - DataSizing::DataConstantUsedForSizing = ExhaustAirVolFlowDes; + state.dataSize->DataConstantUsedForSizing = ExhaustAirVolFlowDes; } else { - DataSizing::DataConstantUsedForSizing = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ExhaustAirVolFlow; + state.dataSize->DataConstantUsedForSizing = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).ExhaustAirVolFlow; } - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataFractionUsedForSizing = 1.0; if (TempSize > 0.0) { SystemAirFlowSizer sizerSystemAirFlow; sizerSystemAirFlow.overrideSizingString(SizingString); @@ -1459,10 +1457,10 @@ namespace EnergyPlus::HVACStandAloneERV { } // Set Zone equipment sizing data for autosizing the fans and heat exchanger - ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow * state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).HighRHOAFlowRatio; - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow * state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).HighRHOAFlowRatio; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent = true; // Check supply fan flow rate or set flow rate if autosized in fan object IsAutoSize = false; @@ -1476,7 +1474,7 @@ namespace EnergyPlus::HVACStandAloneERV { if (state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).DesignSAFanVolFlowRate > 0.0 && DesignSAFanVolFlowRateDes > 0.0) { DesignSAFanVolFlowRateUser = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).DesignSAFanVolFlowRate; if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(DesignSAFanVolFlowRateDes - DesignSAFanVolFlowRateUser) / DesignSAFanVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(DesignSAFanVolFlowRateDes - DesignSAFanVolFlowRateUser) / DesignSAFanVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator " + cFanTypes(state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirFanType_Num) + ' ' + state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirFanName); @@ -1504,7 +1502,7 @@ namespace EnergyPlus::HVACStandAloneERV { } // now reset the ZoneEqSizing variable to NOT use the multiplier for HighRHOAFlowRatio for sizing HXs - ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).SupplyAirVolFlow; } void CalcStandAloneERV(EnergyPlusData &state, @@ -1738,7 +1736,7 @@ namespace EnergyPlus::HVACStandAloneERV { if (state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVNum).FirstPass); } } } @@ -2056,7 +2054,7 @@ namespace EnergyPlus::HVACStandAloneERV { StandSloneERVAFNException = false; - for (StandAloneERVIndex = 1; StandAloneERVIndex <= state.dataHVACStandAloneERV->NumStandAloneERVs; ++StandAloneERVIndex) { + for (StandAloneERVIndex = 1; StandAloneERVIndex <= state.dataHVACStandAloneERV->NumStandAloneERVs; ++StandAloneERVIndex) { auto StandAloneERV = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVIndex); bool ErrorsFound{false}; diff --git a/src/EnergyPlus/HVACUnitaryBypassVAV.cc b/src/EnergyPlus/HVACUnitaryBypassVAV.cc index 26ef8ef448c..a0d11d62ae4 100644 --- a/src/EnergyPlus/HVACUnitaryBypassVAV.cc +++ b/src/EnergyPlus/HVACUnitaryBypassVAV.cc @@ -1416,7 +1416,7 @@ namespace HVACUnitaryBypassVAV { // speed up test based on code from 16 years ago to correct cycling fan economizer defect // see https://github.com/NREL/EnergyPlusArchive/commit/a2202f8a168fd0330bf3a45392833405e8bd08f2 // This test sets simple flag so air loop doesn't iterate twice each pass (reverts above change) - // state.dataAirLoop->AirLoopControlInfo(AirLoopNum).Simple = true; + // AirLoopControlInfo(AirLoopNum).Simple = true; } if (MyPlantScanFlag(CBVAVNum) && allocated(state.dataPlnt->PlantLoop)) { @@ -1965,8 +1965,8 @@ namespace HVACUnitaryBypassVAV { // METHODOLOGY EMPLOYED: // Obtains flow rates from the zone sizing arrays. - int curSysNum = DataSizing::CurSysNum; - int curOASysNum = DataSizing::CurOASysNum; + int curSysNum = state.dataSize->CurSysNum; + int curOASysNum = state.dataSize->CurOASysNum; auto &CBVAV(state.dataHVACUnitaryBypassVAV->CBVAV); @@ -1990,7 +1990,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).MaxCoolAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + CBVAV(CBVAVNum).MaxCoolAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).MaxCoolAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).MaxCoolAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowWarningError(state, CBVAV(CBVAVNum).UnitType + " \"" + CBVAV(CBVAVNum).Name + "\""); @@ -2012,7 +2012,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).MaxHeatAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + CBVAV(CBVAVNum).MaxHeatAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).MaxHeatAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).MaxHeatAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowWarningError(state, CBVAV(CBVAVNum).UnitType + " \"" + CBVAV(CBVAVNum).Name + "\""); @@ -2034,7 +2034,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).MaxNoCoolHeatAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + CBVAV(CBVAVNum).MaxNoCoolHeatAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).MaxNoCoolHeatAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).MaxNoCoolHeatAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowWarningError(state, CBVAV(CBVAVNum).UnitType + " \"" + CBVAV(CBVAVNum).Name + "\""); @@ -2059,7 +2059,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).CoolOutAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; + CBVAV(CBVAVNum).CoolOutAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).CoolOutAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).CoolOutAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowWarningError(state, CBVAV(CBVAVNum).UnitType + " \"" + CBVAV(CBVAVNum).Name + "\""); @@ -2083,7 +2083,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).HeatOutAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; + CBVAV(CBVAVNum).HeatOutAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).HeatOutAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).HeatOutAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowContinueError(state, "The CBVAV system supply air fan air flow rate is less than the autosized value for the outdoor air flow rate " @@ -2106,7 +2106,7 @@ namespace HVACUnitaryBypassVAV { if (curSysNum > 0) { CheckSysSizing(state, CBVAV(CBVAVNum).UnitType, CBVAV(CBVAVNum).Name); - CBVAV(CBVAVNum).NoCoolHeatOutAirVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; + CBVAV(CBVAVNum).NoCoolHeatOutAirVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; if (CBVAV(CBVAVNum).FanVolFlow < CBVAV(CBVAVNum).NoCoolHeatOutAirVolFlow && CBVAV(CBVAVNum).FanVolFlow != DataSizing::AutoSize) { CBVAV(CBVAVNum).NoCoolHeatOutAirVolFlow = CBVAV(CBVAVNum).FanVolFlow; ShowContinueError(state, "The CBVAV system supply air fan air flow rate is less than the autosized value for the outdoor air flow rate " @@ -3992,7 +3992,7 @@ namespace HVACUnitaryBypassVAV { if (CBVAV(CBVAVNum).FirstPass) { if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, DataSizing::CurSysNum, CBVAV(CBVAVNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, state.dataSize->CurSysNum, CBVAV(CBVAVNum).FirstPass); } } diff --git a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc index 9d3d54c7ab8..aa0632f7601 100644 --- a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc +++ b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc @@ -1356,7 +1356,6 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { auto &GetDXCoilInletNode(DXCoils::GetCoilInletNode); auto &GetDXCoilOutletNode(DXCoils::GetCoilOutletNode); using DataSizing::AutoSize; - using DataSizing::ZoneHVACSizing; using DXCoils::GetCoilCondenserInletNode; using DXCoils::GetCoilTypeNum; using DXCoils::GetDXCoilAvailSchPtr; @@ -4142,7 +4141,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex = 0; if (!lAlphaFieldBlanks(16)) { - state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(16), ZoneHVACSizing); + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(16), state.dataSize->ZoneHVACSizing); if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFieldNames(16) + " = " + cAlphaArgs(16) + " not found."); ShowContinueError(state, "Occurs in " + cCurrentModuleObject + " = " + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); @@ -6013,7 +6012,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { SizeVRF(state, VRFTUNum); state.dataHVACVarRefFlow->TerminalUnitList(TUListIndex).TerminalUnitNotSizedYet(IndexToTUInTUList) = false; state.dataHVACVarRefFlow->MySizeFlag(VRFTUNum) = false; - } // IF ( .NOT. state.dataGlobal->ZoneSizingCalc) THEN + } // IF ( .NOT. ZoneSizingCalc) THEN } // IF (MySizeFlag(VRFTUNum)) THEN // Do the Begin Environment initializations @@ -7198,23 +7197,25 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { int CapSizingMethod(0); // capacity sizing methods (HeatingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity, and // FractionOfAutosizedHeatingCapacity ) + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + DataSizing::ZoneEqSizingData *select_EqSizing(nullptr); // sweep specific data into one pointer to avoid if statements throughout this subroutine - if (DataSizing::CurOASysNum > 0) { - select_EqSizing = &DataSizing::OASysEqSizing(DataSizing::CurOASysNum); - } else if (DataSizing::CurSysNum > 0) { - select_EqSizing = &DataSizing::UnitarySysEqSizing(DataSizing::CurSysNum); - } else if (DataSizing::CurZoneEqNum > 0) { - select_EqSizing = &DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum); - DataSizing::ZoneEqUnitarySys = true; + if (state.dataSize->CurOASysNum > 0) { + select_EqSizing = &state.dataSize->OASysEqSizing(state.dataSize->CurOASysNum); + } else if (state.dataSize->CurSysNum > 0) { + select_EqSizing = &state.dataSize->UnitarySysEqSizing(state.dataSize->CurSysNum); + } else if (state.dataSize->CurZoneEqNum > 0) { + select_EqSizing = &ZoneEqSizing(state.dataSize->CurZoneEqNum); + state.dataSize->ZoneEqUnitarySys = true; } else { assert(false); } // Object Data, points to specific array DataSizing::ZoneEqSizingData &EqSizing(*select_EqSizing); - // can't hurt to initialize these going in, problably redundant + // can't hurt to initialize these going in, probably redundant EqSizing.AirFlow = false; EqSizing.CoolingAirFlow = false; EqSizing.HeatingAirFlow = false; @@ -7255,13 +7256,13 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { EvapCondPumpPowerDes = 0.0; EvapCondPumpPowerUser = 0.0; - DataScalableSizingON = false; - DataScalableCapSizingON = false; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; - SuppHeatCap = 0.0; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->DataFracOfAutosizedCoolingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedHeatingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->SuppHeatCap = 0.0; if (state.dataHVACVarRefFlow->MyOneTimeSizeFlag) { // initialize the environment and sizing flags @@ -7271,16 +7272,16 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { CompType = DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num); CompName = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name; - DataZoneNumber = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum; + state.dataSize->DataZoneNumber = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum; if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).fanType_Num == DataHVACGlobals::FanType_SystemModelObject) { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanIndex = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanIndex = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex; if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanPlace == DataHVACGlobals::BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanPlace == DataHVACGlobals::DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } } else if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInAirLoop) { state.dataAirSystemsData->PrimaryAirSystems(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).airLoopNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; @@ -7293,12 +7294,12 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex > 0) { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanIndex = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanIndex = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanIndex; if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanPlace == DataHVACGlobals::BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).FanPlace == DataHVACGlobals::DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } } else if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInAirLoop) { state.dataAirSystemsData->PrimaryAirSystems(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).airLoopNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; @@ -7314,7 +7315,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex > 0) { // initialize OA flow for sizing other inputs (e.g., capacity) if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow == AutoSize) { - EqSizing.OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + EqSizing.OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { EqSizing.OAVolFlow = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow; } @@ -7323,7 +7324,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerExists && state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) { // set up ATMixer conditions for scalable capacity sizing EqSizing.OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerIndex, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(state, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerIndex, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum, state.dataSize->CurZoneEqNum); } zoneHVACIndex = state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HVACSizingIndex; @@ -7331,26 +7332,26 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { SizingMethod = CoolingAirflowSizing; PrintFlag = true; bool errorsFound = false; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; EqSizing.SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; EqSizing.SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { EqSizing.SystemAirFlow = true; - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } CoolingAirFlowSizer sizingCoolingAirFlow; @@ -7365,16 +7366,16 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -7390,26 +7391,26 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { FieldNum = 3; // N3, \field Supply Air Flow Rate During Heating Operation PrintFlag = true; SizingString = state.dataHVACVarRefFlow->VRFTUNumericFields(VRFTUNum).FieldNames(FieldNum) + " [m3/s]"; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; EqSizing.SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; EqSizing.SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { EqSizing.SystemAirFlow = true; - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -7421,17 +7422,17 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -7444,33 +7445,33 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } PrintFlag = true; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; EqSizing.SizingMethod(SizingMethod) = SAFMethod; if ((SAFMethod == SupplyAirFlowRate) || (SAFMethod == FlowPerFloorArea) || (SAFMethod == FractionOfAutosizedHeatingAirflow) || (SAFMethod == FractionOfAutosizedCoolingAirflow)) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; EqSizing.SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { EqSizing.SystemAirFlow = true; - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "No Cooling Supply Air Flow Rate [m3/s]"; @@ -7485,33 +7486,33 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { FieldNum = 4; // N4, \field Supply Air Flow Rate When No Heating is Needed PrintFlag = true; SizingString = state.dataHVACVarRefFlow->VRFTUNumericFields(VRFTUNum).FieldNames(FieldNum) + " [m3/s]"; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; EqSizing.SizingMethod(SizingMethod) = SAFMethod; if ((SAFMethod == SupplyAirFlowRate) || (SAFMethod == FlowPerFloorArea) || (SAFMethod == FractionOfAutosizedHeatingAirflow) || (SAFMethod == FractionOfAutosizedCoolingAirflow)) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; EqSizing.SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { EqSizing.SystemAirFlow = true; - EqSizing.AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + EqSizing.AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingNoHeatingAirFlow; @@ -7523,43 +7524,43 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { // initialize capacity sizing variables: cooling SizingMethod = CoolingCapacitySizing; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; EqSizing.SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { EqSizing.CoolingCapacity = true; - EqSizing.DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + EqSizing.DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { EqSizing.CoolingCapacity = true; - EqSizing.DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + EqSizing.DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } // initialize capacity sizing variables: heating SizingMethod = HeatingCapacitySizing; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; EqSizing.SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { EqSizing.HeatingCapacity = true; - EqSizing.DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + EqSizing.DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { EqSizing.HeatingCapacity = true; - EqSizing.DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + EqSizing.DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } } else { @@ -7606,8 +7607,8 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, @@ -7616,7 +7617,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else { CheckZoneSizing(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); - CoolOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow); + CoolOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow); if (CoolOutAirVolFlowDes < DataHVACGlobals::SmallAirVolFlow) { CoolOutAirVolFlowDes = 0.0; } @@ -7637,7 +7638,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Outdoor Air Flow Rate During Cooling Operation [m3/s]", CoolOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(CoolOutAirVolFlowDes - CoolOutAirVolFlowUser) / CoolOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(CoolOutAirVolFlowDes - CoolOutAirVolFlowUser) / CoolOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); ShowContinueError( @@ -7655,10 +7656,10 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow == DataSizing::AutoSize) { - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).OASysExists) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).OASysExists) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow = 0.0; } else { - state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow = min(FinalSysSizing(CurSysNum).DesOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow); + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow = min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow); } BaseSizer::reportSizerOutput(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, @@ -7671,8 +7672,8 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, @@ -7681,7 +7682,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else { CheckZoneSizing(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); - HeatOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxHeatAirVolFlow); + HeatOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxHeatAirVolFlow); if (HeatOutAirVolFlowDes < DataHVACGlobals::SmallAirVolFlow) { HeatOutAirVolFlowDes = 0.0; } @@ -7702,7 +7703,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Outdoor Air Flow Rate During Heating Operation [m3/s]", HeatOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(HeatOutAirVolFlowDes - HeatOutAirVolFlowUser) / HeatOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(HeatOutAirVolFlowDes - HeatOutAirVolFlowUser) / HeatOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); ShowContinueError( @@ -7720,10 +7721,10 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow == DataSizing::AutoSize) { - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).OASysExists) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).OASysExists) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow = 0.0; } else { - state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow = min(FinalSysSizing(CurSysNum).DesOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxHeatAirVolFlow); + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow = min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxHeatAirVolFlow); } BaseSizer::reportSizerOutput(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, @@ -7735,15 +7736,15 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerExists && state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) { // set up ATMixer conditions for use in component sizing EqSizing.OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerIndex, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(state, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ATMixerIndex, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).ZoneNum, state.dataSize->CurZoneEqNum); } IsAutoSize = false; if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).NoCoolHeatOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).NoCoolHeatOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, @@ -7753,7 +7754,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } else { CheckZoneSizing(state, DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num), state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); NoCoolHeatOutAirVolFlowDes = - min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow); + min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow); if (NoCoolHeatOutAirVolFlowDes < DataHVACGlobals::SmallAirVolFlow) { NoCoolHeatOutAirVolFlowDes = 0.0; } @@ -7775,7 +7776,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { NoCoolHeatOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(NoCoolHeatOutAirVolFlowDes - NoCoolHeatOutAirVolFlowUser) / NoCoolHeatOutAirVolFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + DataHVACGlobals::cVRFTUTypes(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUType_Num) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFTUNum).Name); ShowContinueError(state, @@ -7794,7 +7795,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } else { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).NoCoolHeatOutAirVolFlow == DataSizing::AutoSize) { - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).OASysExists) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).OASysExists) { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).NoCoolHeatOutAirVolFlow = 0.0; } else { state.dataHVACVarRefFlow->VRFTU(VRFTUNum).NoCoolHeatOutAirVolFlow = min(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxCoolAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).MaxHeatAirVolFlow); @@ -7861,8 +7862,8 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (CheckVRFCombinationRatio(VRFCond)) { OnOffAirFlowRat = 1.0; // set up the outside air data for sizing the DX coils - if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) ZoneEqDXCoil = true; - if (CurZoneEqNum > 0) { + if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).isInZone) state.dataSize->ZoneEqDXCoil = true; + if (state.dataSize->CurZoneEqNum > 0) { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow > 0.0 || state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow > 0.0) { EqSizing.OAVolFlow = max(state.dataHVACVarRefFlow->VRFTU(VRFTUNum).CoolOutAirVolFlow, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).HeatOutAirVolFlow); } else { @@ -7932,7 +7933,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Rated Total Cooling Capacity (gross) [W]", CoolingCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(CoolingCapacityDes - CoolingCapacityUser) / CoolingCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(CoolingCapacityDes - CoolingCapacityUser) / CoolingCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError(state, @@ -7976,7 +7977,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Rated Total Heating Capacity [W]", HeatingCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(HeatingCapacityDes - HeatingCapacityUser) / HeatingCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(HeatingCapacityDes - HeatingCapacityUser) / HeatingCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError(state, format("User-Specified Rated Total Heating Capacity of {:.2R} [W]", HeatingCapacityUser)); @@ -8106,7 +8107,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { HeatingCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(CoolingCapacityDes - CoolingCapacityUser) / CoolingCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(CoolingCapacityDes - CoolingCapacityUser) / CoolingCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError(state, @@ -8117,7 +8118,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { ShowContinueError(state, "Verify that the value entered is intended and is consistent with other components."); } - if ((std::abs(HeatingCapacityDes - HeatingCapacityUser) / HeatingCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(HeatingCapacityDes - HeatingCapacityUser) / HeatingCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError(state, format("User-Specified Rated Total Heating Capacity of {:.2R} [W]", HeatingCapacityUser)); @@ -8157,7 +8158,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Resistive Defrost Heater Capacity", DefrostCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError(state, @@ -8194,7 +8195,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { EvapCondAirVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(EvapCondAirVolFlowRateDes - EvapCondAirVolFlowRateUser) / EvapCondAirVolFlowRateUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError( @@ -8232,7 +8233,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { "User-Specified Evaporative Condenser Pump Rated Power Consumption [W]", EvapCondPumpPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(EvapCondPumpPowerDes - EvapCondPumpPowerUser) / EvapCondPumpPowerUser) > AutoVsHardSizingThreshold) { + if ((std::abs(EvapCondPumpPowerDes - EvapCondPumpPowerUser) / EvapCondPumpPowerUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVRF: Potential issue with equipment sizing for " + std::string(cVRFTypes(state.dataHVACVarRefFlow->VRF(VRFCond).VRFSystemTypeNum)) + ' ' + state.dataHVACVarRefFlow->VRFTU(VRFCond).Name); ShowContinueError( @@ -8271,7 +8272,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { } } - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } void VRFCondenserEquipment::SizeVRFCondenser(EnergyPlusData &state) @@ -8308,17 +8309,17 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (PltSizCondNum > 0) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidIndex, RoutineName); Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidName, - DataSizing::PlantSizData(PltSizCondNum).ExitTemp, + state.dataSize->PlantSizData(PltSizCondNum).ExitTemp, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidIndex, RoutineName); tmpCondVolFlowRate = - max(this->CoolingCapacity, this->HeatingCapacity) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + max(this->CoolingCapacity, this->HeatingCapacity) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); if (this->HeatingCapacity != DataSizing::AutoSize && this->CoolingCapacity != DataSizing::AutoSize) { this->WaterCondVolFlowRate = tmpCondVolFlowRate; BaseSizer::reportSizerOutput(state, "AirConditioner:VariableRefrigerantFlow", @@ -8354,7 +8355,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { ShowFatalError(state, "Preceding sizing errors cause program termination"); } - PlantUtilities::RegisterPlantCompDesignFlow(this->CondenserNodeNum, this->WaterCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondenserNodeNum, this->WaterCondVolFlowRate); } } @@ -9104,7 +9105,7 @@ namespace EnergyPlus::HVACVariableRefrigerantFlow { if (state.dataHVACVarRefFlow->VRFTU(VRFTUNum).firstPass) { if (!state.dataHVACVarRefFlow->MySizeFlag(VRFTUNum)) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).firstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataHVACVarRefFlow->VRFTU(VRFTUNum).firstPass); } } diff --git a/src/EnergyPlus/HWBaseboardRadiator.cc b/src/EnergyPlus/HWBaseboardRadiator.cc index 684bc3d8dd9..02171d0dcce 100644 --- a/src/EnergyPlus/HWBaseboardRadiator.cc +++ b/src/EnergyPlus/HWBaseboardRadiator.cc @@ -1023,12 +1023,6 @@ namespace HWBaseboardRadiator { static std::string const RoutineName("SizeHWBaseboard"); static std::string const RoutineNameFull("BaseboardRadiatorWater:SizeHWBaseboard"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PltSizNum; // do loop index for plant sizing int PltSizHeatNum; // index of plant sizing object for 1st heating loop @@ -1070,43 +1064,45 @@ namespace HWBaseboardRadiator { WaterVolFlowRateMaxDes = 0.0; WaterVolFlowRateMaxUser = 0.0; RatedCapacityDes = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; + + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { CompType = cCMO_BBRadiator_Water; CompName = HWBaseboard(BaseboardNum).EquipID; - DataHeatSizeRatio = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = HWBaseboard(BaseboardNum).ZonePtr; + state.dataSize->DataHeatSizeRatio = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = HWBaseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 3; PrintFlag = false; SizingString = HWBaseboardNumericFields(BaseboardNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = HWBaseboard(BaseboardNum).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { if (HWBaseboard(BaseboardNum).ScaledHeatingCapacity == AutoSize) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } TempSize = HWBaseboard(BaseboardNum).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = HWBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = HWBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = HWBaseboard(BaseboardNum).ScaledHeatingCapacity; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = HWBaseboard(BaseboardNum).ScaledHeatingCapacity; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = HWBaseboard(BaseboardNum).ScaledHeatingCapacity; } @@ -1121,7 +1117,7 @@ namespace HWBaseboardRadiator { HWBaseboard(BaseboardNum).RatedCapacity = TempSize; } RatedCapacityDes = TempSize; - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } } @@ -1129,12 +1125,12 @@ namespace HWBaseboardRadiator { PltSizHeatNum = state.dataPlnt->PlantLoop(HWBaseboard(BaseboardNum).LoopNum).PlantSizNum; if (PltSizHeatNum > 0) { - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (HWBaseboard(BaseboardNum).WaterVolFlowRateMax == AutoSize) { FlowAutoSize = true; } - if (!FlowAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!FlowAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (HWBaseboard(BaseboardNum).WaterVolFlowRateMax > 0.0) { BaseSizer::reportSizerOutput(state, cCMO_BBRadiator_Water, HWBaseboard(BaseboardNum).EquipID, @@ -1155,7 +1151,7 @@ namespace HWBaseboardRadiator { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(HWBaseboard(BaseboardNum).LoopNum).FluidIndex, RoutineName); - WaterVolFlowRateMaxDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + WaterVolFlowRateMaxDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { WaterVolFlowRateMaxDes = 0.0; } @@ -1177,7 +1173,7 @@ namespace HWBaseboardRadiator { WaterVolFlowRateMaxUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(WaterVolFlowRateMaxDes - WaterVolFlowRateMaxUser) / WaterVolFlowRateMaxUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHWBaseboard: Potential issue with equipment sizing for ZoneHVAC:Baseboard:RadiantConvective:Water=\"" + HWBaseboard(BaseboardNum).EquipID + "\"."); @@ -1308,7 +1304,7 @@ namespace HWBaseboardRadiator { cCMO_BBRadiator_Water, HWBaseboard(BaseboardNum).EquipID, "U-Factor times Area [W/C]", HWBaseboard(BaseboardNum).UA); } // save the design water flow rate for use by the water loop sizing algorithms - RegisterPlantCompDesignFlow(HWBaseboard(BaseboardNum).WaterInletNode, HWBaseboard(BaseboardNum).WaterVolFlowRateMax); + RegisterPlantCompDesignFlow(state, HWBaseboard(BaseboardNum).WaterInletNode, HWBaseboard(BaseboardNum).WaterVolFlowRateMax); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/HeatBalanceSurfaceManager.cc b/src/EnergyPlus/HeatBalanceSurfaceManager.cc index 9cadd14f2c1..b0f70404c11 100644 --- a/src/EnergyPlus/HeatBalanceSurfaceManager.cc +++ b/src/EnergyPlus/HeatBalanceSurfaceManager.cc @@ -5259,7 +5259,6 @@ namespace EnergyPlus::HeatBalanceSurfaceManager { // PURPOSE OF THIS SUBROUTINE: // This subroutine puts the reporting part of the HBSurface Module in one area. - using DataSizing::CurOverallSimDay; using SolarShading::ReportSurfaceShading; SumSurfaceHeatEmission = 0.0; @@ -5289,8 +5288,8 @@ namespace EnergyPlus::HeatBalanceSurfaceManager { if (state.dataGlobal->ZoneSizingCalc && state.dataGlobal->CompLoadReportIsReq) { int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; - state.dataOutRptTab->lightSWRadSeq(CurOverallSimDay, TimeStepInDay, SurfNum) = QdotRadLightsInRep(SurfNum); - state.dataOutRptTab->feneSolarRadSeq(CurOverallSimDay, TimeStepInDay, SurfNum) = QdotRadSolarInRep(SurfNum); + state.dataOutRptTab->lightSWRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, SurfNum) = QdotRadLightsInRep(SurfNum); + state.dataOutRptTab->feneSolarRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, SurfNum) = QdotRadSolarInRep(SurfNum); } } else { // can we fill these for windows? } @@ -6922,10 +6921,10 @@ namespace EnergyPlus::HeatBalanceSurfaceManager { if (!state.dataGlobal->WarmupFlag) { int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; if (state.dataGlobal->isPulseZoneSizing) { - state.dataOutRptTab->loadConvectedWithPulse(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); + state.dataOutRptTab->loadConvectedWithPulse(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); } else { - state.dataOutRptTab->loadConvectedNormal(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); - state.dataOutRptTab->netSurfRadSeq(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = + state.dataOutRptTab->loadConvectedNormal(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); + state.dataOutRptTab->netSurfRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = SurfNetLWRadToSurf(surfNum) * Surface(surfNum).Area; } } @@ -7600,11 +7599,11 @@ namespace EnergyPlus::HeatBalanceSurfaceManager { if (!state.dataGlobal->WarmupFlag) { int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; if (state.dataGlobal->isPulseZoneSizing) { - state.dataOutRptTab->loadConvectedWithPulse(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = + state.dataOutRptTab->loadConvectedWithPulse(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); } else { - state.dataOutRptTab->loadConvectedNormal(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); - state.dataOutRptTab->netSurfRadSeq(DataSizing::CurOverallSimDay, TimeStepInDay, surfNum) = + state.dataOutRptTab->loadConvectedNormal(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = QdotConvInRep(surfNum); + state.dataOutRptTab->netSurfRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) = SurfNetLWRadToSurf(surfNum) * Surface(surfNum).Area; } } @@ -8216,18 +8215,17 @@ namespace EnergyPlus::HeatBalanceSurfaceManager { // METHODOLOGY EMPLOYED: // Save sequence of values for report during sizing. - using DataSizing::CurOverallSimDay; auto &Surface(state.dataSurface->Surface); if (state.dataGlobal->CompLoadReportIsReq && !state.dataGlobal->isPulseZoneSizing) { int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; for (int enclosureNum = 1; enclosureNum <= DataViewFactorInformation::NumOfRadiantEnclosures; ++enclosureNum) { - state.dataOutRptTab->TMULTseq(CurOverallSimDay, TimeStepInDay, enclosureNum) = state.dataHeatBal->TMULT(enclosureNum); + state.dataOutRptTab->TMULTseq(state.dataSize->CurOverallSimDay, TimeStepInDay, enclosureNum) = state.dataHeatBal->TMULT(enclosureNum); } for (int jSurf = 1; jSurf <= state.dataSurface->TotSurfaces; ++jSurf) { if (!Surface(jSurf).HeatTransSurf || Surface(jSurf).Zone == 0) continue; // Skip non-heat transfer surfaces if (Surface(jSurf).Class == SurfaceClass::TDD_Dome) continue; // Skip tubular daylighting device domes - state.dataOutRptTab->ITABSFseq(CurOverallSimDay, TimeStepInDay, jSurf) = state.dataHeatBal->ITABSF(jSurf); + state.dataOutRptTab->ITABSFseq(state.dataSize->CurOverallSimDay, TimeStepInDay, jSurf) = state.dataHeatBal->ITABSF(jSurf); } } } diff --git a/src/EnergyPlus/HeatPumpWaterToWaterCOOLING.cc b/src/EnergyPlus/HeatPumpWaterToWaterCOOLING.cc index 10a18a676ae..2669bec67c8 100644 --- a/src/EnergyPlus/HeatPumpWaterToWaterCOOLING.cc +++ b/src/EnergyPlus/HeatPumpWaterToWaterCOOLING.cc @@ -368,7 +368,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterCOOLING { TestCompSet(state, ModuleCompNameUC, AlphArray(1), AlphArray(4), AlphArray(5), "Chilled Water Nodes"); // save the design source side flow rate for use by plant loop sizing algorithms - RegisterPlantCompDesignFlow(state.dataHPWaterToWaterClg->GSHP(GSHPNum).SourceSideInletNodeNum, 0.5 * state.dataHPWaterToWaterClg->GSHP(GSHPNum).SourceSideVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataHPWaterToWaterClg->GSHP(GSHPNum).SourceSideInletNodeNum, 0.5 * state.dataHPWaterToWaterClg->GSHP(GSHPNum).SourceSideVolFlowRate); state.dataHPWaterToWaterClg->GSHP(GSHPNum).QLoad = 0.0; state.dataHPWaterToWaterClg->GSHP(GSHPNum).QSource = 0.0; diff --git a/src/EnergyPlus/HeatPumpWaterToWaterHEATING.cc b/src/EnergyPlus/HeatPumpWaterToWaterHEATING.cc index e10bbd51240..e69a1908bd2 100644 --- a/src/EnergyPlus/HeatPumpWaterToWaterHEATING.cc +++ b/src/EnergyPlus/HeatPumpWaterToWaterHEATING.cc @@ -348,7 +348,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterHEATING { TestCompSet(state, ModuleCompNameUC, AlphArray(1), AlphArray(4), AlphArray(5), "Hot Water Nodes"); // save the design source side flow rate for use by plant loop sizing algorithms - RegisterPlantCompDesignFlow(state.dataHPWaterToWaterHtg->GSHP(GSHPNum).SourceSideInletNodeNum, 0.5 * state.dataHPWaterToWaterHtg->GSHP(GSHPNum).SourceSideVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataHPWaterToWaterHtg->GSHP(GSHPNum).SourceSideInletNodeNum, 0.5 * state.dataHPWaterToWaterHtg->GSHP(GSHPNum).SourceSideVolFlowRate); } diff --git a/src/EnergyPlus/HeatPumpWaterToWaterSimple.cc b/src/EnergyPlus/HeatPumpWaterToWaterSimple.cc index 786e0a33430..896550f4d47 100644 --- a/src/EnergyPlus/HeatPumpWaterToWaterSimple.cc +++ b/src/EnergyPlus/HeatPumpWaterToWaterSimple.cc @@ -302,7 +302,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { "GetWatertoWaterHPInput", HPEqFitCoolingUC, state.dataHPWaterToWaterSimple->GSHP(GSHPNum).Name, - "Cooling Capacity Curve Name"); + "Cooling Capacity Curve Name"); } if (state.dataHPWaterToWaterSimple->GSHP(GSHPNum).CoolPowCurveIndex > 0) { ErrorsFound |= CurveManager::CheckCurveDims(state, @@ -311,7 +311,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { "GetWatertoWaterHPInput", HPEqFitCoolingUC, state.dataHPWaterToWaterSimple->GSHP(GSHPNum).Name, - "Cooling Compressor Power Curve Name"); + "Cooling Compressor Power Curve Name"); } if (NumNums > 4) { @@ -462,7 +462,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { "GetWatertoWaterHPInput", HPEqFitHeatingUC, state.dataHPWaterToWaterSimple->GSHP(GSHPNum).Name, - "Heating Capacity Curve Name"); + "Heating Capacity Curve Name"); } if (state.dataHPWaterToWaterSimple->GSHP(GSHPNum).HeatPowCurveIndex > 0) { ErrorsFound |= CurveManager::CheckCurveDims(state, @@ -471,7 +471,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { "GetWatertoWaterHPInput", HPEqFitHeatingUC, state.dataHPWaterToWaterSimple->GSHP(GSHPNum).Name, - "Heating Compressor Power Curve Name"); + "Heating Compressor Power Curve Name"); } if (NumNums > 4) { if (!DataIPShortCuts::lNumericFieldBlanks(5)) { @@ -958,8 +958,8 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { int pltLoadSizNum = state.dataPlnt->PlantLoop(this->LoadLoopNum).PlantSizNum; if (pltLoadSizNum > 0) { - if (DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { - tmpLoadSideVolFlowRate = DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizFac; + if (state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { + tmpLoadSideVolFlowRate = state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizFac; // now compare to companion coil and take higher if (this->companionIdentified) { tmpLoadSideVolFlowRate = max(tmpLoadSideVolFlowRate, this->RatedLoadVolFlowHeat); @@ -976,7 +976,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->LoadLoopNum).FluidIndex, RoutineName); - tmpCoolingCap = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; + tmpCoolingCap = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; } else if (this->companionIdentified && this->RatedLoadVolFlowHeat > 0.0) { tmpLoadSideVolFlowRate = this->RatedLoadVolFlowHeat; Real64 rho = FluidProperties::GetDensityGlycol(state, @@ -989,7 +989,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->LoadLoopNum).FluidIndex, RoutineName); - tmpCoolingCap = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; + tmpCoolingCap = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; } else { if (this->ratedCapCoolWasAutoSized) tmpCoolingCap = 0.0; if (this->ratedLoadVolFlowCoolWasAutoSized) tmpLoadSideVolFlowRate = 0.0; @@ -1024,7 +1024,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpCoolingCap - nomCoolingCapUser) / nomCoolingCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpCoolingCap - nomCoolingCapUser) / nomCoolingCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeCoolingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", nomCoolingCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpCoolingCap)); @@ -1069,7 +1069,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpLoadSideVolFlowRate - nomLoadSideVolFlowUser) / nomLoadSideVolFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeCoolingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Load Side Volume Flow Rate of {:.2R} [m3/s]", nomLoadSideVolFlowUser)); @@ -1151,7 +1151,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidIndex, RoutineName); - tmpSourceSideVolFlowRate = tmpCoolingCap * (1.0 + (1.0 / this->refCOP)) / (DataSizing::PlantSizData(pltSourceSizNum).DeltaT * Cp * rho); + tmpSourceSideVolFlowRate = tmpCoolingCap * (1.0 + (1.0 / this->refCOP)) / (state.dataSize->PlantSizData(pltSourceSizNum).DeltaT * Cp * rho); } else { tmpSourceSideVolFlowRate = tmpLoadSideVolFlowRate; // set source side flow equal to load side flow, assumption } @@ -1189,7 +1189,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpSourceSideVolFlowRate - nomSourceSideVolFlowUser) / nomSourceSideVolFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeCoolingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Source Side Volume Flow Rate of {:.2R} [m3/s]", nomSourceSideVolFlowUser)); @@ -1234,7 +1234,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { nomPowerDrawUser); } if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpPowerDraw - nomPowerDrawUser) / nomPowerDrawUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpPowerDraw - nomPowerDrawUser) / nomPowerDrawUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeCoolingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Cooling Power Consumption of {:.2R} [W]", nomPowerDrawUser)); ShowContinueError(state, format("differs from Design Size Cooling Power Consumption of {:.2R} [W]", tmpPowerDraw)); @@ -1248,10 +1248,10 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->LoadSideInletNodeNum, tmpLoadSideVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->LoadSideInletNodeNum, tmpLoadSideVolFlowRate); // only register half of the source side flow because we expect a companion heat pump to also register a flow and we don't want to double // count - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceSideInletNodeNum, tmpSourceSideVolFlowRate * 0.5); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceSideInletNodeNum, tmpSourceSideVolFlowRate * 0.5); if (state.dataPlnt->PlantFinalSizesOkayToReport && !this->myCoolingSizesReported) { // create predefined report @@ -1294,8 +1294,8 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { int pltLoadSizNum = state.dataPlnt->PlantLoop(this->LoadLoopNum).PlantSizNum; if (pltLoadSizNum > 0) { - if (DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { - tmpLoadSideVolFlowRate = DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizFac; + if (state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { + tmpLoadSideVolFlowRate = state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizFac; // now compare to companion coil and take higher if (this->companionIdentified) { tmpLoadSideVolFlowRate = max(tmpLoadSideVolFlowRate, this->RatedLoadVolFlowCool); @@ -1313,7 +1313,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(this->LoadLoopNum).FluidIndex, RoutineName); - tmpHeatingCap = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; + tmpHeatingCap = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; } else if (this->companionIdentified && this->RatedLoadVolFlowCool > 0.0) { tmpLoadSideVolFlowRate = this->RatedLoadVolFlowCool; Real64 rho = FluidProperties::GetDensityGlycol(state, @@ -1326,7 +1326,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(this->LoadLoopNum).FluidIndex, RoutineName); - tmpHeatingCap = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; + tmpHeatingCap = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadSideVolFlowRate; } else { if (this->ratedCapHeatWasAutoSized) tmpHeatingCap = 0.0; if (this->ratedLoadVolFlowHeatWasAutoSized) tmpLoadSideVolFlowRate = 0.0; @@ -1360,7 +1360,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { nomHeatingCapUser); } if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpHeatingCap - nomHeatingCapUser) / nomHeatingCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpHeatingCap - nomHeatingCapUser) / nomHeatingCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeHeatingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", nomHeatingCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpHeatingCap)); @@ -1405,7 +1405,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpLoadSideVolFlowRate - nomLoadSideVolFlowUser) / nomLoadSideVolFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeHeatingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Load Side Volume Flow Rate of {:.2R} [m3/s]", nomLoadSideVolFlowUser)); @@ -1487,7 +1487,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(this->SourceLoopNum).FluidIndex, RoutineName); - tmpSourceSideVolFlowRate = tmpHeatingCap * (1.0 - (1.0 / this->refCOP)) / (DataSizing::PlantSizData(pltSourceSizNum).DeltaT * Cp * rho); + tmpSourceSideVolFlowRate = tmpHeatingCap * (1.0 - (1.0 / this->refCOP)) / (state.dataSize->PlantSizData(pltSourceSizNum).DeltaT * Cp * rho); } else { tmpSourceSideVolFlowRate = tmpLoadSideVolFlowRate; // set source side flow equal to load side flow, assumption } @@ -1524,7 +1524,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpSourceSideVolFlowRate - nomSourceSideVolFlowUser) / nomSourceSideVolFlowUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeHeatingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Source Side Volume Flow Rate of {:.2R} [m3/s]", nomSourceSideVolFlowUser)); @@ -1569,7 +1569,7 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { nomPowerDrawUser); } if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpPowerDraw - nomPowerDrawUser) / nomPowerDrawUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpPowerDraw - nomPowerDrawUser) / nomPowerDrawUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "sizeHeatingWaterToWaterHP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Heating Power Consumption of {:.2R} [W]", nomPowerDrawUser)); ShowContinueError(state, format("differs from Design Size Heating Power Consumption of {:.2R} [W]", tmpPowerDraw)); @@ -1583,9 +1583,9 @@ namespace EnergyPlus::HeatPumpWaterToWaterSimple { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->LoadSideInletNodeNum, tmpLoadSideVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->LoadSideInletNodeNum, tmpLoadSideVolFlowRate); // register half of source side flow to avoid double counting - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceSideInletNodeNum, tmpSourceSideVolFlowRate * 0.5); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceSideInletNodeNum, tmpSourceSideVolFlowRate * 0.5); if (state.dataPlnt->PlantFinalSizesOkayToReport && !this->myHeatingSizesReported) { // create predefined report diff --git a/src/EnergyPlus/HeatRecovery.cc b/src/EnergyPlus/HeatRecovery.cc index f97250e6632..1cc51b0b30d 100644 --- a/src/EnergyPlus/HeatRecovery.cc +++ b/src/EnergyPlus/HeatRecovery.cc @@ -1622,7 +1622,9 @@ namespace HeatRecovery { std::string CompType; // component type std::string SizingString; // input field sizing description - HRFlowSizingFlag = true; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + + state.dataSize->HRFlowSizingFlag = true; PrintFlag = true; FieldNum = 0; if (ExchCond(ExchNum).ExchTypeNum == HX_DESICCANT_BALANCED) { @@ -1642,27 +1644,27 @@ namespace HeatRecovery { } else { SizingString = "Nominal Supply Air Flow Rate [m3/s]"; // desiccant balanced flow does not have an input for air volume flow rate } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (ExchCond(ExchNum).NomSupAirVolFlow == AutoSize) { SizingMethod = AutoCalculateSizing; - if (ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent) { // Heat recovery heat exchanger in zoneHVAC equipment should have been sized to OA flow in the parent equipment - DataConstantUsedForSizing = ZoneEqSizing(CurZoneEqNum).AirVolFlow; + state.dataSize->DataConstantUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; } else { - DataConstantUsedForSizing = std::max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + state.dataSize->DataConstantUsedForSizing = std::max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); } - DataFractionUsedForSizing = 1.0; + state.dataSize->DataFractionUsedForSizing = 1.0; } else { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { SizingMethod = AutoCalculateSizing; - if (ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent) { // Heat recovery heat exchanger in zoneHVAC equipment should have been sized to OA flow in the parent equipment - DataConstantUsedForSizing = ZoneEqSizing(CurZoneEqNum).AirVolFlow; + state.dataSize->DataConstantUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; } else { - DataConstantUsedForSizing = - std::max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + state.dataSize->DataConstantUsedForSizing = + std::max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); } - DataFractionUsedForSizing = 1.0; + state.dataSize->DataFractionUsedForSizing = 1.0; } } } @@ -1673,8 +1675,8 @@ namespace HeatRecovery { // sizerSystemAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizerSystemAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); ExchCond(ExchNum).NomSupAirVolFlow = sizerSystemAirFlow.size(state, TempSize, errorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; if (ExchCond(ExchNum).ExchTypeNum == HX_AIRTOAIR_FLATPLATE) { PrintFlag = true; FieldNum = 5; @@ -1682,12 +1684,12 @@ namespace HeatRecovery { CompType = cHXTypes(ExchCond(ExchNum).ExchTypeNum); SizingString = HeatExchCondNumericFields(ExchNum).NumericFieldNames(FieldNum) + " [m3/s]"; if (ExchCond(ExchNum).NomSecAirVolFlow == AutoSize) { - DataConstantUsedForSizing = ExchCond(ExchNum).NomSupAirVolFlow; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = ExchCond(ExchNum).NomSupAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; } else { - if (ZoneSizingRunDone || SysSizingRunDone) { - DataConstantUsedForSizing = ExchCond(ExchNum).NomSupAirVolFlow; - DataFractionUsedForSizing = 1.0; + if (state.dataSize->ZoneSizingRunDone || state.dataSize->SysSizingRunDone) { + state.dataSize->DataConstantUsedForSizing = ExchCond(ExchNum).NomSupAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; } } TempSize = ExchCond(ExchNum).NomSecAirVolFlow; @@ -1697,10 +1699,10 @@ namespace HeatRecovery { // sizerSystemAirFlow2.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizerSystemAirFlow2.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); ExchCond(ExchNum).NomSecAirVolFlow = sizerSystemAirFlow2.size(state, TempSize, errorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } - HRFlowSizingFlag = false; + state.dataSize->HRFlowSizingFlag = false; if (ExchCond(ExchNum).ExchTypeNum == HX_DESICCANT_BALANCED && ExchCond(ExchNum).HeatExchPerfTypeNum == BALANCEDHX_PERFDATATYPE1) { BalDesDehumPerfIndex = ExchCond(ExchNum).PerfDataIndex; @@ -1718,14 +1720,14 @@ namespace HeatRecovery { sizerSystemAirFlow3.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); BalDesDehumPerfData(BalDesDehumPerfIndex).NomSupAirVolFlow = sizerSystemAirFlow3.size(state, TempSize, errorsFound); - DataAirFlowUsedForSizing = BalDesDehumPerfData(BalDesDehumPerfIndex).NomSupAirVolFlow; + state.dataSize->DataAirFlowUsedForSizing = BalDesDehumPerfData(BalDesDehumPerfIndex).NomSupAirVolFlow; TempSize = BalDesDehumPerfData(BalDesDehumPerfIndex).NomProcAirFaceVel; bool ErrorsFound = false; DesiccantDehumidifierBFPerfDataFaceVelocitySizer sizerDesDehumBFFaceVel; sizerDesDehumBFFaceVel.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); BalDesDehumPerfData(BalDesDehumPerfIndex).NomProcAirFaceVel = sizerDesDehumBFFaceVel.size(state, TempSize, ErrorsFound); - DataAirFlowUsedForSizing = 0.0; + state.dataSize->DataAirFlowUsedForSizing = 0.0; } } diff --git a/src/EnergyPlus/HeatingCoils.cc b/src/EnergyPlus/HeatingCoils.cc index 65975bd0715..9e7d98e554b 100644 --- a/src/EnergyPlus/HeatingCoils.cc +++ b/src/EnergyPlus/HeatingCoils.cc @@ -1490,26 +1490,13 @@ namespace HeatingCoils { // currently only handles single values) and associated string representing that sizing variable. // Sizer functions handles the actual sizing and reporting. - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; - using namespace OutputReportPredefined; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeHeatingCoil: "); // include trailing blank space - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: std::string CompName; // component name std::string CompType; // component type @@ -1525,6 +1512,8 @@ namespace HeatingCoils { int FieldNum = 2; // IDD numeric field number where input field description is found int NumCoilsSized = 0; // counter used to deallocate temporary string array after all coils have been sized + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + if (HeatingCoil(CoilNum).HCoilType_Num == Coil_HeatingElectric_MultiStage) { FieldNum = 1 + (HeatingCoil(CoilNum).NumOfStages * 2); TempCap = HeatingCoil(CoilNum).MSNominalCapacity(HeatingCoil(CoilNum).NumOfStages); @@ -1540,29 +1529,29 @@ namespace HeatingCoils { SizingString = HeatingCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [W]"; CompType = "Coil:" + HeatingCoil(CoilNum).HeatingCoilType + ':' + HeatingCoil(CoilNum).HeatingCoilModel; CompName = HeatingCoil(CoilNum).Name; - DataCoilIsSuppHeater = CoilIsSuppHeater; // set global instead of using optional argument - DataCoolCoilCap = 0.0; // global only used for heat pump heating coils, non-HP heating coils are sized with other global variables + state.dataSize->DataCoilIsSuppHeater = CoilIsSuppHeater; // set global instead of using optional argument + state.dataSize->DataCoolCoilCap = 0.0; // global only used for heat pump heating coils, non-HP heating coils are sized with other global variables if (TempCap == AutoSize) { if (HeatingCoil(CoilNum).DesiccantRegenerationCoil) { - DataDesicRegCoil = true; + state.dataSize->DataDesicRegCoil = true; bPRINT = false; - DataDesicDehumNum = HeatingCoil(CoilNum).DesiccantDehumNum; + state.dataSize->DataDesicDehumNum = HeatingCoil(CoilNum).DesiccantDehumNum; HeatingCoilDesAirInletTempSizer sizerHeatingDesInletTemp; bool ErrorsFound = false; sizerHeatingDesInletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); HeatingCoilDesAirOutletTempSizer sizerHeatingDesOutletTemp; ErrorsFound = false; sizerHeatingDesOutletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); - if (CurOASysNum > 0) { - OASysEqSizing(CurOASysNum).AirFlow = true; - OASysEqSizing(CurOASysNum).AirVolFlow = FinalSysSizing(CurSysNum).DesOutAirVolFlow; + if (state.dataSize->CurOASysNum > 0) { + OASysEqSizing(state.dataSize->CurOASysNum).AirFlow = true; + OASysEqSizing(state.dataSize->CurOASysNum).AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow; } - DataDesicDehumNum = 0; + state.dataSize->DataDesicDehumNum = 0; bPRINT = true; } } @@ -1571,10 +1560,10 @@ namespace HeatingCoils { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); TempCap = sizerHeatingCapacity.size(state, TempCap, errorsFound); - DataCoilIsSuppHeater = false; // reset global to false so other heating coils are not affected - DataDesicRegCoil = false; // reset global to false so other heating coils are not affected - DataDesInletAirTemp = 0.0; // reset global data to zero so other heating coils are not - DataDesOutletAirTemp = 0.0; // reset global data to zero so other heating coils are not affected + state.dataSize->DataCoilIsSuppHeater = false; // reset global to false so other heating coils are not affected + state.dataSize->DataDesicRegCoil = false; // reset global to false so other heating coils are not affected + state.dataSize->DataDesInletAirTemp = 0.0; // reset global data to zero so other heating coils are not + state.dataSize->DataDesOutletAirTemp = 0.0; // reset global data to zero so other heating coils are not affected if (HeatingCoil(CoilNum).HCoilType_Num == Coil_HeatingElectric_MultiStage || HeatingCoil(CoilNum).HCoilType_Num == Coil_HeatingGas_MultiStage) { @@ -1609,7 +1598,7 @@ namespace HeatingCoils { "User-Specified " + SizingString, NominalCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(NominalCapacityDes - NominalCapacityUser) / NominalCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(NominalCapacityDes - NominalCapacityUser) / NominalCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHeatingCoil: Potential issue with equipment sizing for " + CompType + ", " + CompName); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NominalCapacityUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", NominalCapacityDes)); diff --git a/src/EnergyPlus/HighTempRadiantSystem.cc b/src/EnergyPlus/HighTempRadiantSystem.cc index e39199a2429..d6cae9eecb2 100644 --- a/src/EnergyPlus/HighTempRadiantSystem.cc +++ b/src/EnergyPlus/HighTempRadiantSystem.cc @@ -782,18 +782,9 @@ namespace HighTempRadiantSystem { using namespace DataSizing; using DataHVACGlobals::HeatingCapacitySizing; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeHighTempRadiantSystem"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS Real64 MaxPowerCapacDes; // Design maximum capacity for reproting Real64 MaxPowerCapacUser; // User hard-sized maximum capacity for reproting @@ -813,14 +804,18 @@ namespace HighTempRadiantSystem { IsAutoSize = false; MaxPowerCapacDes = 0.0; MaxPowerCapacUser = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; + + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + auto &FinalZoneSizing(state.dataSize->FinalZoneSizing); - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { CompType = "ZoneHVAC:HighTemperatureRadiant"; CompName = HighTempRadSys(RadSysNum).Name; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = HighTempRadSys(RadSysNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = HighTempRadSys(RadSysNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = true; @@ -842,17 +837,17 @@ namespace HighTempRadiantSystem { TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = HighTempRadSys(RadSysNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = HighTempRadSys(RadSysNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = HighTempRadSys(RadSysNum).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = HighTempRadSys(RadSysNum).ScaledHeatingCapacity; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad / (HighTempRadSys(RadSysNum).FracRadiant + HighTempRadSys(RadSysNum).FracConvect); TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = HighTempRadSys(RadSysNum).ScaledHeatingCapacity; } @@ -861,7 +856,7 @@ namespace HighTempRadiantSystem { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HighTempRadSys(RadSysNum).MaxPowerCapac = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } } } diff --git a/src/EnergyPlus/Humidifiers.cc b/src/EnergyPlus/Humidifiers.cc index 083f841fb0f..f71c2f03a08 100644 --- a/src/EnergyPlus/Humidifiers.cc +++ b/src/EnergyPlus/Humidifiers.cc @@ -718,15 +718,6 @@ namespace Humidifiers { using DataHVACGlobals::Main; using DataHVACGlobals::Other; using DataSizing::AutoSize; - using DataSizing::AutoVsHardSizingThreshold; - using DataSizing::CurDuctType; - using DataSizing::CurOASysNum; - using DataSizing::CurSysNum; - using DataSizing::CurZoneEqNum; - using DataSizing::FinalSysSizing; - using DataSizing::FinalZoneSizing; - using DataSizing::SysSizingRunDone; - using DataSizing::ZoneSizingRunDone; using FluidProperties::FindGlycol; using FluidProperties::FindRefrigerant; using FluidProperties::GetSatEnthalpyRefrig; @@ -784,8 +775,8 @@ namespace Humidifiers { if (NomCapVol == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Hardsize with no sizing run + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Hardsize with no sizing run HardSizeNoDesRun = true; if (NomCapVol > 0.0) { BaseSizer::reportSizerOutput(state, HumidifierType(HumType_Code), Name, "User-Specified Nominal Capacity Volume [m3/s]", NomCapVol); @@ -793,64 +784,64 @@ namespace Humidifiers { } else { // Sizing run done CheckZoneSizing(state, "Humidifier:SizeHumidifier", Name); - AirDensity = FinalZoneSizing(CurZoneEqNum).DesCoolDens; - MassFlowDes = max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * AirDensity; - InletHumRatDes = std::min(FinalZoneSizing(CurZoneEqNum).OutHumRatAtHeatPeak, FinalZoneSizing(CurZoneEqNum).OutHumRatAtCoolPeak); + AirDensity = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolDens; + MassFlowDes = max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow) * AirDensity; + InletHumRatDes = std::min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).OutHumRatAtHeatPeak, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).OutHumRatAtCoolPeak); OutletHumRatDes = - std::max(FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak, FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak); + std::max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak); } - } else if (CurSysNum > 0) { - if (!IsAutoSize && !SysSizingRunDone) { + } else if (state.dataSize->CurSysNum > 0) { + if (!IsAutoSize && !state.dataSize->SysSizingRunDone) { HardSizeNoDesRun = true; if (NomCapVol > 0.0) { BaseSizer::reportSizerOutput(state, HumidifierType(HumType_Code), Name, "User-Specified Nominal Capacity Volume [m3/s]", NomCapVol); } } else { CheckSysSizing(state, "Humidifier:SizeHumidifier", Name); - if (CurOASysNum > 0) { + if (state.dataSize->CurOASysNum > 0) { // size to outdoor air volume flow rate if available - if (FinalSysSizing(CurSysNum).DesOutAirVolFlow > 0.0) { + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow > 0.0) { AirDensity = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, state.dataEnvrn->OutDryBulbTemp, state.dataEnvrn->OutHumRat, CalledFrom); - MassFlowDes = FinalSysSizing(CurSysNum).DesOutAirVolFlow * AirDensity; - InletHumRatDes = std::min(FinalSysSizing(CurSysNum).OutHumRatAtCoolPeak, FinalSysSizing(CurSysNum).HeatOutHumRat); - OutletHumRatDes = std::max(FinalSysSizing(CurSysNum).CoolSupHumRat, FinalSysSizing(CurSysNum).HeatSupHumRat); + MassFlowDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow * AirDensity; + InletHumRatDes = std::min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutHumRatAtCoolPeak, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatOutHumRat); + OutletHumRatDes = std::max(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupHumRat); } else { // ELSE size to supply air duct flow rate - auto const SELECT_CASE_var(CurDuctType); + auto const SELECT_CASE_var(state.dataSize->CurDuctType); if (SELECT_CASE_var == Main) { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else if (SELECT_CASE_var == Cooling) { - AirVolFlow = FinalSysSizing(CurSysNum).DesCoolVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesCoolVolFlow; } else if (SELECT_CASE_var == Heating) { - AirVolFlow = FinalSysSizing(CurSysNum).DesHeatVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesHeatVolFlow; } else if (SELECT_CASE_var == Other) { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } AirDensity = PsyRhoAirFnPbTdbW(state, - state.dataEnvrn->OutBaroPress, FinalSysSizing(CurSysNum).MixTempAtCoolPeak, FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak, CalledFrom); + state.dataEnvrn->OutBaroPress, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak, CalledFrom); MassFlowDes = AirVolFlow * AirDensity; - InletHumRatDes = min(FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak, FinalSysSizing(CurSysNum).HeatMixHumRat); - OutletHumRatDes = max(FinalSysSizing(CurSysNum).CoolSupHumRat, FinalSysSizing(CurSysNum).HeatSupHumRat); + InletHumRatDes = min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatMixHumRat); + OutletHumRatDes = max(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupHumRat); } } else { - auto const SELECT_CASE_var(CurDuctType); + auto const SELECT_CASE_var(state.dataSize->CurDuctType); if (SELECT_CASE_var == Main) { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else if (SELECT_CASE_var == Cooling) { - AirVolFlow = FinalSysSizing(CurSysNum).DesCoolVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesCoolVolFlow; } else if (SELECT_CASE_var == Heating) { - AirVolFlow = FinalSysSizing(CurSysNum).DesHeatVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesHeatVolFlow; } else if (SELECT_CASE_var == Other) { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { - AirVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } AirDensity = PsyRhoAirFnPbTdbW(state, - state.dataEnvrn->OutBaroPress, FinalSysSizing(CurSysNum).MixTempAtCoolPeak, FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak, CalledFrom); + state.dataEnvrn->OutBaroPress, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak, CalledFrom); MassFlowDes = AirVolFlow * AirDensity; - InletHumRatDes = std::min(FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak, FinalSysSizing(CurSysNum).HeatMixHumRat); - OutletHumRatDes = std::max(FinalSysSizing(CurSysNum).CoolSupHumRat, FinalSysSizing(CurSysNum).HeatSupHumRat); + InletHumRatDes = std::min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatMixHumRat); + OutletHumRatDes = std::max(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat, state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupHumRat); } } } @@ -872,7 +863,7 @@ namespace Humidifiers { "User-Specified Nominal Capacity Volume [m3/s]", NomCapVolUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(NomCapVolDes - NomCapVolUser) / NomCapVolUser) > AutoVsHardSizingThreshold) { + if ((std::abs(NomCapVolDes - NomCapVolUser) / NomCapVolUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHumidifier: Potential issue with equipment sizing for " + HumidifierType(HumType_Code) + " = \"" + Name + "\"."); ShowContinueError(state, format("User-Specified Nominal Capacity Volume of {:.2R} [Wm3/s]", NomCapVolUser)); @@ -943,7 +934,7 @@ namespace Humidifiers { "User-Specified Rated Power [W]", NomPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(NomPowerDes - NomPowerUser) / NomPowerUser) > AutoVsHardSizingThreshold) { + if ((std::abs(NomPowerDes - NomPowerUser) / NomPowerUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHumidifier: Potential issue with equipment sizing for " + HumidifierType(HumType_Code) + " =\"" + Name + "\"."); ShowContinueError(state, format("User-Specified Rated Power of {:.2R} [W]", NomPowerUser)); diff --git a/src/EnergyPlus/HybridUnitaryAirConditioners.cc b/src/EnergyPlus/HybridUnitaryAirConditioners.cc index ed346fce175..2cb89fad52c 100644 --- a/src/EnergyPlus/HybridUnitaryAirConditioners.cc +++ b/src/EnergyPlus/HybridUnitaryAirConditioners.cc @@ -421,7 +421,6 @@ namespace EnergyPlus::HybridUnitaryAirConditioners { using BranchNodeConnections::SetUpCompSets; using NodeInputManager::GetOnlySingleNode; using namespace DataLoopNode; - using DataSizing::OARequirements; // to find DesignSpecification:OutdoorAir pointer std::string cCurrentModuleObject; // Object type for getting and error messages Array1D_string Alphas; // Alpha items for object Array1D Numbers; // Numeric items for object @@ -606,7 +605,7 @@ namespace EnergyPlus::HybridUnitaryAirConditioners { // A19, \ OA requirement pointer if (!lAlphaBlanks(19)) { - state.dataHybridUnitaryAC->ZoneHybridUnitaryAirConditioner(UnitLoop).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(19), OARequirements); + state.dataHybridUnitaryAC->ZoneHybridUnitaryAirConditioner(UnitLoop).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(19), state.dataSize->OARequirements); if (state.dataHybridUnitaryAC->ZoneHybridUnitaryAirConditioner(UnitLoop).OARequirementsPtr == 0) { ShowSevereError(state, RoutineName + cCurrentModuleObject + " = " + Alphas(1) + " invalid data"); ShowContinueError(state, "Invalid-not found " + cAlphaFields(19) + "=\"" + Alphas(19) + "\"."); diff --git a/src/EnergyPlus/ICEngineElectricGenerator.cc b/src/EnergyPlus/ICEngineElectricGenerator.cc index 063ab3ff4a5..cf3c013aa1c 100644 --- a/src/EnergyPlus/ICEngineElectricGenerator.cc +++ b/src/EnergyPlus/ICEngineElectricGenerator.cc @@ -275,7 +275,7 @@ namespace ICEngineElectricGenerator { } BranchNodeConnections::TestCompSet(state, DataIPShortCuts::cCurrentModuleObject, AlphArray(1), AlphArray(8), AlphArray(9), "Heat Recovery Nodes"); - PlantUtilities::RegisterPlantCompDesignFlow(ICEngineGenerator(genNum).HeatRecInletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, ICEngineGenerator(genNum).HeatRecInletNodeNum, ICEngineGenerator(genNum).DesignHeatRecVolFlowRate); } else { ICEngineGenerator(genNum).HeatRecActive = false; diff --git a/src/EnergyPlus/InternalHeatGains.cc b/src/EnergyPlus/InternalHeatGains.cc index a9ae42587a1..b4345a26275 100644 --- a/src/EnergyPlus/InternalHeatGains.cc +++ b/src/EnergyPlus/InternalHeatGains.cc @@ -5284,7 +5284,6 @@ namespace InternalHeatGains { using DataHeatBalFanSys::SumConvHTRadSys; using DataHeatBalFanSys::ZoneLatentGain; using DataHeatBalFanSys::ZoneLatentGainExceptPeople; - using DataSizing::CurOverallSimDay; using DaylightingDevices::FigureTDDZoneGains; using FuelCellElectricGenerator::FigureFuelCellZoneGains; using MicroCHPElectricGenerator::FigureMicroCHPZoneGains; @@ -5293,23 +5292,12 @@ namespace InternalHeatGains { using RefrigeratedCase::FigureRefrigerationZoneGains; using WaterThermalTanks::CalcWaterThermalTankZoneGains; using WaterUse::CalcWaterUseZoneGains; - //using ZonePlenum::ZoneRetPlenCond; - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // na // SUBROUTINE PARAMETER DEFINITIONS: static Array1D const C( 9, {6.4611027, 0.946892, 0.0000255737, 7.139322, -0.0627909, 0.0000589271, -0.198550, 0.000940018, -0.00000149532}); static ZoneCatEUseData const zeroZoneCatEUse; // For initialization - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 ActivityLevel_WperPerson; // Units on Activity Level (Schedule) Real64 NumberOccupants; // Number of occupants @@ -5714,8 +5702,8 @@ namespace InternalHeatGains { // QRadThermInAbs is the thermal radiation absorbed on inside surfaces state.dataHeatBal->SurfQRadThermInAbs(SurfNum) = adjQL * state.dataHeatBal->TMULT(radEnclosureNum) * state.dataHeatBal->ITABSF(SurfNum); // store the magnitude and time of the pulse - state.dataOutRptTab->radiantPulseTimestep(CurOverallSimDay, zoneNum) = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; - state.dataOutRptTab->radiantPulseReceived(CurOverallSimDay, SurfNum) = + state.dataOutRptTab->radiantPulseTimestep(state.dataSize->CurOverallSimDay, zoneNum) = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; + state.dataOutRptTab->radiantPulseReceived(state.dataSize->CurOverallSimDay, SurfNum) = (adjQL - curQL) * state.dataHeatBal->TMULT(radEnclosureNum) * state.dataHeatBal->ITABSF(SurfNum) * state.dataSurface->Surface(SurfNum).Area; } } @@ -7075,7 +7063,6 @@ namespace InternalHeatGains { // Using/Aliasing using namespace DataHeatBalance; - using DataSizing::CurOverallSimDay; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: static int iZone(0); @@ -7138,30 +7125,30 @@ namespace InternalHeatGains { if (state.dataGlobal->CompLoadReportIsReq && !state.dataGlobal->isPulseZoneSizing) { TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; for (iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) { - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalLatentGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleLatentSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleRadSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalLatentGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesPeople, state.dataOutRptTab->peopleRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumReturnAirConvectionGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightRetAirSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightLWRadSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumReturnAirConvectionGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightRetAirSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesLight, state.dataOutRptTab->lightLWRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalLatentGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipLatentSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipRadSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalLatentGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesEquip, state.dataOutRptTab->equipRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumReturnAirConvectionGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigRetAirSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalLatentGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigLatentSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumReturnAirConvectionGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigRetAirSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalLatentGainsByTypes(state, iZone, IntGainTypesRefrig, state.dataOutRptTab->refrigLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesWaterUse, state.dataOutRptTab->waterUseInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalLatentGainsByTypes(state, iZone, IntGainTypesWaterUse, state.dataOutRptTab->waterUseLatentSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesWaterUse, state.dataOutRptTab->waterUseInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalLatentGainsByTypes(state, iZone, IntGainTypesWaterUse, state.dataOutRptTab->waterUseLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesHvacLoss, state.dataOutRptTab->hvacLossInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesHvacLoss, state.dataOutRptTab->hvacLossRadSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesHvacLoss, state.dataOutRptTab->hvacLossInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesHvacLoss, state.dataOutRptTab->hvacLossRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesPowerGen, state.dataOutRptTab->powerGenInstantSeq(CurOverallSimDay, TimeStepInDay, iZone)); - SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesPowerGen, state.dataOutRptTab->powerGenRadSeq(CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalConvectionGainsByTypes(state, iZone, IntGainTypesPowerGen, state.dataOutRptTab->powerGenInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); + SumInternalRadiationGainsByTypes(state, iZone, IntGainTypesPowerGen, state.dataOutRptTab->powerGenRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone)); } } } diff --git a/src/EnergyPlus/LowTempRadiantSystem.cc b/src/EnergyPlus/LowTempRadiantSystem.cc index 04ccf8eaa07..f4aa806c0e9 100644 --- a/src/EnergyPlus/LowTempRadiantSystem.cc +++ b/src/EnergyPlus/LowTempRadiantSystem.cc @@ -2240,7 +2240,7 @@ namespace LowTempRadiantSystem { state.dataLowTempRadSys->CFloRadSys(RadSysNum).setRunningMeanValuesAtBeginningOfDay = false; // only set these once per system } else if (!state.dataGlobal->BeginDayFlag && !state.dataLowTempRadSys->CFloRadSys(RadSysNum).setRunningMeanValuesAtBeginningOfDay) { state.dataLowTempRadSys->CFloRadSys(RadSysNum).setRunningMeanValuesAtBeginningOfDay = - true; // reset so that the next time state.dataGlobal->BeginDayFlag is true this can get set + true; // reset so that the next time BeginDayFlag is true this can get set } } @@ -2560,16 +2560,11 @@ namespace LowTempRadiantSystem { Real64 WaterVolFlowMaxDes; // Design water volume flow rate for reproting Real64 WaterVolFlowMaxUser; // User hard-sized water volume flow rate for reproting -// Real64 ScaledHeatingCapacity(-9999999999); -// int HeatingCapMethod(99999999999999); -// Real64 ScaledCoolingCapacity(-9999999999); -// int CoolingCapMethod(9999999999999); - - + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); DesCoilLoad = 0.0; - DataScalableCapSizingON = false; - DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; auto &Zone(state.dataHeatBal->Zone); @@ -2579,7 +2574,7 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { CompType = "ZoneHVAC:LowTemperatureRadiant:Electric"; CompName = state.dataLowTempRadSys->ElecRadSys(RadSysNum).Name; @@ -2588,9 +2583,9 @@ namespace LowTempRadiantSystem { PrintFlag = true; SizingString = state.dataLowTempRadSys->ElecRadSysNumericFields(RadSysNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = state.dataLowTempRadSys->ElecRadSys(RadSysNum).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (CapSizingMethod == HeatingDesignCapacity && state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity > 0.0) { TempSize = state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity; bool errorsFound = false; @@ -2599,14 +2594,14 @@ namespace LowTempRadiantSystem { sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); } else if (CapSizingMethod == CapacityPerFloorArea) { - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; TempSize = state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity * Zone(state.dataLowTempRadSys->ElecRadSys(RadSysNum).ZonePtr).FloorArea; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; state.dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower = TempSize; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { ShowSevereError(state, format("{}: auto-sizing cannot be done for {} = {}\".", RoutineName, CompType, state.dataLowTempRadSys->ElecRadSys(RadSysNum).Name)); @@ -2618,11 +2613,11 @@ namespace LowTempRadiantSystem { if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + state.dataSize->DataFractionUsedForSizing = 1.0; } if (state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity == AutoSize) { TempSize = AutoSize; @@ -2630,20 +2625,20 @@ namespace LowTempRadiantSystem { TempSize = state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } TempSize = state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity * Zone(state.dataLowTempRadSys->ElecRadSys(RadSysNum).ZonePtr).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad * state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad * state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = state.dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity; } @@ -2651,9 +2646,9 @@ namespace LowTempRadiantSystem { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; } } } @@ -2669,16 +2664,16 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { SizingMethod = HeatingCapacitySizing; FieldNum = 2; PrintFlag = true; SizingString = state.dataLowTempRadSys->HydronicRadiantSysNumericFields(RadSysNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = state.dataLowTempRadSys->HydrRadSys(RadSysNum).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (CapSizingMethod == HeatingDesignCapacity && state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity > 0.0) { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; bool errorsFound = false; @@ -2687,13 +2682,13 @@ namespace LowTempRadiantSystem { sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); } else if (CapSizingMethod == CapacityPerFloorArea) { - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * Zone(state.dataLowTempRadSys->HydrRadSys(RadSysNum).ZonePtr).FloorArea; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat == AutoSize) { ShowSevereError(state, format("{}: auto-sizing cannot be done for {} = {}\".", RoutineName, CompType, state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name)); @@ -2706,11 +2701,11 @@ namespace LowTempRadiantSystem { if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + state.dataSize->DataFractionUsedForSizing = 1.0; } if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity == AutoSize) { TempSize = AutoSize; @@ -2718,19 +2713,19 @@ namespace LowTempRadiantSystem { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; } TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * Zone(state.dataLowTempRadSys->HydrRadSys(RadSysNum).ZonePtr).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad * state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad * state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; } @@ -2738,9 +2733,9 @@ namespace LowTempRadiantSystem { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; } else { DesCoilLoad = 0.0; } @@ -2754,8 +2749,8 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat > 0.0) { BaseSizer::reportSizerOutput(state, CompType, state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name, @@ -2781,7 +2776,7 @@ namespace LowTempRadiantSystem { DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(state.dataLowTempRadSys->HydrRadSys(RadSysNum).HWLoopNum).FluidIndex, RoutineName); - WaterVolFlowMaxHeatDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + WaterVolFlowMaxHeatDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { WaterVolFlowMaxHeatDes = 0.0; } @@ -2807,7 +2802,7 @@ namespace LowTempRadiantSystem { WaterVolFlowMaxHeatUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(WaterVolFlowMaxHeatDes - WaterVolFlowMaxHeatUser) / WaterVolFlowMaxHeatUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeLowTempRadiantSystem: Potential issue with equipment sizing for " "ZoneHVAC:LowTemperatureRadiant:VariableFlow = \"" + state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name + "\"."); @@ -2829,16 +2824,16 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { SizingMethod = CoolingCapacitySizing; FieldNum = 4; PrintFlag = true; SizingString = state.dataLowTempRadSys->HydronicRadiantSysNumericFields(RadSysNum).FieldNames(FieldNum) + " [W]"; CapSizingMethod = state.dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (CapSizingMethod == CoolingDesignCapacity && state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity > 0.0) { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; CoolingCapacitySizer sizerCoolingCapacity; @@ -2846,13 +2841,13 @@ namespace LowTempRadiantSystem { sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); } else if (CapSizingMethod == CapacityPerFloorArea) { - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * Zone(state.dataLowTempRadSys->HydrRadSys(RadSysNum).ZonePtr).FloorArea; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool == AutoSize) { ShowSevereError(state, format("{}: auto-sizing cannot be done for {} = {}\".", RoutineName, CompType, state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name)); @@ -2865,11 +2860,11 @@ namespace LowTempRadiantSystem { if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + state.dataSize->DataFractionUsedForSizing = 1.0; } if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity == AutoSize) { TempSize = AutoSize; @@ -2877,19 +2872,19 @@ namespace LowTempRadiantSystem { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; } TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * Zone(state.dataLowTempRadSys->HydrRadSys(RadSysNum).ZonePtr).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { CheckZoneSizing(state, CompType, CompName); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - TempSize = ZoneEqSizing(CurZoneEqNum).DesCoolingLoad * state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad * state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = state.dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; @@ -2898,9 +2893,9 @@ namespace LowTempRadiantSystem { sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataScalableCapSizingON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataScalableCapSizingON = false; } else { DesCoilLoad = 0.0; } @@ -2913,8 +2908,8 @@ namespace LowTempRadiantSystem { if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool > 0.0) { BaseSizer::reportSizerOutput(state, CompType, state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name, @@ -2940,7 +2935,7 @@ namespace LowTempRadiantSystem { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(state.dataLowTempRadSys->HydrRadSys(RadSysNum).CWLoopNum).FluidIndex, RoutineName); - WaterVolFlowMaxCoolDes = DesCoilLoad / (PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); + WaterVolFlowMaxCoolDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); } else { WaterVolFlowMaxCoolDes = 0.0; } @@ -2966,7 +2961,7 @@ namespace LowTempRadiantSystem { WaterVolFlowMaxCoolUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(WaterVolFlowMaxCoolDes - WaterVolFlowMaxCoolUser) / WaterVolFlowMaxCoolUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeLowTempRadiantSystem: Potential issue with equipment sizing for " "ZoneHVAC:LowTemperatureRadiant:VariableFlow = \"" + state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name + "\"."); @@ -2987,8 +2982,8 @@ namespace LowTempRadiantSystem { if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).TubeLength == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (state.dataLowTempRadSys->HydrRadSys(RadSysNum).TubeLength > 0.0) { BaseSizer::reportSizerOutput(state, CompType, state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name, "User-Specified Hydronic Tubing Length [m]", state.dataLowTempRadSys->HydrRadSys(RadSysNum).TubeLength); @@ -3009,7 +3004,7 @@ namespace LowTempRadiantSystem { "User-Specified Hydronic Tubing Length [m]", TubeLengthUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(TubeLengthDes - TubeLengthUser) / TubeLengthUser) > AutoVsHardSizingThreshold) { + if ((std::abs(TubeLengthDes - TubeLengthUser) / TubeLengthUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeLowTempRadiantSystem: Potential issue with equipment sizing for " "ZoneHVAC:LowTemperatureRadiant:VariableFlow = \"" + state.dataLowTempRadSys->HydrRadSys(RadSysNum).Name + "\"."); @@ -3034,8 +3029,8 @@ namespace LowTempRadiantSystem { } } - RegisterPlantCompDesignFlow(state.dataLowTempRadSys->HydrRadSys(RadSysNum).HotWaterInNode, state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat); - RegisterPlantCompDesignFlow(state.dataLowTempRadSys->HydrRadSys(RadSysNum).ColdWaterInNode, state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool); + RegisterPlantCompDesignFlow(state, state.dataLowTempRadSys->HydrRadSys(RadSysNum).HotWaterInNode, state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat); + RegisterPlantCompDesignFlow(state, state.dataLowTempRadSys->HydrRadSys(RadSysNum).ColdWaterInNode, state.dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool); } if (SystemType == LowTempRadiantSystem::SystemType::ConstantFlowSystem) { @@ -3060,8 +3055,8 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax > 0.0) { BaseSizer::reportSizerOutput(state, CompType, state.dataLowTempRadSys->CFloRadSys(RadSysNum).Name, "User-Specified Maximum Water Flow [m3/s]", state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax); @@ -3078,7 +3073,7 @@ namespace LowTempRadiantSystem { ErrorsFound); } if (PltSizHeatNum > 0) { - if (FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad >= SmallLoad) { + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad >= SmallLoad) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataLowTempRadSys->CFloRadSys(RadSysNum).HWLoopNum).FluidName, DataGlobalConstants::HWInitConvTemp, @@ -3090,7 +3085,7 @@ namespace LowTempRadiantSystem { state.dataPlnt->PlantLoop(state.dataLowTempRadSys->CFloRadSys(RadSysNum).HWLoopNum).FluidIndex, "SizeLowTempRadiantSystem"); WaterVolFlowMaxHeatDes = - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesHeatLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { WaterVolFlowMaxHeatDes = 0.0; } @@ -3111,7 +3106,7 @@ namespace LowTempRadiantSystem { ErrorsFound); } if (PltSizCoolNum > 0) { - if (FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad >= SmallLoad) { + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad >= SmallLoad) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataLowTempRadSys->CFloRadSys(RadSysNum).CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -3123,7 +3118,7 @@ namespace LowTempRadiantSystem { state.dataPlnt->PlantLoop(state.dataLowTempRadSys->CFloRadSys(RadSysNum).CWLoopNum).FluidIndex, "SizeLowTempRadiantSystem"); WaterVolFlowMaxCoolDes = - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad / (PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).NonAirSysDesCoolLoad / (state.dataSize->PlantSizData(PltSizCoolNum).DeltaT * Cp * rho); } else { WaterVolFlowMaxCoolDes = 0.0; } @@ -3160,7 +3155,7 @@ namespace LowTempRadiantSystem { "User-Specified Maximum Water Flow [m3/s]", WaterVolFlowMaxUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(WaterVolFlowMaxDes - WaterVolFlowMaxUser) / WaterVolFlowMaxUser) > AutoVsHardSizingThreshold) { + if ((std::abs(WaterVolFlowMaxDes - WaterVolFlowMaxUser) / WaterVolFlowMaxUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeLowTempRadiantSystem: Potential issue with equipment sizing for " "ZoneHVAC:LowTemperatureRadiant:ConstantFlow = \" " + state.dataLowTempRadSys->CFloRadSys(RadSysNum).Name + "\"."); @@ -3181,8 +3176,8 @@ namespace LowTempRadiantSystem { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (state.dataLowTempRadSys->CFloRadSys(RadSysNum).TubeLength > 0.0) { BaseSizer::reportSizerOutput(state, "ZoneHVAC:LowTemperatureRadiant:ConstantFlow", state.dataLowTempRadSys->CFloRadSys(RadSysNum).Name, @@ -3208,7 +3203,7 @@ namespace LowTempRadiantSystem { "User-Specified Hydronic Tubing Length [m]", TubeLengthUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(TubeLengthDes - TubeLengthUser) / TubeLengthUser) > AutoVsHardSizingThreshold) { + if ((std::abs(TubeLengthDes - TubeLengthUser) / TubeLengthUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeLowTempRadiantSystem: Potential issue with equipment sizing for " "ZoneHVAC:LowTemperatureRadiant:ConstantFlow = \" " + state.dataLowTempRadSys->CFloRadSys(RadSysNum).Name + "\"."); @@ -3233,10 +3228,10 @@ namespace LowTempRadiantSystem { } } if (state.dataLowTempRadSys->CFloRadSys(RadSysNum).HotWaterInNode > 0) { - RegisterPlantCompDesignFlow(state.dataLowTempRadSys->CFloRadSys(RadSysNum).HotWaterInNode, state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax); + RegisterPlantCompDesignFlow(state, state.dataLowTempRadSys->CFloRadSys(RadSysNum).HotWaterInNode, state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax); } if (state.dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode > 0) { - RegisterPlantCompDesignFlow(state.dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode, state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax); + RegisterPlantCompDesignFlow(state, state.dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode, state.dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax); } } diff --git a/src/EnergyPlus/MicroCHPElectricGenerator.cc b/src/EnergyPlus/MicroCHPElectricGenerator.cc index 75b12e24f03..9a63533c08e 100644 --- a/src/EnergyPlus/MicroCHPElectricGenerator.cc +++ b/src/EnergyPlus/MicroCHPElectricGenerator.cc @@ -553,7 +553,7 @@ namespace EnergyPlus::MicroCHPElectricGenerator { if (state.dataPlnt->PlantLoop(this->CWLoopNum).MaxMassFlowRate > 0.0) { this->PlantMassFlowRateMax = state.dataPlnt->PlantLoop(this->CWLoopNum).MaxMassFlowRate; } else if (state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum > 0) { - this->PlantMassFlowRateMax = DataSizing::PlantSizData(this->CWLoopNum).DesVolFlowRate * rho; + this->PlantMassFlowRateMax = state.dataSize->PlantSizData(this->CWLoopNum).DesVolFlowRate * rho; } else { this->PlantMassFlowRateMax = 2.0; } @@ -562,7 +562,7 @@ namespace EnergyPlus::MicroCHPElectricGenerator { this->PlantMassFlowRateMax = 2.0; // would like to use plant loop max but not ready yet } - PlantUtilities::RegisterPlantCompDesignFlow(this->PlantInletNodeID, this->PlantMassFlowRateMax / rho); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->PlantInletNodeID, this->PlantMassFlowRateMax / rho); this->A42Model.ElecEff = CurveManager::CurveValue(state, this->A42Model.ElecEffCurveID, this->A42Model.MaxElecPower, this->PlantMassFlowRateMax, DataLoopNode::Node(this->PlantInletNodeID).Temp); diff --git a/src/EnergyPlus/MicroturbineElectricGenerator.cc b/src/EnergyPlus/MicroturbineElectricGenerator.cc index ab0a1a185cb..2cb07c20246 100644 --- a/src/EnergyPlus/MicroturbineElectricGenerator.cc +++ b/src/EnergyPlus/MicroturbineElectricGenerator.cc @@ -620,7 +620,7 @@ namespace EnergyPlus::MicroturbineElectricGenerator { state.dataMircoturbElectGen->MTGenerator(GeneratorNum).RefHeatRecVolFlowRate = state.dataMircoturbElectGen->MTGenerator(GeneratorNum).HeatRecMaxVolFlowRate; } - PlantUtilities::RegisterPlantCompDesignFlow(state.dataMircoturbElectGen->MTGenerator(GeneratorNum).HeatRecInletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataMircoturbElectGen->MTGenerator(GeneratorNum).HeatRecInletNodeNum, state.dataMircoturbElectGen->MTGenerator(GeneratorNum).HeatRecMaxVolFlowRate); state.dataMircoturbElectGen->MTGenerator(GeneratorNum).HeatRecMaxWaterTemp = NumArray(17); diff --git a/src/EnergyPlus/MixedAir.cc b/src/EnergyPlus/MixedAir.cc index 8f27a412cd8..1b6193eb101 100644 --- a/src/EnergyPlus/MixedAir.cc +++ b/src/EnergyPlus/MixedAir.cc @@ -314,11 +314,11 @@ namespace EnergyPlus::MixedAir { // SimOutsideAirSys can handle only 1 controller right now. This must be // an Outside Air Controller. This is because of the lack of iteration // and convergence control in the following code. - // DO CtrlNum=1,state.dataAirLoop->OutsideAirSys(OASysNum)%NumControllers - // CtrlName = state.dataAirLoop->OutsideAirSys(OASysNum)%ControllerName(CtrlNum) + // DO CtrlNum=1,OutsideAirSys(OASysNum)%NumControllers + // CtrlName = OutsideAirSys(OASysNum)%ControllerName(CtrlNum) // CALL SimOAController(CtrlName,FirstHVACIteration) // END DO - CurOASysNum = OASysNum; + state.dataSize->CurOASysNum = OASysNum; auto &CurrentOASystem(state.dataAirLoop->OutsideAirSys(OASysNum)); if (state.dataAirLoop->OutsideAirSys(OASysNum).AirLoopDOASNum == -1) { SimOAController(state, CurrentOASystem.OAControllerName, CurrentOASystem.OAControllerIndex, FirstHVACIteration, AirLoopNum); @@ -363,7 +363,7 @@ namespace EnergyPlus::MixedAir { if (FatalErrorFlag) ShowFatalError(state, "Previous severe error(s) cause program termination"); } - CurOASysNum = 0; + state.dataSize->CurOASysNum = 0; if (state.dataAirLoop->OutsideAirSys(OASysNum).AirLoopDOASNum == -1) { state.dataAirLoop->AirLoopControlInfo(AirLoopNum).OASysComponentsSimulated = true; } @@ -606,7 +606,7 @@ namespace EnergyPlus::MixedAir { // HX's in the OA system can be troublesome given that the OA flow rate is not necessarily proportional to air loop PLR // adding that user input for branch flow rate, HX nominal flow rate, OA system min/max flow rate will not necessarily be // perfectly input, a compromise is used for OA sys HX's as the ratio of flow to max. Issue #4298. - // AirloopPLR = state.dataAirLoop->AirLoopFlow( AirLoopNum ).FanPLR; + // AirloopPLR = AirLoopFlow( AirLoopNum ).FanPLR; AirloopPLR = state.dataMixedAir->OAController(OASysNum).OAMassFlow / state.dataMixedAir->OAController(OASysNum).MaxOAMassFlowRate; } else { AirloopPLR = 1.0; @@ -791,7 +791,7 @@ namespace EnergyPlus::MixedAir { // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE - // Input the Outside Air System data and store it in the state.dataAirLoop->OutsideAirSys array. + // Input the Outside Air System data and store it in the OutsideAirSys array. // METHODOLOGY EMPLOYED: // Use the Get routines from the InputProcessor module. @@ -915,7 +915,7 @@ namespace EnergyPlus::MixedAir { state.dataAirLoop->NumOASystems = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); state.dataAirLoop->OutsideAirSys.allocate(state.dataAirLoop->NumOASystems); - OASysEqSizing.allocate(state.dataAirLoop->NumOASystems); + state.dataSize->OASysEqSizing.allocate(state.dataAirLoop->NumOASystems); state.dataMixedAir->ControllerListUniqueNames.reserve(static_cast(state.dataAirLoop->NumOASystems)); state.dataMixedAir->MyOneTimeErrorFlag.dimension(state.dataAirLoop->NumOASystems, true); state.dataMixedAir->MyOneTimeCheckUnitarySysFlag.dimension(state.dataAirLoop->NumOASystems, true); @@ -1458,7 +1458,7 @@ namespace EnergyPlus::MixedAir { // Getting OA details from design specification OA object if (!lAlphaBlanks((groupNum - 1) * 3 + 6)) { state.dataMixedAir->DesignSpecOAObjName(groupNum) = AlphArray((groupNum - 1) * 3 + 6); - ObjIndex = UtilityRoutines::FindItemInList(state.dataMixedAir->DesignSpecOAObjName(groupNum), OARequirements); + ObjIndex = UtilityRoutines::FindItemInList(state.dataMixedAir->DesignSpecOAObjName(groupNum), state.dataSize->OARequirements); state.dataMixedAir->DesignSpecOAObjIndex(groupNum) = ObjIndex; if (ObjIndex == 0) { @@ -1472,7 +1472,7 @@ namespace EnergyPlus::MixedAir { // Get zone air distribution details from design specification Zone Air Distribution object if (!lAlphaBlanks((groupNum - 1) * 3 + 7)) { state.dataMixedAir->DesignSpecZoneADObjName(groupNum) = AlphArray((groupNum - 1) * 3 + 7); - ObjIndex = UtilityRoutines::FindItemInList(state.dataMixedAir->DesignSpecZoneADObjName(groupNum), ZoneAirDistribution); + ObjIndex = UtilityRoutines::FindItemInList(state.dataMixedAir->DesignSpecZoneADObjName(groupNum), state.dataSize->ZoneAirDistribution); state.dataMixedAir->DesignSpecZoneADObjIndex(groupNum) = ObjIndex; if (ObjIndex == 0) { @@ -1551,12 +1551,12 @@ namespace EnergyPlus::MixedAir { } else { if (state.dataGlobal->DoZoneSizing) { ObjIndex = UtilityRoutines::FindItemInList( - state.dataMixedAir->VentMechZoneOrListName(groupNum), ZoneSizingInput, &ZoneSizingInputData::ZoneName); + state.dataMixedAir->VentMechZoneOrListName(groupNum), state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ObjIndex > 0) { thisVentilationMechanical.ZoneDesignSpecOAObjName(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).DesignSpecOAObjName; + state.dataSize->ZoneSizingInput(ObjIndex).DesignSpecOAObjName; thisVentilationMechanical.ZoneDesignSpecOAObjIndex(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneDesignSpecOAIndex; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneDesignSpecOAIndex; } } } @@ -1568,12 +1568,12 @@ namespace EnergyPlus::MixedAir { } else { if (state.dataGlobal->DoZoneSizing) { ObjIndex = UtilityRoutines::FindItemInList( - state.dataMixedAir->VentMechZoneOrListName(groupNum), ZoneSizingInput, &ZoneSizingInputData::ZoneName); + state.dataMixedAir->VentMechZoneOrListName(groupNum), state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ObjIndex > 0) { thisVentilationMechanical.ZoneDesignSpecADObjName(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneAirDistEffObjName; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneAirDistEffObjName; thisVentilationMechanical.ZoneDesignSpecADObjIndex(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneAirDistributionIndex; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneAirDistributionIndex; } } } @@ -1605,12 +1605,12 @@ namespace EnergyPlus::MixedAir { } else { if (state.dataGlobal->DoZoneSizing) { ObjIndex = - UtilityRoutines::FindItemInList(state.dataHeatBal->Zone(ZoneNum).Name, ZoneSizingInput, &ZoneSizingInputData::ZoneName); + UtilityRoutines::FindItemInList(state.dataHeatBal->Zone(ZoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ObjIndex > 0) { thisVentilationMechanical.ZoneDesignSpecOAObjName(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).DesignSpecOAObjName; + state.dataSize->ZoneSizingInput(ObjIndex).DesignSpecOAObjName; thisVentilationMechanical.ZoneDesignSpecOAObjIndex(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneDesignSpecOAIndex; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneDesignSpecOAIndex; } } } @@ -1622,12 +1622,12 @@ namespace EnergyPlus::MixedAir { } else { if (state.dataGlobal->DoZoneSizing) { ObjIndex = - UtilityRoutines::FindItemInList(state.dataHeatBal->Zone(ZoneNum).Name, ZoneSizingInput, &ZoneSizingInputData::ZoneName); + UtilityRoutines::FindItemInList(state.dataHeatBal->Zone(ZoneNum).Name, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ObjIndex > 0) { thisVentilationMechanical.ZoneDesignSpecADObjName(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneAirDistEffObjName; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneAirDistEffObjName; thisVentilationMechanical.ZoneDesignSpecADObjIndex(MechVentZoneCount) = - ZoneSizingInput(ObjIndex).ZoneAirDistributionIndex; + state.dataSize->ZoneSizingInput(ObjIndex).ZoneAirDistributionIndex; } } } @@ -1644,7 +1644,7 @@ namespace EnergyPlus::MixedAir { for (int ventMechZoneNum = 1; ventMechZoneNum <= MechVentZoneCount; ++ventMechZoneNum) { int zoneOAReqObjIndex = thisVentilationMechanical.ZoneDesignSpecOAObjIndex(ventMechZoneNum); if (zoneOAReqObjIndex > 0) { - auto const &curOARequirements(OARequirements(zoneOAReqObjIndex)); + auto const &curOARequirements(state.dataSize->OARequirements(zoneOAReqObjIndex)); thisVentilationMechanical.ZoneOAAreaRate(ventMechZoneNum) = curOARequirements.OAFlowPerArea; thisVentilationMechanical.ZoneOAPeopleRate(ventMechZoneNum) = curOARequirements.OAFlowPerPerson; thisVentilationMechanical.ZoneOAFlowRate(ventMechZoneNum) = curOARequirements.OAFlowPerZone; @@ -1678,7 +1678,7 @@ namespace EnergyPlus::MixedAir { } int zoneAirDistObjIndex = thisVentilationMechanical.ZoneDesignSpecADObjIndex(ventMechZoneNum); if (zoneAirDistObjIndex > 0) { - auto const &curZoneAirDistribution(ZoneAirDistribution(zoneAirDistObjIndex)); + auto const &curZoneAirDistribution(state.dataSize->ZoneAirDistribution(zoneAirDistObjIndex)); thisVentilationMechanical.ZoneADEffCooling(ventMechZoneNum) = curZoneAirDistribution.ZoneADEffCooling; thisVentilationMechanical.ZoneADEffHeating(ventMechZoneNum) = curZoneAirDistribution.ZoneADEffHeating; thisVentilationMechanical.ZoneADEffSchPtr(ventMechZoneNum) = curZoneAirDistribution.ZoneADEffSchPtr; @@ -2397,7 +2397,7 @@ namespace EnergyPlus::MixedAir { // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE - // Initialize the state.dataAirLoop->OutsideAirSys data structure + // Initialize the OutsideAirSys data structure // METHODOLOGY EMPLOYED: @@ -2422,7 +2422,7 @@ namespace EnergyPlus::MixedAir { // if ( BeginEnvrnFlag && FirstHVACIteration ) { // } - // if ( state.dataGlobal->BeginDayFlag ) { + // if ( BeginDayFlag ) { // } if (state.dataAirLoop->OutsideAirSys(OASysNum).AirLoopDOASNum > -1) return; @@ -2471,8 +2471,8 @@ namespace EnergyPlus::MixedAir { Real64 RhoAirStdInit; // Standard air density Real64 TotalPeopleOAFlow; // Total outside air required for PEOPLE objects served by this OA controller int MixedAirNode; // Controller:OutdoorAir mixed air node - int AirLoopZoneInfoZoneNum; // Index to state.dataAirLoop->AirLoopZoneInfo structure - int NumZone; // Zone number in state.dataAirLoop->AirLoopZoneInfo structure + int AirLoopZoneInfoZoneNum; // Index to AirLoopZoneInfo structure + int NumZone; // Zone number in AirLoopZoneInfo structure int PeopleNum; // Index to PEOPLE objects int NumMechVentZone; // Index to number of zones in VentilationMechanical structure int TempMechVentArrayCounter; // Temporary array counter @@ -2512,7 +2512,7 @@ namespace EnergyPlus::MixedAir { state.dataMixedAir->InitOAControllerOneTimeFlag = false; } if (OAControllerMyOneTimeFlag(OAControllerNum)) { - // Determine Inlet node index for OAController, not a user input for controller, but is obtained from state.dataAirLoop->OutsideAirSys and OAMixer + // Determine Inlet node index for OAController, not a user input for controller, but is obtained from OutsideAirSys and OAMixer { auto const SELECT_CASE_var(thisOAController.ControllerType_Num); @@ -2575,7 +2575,7 @@ namespace EnergyPlus::MixedAir { if (!state.dataGlobal->SysSizingCalc && state.dataMixedAir->InitOAControllerSetPointCheckFlag(OAControllerNum) && DoSetPointTest && !FirstHVACIteration) { MixedAirNode = thisOAController.MixNode; if (MixedAirNode > 0) { - // IF (OAController(OAControllerNum)%Econo == 1 .AND. .NOT. state.dataAirLoop->AirLoopControlInfo(AirLoopNum)%CyclingFan) THEN + // IF (OAController(OAControllerNum)%Econo == 1 .AND. .NOT. AirLoopControlInfo(AirLoopNum)%CyclingFan) THEN if (thisOAController.Econo > iEconoOp::NoEconomizer && state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AnyContFan) { if (Node(MixedAirNode).TempSetPoint == SensedNodeFlagValue) { if (!state.dataGlobal->AnyEnergyManagementSystemInModel) { @@ -2935,7 +2935,7 @@ namespace EnergyPlus::MixedAir { } // Check primary air loop name if (AirLoopFound && thisAirLoop > 0) { - airloopName = state.dataAirSystemsData->PrimaryAirSystems(thisAirLoop).Name; // state.dataAirLoop->OutsideAirSys(OASysIndex)%Name + airloopName = state.dataAirSystemsData->PrimaryAirSystems(thisAirLoop).Name; // OutsideAirSys(OASysIndex)%Name } else { ShowWarningError(state, "Cannot find the primary air loop for the OA Controller: " + thisOAController.Name); airloopName = "AirLoop not found"; @@ -3100,8 +3100,8 @@ namespace EnergyPlus::MixedAir { // Each iteration if (thisOAController.ControllerType_Num == iControllerType::ControllerOutsideAir) { - // zone exhaust mass flow is saved in state.dataAirLoop->AirLoopFlow%ZoneExhaust - // the zone exhaust mass flow that is said to be balanced by simple air flows is saved in state.dataAirLoop->AirLoopFlow%ZoneExhaustBalanced + // zone exhaust mass flow is saved in AirLoopFlow%ZoneExhaust + // the zone exhaust mass flow that is said to be balanced by simple air flows is saved in AirLoopFlow%ZoneExhaustBalanced if (AirLoopNum > 0) { thisOAController.ExhMassFlow = max(0.0, state.dataAirLoop->AirLoopFlow(AirLoopNum).SupFlow - state.dataAirLoop->AirLoopFlow(AirLoopNum).SysRetFlow); state.dataAirLoop->AirLoopControlInfo(AirLoopNum).ZoneExhMassFlow = thisOAController.ExhMassFlow; @@ -3116,7 +3116,7 @@ namespace EnergyPlus::MixedAir { // the design supply air flow rate. Capped the mixed air flow rate at design supply air flow rate, issue #77379 // thisOAController.MixMassFlow = Node(thisOAController.RetNode).MassFlowRate + thisOAController.ExhMassFlow; // thisOAController.MixMassFlow = - // min(Node(thisOAController.RetNode).MassFlowRate + thisOAController.ExhMassFlow, state.dataAirLoop->AirLoopFlow(AirLoopNum).DesSupply); + // min(Node(thisOAController.RetNode).MassFlowRate + thisOAController.ExhMassFlow, AirLoopFlow(AirLoopNum).DesSupply); } } else { thisOAController.ExhMassFlow = 0.0; @@ -3483,7 +3483,7 @@ namespace EnergyPlus::MixedAir { OutAirMinFrac = min(max(OutAirMinFrac, 0.0), 1.0); - // At this point, OutAirMinFrac is still based on state.dataAirLoop->AirLoopFlow.DesSupply + // At this point, OutAirMinFrac is still based on AirLoopFlow.DesSupply if (AirLoopNum > 0) { auto &curAirLoopFlow(state.dataAirLoop->AirLoopFlow(AirLoopNum)); @@ -3763,7 +3763,7 @@ namespace EnergyPlus::MixedAir { OAIndex = this->ZoneDesignSpecOAObjIndex(ZoneIndex); if (OAIndex > 0) { { - auto const SELECT_CASE_var(OARequirements(OAIndex).OAFlowMethod); + auto const SELECT_CASE_var(state.dataSize->OARequirements(OAIndex).OAFlowMethod); if (SELECT_CASE_var == OAFlowPPer) { ZoneOABZ = ZoneOAPeople; } else if (SELECT_CASE_var == OAFlow) { @@ -3852,7 +3852,7 @@ namespace EnergyPlus::MixedAir { OAIndex = this->ZoneDesignSpecOAObjIndex(ZoneIndex); if (OAIndex > 0) { { - auto const SELECT_CASE_var(OARequirements(OAIndex).OAFlowMethod); + auto const SELECT_CASE_var(state.dataSize->OARequirements(OAIndex).OAFlowMethod); if (SELECT_CASE_var == OAFlowPPer) { ZoneOABZ = ZoneOAPeople; } else if (SELECT_CASE_var == OAFlow) { @@ -4257,8 +4257,8 @@ namespace EnergyPlus::MixedAir { if (this->MixedAirTempAtMinOAFlow <= Node(this->MixNode).TempSetPoint) { state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconomizerFlowLocked = true; - // this->OAMassFlow = state.dataAirLoop->AirLoopFlow( AirLoopNum ).MinOutAir; - // state.dataAirLoop->AirLoopFlow( AirLoopNum ).OAFrac = this->OAMassFlow / this->MixMassFlow; + // this->OAMassFlow = AirLoopFlow( AirLoopNum ).MinOutAir; + // AirLoopFlow( AirLoopNum ).OAFrac = this->OAMassFlow / this->MixMassFlow; state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoLockout = true; EconomizerOperationFlag = false; } else { @@ -4514,7 +4514,7 @@ namespace EnergyPlus::MixedAir { // This should not be messing with OutAirMinFrac, freeze protection should only limit economizer operation // if (MaximumOAFracBySetPoint < OutAirMinFrac) { // OutAirMinFrac = MaximumOAFracBySetPoint; - // if (AirLoopNum > 0) state.dataAirLoop->AirLoopFlow(AirLoopNum).MinOutAir = OutAirMinFrac * this->MixMassFlow; + // if (AirLoopNum > 0) AirLoopFlow(AirLoopNum).MinOutAir = OutAirMinFrac * this->MixMassFlow; //} OASignal = max(min(MaximumOAFracBySetPoint, OASignal), OutAirMinFrac); } @@ -4699,7 +4699,7 @@ namespace EnergyPlus::MixedAir { ErrorsFound = false; if (this->MaxOA == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { { auto const SELECT_CASE_var(this->ControllerType_Num); @@ -4709,17 +4709,17 @@ namespace EnergyPlus::MixedAir { CheckSysSizing(state, CurrentModuleObject, this->Name); { - auto const SELECT_CASE_var1(CurDuctType); + auto const SELECT_CASE_var1(state.dataSize->CurDuctType); if (SELECT_CASE_var1 == Main) { - this->MaxOA = FinalSysSizing(CurSysNum).DesMainVolFlow; + this->MaxOA = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else if (SELECT_CASE_var1 == Cooling) { - this->MaxOA = FinalSysSizing(CurSysNum).DesCoolVolFlow; + this->MaxOA = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesCoolVolFlow; } else if (SELECT_CASE_var1 == Heating) { - this->MaxOA = FinalSysSizing(CurSysNum).DesHeatVolFlow; + this->MaxOA = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesHeatVolFlow; } else if (SELECT_CASE_var1 == Other) { - this->MaxOA = FinalSysSizing(CurSysNum).DesMainVolFlow; + this->MaxOA = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { - this->MaxOA = FinalSysSizing(CurSysNum).DesMainVolFlow; + this->MaxOA = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } } @@ -4729,7 +4729,7 @@ namespace EnergyPlus::MixedAir { } } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { { auto const SELECT_CASE_var(this->ControllerType_Num); @@ -4737,7 +4737,7 @@ namespace EnergyPlus::MixedAir { if (SELECT_CASE_var == iControllerType::ControllerOutsideAir) { CheckZoneSizing(state, CurrentModuleObject, this->Name); - this->MaxOA = max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + this->MaxOA = max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); } else if (SELECT_CASE_var == iControllerType::ControllerStandAloneERV) { @@ -4755,11 +4755,11 @@ namespace EnergyPlus::MixedAir { if (this->MinOA == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, CurrentModuleObject, this->Name); - if (FinalSysSizing(CurSysNum).DesOutAirVolFlow >= SmallAirVolFlow) { - this->MinOA = min(FinalSysSizing(CurSysNum).DesOutAirVolFlow, this->MaxOA); + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow >= SmallAirVolFlow) { + this->MinOA = min(state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow, this->MaxOA); } else { this->MinOA = 0.0; } @@ -4785,10 +4785,10 @@ namespace EnergyPlus::MixedAir { } // If there is an outside air system, loop over components in the OA system; pass the design air flow rate // to the coil components that don't have design air flow as an input. - if (CurOASysNum > 0) { - for (CompNum = 1; CompNum <= state.dataAirLoop->OutsideAirSys(CurOASysNum).NumComponents; ++CompNum) { - CompType = state.dataAirLoop->OutsideAirSys(CurOASysNum).ComponentType(CompNum); - CompName = state.dataAirLoop->OutsideAirSys(CurOASysNum).ComponentName(CompNum); + if (state.dataSize->CurOASysNum > 0) { + for (CompNum = 1; CompNum <= state.dataAirLoop->OutsideAirSys(state.dataSize->CurOASysNum).NumComponents; ++CompNum) { + CompType = state.dataAirLoop->OutsideAirSys(state.dataSize->CurOASysNum).ComponentType(CompNum); + CompName = state.dataAirLoop->OutsideAirSys(state.dataSize->CurOASysNum).ComponentName(CompNum); if (UtilityRoutines::SameString(CompType, "COIL:COOLING:WATER:DETAILEDGEOMETRY") || UtilityRoutines::SameString(CompType, "COIL:HEATING:WATER") || UtilityRoutines::SameString(CompType, "COILSYSTEM:COOLING:WATER:HEATEXCHANGERASSISTED")) { diff --git a/src/EnergyPlus/OutdoorAirUnit.cc b/src/EnergyPlus/OutdoorAirUnit.cc index 7631596b474..d2308711181 100644 --- a/src/EnergyPlus/OutdoorAirUnit.cc +++ b/src/EnergyPlus/OutdoorAirUnit.cc @@ -120,7 +120,6 @@ namespace OutdoorAirUnit { using DataHVACGlobals::SmallAirVolFlow; using DataHVACGlobals::SmallLoad; using DataHVACGlobals::SmallMassFlow; - using DataSizing::ZoneEqOutdoorAirUnit; using namespace ScheduleManager; using namespace Psychrometrics; using namespace FluidProperties; @@ -201,7 +200,7 @@ namespace OutdoorAirUnit { } } - ZoneEqOutdoorAirUnit = true; + state.dataSize->ZoneEqOutdoorAirUnit = true; if (state.dataGlobal->ZoneSizingCalc || state.dataGlobal->SysSizingCalc) return; @@ -211,7 +210,7 @@ namespace OutdoorAirUnit { ReportOutdoorAirUnit(state, OAUnitNum); - ZoneEqOutdoorAirUnit = false; + state.dataSize->ZoneEqOutdoorAirUnit = false; } void GetOutdoorAirUnitInputs(EnergyPlusData &state) @@ -1419,26 +1418,28 @@ namespace OutdoorAirUnit { MaxVolWaterFlowDes = 0.0; MaxVolWaterFlowUser = 0.0; - auto & OutAirUnit(state.dataOutdoorAirUnit->OutAirUnit); + auto &OutAirUnit(state.dataOutdoorAirUnit->OutAirUnit); + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &DataFanEnumType(state.dataSize->DataFanEnumType); if (OutAirUnit(OAUnitNum).SFanType == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = OutAirUnit(OAUnitNum).SFan_Index; + state.dataSize->DataFanIndex = OutAirUnit(OAUnitNum).SFan_Index; if (OutAirUnit(OAUnitNum).FanPlace == BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (OutAirUnit(OAUnitNum).FanPlace == DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } if (OutAirUnit(OAUnitNum).OutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (OutAirUnit(OAUnitNum).OutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, @@ -1447,7 +1448,7 @@ namespace OutdoorAirUnit { } } else { CheckZoneSizing(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name); - OutAirVolFlowDes = FinalZoneSizing(CurZoneEqNum).MinOA; + OutAirVolFlowDes = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; if (OutAirVolFlowDes < SmallAirVolFlow) { OutAirVolFlowDes = 0.0; } @@ -1461,7 +1462,7 @@ namespace OutdoorAirUnit { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, "User-Specified Outdoor Air Flow Rate [m3/s]", OutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, "Design Size Outdoor Air Flow Rate [m3/s]", @@ -1483,8 +1484,8 @@ namespace OutdoorAirUnit { if (OutAirUnit(OAUnitNum).ExtAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (OutAirUnit(OAUnitNum).ExtAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, @@ -1504,7 +1505,7 @@ namespace OutdoorAirUnit { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, "User-Specified Exhaust Air Flow Rate [m3/s]", ExtAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(ExtAirVolFlowDes - ExtAirVolFlowUser) / ExtAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(ExtAirVolFlowDes - ExtAirVolFlowUser) / ExtAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { BaseSizer::reportSizerOutput(state, CurrentModuleObjects(CurrentObject::OAUnit), OutAirUnit(OAUnitNum).Name, "Design Size Exhaust Air Flow Rate [m3/s]", @@ -1522,11 +1523,11 @@ namespace OutdoorAirUnit { } } - ZoneEqSizing(CurZoneEqNum).CoolingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).HeatingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; - ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; - ZoneEqSizing(CurZoneEqNum).OAVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = OutAirUnit(OAUnitNum).OutAirVolFlow; if (OutAirUnit(OAUnitNum).SFanMaxAirVolFlow == AutoSize) { if (OutAirUnit(OAUnitNum).SFanType != DataHVACGlobals::FanType_SystemModelObject) { @@ -2606,7 +2607,7 @@ namespace OutdoorAirUnit { if (OutAirUnit(OAUnitNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, OutAirUnit(OAUnitNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, OutAirUnit(OAUnitNum).FirstPass); } } } diff --git a/src/EnergyPlus/OutputReportTabular.cc b/src/EnergyPlus/OutputReportTabular.cc index cb0612301d5..b0a44a12cb4 100644 --- a/src/EnergyPlus/OutputReportTabular.cc +++ b/src/EnergyPlus/OutputReportTabular.cc @@ -10601,7 +10601,7 @@ namespace EnergyPlus::OutputReportTabular { tableBody(1, 8) = RealToStr(state.dataHeatBal->BuildingAzimuth, 2); // north axis angle tableBody(1, 9) = RealToStr(state.dataHeatBal->BuildingRotationAppendixG, 2); // Rotation for Appendix G tableBody(1, 10) = RealToStr(ort->gatherElapsedTimeBEPS, 2); // hours simulated - // tableBody(9,1) = TRIM(fmt::to_string(state.dataOutRptPredefined->numTableEntry)) !number of table entries for predefined tables + // tableBody(9,1) = TRIM(fmt::to_string(numTableEntry)) !number of table entries for predefined tables if (produceTabular) { WriteSubtitle(state, "General"); @@ -11062,7 +11062,7 @@ namespace EnergyPlus::OutputReportTabular { // CALL ShowContinueError(state, 'Calculated based on degrees=['// & // TRIM(ADJUSTL(RealToStr((wallAreaN + wallAreaS + wallAreaE + wallAreaW),3)))// & // '] m2, Calculated from user entered Wall class surfaces=['// & - // TRIM(ADJUSTL(RealToStr(SUM(Zone(1:state.dataGlobal->NumOfZones)%ExtGrossWallArea_Multiplied),3)))//' m2.') + // TRIM(ADJUSTL(RealToStr(SUM(Zone(1:NumOfZones)%ExtGrossWallArea_Multiplied),3)))//' m2.') ShowContinueError(state, "Check classes of surfaces and tilts for discrepancies."); ShowContinueError(state, "Total wall area by ASHRAE 90.1 definition=" + @@ -12496,29 +12496,6 @@ namespace EnergyPlus::OutputReportTabular { // METHODOLOGY EMPLOYED: // Call the AddTOCEntry routine for each zone. - // REFERENCES: - // na - - // USE STATEMENTS: - // na - - // Using/Aliasing - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // na - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int iZone; auto &ort(state.dataOutRptTab); @@ -12531,7 +12508,7 @@ namespace EnergyPlus::OutputReportTabular { } if (ort->displayAirLoopComponentLoadSummary) { for (int AirLoopNum = 1; AirLoopNum <= DataHVACGlobals::NumPrimaryAirSys; ++AirLoopNum) { - AddTOCEntry(state, "AirLoop Component Load Summary", DataSizing::FinalSysSizing(AirLoopNum).AirPriLoopName); + AddTOCEntry(state, "AirLoop Component Load Summary", state.dataSize->FinalSysSizing(AirLoopNum).AirPriLoopName); } } if (ort->displayFacilityComponentLoadSummary) { @@ -12667,9 +12644,6 @@ namespace EnergyPlus::OutputReportTabular { // Decay curve is the fraction of the heat convected from a surface over the initial radiant heat // absorbed by the surface. - // Using/Aliasing - using DataSizing::CalcFinalZoneSizing; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: static int ZoneNum(0); static int SurfNum(0); @@ -12686,7 +12660,7 @@ namespace EnergyPlus::OutputReportTabular { ZoneNum = state.dataSurface->Surface(SurfNum).Zone; if (ZoneNum == 0) continue; if (!state.dataZoneEquip->ZoneEquipConfig(ZoneNum).IsControlled) continue; - CoolDesSelected = CalcFinalZoneSizing(ZoneNum).CoolDDNum; + CoolDesSelected = state.dataSize->CalcFinalZoneSizing(ZoneNum).CoolDDNum; // loop over timesteps after pulse occurred if (CoolDesSelected != 0) { TimeOfPulse = ort->radiantPulseTimestep(CoolDesSelected, ZoneNum); @@ -12709,7 +12683,7 @@ namespace EnergyPlus::OutputReportTabular { } } } - HeatDesSelected = CalcFinalZoneSizing(ZoneNum).HeatDDNum; + HeatDesSelected = state.dataSize->CalcFinalZoneSizing(ZoneNum).HeatDDNum; if (HeatDesSelected != 0) { TimeOfPulse = ort->radiantPulseTimestep(HeatDesSelected, ZoneNum); // scan back to the day that the heating pulse occurs, if necessary @@ -12778,9 +12752,6 @@ namespace EnergyPlus::OutputReportTabular { // METHODOLOGY EMPLOYED: // Save sequence of values for report during sizing. - // Using/Aliasing - using DataSizing::CurOverallSimDay; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: static int iSurf(0); static int ZoneNum(0); @@ -12790,13 +12761,13 @@ namespace EnergyPlus::OutputReportTabular { if (state.dataGlobal->CompLoadReportIsReq && !state.dataGlobal->isPulseZoneSizing) { TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; - ort->feneCondInstantSeq(CurOverallSimDay, TimeStepInDay, _) = 0.0; + ort->feneCondInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, _) = 0.0; for (iSurf = 1; iSurf <= state.dataSurface->TotSurfaces; ++iSurf) { ZoneNum = state.dataSurface->Surface(iSurf).Zone; if (ZoneNum == 0) continue; if (state.dataSurface->Surface(iSurf).Class != DataSurfaces::SurfaceClass::Window) continue; // IF (.not. ZoneEquipConfig(ZoneNum)%IsControlled) CYCLE - ort->feneCondInstantSeq(CurOverallSimDay, TimeStepInDay, ZoneNum) += + ort->feneCondInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, ZoneNum) += state.dataSurface->SurfWinGainConvGlazToZoneRep(iSurf) + state.dataSurface->SurfWinGainConvGlazShadGapToZoneRep(iSurf) + state.dataSurface->SurfWinGainConvShadeToZoneRep(iSurf) + state.dataSurface->SurfWinGainFrameDividerToZoneRep(iSurf); // for now assume zero instant solar - may change related @@ -12807,7 +12778,7 @@ namespace EnergyPlus::OutputReportTabular { for (int izone = 1; izone <= state.dataGlobal->NumOfZones; ++izone) { Real64 tubularGain = 0.0; InternalHeatGains::SumInternalConvectionGainsByTypes(state, izone, IntGainTypesTubular, tubularGain); - ort->feneCondInstantSeq(CurOverallSimDay, TimeStepInDay, izone) += tubularGain; + ort->feneCondInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, izone) += tubularGain; } } } @@ -12828,7 +12799,6 @@ namespace EnergyPlus::OutputReportTabular { // Using/Aliasing using DataHVACGlobals::TimeStepSys; - using DataSizing::CurOverallSimDay; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: static int iZone(0); @@ -12838,47 +12808,47 @@ namespace EnergyPlus::OutputReportTabular { if (state.dataGlobal->CompLoadReportIsReq && !state.dataGlobal->isPulseZoneSizing) { TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; for (iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) { - ort->infilInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->infilInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).InfilHeatGain - state.dataHeatBal->ZnAirRpt(iZone).InfilHeatLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone infiltration if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->infilInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->infilInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneInfiSenGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneInfiSenLossW); // air flow network } - ort->infilLatentSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->infilLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).InfilLatentGain - state.dataHeatBal->ZnAirRpt(iZone).InfilLatentLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone infiltration if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->infilLatentSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->infilLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneInfiLatGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneInfiLatLossW); // air flow network } - ort->zoneVentInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->zoneVentInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).VentilHeatGain - state.dataHeatBal->ZnAirRpt(iZone).VentilHeatLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone ventilation if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->zoneVentInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->zoneVentInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneVentSenGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneVentSenLossW); // air flow network } - ort->zoneVentLatentSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->zoneVentLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).VentilLatentGain - state.dataHeatBal->ZnAirRpt(iZone).VentilLatentLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone ventilation if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->zoneVentInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->zoneVentInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneVentLatGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneVentLatLossW); // air flow network } - ort->interZoneMixInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->interZoneMixInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).MixHeatGain - state.dataHeatBal->ZnAirRpt(iZone).MixHeatLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone mixing if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->interZoneMixInstantSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->interZoneMixInstantSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneMixSenGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneMixSenLossW); // air flow network } - ort->interZoneMixLatentSeq(CurOverallSimDay, TimeStepInDay, iZone) = + ort->interZoneMixLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) = ((state.dataHeatBal->ZnAirRpt(iZone).MixLatentGain - state.dataHeatBal->ZnAirRpt(iZone).MixLatentLoss) / (TimeStepSys * DataGlobalConstants::SecInHour)); // zone mixing if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { - ort->interZoneMixLatentSeq(CurOverallSimDay, TimeStepInDay, iZone) += + ort->interZoneMixLatentSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, iZone) += (AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneMixLatGainW - AirflowNetwork::AirflowNetworkReportData(iZone).MultiZoneMixLatLossW); // air flow network } @@ -12943,11 +12913,12 @@ namespace EnergyPlus::OutputReportTabular { // QRadThermInAbs(SurfNum) = QL(NZ) * TMULT(NZ) * ITABSF(SurfNum) using DataHVACGlobals::NumPrimaryAirSys; - using DataSizing::CalcFinalFacilitySizing; - using DataSizing::CalcFinalZoneSizing; - using DataSizing::SysSizPeakDDNum; + + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); auto &ort(state.dataOutRptTab); auto &Zone(state.dataHeatBal->Zone); + auto &CalcFinalFacilitySizing(state.dataSize->CalcFinalFacilitySizing); if (!((ort->displayZoneComponentLoadSummary || ort->displayAirLoopComponentLoadSummary || ort->displayFacilityComponentLoadSummary) && state.dataGlobal->CompLoadReportIsReq)) return; @@ -13114,10 +13085,10 @@ namespace EnergyPlus::OutputReportTabular { if (ort->displayZoneComponentLoadSummary) { for (int iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) { if (!state.dataZoneEquip->ZoneEquipConfig(iZone).IsControlled) continue; - if (allocated(CalcFinalZoneSizing)) { - coolDesSelected = CalcFinalZoneSizing(iZone).CoolDDNum; + if (allocated(state.dataSize->CalcFinalZoneSizing)) { + coolDesSelected = state.dataSize->CalcFinalZoneSizing(iZone).CoolDDNum; ZoneCoolCompLoadTables(iZone).desDayNum = coolDesSelected; - timeCoolMax = CalcFinalZoneSizing(iZone).TimeStepNumAtCoolMax; + timeCoolMax = state.dataSize->CalcFinalZoneSizing(iZone).TimeStepNumAtCoolMax; ZoneCoolCompLoadTables(iZone).timeStepMax = timeCoolMax; GetDelaySequences(state, @@ -13150,9 +13121,9 @@ namespace EnergyPlus::OutputReportTabular { // send latent load info to coil summary report coilSelectionReportObj->setZoneLatentLoadCoolingIdealPeak(iZone, ZoneCoolCompLoadTables(iZone).cells(cLatent, rGrdTot)); - heatDesSelected = CalcFinalZoneSizing(iZone).HeatDDNum; + heatDesSelected = state.dataSize->CalcFinalZoneSizing(iZone).HeatDDNum; ZoneHeatCompLoadTables(iZone).desDayNum = heatDesSelected; - timeHeatMax = CalcFinalZoneSizing(iZone).TimeStepNumAtHeatMax; + timeHeatMax = state.dataSize->CalcFinalZoneSizing(iZone).TimeStepNumAtHeatMax; ZoneHeatCompLoadTables(iZone).timeStepMax = timeHeatMax; GetDelaySequences(state, @@ -13213,14 +13184,14 @@ namespace EnergyPlus::OutputReportTabular { for (int iAirLoop = 1; iAirLoop <= NumPrimaryAirSys; ++iAirLoop) { zoneToAirLoopCool = 0; zoneToAirLoopHeat = 0; - if (DataSizing::FinalSysSizing(iAirLoop).CoolingPeakLoadType == DataSizing::SensibleCoolingLoad) { + if (FinalSysSizing(iAirLoop).CoolingPeakLoadType == DataSizing::SensibleCoolingLoad) { coolDesSelected = SysSizPeakDDNum(iAirLoop).SensCoolPeakDD; if (coolDesSelected != 0) { timeCoolMax = SysSizPeakDDNum(iAirLoop).TimeStepAtSensCoolPk(coolDesSelected); } else { timeCoolMax = 0; } - } else if (DataSizing::FinalSysSizing(iAirLoop).CoolingPeakLoadType == DataSizing::Ventilation) { + } else if (FinalSysSizing(iAirLoop).CoolingPeakLoadType == DataSizing::Ventilation) { coolDesSelected = SysSizPeakDDNum(iAirLoop).CoolFlowPeakDD; if (coolDesSelected != 0) { timeCoolMax = SysSizPeakDDNum(iAirLoop).TimeStepAtCoolFlowPk(coolDesSelected); @@ -13486,7 +13457,7 @@ namespace EnergyPlus::OutputReportTabular { if (ort->displayZoneComponentLoadSummary) { for (int iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) { if (!state.dataZoneEquip->ZoneEquipConfig(iZone).IsControlled) continue; - if (allocated(CalcFinalZoneSizing)) { + if (allocated(state.dataSize->CalcFinalZoneSizing)) { LoadSummaryUnitConversion(state, ZoneCoolCompLoadTables(iZone), unitsStyle_cur); LoadSummaryUnitConversion(state, ZoneHeatCompLoadTables(iZone), unitsStyle_cur); @@ -13642,14 +13613,13 @@ namespace EnergyPlus::OutputReportTabular { } // Used to construct the tabular output for a single cell in the component load summary reports based on moving average - Real64 MovingAvgAtMaxTime(Array1S const &dataSeq, int const &numTimeSteps, int const &maxTimeStep) + Real64 MovingAvgAtMaxTime(EnergyPlusData &state, Array1S const &dataSeq, int const &numTimeSteps, int const &maxTimeStep) { - using DataSizing::NumTimeStepsInAvg; using General::MovingAvg; Array1D AvgData; // sequence data after averaging AvgData.allocate(numTimeSteps); AvgData = 0.; - MovingAvg(dataSeq * 1.0, numTimeSteps, NumTimeStepsInAvg, AvgData); + MovingAvg(dataSeq * 1.0, numTimeSteps, state.dataSize->NumTimeStepsInAvg, AvgData); return AvgData(maxTimeStep); } @@ -13669,8 +13639,6 @@ namespace EnergyPlus::OutputReportTabular { Array3D const &feneCondInstantSeq, Array2D const &surfDelaySeq) { - using DataSizing::CalcZoneSizing; - using DataSizing::NumTimeStepsInAvg; using DataSurfaces::ExternalEnvironment; using DataSurfaces::Ground; using DataSurfaces::GroundFCfactorMethod; @@ -13701,86 +13669,105 @@ namespace EnergyPlus::OutputReportTabular { if (desDaySelected != 0 && timeOfMax != 0) { // PEOPLE - resultCells(cSensInst, rPeople) = MovingAvgAtMaxTime(ort->peopleInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rPeople) = + MovingAvgAtMaxTime(state, ort->peopleInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rPeople) = true; - resultCells(cLatent, rPeople) = MovingAvgAtMaxTime(ort->peopleLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rPeople) = + MovingAvgAtMaxTime(state, ort->peopleLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rPeople) = true; - resultCells(cSensDelay, rPeople) = MovingAvgAtMaxTime(peopleDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rPeople) = MovingAvgAtMaxTime(state, peopleDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rPeople) = true; // LIGHTS - resultCells(cSensInst, rLights) = MovingAvgAtMaxTime(ort->lightInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rLights) = + MovingAvgAtMaxTime(state, ort->lightInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rLights) = true; - resultCells(cSensRA, rLights) = MovingAvgAtMaxTime(ort->lightRetAirSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensRA, rLights) = + MovingAvgAtMaxTime(state, ort->lightRetAirSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensRA, rLights) = true; - resultCells(cSensDelay, rLights) = MovingAvgAtMaxTime(lightDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rLights) = MovingAvgAtMaxTime(state, lightDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rLights) = true; // EQUIPMENT - resultCells(cSensInst, rEquip) = MovingAvgAtMaxTime(ort->equipInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rEquip) = + MovingAvgAtMaxTime(state, ort->equipInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rEquip) = true; - resultCells(cLatent, rEquip) = MovingAvgAtMaxTime(ort->equipLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rEquip) = + MovingAvgAtMaxTime(state, ort->equipLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rEquip) = true; - resultCells(cSensDelay, rEquip) = MovingAvgAtMaxTime(equipDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rEquip) = MovingAvgAtMaxTime(state, equipDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rEquip) = true; // REFRIGERATION EQUIPMENT - resultCells(cSensInst, rRefrig) = MovingAvgAtMaxTime(ort->refrigInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rRefrig) = + MovingAvgAtMaxTime(state, ort->refrigInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rRefrig) = true; - resultCells(cSensRA, rRefrig) = MovingAvgAtMaxTime(ort->refrigRetAirSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensRA, rRefrig) = + MovingAvgAtMaxTime(state, ort->refrigRetAirSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensRA, rRefrig) = true; - resultCells(cLatent, rRefrig) = MovingAvgAtMaxTime(ort->refrigLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rRefrig) = + MovingAvgAtMaxTime(state, ort->refrigLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rRefrig) = true; // WATER USE EQUIPMENT - resultCells(cSensInst, rWaterUse) = MovingAvgAtMaxTime(ort->waterUseInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rWaterUse) = + MovingAvgAtMaxTime(state, ort->waterUseInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rWaterUse) = true; - resultCells(cLatent, rWaterUse) = MovingAvgAtMaxTime(ort->waterUseLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rWaterUse) = + MovingAvgAtMaxTime(state, ort->waterUseLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rWaterUse) = true; // HVAC EQUIPMENT LOSSES - resultCells(cSensInst, rHvacLoss) = MovingAvgAtMaxTime(ort->hvacLossInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rHvacLoss) = + MovingAvgAtMaxTime(state, ort->hvacLossInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rHvacLoss) = true; - resultCells(cSensDelay, rHvacLoss) = MovingAvgAtMaxTime(hvacLossDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rHvacLoss) = MovingAvgAtMaxTime(state, hvacLossDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rHvacLoss) = true; // POWER GENERATION EQUIPMENT - resultCells(cSensInst, rPowerGen) = MovingAvgAtMaxTime(ort->powerGenInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rPowerGen) = + MovingAvgAtMaxTime(state, ort->powerGenInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rPowerGen) = true; - resultCells(cSensDelay, rPowerGen) = MovingAvgAtMaxTime(powerGenDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rPowerGen) = MovingAvgAtMaxTime(state, powerGenDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rPowerGen) = true; // DOAS - resultCells(cSensInst, rDOAS) = CalcZoneSizing(desDaySelected, zoneIndex).DOASHeatAddSeq(timeOfMax); + resultCells(cSensInst, rDOAS) = state.dataSize->CalcZoneSizing(desDaySelected, zoneIndex).DOASHeatAddSeq(timeOfMax); resCellsUsd(cSensInst, rDOAS) = true; - resultCells(cLatent, rDOAS) = CalcZoneSizing(desDaySelected, zoneIndex).DOASLatAddSeq(timeOfMax); + resultCells(cLatent, rDOAS) = state.dataSize->CalcZoneSizing(desDaySelected, zoneIndex).DOASLatAddSeq(timeOfMax); resCellsUsd(cLatent, rDOAS) = true; // INFILTRATION - resultCells(cSensInst, rInfil) = MovingAvgAtMaxTime(ort->infilInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rInfil) = + MovingAvgAtMaxTime(state, ort->infilInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rInfil) = true; - resultCells(cLatent, rInfil) = MovingAvgAtMaxTime(ort->infilLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rInfil) = + MovingAvgAtMaxTime(state, ort->infilLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rInfil) = true; // ZONE VENTILATION - resultCells(cSensInst, rZoneVent) = MovingAvgAtMaxTime(ort->zoneVentInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rZoneVent) = + MovingAvgAtMaxTime(state, ort->zoneVentInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rZoneVent) = true; - resultCells(cLatent, rZoneVent) = MovingAvgAtMaxTime(ort->zoneVentLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rZoneVent) = + MovingAvgAtMaxTime(state, ort->zoneVentLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rZoneVent) = true; // INTERZONE MIXING resultCells(cSensInst, rIntZonMix) = - MovingAvgAtMaxTime(ort->interZoneMixInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + MovingAvgAtMaxTime(state, ort->interZoneMixInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rIntZonMix) = true; - resultCells(cLatent, rIntZonMix) = MovingAvgAtMaxTime(ort->interZoneMixLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cLatent, rIntZonMix) = + MovingAvgAtMaxTime(state, ort->interZoneMixLatentSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cLatent, rIntZonMix) = true; // FENESTRATION CONDUCTION - resultCells(cSensInst, rFeneCond) = MovingAvgAtMaxTime(feneCondInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensInst, rFeneCond) = + MovingAvgAtMaxTime(state, feneCondInstantSeq(desDaySelected, _, zoneIndex), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensInst, rFeneCond) = true; // FENESTRATION SOLAR - resultCells(cSensDelay, rFeneSolr) = MovingAvgAtMaxTime(feneSolarDelaySeq(_), NumOfTimeStepInDay, timeOfMax); + resultCells(cSensDelay, rFeneSolr) = MovingAvgAtMaxTime(state, feneSolarDelaySeq(_), NumOfTimeStepInDay, timeOfMax); resCellsUsd(cSensDelay, rFeneSolr) = true; // opaque surfaces - must combine individual surfaces by class and other side conditions @@ -13796,7 +13783,7 @@ namespace EnergyPlus::OutputReportTabular { } } seqData = surfDelaySeq(_, kSurf); - MovingAvg(seqData, NumOfTimeStepInDay, NumTimeStepsInAvg, AvgData); + MovingAvg(seqData, NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, AvgData); singleSurfDelay = AvgData(timeOfMax); { auto const SELECT_CASE_var(state.dataSurface->Surface(kSurf).Class); @@ -13860,15 +13847,12 @@ namespace EnergyPlus::OutputReportTabular { void CollectPeakZoneConditions(EnergyPlusData &state, CompLoadTablesType &compLoad, int const &desDaySelected, int const &timeOfMax, int const &zoneIndex, bool const &isCooling) { - using DataSizing::CalcFinalZoneSizing; - using DataSizing::CoolPeakDateHrMin; - using DataSizing::FinalZoneSizing; - using DataSizing::HeatPeakDateHrMin; using DataSizing::SupplyAirTemperature; using Psychrometrics::PsyRhFnTdbWPb; using Psychrometrics::PsyTwbFnTdbWPb; auto &Zone(state.dataHeatBal->Zone); + auto &CalcFinalZoneSizing(state.dataSize->CalcFinalZoneSizing); if (timeOfMax != 0) { @@ -13883,7 +13867,7 @@ namespace EnergyPlus::OutputReportTabular { state.dataWeatherManager->DesDayInput(desDaySelected).DayOfMonth, coilSelectionReportObj->getTimeText(state, timeOfMax)); } else { - compLoad.peakDateHrMin = CoolPeakDateHrMin(zoneIndex); + compLoad.peakDateHrMin = state.dataSize->CoolPeakDateHrMin(zoneIndex); } // Outside Dry Bulb Temperature @@ -13916,7 +13900,7 @@ namespace EnergyPlus::OutputReportTabular { compLoad.peakDesSensLoad = CalcFinalZoneSizing(zoneIndex).DesCoolLoad / mult; // change sign // Design Peak Load - compLoad.designPeakLoad = FinalZoneSizing(zoneIndex).DesCoolLoad / mult; + compLoad.designPeakLoad = state.dataSize->FinalZoneSizing(zoneIndex).DesCoolLoad / mult; // Supply air temperature if (CalcFinalZoneSizing(zoneIndex).ZnCoolDgnSAMethod == SupplyAirTemperature) { @@ -13937,7 +13921,7 @@ namespace EnergyPlus::OutputReportTabular { state.dataWeatherManager->DesDayInput(desDaySelected).DayOfMonth, coilSelectionReportObj->getTimeText(state, timeOfMax)); } else { - compLoad.peakDateHrMin = HeatPeakDateHrMin(zoneIndex); + compLoad.peakDateHrMin = state.dataSize->HeatPeakDateHrMin(zoneIndex); } // Outside Dry Bulb Temperature @@ -13970,7 +13954,7 @@ namespace EnergyPlus::OutputReportTabular { compLoad.peakDesSensLoad = -CalcFinalZoneSizing(zoneIndex).DesHeatLoad / mult; // change sign // Design Peak Load - compLoad.designPeakLoad = -FinalZoneSizing(zoneIndex).DesHeatLoad / mult; + compLoad.designPeakLoad = -state.dataSize->FinalZoneSizing(zoneIndex).DesHeatLoad / mult; // Supply air temperature if (CalcFinalZoneSizing(zoneIndex).ZnHeatDgnSAMethod == SupplyAirTemperature) { @@ -14404,7 +14388,7 @@ namespace EnergyPlus::OutputReportTabular { writeOutput = true; } else if (kind == iOutputType::airLoopOutput && ort->displayAirLoopComponentLoadSummary) { reportName = "AirLoop Component Load Summary"; - zoneAirLoopFacilityName = DataSizing::FinalSysSizing(zoneOrAirLoopIndex).AirPriLoopName; + zoneAirLoopFacilityName = state.dataSize->FinalSysSizing(zoneOrAirLoopIndex).AirPriLoopName; writeOutput = true; } else if (kind == iOutputType::facilityOutput && ort->displayFacilityComponentLoadSummary) { reportName = "Facility Component Load Summary"; diff --git a/src/EnergyPlus/OutputReportTabular.hh b/src/EnergyPlus/OutputReportTabular.hh index 7c25971ed25..4188b853448 100644 --- a/src/EnergyPlus/OutputReportTabular.hh +++ b/src/EnergyPlus/OutputReportTabular.hh @@ -651,7 +651,7 @@ namespace OutputReportTabular { Array3D &feneCondInstantSeq, Array2D &surfDelaySeq); - Real64 MovingAvgAtMaxTime(Array1S const &dataSeq, int const &numTimeSteps, int const &maxTimeStep); + Real64 MovingAvgAtMaxTime(EnergyPlusData &state, Array1S const &dataSeq, int const &numTimeSteps, int const &maxTimeStep); void ComputeTableBodyUsingMovingAvg(EnergyPlusData &state, Array2D &resultCells, diff --git a/src/EnergyPlus/OutsideEnergySources.cc b/src/EnergyPlus/OutsideEnergySources.cc index b4fe02909e6..ff063a54403 100644 --- a/src/EnergyPlus/OutsideEnergySources.cc +++ b/src/EnergyPlus/OutsideEnergySources.cc @@ -299,7 +299,7 @@ namespace EnergyPlus::OutsideEnergySources { state.dataPlnt->PlantLoop(this->LoopNum).LoopSide(this->LoopSideNum).Branch(this->BranchNum).Comp(this->CompNum).MaxOutletTemp = state.dataPlnt->PlantLoop(this->LoopNum).MaxTemp; // Register design flow rate for inlet node (helps to autosize comp setpoint op scheme flows - PlantUtilities::RegisterPlantCompDesignFlow(this->InletNodeNum, state.dataPlnt->PlantLoop(this->LoopNum).MaxVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->InletNodeNum, state.dataPlnt->PlantLoop(this->LoopNum).MaxVolFlowRate); this->OneTimeInitFlag = false; @@ -401,7 +401,7 @@ namespace EnergyPlus::OutsideEnergySources { DataGlobalConstants::InitConvTemp, state.dataPlnt->PlantLoop(this->LoopNum).FluidIndex, "SizeDistrict" + typeName); - Real64 const NomCapDes = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + Real64 const NomCapDes = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { if (this->NomCapWasAutoSized) { this->NomCap = NomCapDes; @@ -422,7 +422,7 @@ namespace EnergyPlus::OutsideEnergySources { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(NomCapDes - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(NomCapDes - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeDistrict" + typeName + ": Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", NomCapDes)); diff --git a/src/EnergyPlus/PackagedTerminalHeatPump.cc b/src/EnergyPlus/PackagedTerminalHeatPump.cc index 1785970def3..748299feb30 100644 --- a/src/EnergyPlus/PackagedTerminalHeatPump.cc +++ b/src/EnergyPlus/PackagedTerminalHeatPump.cc @@ -229,7 +229,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { QZnReq = 0.0; } - ZoneEqDXCoil = true; + state.dataSize->ZoneEqDXCoil = true; // Initialize the packaged terminal heat pump InitPTUnit(state, PTUnitNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); @@ -239,7 +239,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // Report the result of the simulation ReportPTUnit(state, PTUnitNum); - ZoneEqDXCoil = false; + state.dataSize->ZoneEqDXCoil = false; } void SimPTUnit(EnergyPlusData &state, @@ -466,7 +466,6 @@ namespace EnergyPlus::PackagedTerminalHeatPump { using DataHVACGlobals::WaterConstant; using DataHVACGlobals::WaterConstantOnDemand; using DataHVACGlobals::WaterCycling; - using DataSizing::ZoneHVACSizing; using DataZoneEquipment::PkgTermACAirToAir_Num; using DataZoneEquipment::PkgTermHPAirToAir_Num; using DataZoneEquipment::PkgTermHPWaterToAir_Num; @@ -1220,7 +1219,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = 0; if (!lAlphaBlanks(18)) { - state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(18), ZoneHVACSizing); + state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(18), state.dataSize->ZoneHVACSizing); if (state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(18) + " = " + Alphas(18) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataPTHP->PTUnit(PTUnitNum).Name); @@ -2047,7 +2046,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = 0; if (!lAlphaBlanks(16)) { - state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(16), ZoneHVACSizing); + state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(16), state.dataSize->ZoneHVACSizing); if (state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(16) + " = " + Alphas(16) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataPTHP->PTUnit(PTUnitNum).Name); @@ -2692,7 +2691,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = 0; if (!lAlphaBlanks(20)) { - state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(20), ZoneHVACSizing); + state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(20), state.dataSize->ZoneHVACSizing); if (state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(20) + " = " + Alphas(20) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataPTHP->PTUnit(PTUnitNum).Name); @@ -4700,22 +4699,12 @@ namespace EnergyPlus::PackagedTerminalHeatPump { Real64 MaxSATSupHeatDes; // Autosized supply air temperature of supplemental heater for reporting Real64 MaxSATSupHeatUser; // Hardsized supply air temperature of supplemental heater for reporting - // SUBROUTINE ARGUMENT DEFINITIONS: - // na - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizePTUnit: "); // include trailing blank space - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: bool ErrorsFound; bool SizingDesRunThisZone; // true if a particular zone had a Sizing:Zone object and zone sizing was done - std::string CompName; // component name std::string CompType; // component type std::string SizingString; // input field sizing description (e.g., Nominal Capacity) @@ -4731,6 +4720,8 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // FractionOfAutosizedHeatingCapacity ) Real64 minNoLoadFlow(0); // used for sizing MaxNoCoolHeatVolFlow for SingleZoneVAV method + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + ErrorsFound = false; IsAutoSize = false; MaxCoolAirVolFlowDes = 0.0; @@ -4748,69 +4739,69 @@ namespace EnergyPlus::PackagedTerminalHeatPump { MaxSATSupHeatDes = 0.0; MaxSATSupHeatUser = 0.0; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedCoolingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedHeatingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; - DataScalableSizingON = false; - DataScalableCapSizingON = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; CompType = state.dataPTHP->PTUnit(PTUnitNum).UnitType; CompName = state.dataPTHP->PTUnit(PTUnitNum).Name; - DataZoneNumber = state.dataPTHP->PTUnit(PTUnitNum).ZonePtr; + state.dataSize->DataZoneNumber = state.dataPTHP->PTUnit(PTUnitNum).ZonePtr; if (state.dataPTHP->PTUnit(PTUnitNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = state.dataPTHP->PTUnit(PTUnitNum).FanIndex; + state.dataSize->DataFanIndex = state.dataPTHP->PTUnit(PTUnitNum).FanIndex; if (state.dataPTHP->PTUnit(PTUnitNum).FanPlace == BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (state.dataPTHP->PTUnit(PTUnitNum).FanPlace == DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex > 0) { // initialize OA flow for sizing other inputs (e.g., capacity) if (state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow == AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow; } if (state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow != AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = max(ZoneEqSizing(CurZoneEqNum).OAVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = max(ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); } if (state.dataPTHP->PTUnit(PTUnitNum).ATMixerExists) { // set up ATMixer conditions for scalable capacity sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataPTHP->PTUnit(PTUnitNum).ATMixerIndex, state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, state.dataPTHP->PTUnit(PTUnitNum).ATMixerIndex, state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum, state.dataSize->CurZoneEqNum); } zoneHVACIndex = state.dataPTHP->PTUnit(PTUnitNum).HVACSizingIndex; SizingMethod = DataHVACGlobals::CoolingAirflowSizing; PrintFlag = true; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -4824,16 +4815,16 @@ namespace EnergyPlus::PackagedTerminalHeatPump { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; bool errorsFound = false; @@ -4850,27 +4841,27 @@ namespace EnergyPlus::PackagedTerminalHeatPump { FieldNum = 2; // N2, \field Supply Air Flow Rate During Heating Operation PrintFlag = true; SizingString = state.dataPTHP->PTUnitUNumericFields(PTUnitNum).FieldNames(FieldNum) + " [m3/s]"; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -4882,18 +4873,18 @@ namespace EnergyPlus::PackagedTerminalHeatPump { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } - DataAutosizedHeatingCapacity = TempSize; - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = TempSize; + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -4908,32 +4899,32 @@ namespace EnergyPlus::PackagedTerminalHeatPump { FieldNum = 3; // N3, \field Supply Air Flow Rate When No Cooling or Heating is Needed PrintFlag = true; SizingString = state.dataPTHP->PTUnitUNumericFields(PTUnitNum).FieldNames(FieldNum) + " [m3/s]"; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).NoCoolHeatSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = - ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxNoCoolHeatAirVolFlow; } bool errorsFound = false; SystemAirFlowSizer sizerSystemAirFlow; @@ -4945,43 +4936,43 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // initialize capacity sizing variables: cooling SizingMethod = CoolingCapacitySizing; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } // initialize capacity sizing variables: heating SizingMethod = HeatingCapacitySizing; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } } } else { @@ -4990,12 +4981,12 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // initialize OA flow for sizing other inputs (e.g., capacity) if (state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow == AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow; } if (state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow != AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = max(ZoneEqSizing(CurZoneEqNum).OAVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = max(ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); } PrintFlag = false; @@ -5015,11 +5006,11 @@ namespace EnergyPlus::PackagedTerminalHeatPump { 0.0, 0.0, 1.0); - ZoneEqSizing(CurZoneEqNum).CoolingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow = + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow = GetCoilAirFlowRateVariableSpeed(state, state.dataPTHP->PTUnit(PTUnitNum).DXCoolCoilType, state.dataPTHP->PTUnit(PTUnitNum).DXCoolCoilName, ErrorsFound); - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow; TempSize = state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow; } PrintFlag = true; @@ -5032,7 +5023,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow = sizingCoolingAirFlow.size(state, TempSize, errorsFound); - ZoneEqSizing(CurZoneEqNum).CoolingAirFlow = false; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirFlow = false; PrintFlag = false; SizingMethod = HeatingAirflowSizing; @@ -5054,12 +5045,12 @@ namespace EnergyPlus::PackagedTerminalHeatPump { 0.0, 0.0, 1.0); - ZoneEqSizing(CurZoneEqNum).HeatingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow = + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirVolFlow = GetCoilAirFlowRateVariableSpeed(state, state.dataPTHP->PTUnit(PTUnitNum).DXHeatCoilType, state.dataPTHP->PTUnit(PTUnitNum).DXHeatCoilName, ErrorsFound); - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = - max(ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow, ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow); + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = + max(ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow, ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirVolFlow); TempSize = state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow; } PrintFlag = true; @@ -5069,18 +5060,18 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow = sizingHeatingAirFlow.size(state, TempSize, errorsFound); - ZoneEqSizing(CurZoneEqNum).HeatingAirFlow = false; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirFlow = false; if (state.dataPTHP->PTUnit(PTUnitNum).ZoneEquipType == PkgTermHPAirToAir_Num || state.dataPTHP->PTUnit(PTUnitNum).ZoneEquipType == PkgTermACAirToAir_Num) { if (state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow == AutoSize && state.dataPTHP->PTUnit(PTUnitNum).ControlType == iCtrlType::CCM_ASHRAE) { SizingMethod = AutoCalculateSizing; - DataConstantUsedForSizing = max(state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); + state.dataSize->DataConstantUsedForSizing = max(state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); minNoLoadFlow = 0.6667; if (state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow >= state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow) { - DataFractionUsedForSizing = + state.dataSize->DataFractionUsedForSizing = min(minNoLoadFlow, (state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow / state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow) - 0.01); } else { - DataFractionUsedForSizing = + state.dataSize->DataFractionUsedForSizing = min(minNoLoadFlow, (state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow / state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow) - 0.01); } } @@ -5094,14 +5085,14 @@ namespace EnergyPlus::PackagedTerminalHeatPump { // sizerSystemAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizerSystemAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow = sizerSystemAirFlow.size(state, TempSize, errorsFound); - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } } if (state.dataPTHP->PTUnit(PTUnitNum).ATMixerExists) { // set up ATMixer conditions for use in component sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataPTHP->PTUnit(PTUnitNum).ATMixerIndex, state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, state.dataPTHP->PTUnit(PTUnitNum).ATMixerIndex, state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum, state.dataSize->CurZoneEqNum); } if (state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow > 0.0) { @@ -5115,8 +5106,8 @@ namespace EnergyPlus::PackagedTerminalHeatPump { if (state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (!IsAutoSize && !SizingDesRunThisZone) { // Simulation continue if (state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, @@ -5126,7 +5117,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { } } else { CheckZoneSizing(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, state.dataPTHP->PTUnit(PTUnitNum).Name); - CoolOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow); + CoolOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow); if (CoolOutAirVolFlowDes < SmallAirVolFlow) { CoolOutAirVolFlowDes = 0.0; } @@ -5146,7 +5137,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { "User-Specified Outdoor Air Flow Rate During Cooling Operation [m3/s]", CoolOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(CoolOutAirVolFlowDes - CoolOutAirVolFlowUser) / CoolOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(CoolOutAirVolFlowDes - CoolOutAirVolFlowUser) / CoolOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePTUnit: Potential issue with equipment sizing for " + state.dataPTHP->PTUnit(PTUnitNum).UnitType + ' ' + state.dataPTHP->PTUnit(PTUnitNum).Name); ShowContinueError( @@ -5168,8 +5159,8 @@ namespace EnergyPlus::PackagedTerminalHeatPump { if (state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (!IsAutoSize && !SizingDesRunThisZone) { // Simulation continue if (state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, @@ -5179,7 +5170,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { } } else { CheckZoneSizing(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, state.dataPTHP->PTUnit(PTUnitNum).Name); - HeatOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); + HeatOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); if (HeatOutAirVolFlowDes < SmallAirVolFlow) { HeatOutAirVolFlowDes = 0.0; } @@ -5199,7 +5190,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { "User-Specified Outdoor Air Flow Rate During Heating Operation [m3/s]", HeatOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(HeatOutAirVolFlowDes - HeatOutAirVolFlowUser) / HeatOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(HeatOutAirVolFlowDes - HeatOutAirVolFlowUser) / HeatOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePTUnit: Potential issue with equipment sizing for " + state.dataPTHP->PTUnit(PTUnitNum).UnitType + ' ' + state.dataPTHP->PTUnit(PTUnitNum).Name); ShowContinueError( @@ -5221,8 +5212,8 @@ namespace EnergyPlus::PackagedTerminalHeatPump { if (state.dataPTHP->PTUnit(PTUnitNum).NoCoolHeatOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (!IsAutoSize && !SizingDesRunThisZone) { // Simulation continue if (state.dataPTHP->PTUnit(PTUnitNum).NoCoolHeatOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, @@ -5232,7 +5223,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { } } else { CheckZoneSizing(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, state.dataPTHP->PTUnit(PTUnitNum).Name); - NoCoolHeatOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow); + NoCoolHeatOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow); if (NoCoolHeatOutAirVolFlowDes < SmallAirVolFlow) { NoCoolHeatOutAirVolFlowDes = 0.0; } @@ -5253,7 +5244,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { NoCoolHeatOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(NoCoolHeatOutAirVolFlowDes - NoCoolHeatOutAirVolFlowUser) / NoCoolHeatOutAirVolFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePTUnit: Potential issue with equipment sizing for " + state.dataPTHP->PTUnit(PTUnitNum).UnitType + ' ' + state.dataPTHP->PTUnit(PTUnitNum).Name); ShowContinueError(state, @@ -5276,8 +5267,8 @@ namespace EnergyPlus::PackagedTerminalHeatPump { if (state.dataPTHP->PTUnit(PTUnitNum).MaxSATSupHeat == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); if (!IsAutoSize && !SizingDesRunThisZone) { // Simulation continue if (state.dataPTHP->PTUnit(PTUnitNum).MaxSATSupHeat > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, @@ -5287,7 +5278,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { } } else { CheckZoneSizing(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, state.dataPTHP->PTUnit(PTUnitNum).Name); - MaxSATSupHeatDes = FinalZoneSizing(CurZoneEqNum).HeatDesTemp; + MaxSATSupHeatDes = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).HeatDesTemp; if (IsAutoSize) { state.dataPTHP->PTUnit(PTUnitNum).MaxSATSupHeat = MaxSATSupHeatDes; BaseSizer::reportSizerOutput(state, state.dataPTHP->PTUnit(PTUnitNum).UnitType, @@ -5304,7 +5295,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { "User-Specified Maximum Supply Air Temperature from Supplemental Heater [C]", MaxSATSupHeatUser); if (state.dataGlobal->DisplayExtraWarnings) { - if (std::abs(MaxSATSupHeatDes - MaxSATSupHeatUser) > (4.0 * AutoVsHardSizingDeltaTempThreshold)) { + if (std::abs(MaxSATSupHeatDes - MaxSATSupHeatUser) > (4.0 * state.dataSize->AutoVsHardSizingDeltaTempThreshold)) { ShowMessage(state, "SizePTUnit: Potential issue with equipment sizing for " + state.dataPTHP->PTUnit(PTUnitNum).UnitType + ' ' + state.dataPTHP->PTUnit(PTUnitNum).Name); ShowContinueError(state, @@ -5325,53 +5316,53 @@ namespace EnergyPlus::PackagedTerminalHeatPump { SetCoilDesFlow(state, state.dataPTHP->PTUnit(PTUnitNum).ACHeatCoilType, state.dataPTHP->PTUnit(PTUnitNum).ACHeatCoilName, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow, ErrorsFound); - if (CurZoneEqNum > 0) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = max(state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); - ZoneEqSizing(CurZoneEqNum).AirVolFlow = max(state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); + if (state.dataSize->CurZoneEqNum > 0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = max(state.dataPTHP->PTUnit(PTUnitNum).CoolOutAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).HeatOutAirVolFlow); + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = max(state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow, state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow); // save air flow rates for child object sizing if (state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow = state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow = state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow; } if (state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingAirFlow = true; - ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow = state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingAirVolFlow = state.dataPTHP->PTUnit(PTUnitNum).MaxHeatAirVolFlow; } } if (state.dataPTHP->PTUnit(PTUnitNum).ControlType == iCtrlType::CCM_ASHRAE) { SizingDesRunThisZone = false; - DataZoneUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum; - CheckThisZoneForSizing(DataZoneUsedForSizing, SizingDesRunThisZone); + state.dataSize->DataZoneUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum; + CheckThisZoneForSizing(state, state.dataSize->DataZoneUsedForSizing, SizingDesRunThisZone); Real64 capacityMultiplier = 0.5; // one-half of design zone load if (SizingDesRunThisZone) { - DataCapacityUsedForSizing = FinalZoneSizing(state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum).DesCoolLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum).DesCoolLoad * capacityMultiplier; } else { - DataCapacityUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).DesignCoolingCapacity * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).DesignCoolingCapacity * capacityMultiplier; } - DataCapacityUsedForSizing /= state.dataPTHP->PTUnit(PTUnitNum).ControlZoneMassFlowFrac; - DataFlowUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataCapacityUsedForSizing /= state.dataPTHP->PTUnit(PTUnitNum).ControlZoneMassFlowFrac; + state.dataSize->DataFlowUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow; PrintFlag = true; ASHRAEMinSATCoolingSizer sizerASHRAEMinSATCooling; sizerASHRAEMinSATCooling.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataPTHP->PTUnit(PTUnitNum).DesignMinOutletTemp = sizerASHRAEMinSATCooling.size(state, state.dataPTHP->PTUnit(PTUnitNum).DesignMinOutletTemp, ErrorsFound); if (SizingDesRunThisZone) { - DataCapacityUsedForSizing = FinalZoneSizing(state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum).DesHeatLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(state.dataPTHP->PTUnit(PTUnitNum).ControlZoneNum).DesHeatLoad * capacityMultiplier; } else { - DataCapacityUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).DesignHeatingCapacity * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).DesignHeatingCapacity * capacityMultiplier; } - DataCapacityUsedForSizing /= state.dataPTHP->PTUnit(PTUnitNum).ControlZoneMassFlowFrac; - DataFlowUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow; + state.dataSize->DataCapacityUsedForSizing /= state.dataPTHP->PTUnit(PTUnitNum).ControlZoneMassFlowFrac; + state.dataSize->DataFlowUsedForSizing = state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow; ASHRAEMaxSATHeatingSizer sizerASHRAEMaxSATHeating; sizerASHRAEMaxSATHeating.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataPTHP->PTUnit(PTUnitNum).DesignMaxOutletTemp = sizerASHRAEMaxSATHeating.size(state, state.dataPTHP->PTUnit(PTUnitNum).DesignMaxOutletTemp, ErrorsFound); - DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently - DataFlowUsedForSizing = 0.0; - DataZoneUsedForSizing = 0; + state.dataSize->DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataZoneUsedForSizing = 0; // check that MaxNoCoolHeatAirVolFlow is less than both MaxCoolAirVolFlow and MaxHeatAirVolFlow if (state.dataPTHP->PTUnit(PTUnitNum).MaxNoCoolHeatAirVolFlow >= state.dataPTHP->PTUnit(PTUnitNum).MaxCoolAirVolFlow || @@ -5390,7 +5381,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { ShowFatalError(state, "Preceding sizing errors cause program termination"); } - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } void ControlPTUnitOutput(EnergyPlusData &state, @@ -6745,7 +6736,7 @@ namespace EnergyPlus::PackagedTerminalHeatPump { if (state.dataPTHP->PTUnit(PTUnitNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataPTHP->PTUnit(PTUnitNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataPTHP->PTUnit(PTUnitNum).FirstPass); } } diff --git a/src/EnergyPlus/PackagedThermalStorageCoil.cc b/src/EnergyPlus/PackagedThermalStorageCoil.cc index 18fe2274efb..ba7805fd668 100644 --- a/src/EnergyPlus/PackagedThermalStorageCoil.cc +++ b/src/EnergyPlus/PackagedThermalStorageCoil.cc @@ -2034,19 +2034,21 @@ namespace EnergyPlus::PackagedThermalStorageCoil { Real64 deltaT; Real64 Cp; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + if (state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, "Coil:Cooling:DX:SingleSpeed:ThermalStorage", state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).Name); - if (CurOASysNum > 0) { - state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate = FinalSysSizing(CurSysNum).DesOutAirVolFlow; + if (state.dataSize->CurOASysNum > 0) { + state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow; } else { - state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate = FinalSysSizing(CurSysNum).DesMainVolFlow; + state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { CheckZoneSizing(state, "Coil:Cooling:DX:SingleSpeed:ThermalStorage", state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).Name); state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate = - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); } if (state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate < SmallAirVolFlow) { @@ -2072,37 +2074,37 @@ namespace EnergyPlus::PackagedThermalStorageCoil { state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).CondenserAirMassFlow = state.dataEnvrn->StdRhoAir * state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).CondenserAirVolumeFlow; if (state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).CoolingOnlyRatedTotCap == AutoSize) { - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { CheckSysSizing(state, "Coil:Cooling:DX:SingleSpeed:ThermalStorage", state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).Name); VolFlowRate = state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (CurOASysNum > 0) { // coil is in the OA stream - MixTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).OutHumRatAtCoolPeak; - SupTemp = FinalSysSizing(CurSysNum).PrecoolTemp; - SupHumRat = FinalSysSizing(CurSysNum).PrecoolHumRat; + if (state.dataSize->CurOASysNum > 0) { // coil is in the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat; } else { // coil is on the main air loop // MixTemp = FinalSysSizing(CurSysNum)%MixTempAtCoolPeak // MixHumRat = FinalSysSizing(CurSysNum)%MixHumRatAtCoolPeak - SupTemp = FinalSysSizing(CurSysNum).CoolSupTemp; - SupHumRat = FinalSysSizing(CurSysNum).CoolSupHumRat; - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing(CurSysNum).MixTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat; + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if (VolFlowRate > 0.0) { - OutAirFrac = FinalSysSizing(CurSysNum).DesOutAirVolFlow / VolFlowRate; + OutAirFrac = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow / VolFlowRate; } else { OutAirFrac = 1.0; } OutAirFrac = min(1.0, max(0.0, OutAirFrac)); MixTemp = - OutAirFrac * FinalSysSizing(CurSysNum).PrecoolTemp + (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetTempAtCoolPeak; - MixHumRat = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolHumRat + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetHumRatAtCoolPeak; + OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; + OutTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, MixTemp, MixHumRat, RoutineName); MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); MixWetBulb = PsyTwbFnTdbWPb(state, MixTemp, MixHumRat, state.dataEnvrn->StdBaroPress, RoutineName); @@ -2118,28 +2120,28 @@ namespace EnergyPlus::PackagedThermalStorageCoil { } else { state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).CoolingOnlyRatedTotCap = 0.0; } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { CheckZoneSizing(state, "Coil:Cooling:DX:SingleSpeed:ThermalStorage", state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).Name); VolFlowRate = state.dataPackagedThermalStorageCoil->TESCoil(TESCoilNum).RatedEvapAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (ZoneEqDXCoil) { - if (ZoneEqSizing(CurZoneEqNum).OAVolFlow > 0.0) { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow > 0.0) { + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak; - MixHumRat = FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak; } } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } - SupTemp = FinalZoneSizing(CurZoneEqNum).CoolDesTemp; - SupHumRat = FinalZoneSizing(CurZoneEqNum).CoolDesHumRat; - TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CurZoneEqNum).CoolDDNum; + SupTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesTemp; + SupHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesHumRat; + TimeStepNumAtMax = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDDNum; if (DDNum > 0 && TimeStepNumAtMax > 0) { - OutTemp = DesDayWeath(DDNum).Temp(TimeStepNumAtMax); + OutTemp = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepNumAtMax); } else { OutTemp = 0.0; } diff --git a/src/EnergyPlus/PhotovoltaicThermalCollectors.cc b/src/EnergyPlus/PhotovoltaicThermalCollectors.cc index 2b7632567cd..7d2aa5fc785 100644 --- a/src/EnergyPlus/PhotovoltaicThermalCollectors.cc +++ b/src/EnergyPlus/PhotovoltaicThermalCollectors.cc @@ -390,7 +390,7 @@ namespace PhotovoltaicThermalCollectors { if (PVT(Item).DesignVolFlowRate != DataSizing::AutoSize) { if (PVT(Item).WorkingFluidType == WorkingFluidEnum::LIQUID) { - PlantUtilities::RegisterPlantCompDesignFlow(PVT(Item).PlantInletNodeNum, PVT(Item).DesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, PVT(Item).PlantInletNodeNum, PVT(Item).DesignVolFlowRate); } else if (PVT(Item).WorkingFluidType == WorkingFluidEnum::AIR) { PVT(Item).MaxMassFlowRate = PVT(Item).DesignVolFlowRate * state.dataEnvrn->StdRhoAir; } @@ -643,10 +643,10 @@ namespace PhotovoltaicThermalCollectors { bool SizingDesRunThisAirSys; // true if a particular air system had a Sizing:System object and system sizing done // Indicator to hardsize and no sizing run - bool HardSizeNoDesRun = !(DataSizing::SysSizingRunDone || DataSizing::ZoneSizingRunDone); + bool HardSizeNoDesRun = !(state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone); - if (DataSizing::CurSysNum > 0) { - CheckThisAirSystemForSizing(DataSizing::CurSysNum, SizingDesRunThisAirSys); + if (state.dataSize->CurSysNum > 0) { + CheckThisAirSystemForSizing(state, state.dataSize->CurSysNum, SizingDesRunThisAirSys); } else { SizingDesRunThisAirSys = false; } @@ -657,7 +657,7 @@ namespace PhotovoltaicThermalCollectors { if (this->WorkingFluidType == WorkingFluidEnum::LIQUID) { - if (!allocated(DataSizing::PlantSizData)) return; + if (!allocated(state.dataSize->PlantSizData)) return; if (!allocated(state.dataPlnt->PlantLoop)) return; if (this->WLoopNum > 0) { @@ -665,8 +665,8 @@ namespace PhotovoltaicThermalCollectors { } if (this->WLoopSideNum == DataPlant::SupplySide) { if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - DesignVolFlowRateDes = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + DesignVolFlowRateDes = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate; } else { DesignVolFlowRateDes = 0.0; } @@ -701,7 +701,7 @@ namespace PhotovoltaicThermalCollectors { "Initial Design Size Design Flow Rate [m3/s]", DesignVolFlowRateDes); } - PlantUtilities::RegisterPlantCompDesignFlow(this->PlantInletNodeNum, this->DesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->PlantInletNodeNum, this->DesignVolFlowRate); } else { // Hardsized with sizing data if (this->DesignVolFlowRate > 0.0 && DesignVolFlowRateDes > 0.0 && state.dataPlnt->PlantFinalSizesOkayToReport) { @@ -714,7 +714,7 @@ namespace PhotovoltaicThermalCollectors { DesignVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(DesignVolFlowRateDes - DesignVolFlowRateUser) / DesignVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeSolarCollector: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Flow Rate of {:.5R} [W]", DesignVolFlowRateUser)); ShowContinueError(state, format("differs from Design Size Design Flow Rate of {:.5R} [W]", DesignVolFlowRateDes)); @@ -728,7 +728,7 @@ namespace PhotovoltaicThermalCollectors { if (this->WorkingFluidType == WorkingFluidEnum::AIR) { - if (DataSizing::CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!this->DesignVolFlowRateWasAutoSized && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRun = true; if (this->DesignVolFlowRate > 0.0) { @@ -739,21 +739,21 @@ namespace PhotovoltaicThermalCollectors { } } else { CheckSysSizing(state, "SolarCollector:FlatPlate:PhotovoltaicThermal", this->Name); - if (DataSizing::CurOASysNum > 0) { - DesignVolFlowRateDes = DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow; + if (state.dataSize->CurOASysNum > 0) { + DesignVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow; } else { { - auto const SELECT_CASE_var(DataSizing::CurDuctType); + auto const SELECT_CASE_var(state.dataSize->CurDuctType); if (SELECT_CASE_var == DataHVACGlobals::Main) { - DesignVolFlowRateDes = DataSizing::FinalSysSizing(DataSizing::CurSysNum).SysAirMinFlowRat * - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow; + DesignVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).SysAirMinFlowRat * + state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else if (SELECT_CASE_var == DataHVACGlobals::Cooling) { - DesignVolFlowRateDes = DataSizing::FinalSysSizing(DataSizing::CurSysNum).SysAirMinFlowRat * - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesCoolVolFlow; + DesignVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).SysAirMinFlowRat * + state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesCoolVolFlow; } else if (SELECT_CASE_var == DataHVACGlobals::Heating) { - DesignVolFlowRateDes = DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesHeatVolFlow; + DesignVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesHeatVolFlow; } else { - DesignVolFlowRateDes = DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow; + DesignVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } } } @@ -777,7 +777,7 @@ namespace PhotovoltaicThermalCollectors { DesignVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(DesignVolFlowRateDes - DesignVolFlowRateUser) / DesignVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeSolarCollector: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Flow Rate of {:.5R} [W]", DesignVolFlowRateUser)); ShowContinueError(state, format("differs from Design Size Design Flow Rate of {:.5R} [W]", DesignVolFlowRateDes)); @@ -788,7 +788,7 @@ namespace PhotovoltaicThermalCollectors { } } } - } else if (DataSizing::CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { // PVT is not currently for zone equipment, should not come here. } } diff --git a/src/EnergyPlus/Plant/PlantManager.cc b/src/EnergyPlus/Plant/PlantManager.cc index 68efcb0cb24..0b93badfec9 100644 --- a/src/EnergyPlus/Plant/PlantManager.cc +++ b/src/EnergyPlus/Plant/PlantManager.cc @@ -2173,7 +2173,7 @@ namespace EnergyPlus::PlantManager { for (HalfLoopNum = 1; HalfLoopNum <= state.dataPlnt->TotNumHalfLoops; ++HalfLoopNum) { LoopNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopIndex; LoopSideNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopSide; - CurLoopNum = LoopNum; + state.dataSize->CurLoopNum = LoopNum; for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(LoopSideNum).TotalBranches; ++BranchNum) { @@ -2195,7 +2195,7 @@ namespace EnergyPlus::PlantManager { LoopNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopIndex; LoopSideNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopSide; - CurLoopNum = LoopNum; + state.dataSize->CurLoopNum = LoopNum; if (LoopSideNum == SupplySide) { SizePlantLoop(state, LoopNum, FinishSizingFlag); } @@ -2218,7 +2218,7 @@ namespace EnergyPlus::PlantManager { } LoopNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopIndex; LoopSideNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopSide; - CurLoopNum = LoopNum; + state.dataSize->CurLoopNum = LoopNum; if (LoopSideNum == SupplySide) { SizePlantLoop(state, LoopNum, FinishSizingFlag); } @@ -2252,7 +2252,7 @@ namespace EnergyPlus::PlantManager { for (HalfLoopNum = 1; HalfLoopNum <= state.dataPlnt->TotNumHalfLoops; ++HalfLoopNum) { LoopNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopIndex; LoopSideNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopSide; - CurLoopNum = LoopNum; + state.dataSize->CurLoopNum = LoopNum; for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(LoopSideNum).TotalBranches; ++BranchNum) { @@ -2275,7 +2275,7 @@ namespace EnergyPlus::PlantManager { for (HalfLoopNum = 1; HalfLoopNum <= state.dataPlnt->TotNumHalfLoops; ++HalfLoopNum) { LoopNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopIndex; LoopSideNum = state.dataPlnt->PlantCallingOrderInfo(HalfLoopNum).LoopSide; - CurLoopNum = LoopNum; + state.dataSize->CurLoopNum = LoopNum; for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(LoopSideNum).TotalBranches; ++BranchNum) { @@ -2912,35 +2912,15 @@ namespace EnergyPlus::PlantManager { // PURPOSE OF THIS SUBROUTINE: // one time init what can be set up related to plant sizing data structure. - // METHODOLOGY EMPLOYED: - // - - // REFERENCES: - // na - // Using/Aliasing - using DataSizing::NumPltSizInput; - using DataSizing::PlantSizData; using DataSizing::PlantSizingData; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS: - // na - - // DERIVED TYPE DEFINITIONS: - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PlantSizNum(0); // index of Plant Sizing data for this loop if (state.dataPlnt->PlantLoop(LoopNum).PlantSizNum == 0) { - if (NumPltSizInput > 0) { - PlantSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(LoopNum).Name, PlantSizData, + if (state.dataSize->NumPltSizInput > 0) { + PlantSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(LoopNum).Name, state.dataSize->PlantSizData, &PlantSizingData::PlantLoopName); if (PlantSizNum > 0) { state.dataPlnt->PlantLoop(LoopNum).PlantSizNum = PlantSizNum; @@ -2996,8 +2976,8 @@ namespace EnergyPlus::PlantManager { PlantSizNum = state.dataPlnt->PlantLoop(LoopNum).PlantSizNum; // PlantSizData(PlantSizNum)%DesVolFlowRate = 0.0D0 ! DSU2 } else { - if (NumPltSizInput > 0) { - PlantSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(LoopNum).Name, PlantSizData, + if (state.dataSize->NumPltSizInput > 0) { + PlantSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(LoopNum).Name, state.dataSize->PlantSizData, &PlantSizingData::PlantLoopName); } } @@ -3040,7 +3020,7 @@ namespace EnergyPlus::PlantManager { PlantSizFac = 1.0; } // store the sizing factor now, for later reuse, - PlantSizData(PlantSizNum).PlantSizFac = PlantSizFac; + state.dataSize->PlantSizData(PlantSizNum).PlantSizFac = PlantSizFac; // might deprecate this next bit in favor of simpler storage in PlantSizData structure for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(SupplySide).TotalBranches; ++BranchNum) { @@ -3066,14 +3046,14 @@ namespace EnergyPlus::PlantManager { } // sum up contributions from CompDesWaterFlow, demand side size request (non-coincident) - PlantSizData(PlantSizNum).DesVolFlowRate = 0.0; // init for summation + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate = 0.0; // init for summation for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).TotalBranches; ++BranchNum) { for (CompNum = 1; CompNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).Branch( BranchNum).TotalComponents; ++CompNum) { SupNodeNum = state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).Branch(BranchNum).Comp(CompNum).NodeNumIn; - for (WaterCompNum = 1; WaterCompNum <= SaveNumPlantComps; ++WaterCompNum) { - if (SupNodeNum == CompDesWaterFlow(WaterCompNum).SupNode) { - PlantSizData(PlantSizNum).DesVolFlowRate += CompDesWaterFlow( + for (WaterCompNum = 1; WaterCompNum <= state.dataSize->SaveNumPlantComps; ++WaterCompNum) { + if (SupNodeNum == state.dataSize->CompDesWaterFlow(WaterCompNum).SupNode) { + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate += state.dataSize->CompDesWaterFlow( WaterCompNum).DesVolFlowRate; } } @@ -3084,7 +3064,7 @@ namespace EnergyPlus::PlantManager { // if the user puts in a large throwaway value for hard max plant loop size, they may not want this affecting anything else. // but if they put in a smaller value, then it should cap the design size, so use hard value if it is smaller than non-coincident // result - PlantSizData(PlantSizNum).DesVolFlowRate = std::min(PlantSizData(PlantSizNum).DesVolFlowRate, + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate = std::min(state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate, state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate); } } @@ -3093,16 +3073,16 @@ namespace EnergyPlus::PlantManager { if ((PlantSizNum > 0)) { - if (PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate = - PlantSizData(PlantSizNum).DesVolFlowRate * PlantSizData(PlantSizNum).PlantSizFac; + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate * state.dataSize->PlantSizData(PlantSizNum).PlantSizFac; } else { state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate = 0.0; if (state.dataPlnt->PlantFinalSizesOkayToReport) { ShowWarningError( state, format("SizePlantLoop: Calculated Plant Sizing Design Volume Flow Rate=[{:.2R}] is too small. Set to 0.0", - PlantSizData(PlantSizNum).DesVolFlowRate)); + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate)); ShowContinueError(state, "..occurs for PlantLoop=" + state.dataPlnt->PlantLoop(LoopNum).Name); } } @@ -3233,18 +3213,18 @@ namespace EnergyPlus::PlantManager { break; } } - if (PlantSizData(PlantSizNum).ConcurrenceOption == NonCoincident) { + if (state.dataSize->PlantSizData(PlantSizNum).ConcurrenceOption == NonCoincident) { // we can have plant loops that are non-coincident along with some that are coincident // so refresh sum of registered flows (they may have changed) - PlantSizData(PlantSizNum).DesVolFlowRate = 0.0; // init for summation + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate = 0.0; // init for summation for (BranchNum = 1; BranchNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).TotalBranches; ++BranchNum) { for (CompNum = 1; CompNum <= state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).Branch( BranchNum).TotalComponents; ++CompNum) { SupNodeNum = state.dataPlnt->PlantLoop(LoopNum).LoopSide(DemandSide).Branch(BranchNum).Comp(CompNum).NodeNumIn; - for (WaterCompNum = 1; WaterCompNum <= SaveNumPlantComps; ++WaterCompNum) { - if (SupNodeNum == CompDesWaterFlow(WaterCompNum).SupNode) { - PlantSizData(PlantSizNum).DesVolFlowRate += CompDesWaterFlow( + for (WaterCompNum = 1; WaterCompNum <= state.dataSize->SaveNumPlantComps; ++WaterCompNum) { + if (SupNodeNum == state.dataSize->CompDesWaterFlow(WaterCompNum).SupNode) { + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate += state.dataSize->CompDesWaterFlow( WaterCompNum).DesVolFlowRate; } } @@ -3256,15 +3236,15 @@ namespace EnergyPlus::PlantManager { if ((PlantSizNum > 0)) { - if (PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { - state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate = PlantSizData(PlantSizNum).DesVolFlowRate * PlantSizeFac; + if (state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { + state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate = state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate * PlantSizeFac; } else { state.dataPlnt->PlantLoop(LoopNum).MaxVolFlowRate = 0.0; if (state.dataPlnt->PlantFinalSizesOkayToReport) { ShowWarningError( state, format("SizePlantLoop: Calculated Plant Sizing Design Volume Flow Rate=[{:.2R}] is too small. Set to 0.0", - PlantSizData(PlantSizNum).DesVolFlowRate)); + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate)); ShowContinueError(state, "..occurs for PlantLoop=" + state.dataPlnt->PlantLoop(LoopNum).Name); } } diff --git a/src/EnergyPlus/PlantCentralGSHP.cc b/src/EnergyPlus/PlantCentralGSHP.cc index 2a8dc305cd4..f49bcaf0100 100644 --- a/src/EnergyPlus/PlantCentralGSHP.cc +++ b/src/EnergyPlus/PlantCentralGSHP.cc @@ -229,8 +229,8 @@ namespace EnergyPlus::PlantCentralGSHP { // auto-size the Evaporator Flow Rate if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->ChillerHeater(NumChillerHeater).SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->ChillerHeater(NumChillerHeater).SizFac; this->ChillerHeater(NumChillerHeater).tmpEvapVolFlowRate = tmpEvapVolFlowRate; if (!this->ChillerHeater(NumChillerHeater).EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = this->ChillerHeater(NumChillerHeater).EvapVolFlowRate; @@ -269,7 +269,7 @@ namespace EnergyPlus::PlantCentralGSHP { tmpEvapVolFlowRate = EvapVolFlowRateUser; if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterPerformanceElectricEIR: Potential issue with equipment sizing for " + this->ChillerHeater(NumChillerHeater).Name); ShowContinueError( @@ -305,7 +305,7 @@ namespace EnergyPlus::PlantCentralGSHP { // auto-size the Reference Cooling Capacity // each individual chiller heater module is sized to be capable of supporting the total load on the wrapper if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpEvapVolFlowRate > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpEvapVolFlowRate > 0.0) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, @@ -315,7 +315,7 @@ namespace EnergyPlus::PlantCentralGSHP { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * tmpEvapVolFlowRate; if (!this->ChillerHeater(NumChillerHeater).RefCapCoolingWasAutoSized) tmpNomCap = this->ChillerHeater(NumChillerHeater).RefCapCooling; } else { @@ -363,7 +363,7 @@ namespace EnergyPlus::PlantCentralGSHP { NomCapUser); tmpNomCap = NomCapUser; if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterPerformanceElectricEIR: Potential issue with equipment sizing for " + this->ChillerHeater(NumChillerHeater).Name); ShowContinueError(state, format("User-Specified Reference Capacity of {:.2R} [W]", NomCapUser)); @@ -398,7 +398,7 @@ namespace EnergyPlus::PlantCentralGSHP { // auto-size the condenser volume flow rate // each individual chiller heater module is sized to be capable of supporting the total load on the wrapper if (PltSizCondNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->GLHELoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->GLHELoopNum).FluidIndex, @@ -411,7 +411,7 @@ namespace EnergyPlus::PlantCentralGSHP { tmpCondVolFlowRate = tmpNomCap * (1.0 + (1.0 / this->ChillerHeater(NumChillerHeater).RefCOPCooling) * this->ChillerHeater(NumChillerHeater).OpenMotorEff) / - (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); this->ChillerHeater(NumChillerHeater).tmpCondVolFlowRate = tmpCondVolFlowRate; if (!this->ChillerHeater(NumChillerHeater).CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = this->ChillerHeater(NumChillerHeater).CondVolFlowRate; @@ -449,7 +449,7 @@ namespace EnergyPlus::PlantCentralGSHP { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerHeaterPerformanceElectricEIR: Potential issue with equipment sizing for " + this->ChillerHeater(NumChillerHeater).Name); ShowContinueError( @@ -511,10 +511,10 @@ namespace EnergyPlus::PlantCentralGSHP { TotalHotWaterVolFlowRate += this->ChillerHeater(NumChillerHeater).DesignHotWaterVolFlowRate; } - PlantUtilities::RegisterPlantCompDesignFlow(this->CHWInletNodeNum, TotalEvapVolFlowRate); - PlantUtilities::RegisterPlantCompDesignFlow(this->HWInletNodeNum, TotalHotWaterVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CHWInletNodeNum, TotalEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HWInletNodeNum, TotalHotWaterVolFlowRate); // save the reference condenser water volumetric flow rate for use by the condenser water loop sizing algorithms - PlantUtilities::RegisterPlantCompDesignFlow(this->GLHEInletNodeNum, TotalCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->GLHEInletNodeNum, TotalCondVolFlowRate); if (state.dataPlnt->PlantFinalSizesOkayToReport) { this->mySizesReported = true; diff --git a/src/EnergyPlus/PlantChillers.cc b/src/EnergyPlus/PlantChillers.cc index 2e6e022fac1..fa6fdda21b6 100644 --- a/src/EnergyPlus/PlantChillers.cc +++ b/src/EnergyPlus/PlantChillers.cc @@ -463,7 +463,7 @@ namespace PlantChillers { DataIPShortCuts::cAlphaArgs(9), "Heat Recovery Nodes"); if (thisChiller.DesignHeatRecVolFlowRate > 0.0) { - PlantUtilities::RegisterPlantCompDesignFlow(thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); } // Condenser flow rate must be specified for heat reclaim if (thisChiller.CondenserType == DataPlant::CondenserType::AirCooled || @@ -1045,7 +1045,7 @@ namespace PlantChillers { Real64 tmpNomCap = this->NomCap; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -1056,7 +1056,7 @@ namespace PlantChillers { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -1079,7 +1079,7 @@ namespace PlantChillers { "User-Specified Nominal Capacity [W]", this->NomCap); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectric: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", this->NomCap)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -1105,8 +1105,8 @@ namespace PlantChillers { Real64 tmpEvapVolFlowRate = this->EvapVolFlowRate; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -1132,7 +1132,7 @@ namespace PlantChillers { this->EvapVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - this->EvapVolFlowRate) / this->EvapVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectric: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", this->EvapVolFlowRate)); @@ -1160,11 +1160,11 @@ namespace PlantChillers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); Real64 tmpCondVolFlowRate = this->CondVolFlowRate; if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, this->TempDesCondIn, @@ -1175,7 +1175,7 @@ namespace PlantChillers { this->TempDesCondIn, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; } @@ -1201,7 +1201,7 @@ namespace PlantChillers { this->CondVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - this->CondVolFlowRate) / this->CondVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectric: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", this->CondVolFlowRate)); @@ -1232,7 +1232,7 @@ namespace PlantChillers { // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms if (this->CondenserType == DataPlant::CondenserType::WaterCooled) { - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); } if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); @@ -1263,7 +1263,7 @@ namespace PlantChillers { this->DesignHeatRecVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - this->DesignHeatRecVolFlowRate) / this->DesignHeatRecVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerElectric: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Heat Recovery Fluid Flow Rate of {:.5R} [m3/s]", @@ -1281,7 +1281,7 @@ namespace PlantChillers { } } // save the reference heat recovery fluid volumetric flow rate - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); } if (state.dataPlnt->PlantFinalSizesOkayToReport) { @@ -2415,7 +2415,7 @@ namespace PlantChillers { if (thisChiller.DesignHeatRecVolFlowRate == DataSizing::AutoSize) { thisChiller.DesignHeatRecVolFlowRateWasAutoSized = true; } else { - PlantUtilities::RegisterPlantCompDesignFlow(thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); } // Condenser flow rate must be specified for heat reclaim @@ -2942,7 +2942,7 @@ namespace PlantChillers { int PltSizNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -2953,7 +2953,7 @@ namespace PlantChillers { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -2976,7 +2976,7 @@ namespace PlantChillers { "User-Specified Nominal Capacity [W]", this->NomCap); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerEngineDriven: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", this->NomCap)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -3001,8 +3001,8 @@ namespace PlantChillers { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -3027,7 +3027,7 @@ namespace PlantChillers { this->EvapVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - this->EvapVolFlowRate) / this->EvapVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerEngineDriven: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", this->EvapVolFlowRate)); @@ -3055,10 +3055,10 @@ namespace PlantChillers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, this->TempDesCondIn, @@ -3070,7 +3070,7 @@ namespace PlantChillers { this->TempDesCondIn, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; } @@ -3096,7 +3096,7 @@ namespace PlantChillers { this->CondVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - this->CondVolFlowRate) / this->CondVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerEngineDriven: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", this->CondVolFlowRate)); @@ -3127,7 +3127,7 @@ namespace PlantChillers { // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms if (this->CondenserType == DataPlant::CondenserType::WaterCooled) { - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); } // autosize support for heat recovery flow rate. @@ -3165,7 +3165,7 @@ namespace PlantChillers { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - DesignHeatRecVolFlowRateUser) / DesignHeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeEngineDrivenChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -3184,7 +3184,7 @@ namespace PlantChillers { } if (!this->DesignHeatRecVolFlowRateWasAutoSized) tmpHeatRecVolFlowRate = this->DesignHeatRecVolFlowRate; // save the reference heat recovery fluid volumetric flow rate - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); } if (state.dataPlnt->PlantFinalSizesOkayToReport) { @@ -4297,7 +4297,7 @@ namespace PlantChillers { if (thisChiller.DesignHeatRecVolFlowRate == DataSizing::AutoSize) { thisChiller.DesignHeatRecVolFlowRateWasAutoSized = true; } else { - PlantUtilities::RegisterPlantCompDesignFlow(thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, thisChiller.HeatRecInletNodeNum, thisChiller.DesignHeatRecVolFlowRate); } // Condenser flow rate must be specified for heat reclaim, but Why couldn't this be okay?? @@ -4809,7 +4809,7 @@ namespace PlantChillers { int PltSizNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -4820,7 +4820,7 @@ namespace PlantChillers { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -4843,7 +4843,7 @@ namespace PlantChillers { "User-Specified Nominal Capacity [W]", this->NomCap); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - this->NomCap) / this->NomCap) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeGTChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", this->NomCap)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -4869,8 +4869,8 @@ namespace PlantChillers { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -4896,7 +4896,7 @@ namespace PlantChillers { this->EvapVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - this->EvapVolFlowRate) / this->EvapVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeGTChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", this->EvapVolFlowRate)); @@ -4924,10 +4924,10 @@ namespace PlantChillers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, this->TempDesCondIn, @@ -4938,7 +4938,7 @@ namespace PlantChillers { this->TempDesCondIn, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; } @@ -4966,7 +4966,7 @@ namespace PlantChillers { this->CondVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - this->CondVolFlowRate) / this->CondVolFlowRate) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeGTChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", this->CondVolFlowRate)); @@ -4996,7 +4996,7 @@ namespace PlantChillers { } // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms if (this->CondenserType == DataPlant::CondenserType::WaterCooled) - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); Real64 GTEngineCapacityDes = this->NomCap / (this->engineCapacityScalar * this->COP); if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { @@ -5022,7 +5022,7 @@ namespace PlantChillers { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(GTEngineCapacityDes - this->GTEngineCapacity) / this->GTEngineCapacity) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeGTChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Gas Turbine Engine Capacity of {:.2R} [W]", this->GTEngineCapacity)); ShowContinueError(state, @@ -5072,7 +5072,7 @@ namespace PlantChillers { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpHeatRecVolFlowRate - DesignHeatRecVolFlowRateUser) / DesignHeatRecVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeGasTurbineChiller: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, @@ -5091,7 +5091,7 @@ namespace PlantChillers { } if (!this->DesignHeatRecVolFlowRateWasAutoSized) tmpHeatRecVolFlowRate = this->DesignHeatRecVolFlowRate; // save the reference heat recovery fluid volumetric flow rate - PlantUtilities::RegisterPlantCompDesignFlow(this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->HeatRecInletNodeNum, tmpHeatRecVolFlowRate); } if (state.dataPlnt->PlantFinalSizesOkayToReport) { @@ -6462,7 +6462,7 @@ namespace PlantChillers { int PltSizNum = state.dataPlnt->PlantLoop(this->CWLoopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidName, DataGlobalConstants::CWInitConvTemp, @@ -6473,7 +6473,7 @@ namespace PlantChillers { DataGlobalConstants::CWInitConvTemp, state.dataPlnt->PlantLoop(this->CWLoopNum).FluidIndex, RoutineName); - tmpNomCap = Cp * rho * DataSizing::PlantSizData(PltSizNum).DeltaT * DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + tmpNomCap = Cp * rho * state.dataSize->PlantSizData(PltSizNum).DeltaT * state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->NomCapWasAutoSized) tmpNomCap = 0.0; } @@ -6497,7 +6497,7 @@ namespace PlantChillers { "User-Specified Nominal Capacity [W]", NomCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpNomCap - NomCapUser) / NomCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerConstantCOP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", NomCapUser)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpNomCap)); @@ -6522,8 +6522,8 @@ namespace PlantChillers { } if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpEvapVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpEvapVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate * this->SizFac; } else { if (this->EvapVolFlowRateWasAutoSized) tmpEvapVolFlowRate = 0.0; } @@ -6550,7 +6550,7 @@ namespace PlantChillers { EvapVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpEvapVolFlowRate - EvapVolFlowRateUser) / EvapVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerConstantCOP: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Chilled Water Flow Rate of {:.5R} [m3/s]", EvapVolFlowRateUser)); @@ -6578,16 +6578,16 @@ namespace PlantChillers { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->EvapInletNodeNum, tmpEvapVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->EvapInletNodeNum, tmpEvapVolFlowRate); if (this->CondenserType == DataPlant::CondenserType::WaterCooled) { if (PltSizCondNum > 0 && PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow && tmpNomCap > 0.0) { Real64 rho = FluidProperties::GetDensityGlycol( state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, 29.44, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); Real64 Cp = FluidProperties::GetSpecificHeatGlycol( state, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidName, 29.44, state.dataPlnt->PlantLoop(this->CDLoopNum).FluidIndex, RoutineName); - tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (DataSizing::PlantSizData(PltSizCondNum).DeltaT * Cp * rho); + tmpCondVolFlowRate = tmpNomCap * (1.0 + 1.0 / this->COP) / (state.dataSize->PlantSizData(PltSizCondNum).DeltaT * Cp * rho); } else { if (this->CondVolFlowRateWasAutoSized) tmpCondVolFlowRate = 0.0; } @@ -6614,7 +6614,7 @@ namespace PlantChillers { CondVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpCondVolFlowRate - CondVolFlowRateUser) / CondVolFlowRateUser) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeChillerConstantCOP: Potential issue with equipment sizing for " + this->Name); ShowContinueError( state, format("User-Specified Design Condenser Water Flow Rate of {:.5R} [m3/s]", CondVolFlowRateUser)); @@ -6646,7 +6646,7 @@ namespace PlantChillers { // save the design condenser water volumetric flow rate for use by the condenser water loop sizing algorithms if (this->CondenserType == DataPlant::CondenserType::WaterCooled) - PlantUtilities::RegisterPlantCompDesignFlow(this->CondInletNodeNum, tmpCondVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->CondInletNodeNum, tmpCondVolFlowRate); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/PlantComponentTemperatureSources.cc b/src/EnergyPlus/PlantComponentTemperatureSources.cc index 3000a20f7f7..a2db09989d9 100644 --- a/src/EnergyPlus/PlantComponentTemperatureSources.cc +++ b/src/EnergyPlus/PlantComponentTemperatureSources.cc @@ -285,8 +285,8 @@ namespace PlantComponentTemperatureSources { int PltSizNum = state.dataPlnt->PlantLoop(this->Location.loopNum).PlantSizNum; if (PltSizNum > 0) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; //* WaterSource(SourceNum)%SizFac + if (state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpVolFlowRate = state.dataSize->PlantSizData(PltSizNum).DesVolFlowRate; //* WaterSource(SourceNum)%SizFac if (!this->DesVolFlowRateWasAutoSized) tmpVolFlowRate = this->DesVolFlowRate; } else { if (this->DesVolFlowRateWasAutoSized) tmpVolFlowRate = 0.0; @@ -313,7 +313,7 @@ namespace PlantComponentTemperatureSources { "User-Specified Design Fluid Flow Rate [m3/s]", DesVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpVolFlowRate - DesVolFlowRateUser) / DesVolFlowRateUser) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpVolFlowRate - DesVolFlowRateUser) / DesVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePlantComponentTemperatureSource: Potential issue with equipment sizing for " + this->Name); ShowContinueError(state, format("User-Specified Design Fluid Flow Rate of {:.5R} [m3/s]", DesVolFlowRateUser)); ShowContinueError(state, @@ -341,7 +341,7 @@ namespace PlantComponentTemperatureSources { } } - PlantUtilities::RegisterPlantCompDesignFlow(this->InletNodeNum, tmpVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->InletNodeNum, tmpVolFlowRate); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/PlantCondLoopOperation.cc b/src/EnergyPlus/PlantCondLoopOperation.cc index 54869789a93..d45a7d90506 100644 --- a/src/EnergyPlus/PlantCondLoopOperation.cc +++ b/src/EnergyPlus/PlantCondLoopOperation.cc @@ -1369,9 +1369,9 @@ CurrentModuleObject, PlantOpSchemeName); if (rNumericArgs(CompNumN) == AutoSize) { int Num = 1; - for (; Num <= SaveNumPlantComps; ++Num) { - CompInNode = CompDesWaterFlow(Num).SupNode; - CompFlowRate = CompDesWaterFlow(Num).DesVolFlowRate; + for (; Num <= state.dataSize->SaveNumPlantComps; ++Num) { + CompInNode = state.dataSize->CompDesWaterFlow(Num).SupNode; + CompFlowRate = state.dataSize->CompDesWaterFlow(Num).DesVolFlowRate; if (CompInNode == state.dataPlnt->PlantLoop(LoopNum).OpScheme(SchemeNum).EquipList(1).Comp(CompNum).DemandNodeNum) { state.dataPlnt->PlantLoop(LoopNum).OpScheme(SchemeNum).EquipList(1).Comp(CompNum).SetPointFlowRate = CompFlowRate; } else { diff --git a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc index 6144ad2ab4e..c0b583d5e8a 100644 --- a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc +++ b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc @@ -817,8 +817,8 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { Real64 tmpSupSideDesignVolFlowRate = this->SupplySideLoop.DesignVolumeFlowRate; if (this->SupplySideLoop.DesignVolumeFlowRateWasAutoSized) { if (PltSizNumSupSide > 0) { - if (DataSizing::PlantSizData(PltSizNumSupSide).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { - tmpSupSideDesignVolFlowRate = DataSizing::PlantSizData(PltSizNumSupSide).DesVolFlowRate * this->SizingFactor; + if (state.dataSize->PlantSizData(PltSizNumSupSide).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + tmpSupSideDesignVolFlowRate = state.dataSize->PlantSizData(PltSizNumSupSide).DesVolFlowRate * this->SizingFactor; if (state.dataPlnt->PlantFirstSizesOkayToFinalize) this->SupplySideLoop.DesignVolumeFlowRate = tmpSupSideDesignVolFlowRate; } else { tmpSupSideDesignVolFlowRate = 0.0; @@ -843,7 +843,7 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { } } } - PlantUtilities::RegisterPlantCompDesignFlow(this->SupplySideLoop.inletNodeNum, tmpSupSideDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SupplySideLoop.inletNodeNum, tmpSupSideDesignVolFlowRate); // second deal with Loop Demand Side Real64 tmpDmdSideDesignVolFlowRate = this->DemandSideLoop.DesignVolumeFlowRate; @@ -868,7 +868,7 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { this->DemandSideLoop.DesignVolumeFlowRate); } } - PlantUtilities::RegisterPlantCompDesignFlow(this->DemandSideLoop.inletNodeNum, tmpDmdSideDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->DemandSideLoop.inletNodeNum, tmpDmdSideDesignVolFlowRate); // size UA if needed if (this->UAWasAutoSized) { @@ -878,23 +878,23 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { Real64 tmpDeltaTloopToLoop(0.0); { - auto const SELECT_CASE_var(DataSizing::PlantSizData(PltSizNumSupSide).LoopType); + auto const SELECT_CASE_var(state.dataSize->PlantSizData(PltSizNumSupSide).LoopType); if ((SELECT_CASE_var == DataSizing::HeatingLoop) || (SELECT_CASE_var == DataSizing::SteamLoop)) { tmpDeltaTloopToLoop = - std::abs((DataSizing::PlantSizData(PltSizNumSupSide).ExitTemp - DataSizing::PlantSizData(PltSizNumSupSide).DeltaT) - - DataSizing::PlantSizData(PltSizNumDmdSide).ExitTemp); + std::abs((state.dataSize->PlantSizData(PltSizNumSupSide).ExitTemp - state.dataSize->PlantSizData(PltSizNumSupSide).DeltaT) - + state.dataSize->PlantSizData(PltSizNumDmdSide).ExitTemp); } else if ((SELECT_CASE_var == DataSizing::CoolingLoop) || (SELECT_CASE_var == DataSizing::CondenserLoop)) { tmpDeltaTloopToLoop = - std::abs((DataSizing::PlantSizData(PltSizNumSupSide).ExitTemp + DataSizing::PlantSizData(PltSizNumSupSide).DeltaT) - - DataSizing::PlantSizData(PltSizNumDmdSide).ExitTemp); + std::abs((state.dataSize->PlantSizData(PltSizNumSupSide).ExitTemp + state.dataSize->PlantSizData(PltSizNumSupSide).DeltaT) - + state.dataSize->PlantSizData(PltSizNumDmdSide).ExitTemp); } else { assert(false); } } tmpDeltaTloopToLoop = max(2.0, tmpDeltaTloopToLoop); - Real64 tmpDeltaTSupLoop = DataSizing::PlantSizData(PltSizNumSupSide).DeltaT; + Real64 tmpDeltaTSupLoop = state.dataSize->PlantSizData(PltSizNumSupSide).DeltaT; if (tmpSupSideDesignVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state, @@ -944,13 +944,13 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { if (PltSizNumSupSide > 0) { { - auto const SELECT_CASE_var(DataSizing::PlantSizData(PltSizNumSupSide).LoopType); + auto const SELECT_CASE_var(state.dataSize->PlantSizData(PltSizNumSupSide).LoopType); if ((SELECT_CASE_var == DataSizing::HeatingLoop) || (SELECT_CASE_var == DataSizing::SteamLoop)) { DataLoopNode::Node(this->SupplySideLoop.inletNodeNum).Temp = - (DataSizing::PlantSizData(PltSizNumSupSide).ExitTemp - DataSizing::PlantSizData(PltSizNumSupSide).DeltaT); + (state.dataSize->PlantSizData(PltSizNumSupSide).ExitTemp - state.dataSize->PlantSizData(PltSizNumSupSide).DeltaT); } else if ((SELECT_CASE_var == DataSizing::CoolingLoop) || (SELECT_CASE_var == DataSizing::CondenserLoop)) { DataLoopNode::Node(this->SupplySideLoop.inletNodeNum).Temp = - (DataSizing::PlantSizData(PltSizNumSupSide).ExitTemp + DataSizing::PlantSizData(PltSizNumSupSide).DeltaT); + (state.dataSize->PlantSizData(PltSizNumSupSide).ExitTemp + state.dataSize->PlantSizData(PltSizNumSupSide).DeltaT); } } @@ -968,7 +968,7 @@ namespace EnergyPlus::PlantHeatExchangerFluidToFluid { } if (PltSizNumDmdSide > 0) { - DataLoopNode::Node(this->DemandSideLoop.inletNodeNum).Temp = DataSizing::PlantSizData(PltSizNumDmdSide).ExitTemp; + DataLoopNode::Node(this->DemandSideLoop.inletNodeNum).Temp = state.dataSize->PlantSizData(PltSizNumDmdSide).ExitTemp; } else { // don't rely on sizing, use loop setpoints // loop demand side if (state.dataPlnt->PlantLoop(this->DemandSideLoop.loopNum).LoopDemandCalcScheme == DataPlant::iLoopDemandCalcScheme::SingleSetPoint) { diff --git a/src/EnergyPlus/PlantLoadProfile.cc b/src/EnergyPlus/PlantLoadProfile.cc index 935a4b1e795..fa82243588a 100644 --- a/src/EnergyPlus/PlantLoadProfile.cc +++ b/src/EnergyPlus/PlantLoadProfile.cc @@ -203,7 +203,7 @@ namespace EnergyPlus::PlantLoadProfile { } if (!state.dataGlobal->SysSizingCalc && this->InitSizing) { - RegisterPlantCompDesignFlow(InletNode, this->PeakVolFlowRate); + RegisterPlantCompDesignFlow(state, InletNode, this->PeakVolFlowRate); this->InitSizing = false; } diff --git a/src/EnergyPlus/PlantLoopHeatPumpEIR.cc b/src/EnergyPlus/PlantLoopHeatPumpEIR.cc index 7e5576e13bc..6aba600be08 100644 --- a/src/EnergyPlus/PlantLoopHeatPumpEIR.cc +++ b/src/EnergyPlus/PlantLoopHeatPumpEIR.cc @@ -581,16 +581,16 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { if (pltLoadSizNum > 0) { // this first IF block is really just about calculating the local tmpCapacity and tmpLoadVolFlow values // these represent what the unit would size those to, whether it is doing auto-sizing or not - if (DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { - tmpLoadVolFlow = DataSizing::PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizingFactor; + if (state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate > DataHVACGlobals::SmallWaterVolFlow) { + tmpLoadVolFlow = state.dataSize->PlantSizData(pltLoadSizNum).DesVolFlowRate * this->sizingFactor; if (this->companionHeatPumpCoil) { tmpLoadVolFlow = max(tmpLoadVolFlow, this->companionHeatPumpCoil->loadSideDesignVolFlowRate); if (this->loadSideDesignVolFlowRateWasAutoSized) this->loadSideDesignVolFlowRate = tmpLoadVolFlow; } - tmpCapacity = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadVolFlow; + tmpCapacity = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadVolFlow; } else if (this->companionHeatPumpCoil && this->companionHeatPumpCoil->loadSideDesignVolFlowRate > 0.0) { tmpLoadVolFlow = this->companionHeatPumpCoil->loadSideDesignVolFlowRate; - tmpCapacity = Cp * rho * DataSizing::PlantSizData(pltLoadSizNum).DeltaT * tmpLoadVolFlow; + tmpCapacity = Cp * rho * state.dataSize->PlantSizData(pltLoadSizNum).DeltaT * tmpLoadVolFlow; } else { if (this->referenceCapacityWasAutoSized) tmpCapacity = 0.0; if (this->loadSideDesignVolFlowRateWasAutoSized) tmpLoadVolFlow = 0.0; @@ -625,7 +625,7 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { } // we can warn here if there is a bit mismatch between hard- and auto-sized if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(tmpCapacity - hardSizedCapacity) / hardSizedCapacity) > DataSizing::AutoVsHardSizingThreshold) { + if ((std::abs(tmpCapacity - hardSizedCapacity) / hardSizedCapacity) > state.dataSize->AutoVsHardSizingThreshold) { ShowWarningMessage(state, "EIRPlantLoopHeatPump::size(): Potential issue with equipment sizing for " + this->name); ShowContinueError(state, format("User-Specified Nominal Capacity of {:.2R} [W]", hardSizedCapacity)); ShowContinueError(state, format("differs from Design Size Nominal Capacity of {:.2R} [W]", tmpCapacity)); @@ -664,7 +664,7 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpLoadVolFlow - hardSizedLoadSideFlow) / hardSizedLoadSideFlow) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "EIRPlantLoopHeatPump::size(): Potential issue with equipment sizing for " + this->name); ShowContinueError(state, format("User-Specified Load Side Volume Flow Rate of {:.2R} [m3/s]", hardSizedLoadSideFlow)); @@ -771,7 +771,7 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { // To get the design source flow rate, just apply the sensible heat rate equation: // Qsrc = rho_src * Vdot_src * Cp_src * DeltaT_src // Vdot_src = Q_src / (rho_src * Cp_src * DeltaT_src) - tmpSourceVolFlow = designSourceSideHeatTransfer / (DataSizing::PlantSizData(plantSourceSizingIndex).DeltaT * CpSrc * rhoSrc); + tmpSourceVolFlow = designSourceSideHeatTransfer / (state.dataSize->PlantSizData(plantSourceSizingIndex).DeltaT * CpSrc * rhoSrc); } else { // just assume it's the same as the load side if we don't have any sizing information tmpSourceVolFlow = tmpLoadVolFlow; @@ -802,7 +802,7 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(tmpSourceVolFlow - hardSizedSourceSideFlow) / hardSizedSourceSideFlow) > - DataSizing::AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "EIRPlantLoopHeatPump::size(): Potential issue with equipment sizing for " + this->name); ShowContinueError(state, format("User-Specified Source Side Volume Flow Rate of {:.2R} [m3/s]", hardSizedSourceSideFlow)); ShowContinueError(state, @@ -820,8 +820,8 @@ namespace EnergyPlus::EIRPlantLoopHeatPumps { // register the design volume flows with the plant, only doing half of source because the companion // is generally on the same loop - PlantUtilities::RegisterPlantCompDesignFlow(this->loadSideNodes.inlet, tmpLoadVolFlow); - PlantUtilities::RegisterPlantCompDesignFlow(this->sourceSideNodes.inlet, tmpSourceVolFlow / 0.5); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->loadSideNodes.inlet, tmpLoadVolFlow); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->sourceSideNodes.inlet, tmpSourceVolFlow / 0.5); if (state.dataPlnt->PlantFinalSizesOkayToReport) { // create predefined report diff --git a/src/EnergyPlus/PlantUtilities.cc b/src/EnergyPlus/PlantUtilities.cc index dbda4c68ace..18068082b19 100644 --- a/src/EnergyPlus/PlantUtilities.cc +++ b/src/EnergyPlus/PlantUtilities.cc @@ -1323,13 +1323,14 @@ namespace EnergyPlus::PlantUtilities { } } - void RegisterPlantCompDesignFlow(int const ComponentInletNodeNum, // the component's water inlet node number + void RegisterPlantCompDesignFlow(EnergyPlusData &state, + int const ComponentInletNodeNum, // the component's water inlet node number Real64 const DesPlantFlow // the component's design fluid volume flow rate [m3/s] ) { // SUBROUTINE INFORMATION: - // AUTHOR Fred Buhl(previosly SaveCompDesWaterFlow in General.cc) + // AUTHOR Fred Buhl(previously SaveCompDesWaterFlow in General.cc) // DATE WRITTEN January 2004 // MODIFIED // RE-ENGINEERED B. Griffith April 2011, allow to enter repeatedly @@ -1354,22 +1355,22 @@ namespace EnergyPlus::PlantUtilities { bool Found; int thisCallNodeIndex; - NumPlantComps = SaveNumPlantComps; + NumPlantComps = state.dataSize->SaveNumPlantComps; if (NumPlantComps == 0) { // first time in, fill and return NumPlantComps = 1; - CompDesWaterFlow.allocate(NumPlantComps); + state.dataSize->CompDesWaterFlow.allocate(NumPlantComps); // save the new data - CompDesWaterFlow(NumPlantComps).SupNode = ComponentInletNodeNum; - CompDesWaterFlow(NumPlantComps).DesVolFlowRate = DesPlantFlow; - SaveNumPlantComps = NumPlantComps; + state.dataSize->CompDesWaterFlow(NumPlantComps).SupNode = ComponentInletNodeNum; + state.dataSize->CompDesWaterFlow(NumPlantComps).DesVolFlowRate = DesPlantFlow; + state.dataSize->SaveNumPlantComps = NumPlantComps; return; } Found = false; // find node num index in structure if any for (PlantCompNum = 1; PlantCompNum <= NumPlantComps; ++PlantCompNum) { - if (ComponentInletNodeNum == CompDesWaterFlow(PlantCompNum).SupNode) { + if (ComponentInletNodeNum == state.dataSize->CompDesWaterFlow(PlantCompNum).SupNode) { Found = true; thisCallNodeIndex = PlantCompNum; } @@ -1378,11 +1379,11 @@ namespace EnergyPlus::PlantUtilities { if (!Found) { // grow structure and add new node at the end ++NumPlantComps; // increment the number of components that use water as a source of heat or coolth - CompDesWaterFlow.emplace_back(ComponentInletNodeNum, DesPlantFlow); // Append the new element - SaveNumPlantComps = NumPlantComps; + state.dataSize->CompDesWaterFlow.emplace_back(ComponentInletNodeNum, DesPlantFlow); // Append the new element + state.dataSize->SaveNumPlantComps = NumPlantComps; } else { - CompDesWaterFlow(thisCallNodeIndex).SupNode = ComponentInletNodeNum; - CompDesWaterFlow(thisCallNodeIndex).DesVolFlowRate = DesPlantFlow; + state.dataSize->CompDesWaterFlow(thisCallNodeIndex).SupNode = ComponentInletNodeNum; + state.dataSize->CompDesWaterFlow(thisCallNodeIndex).DesVolFlowRate = DesPlantFlow; } } @@ -1938,8 +1939,6 @@ namespace EnergyPlus::PlantUtilities { // to search the Plant Sizing array for the matching Plant Sizing object. // Using/Aliasing - using DataSizing::NumPltSizInput; - using DataSizing::PlantSizData; using DataSizing::PlantSizingData; // Return value @@ -1968,8 +1967,8 @@ namespace EnergyPlus::PlantUtilities { } if (MyPltLoopNum > 0) { - if (NumPltSizInput > 0) { - MyPltSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(MyPltLoopNum).Name, PlantSizData, &PlantSizingData::PlantLoopName); + if (state.dataSize->NumPltSizInput > 0) { + MyPltSizNum = UtilityRoutines::FindItemInList(state.dataPlnt->PlantLoop(MyPltLoopNum).Name, state.dataSize->PlantSizData, &PlantSizingData::PlantLoopName); } if (MyPltSizNum == 0) { if (PrintErrorFlag) { diff --git a/src/EnergyPlus/PlantUtilities.hh b/src/EnergyPlus/PlantUtilities.hh index 03a8ef5c0da..2879595cd11 100644 --- a/src/EnergyPlus/PlantUtilities.hh +++ b/src/EnergyPlus/PlantUtilities.hh @@ -165,7 +165,8 @@ namespace PlantUtilities { void ShiftPlantLoopSideCallingOrder(EnergyPlusData &state, int OldIndex, int NewIndex); - void RegisterPlantCompDesignFlow(int ComponentInletNodeNum, // the component's water inlet node number + void RegisterPlantCompDesignFlow(EnergyPlusData &state, + int ComponentInletNodeNum, // the component's water inlet node number Real64 DesPlantFlow // the component's design fluid volume flow rate [m3/s] ); diff --git a/src/EnergyPlus/PondGroundHeatExchanger.cc b/src/EnergyPlus/PondGroundHeatExchanger.cc index 2a4bff1e6ff..61171a4eed3 100644 --- a/src/EnergyPlus/PondGroundHeatExchanger.cc +++ b/src/EnergyPlus/PondGroundHeatExchanger.cc @@ -432,7 +432,7 @@ namespace EnergyPlus::PondGroundHeatExchanger { this->LoopSideNum, this->BranchNum, this->CompNum); - PlantUtilities::RegisterPlantCompDesignFlow(this->InletNodeNum, this->DesignMassFlowRate / rho); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->InletNodeNum, this->DesignMassFlowRate / rho); this->MyFlag = false; } diff --git a/src/EnergyPlus/PoweredInductionUnits.cc b/src/EnergyPlus/PoweredInductionUnits.cc index db4dcad6400..1a11fe6af42 100644 --- a/src/EnergyPlus/PoweredInductionUnits.cc +++ b/src/EnergyPlus/PoweredInductionUnits.cc @@ -145,14 +145,9 @@ namespace EnergyPlus::PoweredInductionUnits { // Manages the simulation of a fan powered induction terminal unit. // Called from SimZoneAirLoopEquipmentin module ZoneAirLoopEquipmentManager. - // Using/Aliasing - using DataSizing::TermUnitPIU; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PIUNum; // index of powered induction unit being simulated - - // First time SimPIU is called, get the input for all the fan coil units if (state.dataPowerInductionUnits->GetPIUInputFlag) { GetPIUs(state); @@ -184,11 +179,11 @@ namespace EnergyPlus::PoweredInductionUnits { } } - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(state.dataPowerInductionUnits->PIU(PIUNum).ADUNum).TermUnitSizingNum; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(state.dataPowerInductionUnits->PIU(PIUNum).ADUNum).TermUnitSizingNum; // initialize the unit InitPIU(state, PIUNum, FirstHVACIteration); - TermUnitPIU = true; + state.dataSize->TermUnitPIU = true; // Select the correct unit type { @@ -209,7 +204,7 @@ namespace EnergyPlus::PoweredInductionUnits { } } - TermUnitPIU = false; + state.dataSize->TermUnitPIU = false; // Update the current unit's outlet nodes // no update needed: reheat coil updates outlet node; inlet nodes' mass flow rate set by Calc routine @@ -1011,11 +1006,14 @@ namespace EnergyPlus::PoweredInductionUnits { MaxVolHotSteamFlowDes = 0.0; MaxVolHotSteamFlowUser = 0.0; + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + auto &CurTermUnitSizingNum(state.dataSize->CurTermUnitSizingNum); + if (state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "User-Specified Maximum Primary Air Flow Rate [m3/s]", state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow); @@ -1023,7 +1021,7 @@ namespace EnergyPlus::PoweredInductionUnits { } else { CheckZoneSizing(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name); MaxPriAirVolFlowDes = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); if (MaxPriAirVolFlowDes < SmallAirVolFlow) { MaxPriAirVolFlowDes = 0.0; } @@ -1042,7 +1040,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Maximum Primary Air Flow Rate [m3/s]", MaxPriAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxPriAirVolFlowDes - MaxPriAirVolFlowUser) / MaxPriAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxPriAirVolFlowDes - MaxPriAirVolFlowUser) / MaxPriAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, format("User-Specified Primary Air Flow Rate of {:.5R} [m3/s]", MaxPriAirVolFlowUser)); ShowContinueError(state, @@ -1060,8 +1058,8 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).MaxTotAirVolFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MaxTotAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "User-Specified Maximum Air Flow Rate [m3/s]", state.dataPowerInductionUnits->PIU(PIUNum).MaxTotAirVolFlow); @@ -1069,7 +1067,7 @@ namespace EnergyPlus::PoweredInductionUnits { } else { CheckZoneSizing(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name); MaxTotAirVolFlowDes = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); if (MaxTotAirVolFlowDes < SmallAirVolFlow) { MaxTotAirVolFlowDes = 0.0; } @@ -1087,7 +1085,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Maximum Air Flow Rate [m3/s]", MaxTotAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxTotAirVolFlowDes - MaxTotAirVolFlowUser) / MaxTotAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxTotAirVolFlowDes - MaxTotAirVolFlowUser) / MaxTotAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, format("User-Specified Maximum Air Flow Rate of {:.5R} [m3/s]", MaxTotAirVolFlowUser)); ShowContinueError(state, @@ -1105,8 +1103,8 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).MaxSecAirVolFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MaxSecAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, @@ -1116,7 +1114,7 @@ namespace EnergyPlus::PoweredInductionUnits { } else { CheckZoneSizing(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name); MaxSecAirVolFlowDes = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); if (MaxSecAirVolFlowDes < SmallAirVolFlow) { MaxSecAirVolFlowDes = 0.0; } @@ -1134,7 +1132,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Maximum Secondary Air Flow Rate [m3/s]", MaxSecAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxSecAirVolFlowDes - MaxSecAirVolFlowUser) / MaxSecAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxSecAirVolFlowDes - MaxSecAirVolFlowUser) / MaxSecAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, format("User-Specified Maximum Secondary Air Flow Rate of {:.5R} [m3/s]", MaxSecAirVolFlowUser)); @@ -1153,16 +1151,16 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "User-Specified Minimum Primary Air Flow Fraction", state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac); } } else { CheckZoneSizing(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name); - if (state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow >= SmallAirVolFlow && TermUnitFinalZoneSizing(CurTermUnitSizingNum).MinOA >= SmallAirVolFlow) { - MinPriAirFlowFracDes = TermUnitFinalZoneSizing(CurTermUnitSizingNum).MinOA / state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow; + if (state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow >= SmallAirVolFlow && state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).MinOA >= SmallAirVolFlow) { + MinPriAirFlowFracDes = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).MinOA / state.dataPowerInductionUnits->PIU(PIUNum).MaxPriAirVolFlow; } else { MinPriAirFlowFracDes = 0.0; } @@ -1180,7 +1178,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Minimum Primary Air Flow Fraction", MinPriAirFlowFracUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MinPriAirFlowFracDes - MinPriAirFlowFracUser) / MinPriAirFlowFracUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MinPriAirFlowFracDes - MinPriAirFlowFracUser) / MinPriAirFlowFracUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, format("User-Specified Minimum Primary Air Flow Fraction of {:.1R}", MinPriAirFlowFracUser)); ShowContinueError( @@ -1210,8 +1208,8 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).FanOnFlowFrac == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).FanOnFlowFrac > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "User-Specified Fan On Flow Fraction", state.dataPowerInductionUnits->PIU(PIUNum).FanOnFlowFrac); @@ -1232,7 +1230,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Fan On Flow Fraction", FanOnFlowFracUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(FanOnFlowFracDes - FanOnFlowFracUser) / FanOnFlowFracUser) > AutoVsHardSizingThreshold) { + if ((std::abs(FanOnFlowFracDes - FanOnFlowFracUser) / FanOnFlowFracUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, format("User-Specified Fan On Flow Fraction of {:.1R}", FanOnFlowFracUser)); ShowContinueError(state, format("differs from Design Size Fan On Flow Fraction of {:.1R}", FanOnFlowFracDes)); @@ -1249,8 +1247,8 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow == AutoSize) { //.or.()) THEN IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, @@ -1268,11 +1266,11 @@ namespace EnergyPlus::PoweredInductionUnits { MyPlantSizingIndex(state, "Coil:Heating:Water", state.dataPowerInductionUnits->PIU(PIUNum).HCoil, CoilWaterInletNode, CoilWaterOutletNode, ErrorsFound); if (PltSizHeatNum > 0) { - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { - CoilInTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU * state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac + - TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac); - CoilOutTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesTemp; - CoilOutHumRat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesHumRat; + if (state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { + CoilInTemp = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU * state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac + + state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac); + CoilOutTemp = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesTemp; + CoilOutHumRat = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesHumRat; DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; DesCoilLoad = PsyCpAirFnW(CoilOutHumRat) * DesMassFlow * (CoilOutTemp - CoilInTemp); @@ -1287,7 +1285,7 @@ namespace EnergyPlus::PoweredInductionUnits { state.dataPlnt->PlantLoop(state.dataPowerInductionUnits->PIU(PIUNum).HWLoopNum).FluidIndex, RoutineName); - MaxVolHotWaterFlowDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + MaxVolHotWaterFlowDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { MaxVolHotWaterFlowDes = 0.0; } @@ -1304,11 +1302,11 @@ namespace EnergyPlus::PoweredInductionUnits { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "Design Size Reheat Coil Inlet Air Temperature [C]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU); + state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU); BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, "Design Size Reheat Coil Inlet Air Humidity Ratio [kgWater/kgDryAir]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); + state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); } else { // Hardsize with sizing data if (state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow > 0.0 && MaxVolHotWaterFlowDes > 0.0) { MaxVolHotWaterFlowUser = state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow; @@ -1319,7 +1317,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Maximum Reheat Water Flow Rate [m3/s]", MaxVolHotWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError( @@ -1343,8 +1341,8 @@ namespace EnergyPlus::PoweredInductionUnits { if (state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotSteamFlow == AutoSize) { IsAutoSize = true; } - if ((CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if ((state.dataSize->CurZoneEqNum > 0) && (CurTermUnitSizingNum > 0)) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataPowerInductionUnits->PIU(PIUNum).UnitType, state.dataPowerInductionUnits->PIU(PIUNum).Name, @@ -1361,11 +1359,11 @@ namespace EnergyPlus::PoweredInductionUnits { MyPlantSizingIndex(state, "Coil:Heating:Steam", state.dataPowerInductionUnits->PIU(PIUNum).HCoil, CoilSteamInletNode, CoilSteamOutletNode, ErrorsFound); if (PltSizHeatNum > 0) { - if (TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { - CoilInTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU * state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac + - TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac); - CoilOutTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesTemp; - CoilOutHumRat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesHumRat; + if (state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatMassFlow >= SmallAirVolFlow) { + CoilInTemp = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU * state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac + + state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - state.dataPowerInductionUnits->PIU(PIUNum).MinPriAirFlowFrac); + CoilOutTemp = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesTemp; + CoilOutHumRat = state.dataSize->TermUnitFinalZoneSizing(CurTermUnitSizingNum).HeatDesHumRat; DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; DesCoilLoad = PsyCpAirFnW(CoilOutHumRat) * DesMassFlow * (CoilOutTemp - CoilInTemp); TempSteamIn = 100.00; @@ -1373,8 +1371,8 @@ namespace EnergyPlus::PoweredInductionUnits { EnthSteamOutWet = GetSatEnthalpyRefrig(state, fluidNameSteam, TempSteamIn, 0.0, state.dataPowerInductionUnits->PIU(PIUNum).HCoil_FluidIndex, RoutineName); LatentHeatSteam = EnthSteamInDry - EnthSteamOutWet; SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, TempSteamIn, 1.0, state.dataPowerInductionUnits->PIU(PIUNum).HCoil_FluidIndex, RoutineName); - Cp = GetSpecificHeatGlycol(state, fluidNameWater, PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); - MaxVolHotSteamFlowDes = DesCoilLoad / (SteamDensity * (LatentHeatSteam + PlantSizData(PltSizHeatNum).DeltaT * Cp)); + Cp = GetSpecificHeatGlycol(state, fluidNameWater, state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); + MaxVolHotSteamFlowDes = DesCoilLoad / (SteamDensity * (LatentHeatSteam + state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp)); } else { MaxVolHotSteamFlowDes = 0.0; } @@ -1398,7 +1396,7 @@ namespace EnergyPlus::PoweredInductionUnits { "User-Specified Maximum Reheat Steam Flow [m3/s]", MaxVolHotSteamFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePIU: Potential issue with equipment sizing for " + state.dataPowerInductionUnits->PIU(PIUNum).UnitType + ' ' + state.dataPowerInductionUnits->PIU(PIUNum).Name); ShowContinueError(state, diff --git a/src/EnergyPlus/Pumps.cc b/src/EnergyPlus/Pumps.cc index ca0e2702e95..cf410a1e836 100644 --- a/src/EnergyPlus/Pumps.cc +++ b/src/EnergyPlus/Pumps.cc @@ -801,7 +801,7 @@ namespace EnergyPlus::Pumps { state.dataPumps->PumpEquip(PumpNum).SequencingScheme = PumpBankControlSeq::SequentialScheme; } - // state.dataPumps->PumpEquip(PumpNum)%PumpControlType = cAlphaArgs(5) + // PumpEquip(PumpNum)%PumpControlType = cAlphaArgs(5) if (UtilityRoutines::SameString(cAlphaArgs(5), "Continuous")) { state.dataPumps->PumpEquip(PumpNum).PumpControl = PumpControlType::Continuous; } else if (UtilityRoutines::SameString(cAlphaArgs(5), "Intermittent")) { @@ -1379,7 +1379,7 @@ namespace EnergyPlus::Pumps { // set the maximum flow rate on the outlet node mdotMax = state.dataPumps->PumpEquip(PumpNum).NomSteamVolFlowRate * SteamDensity; - // mdotMin = state.dataPumps->PumpEquip(PumpNum)%MinVolFlowRate * SteamDensity + // mdotMin = PumpEquip(PumpNum)%MinVolFlowRate * SteamDensity // On a pump the 'hardware min' (MassFlowRateMin) must be defined as zero and not // confused with the desired pump operating scheme or the user specified //'minimum flow rate'. The user specified 'minimum flow rate' determines the minimum @@ -1405,7 +1405,7 @@ namespace EnergyPlus::Pumps { state.dataPlnt->PlantLoop(state.dataPumps->PumpEquip(PumpNum).LoopNum).FluidIndex, RoutineName); mdotMax = state.dataPumps->PumpEquip(PumpNum).NomVolFlowRate * TempWaterDensity; - // mdotMin = state.dataPumps->PumpEquip(PumpNum)%MinVolFlowRate * TempWaterDensity + // mdotMin = PumpEquip(PumpNum)%MinVolFlowRate * TempWaterDensity // see note above mdotMin = 0.0; InitComponentNodes(mdotMin, @@ -1911,7 +1911,6 @@ namespace EnergyPlus::Pumps { // Obtains flow rates from the plant sizing array. // Using/Aliasing - using DataSizing::PlantSizData; using FluidProperties::GetDensityGlycol; using FluidProperties::GetSatDensityRefrig; @@ -1953,7 +1952,7 @@ namespace EnergyPlus::Pumps { } // use pump sizing factor stored in plant sizing data structure if (PlantSizNum > 0) { - PumpSizFac = PlantSizData(PlantSizNum).PlantSizFac; + PumpSizFac = state.dataSize->PlantSizData(PlantSizNum).PlantSizFac; } else { // might be able to remove this next block if (state.dataPumps->PumpEquip(PumpNum).LoopNum > 0) { @@ -1982,20 +1981,20 @@ namespace EnergyPlus::Pumps { if (state.dataPumps->PumpEquip(PumpNum).NomVolFlowRateWasAutoSized) { if (PlantSizNum > 0) { - if (PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { + if (state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate >= SmallWaterVolFlow) { if (!state.dataPlnt->PlantLoop(state.dataPumps->PumpEquip(PumpNum).LoopNum).LoopSide(state.dataPumps->PumpEquip(PumpNum).LoopSideNum).BranchPumpsExist) { // size pump to full flow of plant loop if (state.dataPumps->PumpEquip(PumpNum).PumpType == Pump_Cond) { TempWaterDensity = GetDensityGlycol(state, fluidNameWater, DataGlobalConstants::InitConvTemp, DummyWaterIndex, RoutineName); SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, StartTemp, 1.0, state.dataPumps->PumpEquip(PumpNum).FluidIndex, RoutineNameSizePumps); - state.dataPumps->PumpEquip(PumpNum).NomSteamVolFlowRate = PlantSizData(PlantSizNum).DesVolFlowRate * PumpSizFac; + state.dataPumps->PumpEquip(PumpNum).NomSteamVolFlowRate = state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate * PumpSizFac; state.dataPumps->PumpEquip(PumpNum).NomVolFlowRate = state.dataPumps->PumpEquip(PumpNum).NomSteamVolFlowRate * SteamDensity / TempWaterDensity; } else { - state.dataPumps->PumpEquip(PumpNum).NomVolFlowRate = PlantSizData(PlantSizNum).DesVolFlowRate * PumpSizFac; + state.dataPumps->PumpEquip(PumpNum).NomVolFlowRate = state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate * PumpSizFac; } } else { // Distribute sizes evenly across all branch pumps - DesVolFlowRatePerBranch = PlantSizData(PlantSizNum).DesVolFlowRate / + DesVolFlowRatePerBranch = state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate / state.dataPlnt->PlantLoop(state.dataPumps->PumpEquip(PumpNum).LoopNum).LoopSide(state.dataPumps->PumpEquip(PumpNum).LoopSideNum).TotalPumps; if (state.dataPumps->PumpEquip(PumpNum).PumpType == Pump_Cond) { TempWaterDensity = GetDensityGlycol(state, fluidNameWater, DataGlobalConstants::InitConvTemp, DummyWaterIndex, RoutineName); @@ -2012,7 +2011,7 @@ namespace EnergyPlus::Pumps { state.dataPumps->PumpEquip(PumpNum).NomVolFlowRate = 0.0; ShowWarningError(state, format("SizePump: Calculated Pump Nominal Volume Flow Rate=[{:.2R}] is too small. Set to 0.0", - PlantSizData(PlantSizNum).DesVolFlowRate)); + state.dataSize->PlantSizData(PlantSizNum).DesVolFlowRate)); ShowContinueError(state, "..occurs for Pump=" + state.dataPumps->PumpEquip(PumpNum).Name); } } diff --git a/src/EnergyPlus/PurchasedAirManager.cc b/src/EnergyPlus/PurchasedAirManager.cc index a990842edee..1bc54c81b1d 100644 --- a/src/EnergyPlus/PurchasedAirManager.cc +++ b/src/EnergyPlus/PurchasedAirManager.cc @@ -215,8 +215,6 @@ void GetPurchasedAir(EnergyPlusData &state) using OutAirNodeManager::CheckAndAddAirNodeNumber; using namespace DataLoopNode; using namespace DataIPShortCuts; - using DataSizing::OARequirements; // to find DesignSpecification:OutdoorAir pointer - using DataSizing::ZoneHVACSizing; using ZonePlenum::GetReturnPlenumIndex; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: @@ -457,7 +455,7 @@ void GetPurchasedAir(EnergyPlusData &state) // get Design specification outdoor air object if (!lAlphaFieldBlanks(12)) { - PurchAir(PurchAirNum).OARequirementsPtr = UtilityRoutines::FindItemInList(cAlphaArgs(12), OARequirements); + PurchAir(PurchAirNum).OARequirementsPtr = UtilityRoutines::FindItemInList(cAlphaArgs(12), state.dataSize->OARequirements); if (PurchAir(PurchAirNum).OARequirementsPtr == 0) { ShowSevereError(state, RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs(1) + " invalid data"); ShowContinueError(state, "Invalid-not found" + cAlphaFieldNames(12) + "=\"" + cAlphaArgs(12) + "\"."); @@ -572,7 +570,7 @@ void GetPurchasedAir(EnergyPlusData &state) PurchAir(PurchAirNum).HVACSizingIndex = 0; if (!lAlphaFieldBlanks(17)) { - PurchAir(PurchAirNum).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(17), ZoneHVACSizing); + PurchAir(PurchAirNum).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(17), state.dataSize->ZoneHVACSizing); if (PurchAir(PurchAirNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFieldNames(17) + " = " + cAlphaArgs(17) + " not found."); ShowContinueError(state, "Occurs in " + cCurrentModuleObject + " = " + PurchAir(PurchAirNum).Name); @@ -1135,7 +1133,6 @@ void InitPurchasedAir(EnergyPlusData &state, // Using/Aliasing using DataLoopNode::NodeID; - using DataSizing::OARequirements; // to access DesignSpecification:OutdoorAir inputs using DataZoneEquipment::CheckZoneEquipmentList; using General::FindNumberInList; using ZonePlenum::GetReturnPlenumIndex; @@ -1445,6 +1442,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) Real64 HeatingAirVolFlowDes(0.0); // heating supply air flow rate auto &PurchAir(state.dataPurchasedAirMgr->PurchAir); + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); IsAutoSize = false; MaxHeatVolFlowRateDes = 0.0; @@ -1456,62 +1454,62 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) MaxCoolTotCapDes = 0.0; MaxCoolTotCapUser = 0.0; - ZoneHeatingOnlyFan = false; - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; CompType = PurchAir(PurchAirNum).cObjectName; CompName = PurchAir(PurchAirNum).Name; bool ErrorsFound = false; - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (PurchAir(PurchAirNum).HVACSizingIndex > 0) { - DataZoneNumber = PurchAir(PurchAirNum).ZonePtr; + state.dataSize->DataZoneNumber = PurchAir(PurchAirNum).ZonePtr; zoneHVACIndex = PurchAir(PurchAirNum).HVACSizingIndex; FieldNum = 5; // N5 , \field Maximum Heating Air Flow Rate PrintFlag = true; SizingString = state.dataPurchasedAirMgr->PurchAirNumericFields(PurchAirNum).FieldNames(FieldNum) + " [m3/s]"; - if (ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { SizingMethod = HeatingAirflowSizing; - ZoneHeatingOnlyFan = true; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + state.dataSize->ZoneHeatingOnlyFan = true; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if ((ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRateAndCapacity))) { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HeatingAirVolFlowDes = sizingHeatingAirFlow.size(state, TempSize, ErrorsFound); } else { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - HeatingAirVolFlowDes = sizingHeatingAirFlow.size(state, ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow, ErrorsFound); + HeatingAirVolFlowDes = sizingHeatingAirFlow.size(state, state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow, ErrorsFound); } } } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HeatingAirVolFlowDes = sizingHeatingAirFlow.size(state, TempSize, ErrorsFound); } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; - if ((ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRateAndCapacity))) { TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); @@ -1526,16 +1524,16 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - if ((ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRateAndCapacity))) { TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1548,37 +1546,37 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } MaxHeatVolFlowRateDes = max(0.0, HeatingAirVolFlowDes); PurchAir(PurchAirNum).MaxHeatVolFlowRate = MaxHeatVolFlowRateDes; - ZoneHeatingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).CapSizingMethod = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CapSizingMethod = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; TempSize = AutoSize; } } SizingMethod = HeatingCapacitySizing; SizingString = ""; - ZoneHeatingOnlyFan = true; + state.dataSize->ZoneHeatingOnlyFan = true; PrintFlag = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxHeatSensCapDes = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - ZoneHeatingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; if (MaxHeatSensCapDes < SmallLoad) { MaxHeatSensCapDes = 0.0; } @@ -1590,13 +1588,13 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "Design Size Maximum Sensible Heating Capacity [W]", MaxHeatSensCapDes); // If there is OA, check if sizing calcs have OA>0, throw warning if not - if ((PurchAir(PurchAirNum).OutdoorAir) && (FinalZoneSizing(CurZoneEqNum).MinOA == 0.0)) { + if ((PurchAir(PurchAirNum).OutdoorAir) && (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA == 0.0)) { ShowWarningError(state, "InitPurchasedAir: In " + PurchAir(PurchAirNum).cObjectName + " = " + PurchAir(PurchAirNum).Name); ShowContinueError(state, "There is outdoor air specified in this object, but the design outdoor air flow rate for this "); ShowContinueError(state, "zone is zero. The Maximum Sensible Heating Capacity will be autosized for zero outdoor air flow. "); ShowContinueError(state, "Check the outdoor air specifications in the Sizing:Zone object for zone " + - FinalZoneSizing(CurZoneEqNum).ZoneName + '.'); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneName + '.'); } } else { if (PurchAir(PurchAirNum).MaxHeatSensCap > 0.0 && MaxHeatSensCapDes > 0.0) { @@ -1609,7 +1607,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "User-Specified Maximum Sensible Heating Capacity [W]", MaxHeatSensCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxHeatSensCapDes - MaxHeatSensCapUser) / MaxHeatSensCapUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxHeatSensCapDes - MaxHeatSensCapUser) / MaxHeatSensCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePurchasedAir: Potential issue with equipment sizing for " + PurchAir(PurchAirNum).cObjectName + ' ' + PurchAir(PurchAirNum).Name); @@ -1626,24 +1624,24 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } PrintFlag = true; - if (ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { - ZoneCoolingOnlyFan = true; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { + state.dataSize->ZoneCoolingOnlyFan = true; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if ((ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRateAndCapacity) || (PurchAir(PurchAirNum).OutdoorAir && PurchAir(PurchAirNum).EconomizerType != Econ::NoEconomizer))) { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolingAirVolFlowDes = sizingCoolingAirFlow.size(state, TempSize, ErrorsFound); } else { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - CoolingAirVolFlowDes = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + CoolingAirVolFlowDes = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; CoolingAirFlowSizer sizingCoolingAirFlow; sizingCoolingAirFlow.overrideSizingString(SizingString); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -1651,10 +1649,10 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } } } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Cooling Air Flow Rate [m3/s]"; if (state.dataGlobal->isEpJSON) stringOverride = "maximum_cooling_air_flow_rate [m3/s]"; @@ -1663,13 +1661,13 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolingAirVolFlowDes = sizingCoolingAirFlow.size(state, TempSize, ErrorsFound); } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - if ((ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRateAndCapacity) || (PurchAir(PurchAirNum).OutdoorAir && PurchAir(PurchAirNum).EconomizerType != Econ::NoEconomizer))) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Cooling Air Flow Rate [m3/s]"; if (state.dataGlobal->isEpJSON) stringOverride = "maximum_cooling_air_flow_rate [m3/s]"; @@ -1682,7 +1680,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) // Invalid scalable sizing method } } else if (SAFMethod == FlowPerCoolingCapacity) { - if ((ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && + if ((state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow == AutoSize) && ((PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRate) || (PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRateAndCapacity) || (PurchAir(PurchAirNum).OutdoorAir && PurchAir(PurchAirNum).EconomizerType != Econ::NoEconomizer))) { @@ -1692,11 +1690,11 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Cooling Air Flow Rate [m3/s]"; if (state.dataGlobal->isEpJSON) stringOverride = "maximum_cooling_air_flow_rate [m3/s]"; @@ -1708,42 +1706,42 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } MaxCoolVolFlowRateDes = max(0.0, CoolingAirVolFlowDes); PurchAir(PurchAirNum).MaxCoolVolFlowRate = MaxCoolVolFlowRateDes; - ZoneCoolingOnlyFan = false; - DataScalableSizingON = false; + state.dataSize->ZoneCoolingOnlyFan = false; + state.dataSize->DataScalableSizingON = false; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).CapSizingMethod = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CapSizingMethod = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolMassFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolMassFlow; TempSize = AutoSize; } } SizingMethod = CoolingCapacitySizing; SizingString = ""; - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; PrintFlag = false; TempSize = PurchAir(PurchAirNum).MaxCoolTotCap; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxCoolTotCapDes = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; if (MaxCoolTotCapDes < SmallLoad) { MaxCoolTotCapDes = 0.0; } @@ -1755,13 +1753,13 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "Design Size Maximum Total Cooling Capacity [W]", MaxCoolTotCapDes); // If there is OA, check if sizing calcs have OA>0, throw warning if not - if ((PurchAir(PurchAirNum).OutdoorAir) && (FinalZoneSizing(CurZoneEqNum).MinOA == 0.0)) { + if ((PurchAir(PurchAirNum).OutdoorAir) && (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA == 0.0)) { ShowWarningError(state, "SizePurchasedAir: In " + PurchAir(PurchAirNum).cObjectName + " = " + PurchAir(PurchAirNum).Name); ShowContinueError(state, "There is outdoor air specified in this object, but the design outdoor air flow rate for this "); ShowContinueError(state, "zone is zero. The Maximum Total Cooling Capacity will be autosized for zero outdoor air flow. "); ShowContinueError(state, "Check the outdoor air specifications in the Sizing:Zone object for zone " + - FinalZoneSizing(CurZoneEqNum).ZoneName + '.'); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneName + '.'); } } else { if (PurchAir(PurchAirNum).MaxCoolTotCap > 0.0 && MaxCoolTotCapDes > 0.0) { @@ -1774,7 +1772,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "User-Specified Maximum Total Cooling Capacity [W]", MaxCoolTotCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxCoolTotCapDes - MaxCoolTotCapUser) / MaxCoolTotCapUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxCoolTotCapDes - MaxCoolTotCapUser) / MaxCoolTotCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePurchasedAir: Potential issue with equipment sizing for " + PurchAir(PurchAirNum).cObjectName + ' ' + PurchAir(PurchAirNum).Name); @@ -1801,7 +1799,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) (PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRateAndCapacity))) { IsAutoSize = true; } - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (PurchAir(PurchAirNum).MaxHeatVolFlowRate > 0.0) { HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); @@ -1812,7 +1810,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } MaxHeatVolFlowRateDes = 0.0; } else { - ZoneHeatingOnlyFan = true; + state.dataSize->ZoneHeatingOnlyFan = true; TempSize = PurchAir(PurchAirNum).MaxHeatVolFlowRate; HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); @@ -1820,7 +1818,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxHeatVolFlowRateDes = sizingHeatingAirFlow.size(state, PurchAir(PurchAirNum).MaxHeatVolFlowRate, ErrorsFound); PurchAir(PurchAirNum).MaxHeatVolFlowRate = MaxHeatVolFlowRateDes; - ZoneHeatingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; } IsAutoSize = false; @@ -1831,7 +1829,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) (PurchAir(PurchAirNum).HeatingLimit == LimitType::LimitFlowRateAndCapacity))) { IsAutoSize = true; } - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (PurchAir(PurchAirNum).MaxHeatSensCap > 0.0) { HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); @@ -1840,14 +1838,14 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) } } else { TempSize = PurchAir(PurchAirNum).MaxHeatSensCap; - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; - ZoneHeatingOnlyFan = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; + state.dataSize->ZoneHeatingOnlyFan = true; PrintFlag = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxHeatSensCapDes = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - ZoneHeatingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; } if (MaxHeatSensCapDes < SmallLoad) { MaxHeatSensCapDes = 0.0; @@ -1860,13 +1858,13 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "Design Size Maximum Sensible Heating Capacity [W]", MaxHeatSensCapDes); // If there is OA, check if sizing calcs have OA>0, throw warning if not - if ((PurchAir(PurchAirNum).OutdoorAir) && (FinalZoneSizing(CurZoneEqNum).MinOA == 0.0)) { + if ((PurchAir(PurchAirNum).OutdoorAir) && (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA == 0.0)) { ShowWarningError(state, "InitPurchasedAir: In " + PurchAir(PurchAirNum).cObjectName + " = " + PurchAir(PurchAirNum).Name); ShowContinueError(state, "There is outdoor air specified in this object, but the design outdoor air flow rate for this "); ShowContinueError(state, "zone is zero. The Maximum Sensible Heating Capacity will be autosized for zero outdoor air flow. "); ShowContinueError(state, "Check the outdoor air specifications in the Sizing:Zone object for zone " + - FinalZoneSizing(CurZoneEqNum).ZoneName + '.'); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneName + '.'); } } else { if (PurchAir(PurchAirNum).MaxHeatSensCap > 0.0 && MaxHeatSensCapDes > 0.0) { @@ -1879,7 +1877,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "User-Specified Maximum Sensible Heating Capacity [W]", MaxHeatSensCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxHeatSensCapDes - MaxHeatSensCapUser) / MaxHeatSensCapUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxHeatSensCapDes - MaxHeatSensCapUser) / MaxHeatSensCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePurchasedAir: Potential issue with equipment sizing for " + PurchAir(PurchAirNum).cObjectName + ' ' + PurchAir(PurchAirNum).Name); @@ -1901,7 +1899,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) (PurchAir(PurchAirNum).OutdoorAir && PurchAir(PurchAirNum).EconomizerType != Econ::NoEconomizer))) { IsAutoSize = true; } - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (PurchAir(PurchAirNum).MaxCoolVolFlowRate > 0.0) { CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Cooling Air Flow Rate [m3/s]"; @@ -1913,7 +1911,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) sizingCoolingAirFlow.size(state, PurchAir(PurchAirNum).MaxCoolVolFlowRate, ErrorsFound); } } else { - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; TempSize = PurchAir(PurchAirNum).MaxCoolVolFlowRate; CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Cooling Air Flow Rate [m3/s]"; @@ -1923,7 +1921,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxCoolVolFlowRateDes = sizingCoolingAirFlow.size(state, TempSize, ErrorsFound); PurchAir(PurchAirNum).MaxCoolVolFlowRate = MaxCoolVolFlowRateDes; - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; } IsAutoSize = false; @@ -1934,7 +1932,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) (PurchAir(PurchAirNum).CoolingLimit == LimitType::LimitFlowRateAndCapacity))) { IsAutoSize = true; } - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (PurchAir(PurchAirNum).MaxCoolTotCap > 0.0) { CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); @@ -1942,15 +1940,15 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) PurchAir(PurchAirNum).MaxCoolTotCap = sizerCoolingCapacity.size(state, PurchAir(PurchAirNum).MaxCoolTotCap, ErrorsFound); } } else { - ZoneCoolingOnlyFan = true; - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + state.dataSize->ZoneCoolingOnlyFan = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; PrintFlag = false; TempSize = PurchAir(PurchAirNum).MaxCoolTotCap; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); MaxCoolTotCapDes = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; } if (MaxCoolTotCapDes < SmallLoad) { MaxCoolTotCapDes = 0.0; @@ -1963,13 +1961,13 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "Design Size Maximum Total Cooling Capacity [W]", MaxCoolTotCapDes); // If there is OA, check if sizing calcs have OA>0, throw warning if not - if ((PurchAir(PurchAirNum).OutdoorAir) && (FinalZoneSizing(CurZoneEqNum).MinOA == 0.0)) { + if ((PurchAir(PurchAirNum).OutdoorAir) && (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA == 0.0)) { ShowWarningError(state, "SizePurchasedAir: In " + PurchAir(PurchAirNum).cObjectName + " = " + PurchAir(PurchAirNum).Name); ShowContinueError(state, "There is outdoor air specified in this object, but the design outdoor air flow rate for this "); ShowContinueError(state, "zone is zero. The Maximum Total Cooling Capacity will be autosized for zero outdoor air flow. "); ShowContinueError(state, "Check the outdoor air specifications in the Sizing:Zone object for zone " + - FinalZoneSizing(CurZoneEqNum).ZoneName + '.'); + state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneName + '.'); } } else { if (PurchAir(PurchAirNum).MaxCoolTotCap > 0.0 && MaxCoolTotCapDes > 0.0) { @@ -1982,7 +1980,7 @@ void SizePurchasedAir(EnergyPlusData &state, int const PurchAirNum) "User-Specified Maximum Total Cooling Capacity [W]", MaxCoolTotCapUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxCoolTotCapDes - MaxCoolTotCapUser) / MaxCoolTotCapUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxCoolTotCapDes - MaxCoolTotCapUser) / MaxCoolTotCapUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizePurchasedAir: Potential issue with equipment sizing for " + PurchAir(PurchAirNum).cObjectName + ' ' + PurchAir(PurchAirNum).Name); diff --git a/src/EnergyPlus/RefrigeratedCase.cc b/src/EnergyPlus/RefrigeratedCase.cc index b97a4fe3d88..5f7c5f79682 100644 --- a/src/EnergyPlus/RefrigeratedCase.cc +++ b/src/EnergyPlus/RefrigeratedCase.cc @@ -1168,7 +1168,7 @@ namespace EnergyPlus::RefrigeratedCase { } } // Individual refrigerated cases - } //(state.dataRefrigCase->NumSimulationCases > 0 ) + } //(NumSimulationCases > 0 ) //************ START WALK IN COOLER INPUT ************** @@ -1614,7 +1614,7 @@ namespace EnergyPlus::RefrigeratedCase { NStart += NumWINumberFieldsPerZone; } // Zones for Walk Ins } // Individual Walk Ins - } //(state.dataRefrigCase->NumSimulationWalkIns > 0 ) + } //(NumSimulationWalkIns > 0 ) //************* Start Indiv Refrig Air Chillers @@ -2379,8 +2379,8 @@ namespace EnergyPlus::RefrigeratedCase { CaseAndWalkInList(ListNum).NumCases = NumCasesOnList; CaseAndWalkInList(ListNum).NumCoils = NumCoilsOnList; CaseAndWalkInList(ListNum).NumWalkIns = NumWalkInsOnList; - } // ListNum=1,state.dataRefrigCase->NumSimulationCaseAndWalkInLists - } //(state.dataRefrigCase->NumSimulationCaseAndWalkInLists > 0) + } // ListNum=1,NumSimulationCaseAndWalkInLists + } //(NumSimulationCaseAndWalkInLists > 0) //**** End read CaseAndWalkIn Lists ********************************************************** @@ -2551,7 +2551,7 @@ namespace EnergyPlus::RefrigeratedCase { RefrigRack(RackNum).OutletTempMax = Numbers(5); RefrigRack(RackNum).InletTempMin = Numbers(6); // set flow request for plant sizing. - PlantUtilities::RegisterPlantCompDesignFlow(RefrigRack(RackNum).InletNode, RefrigRack(RackNum).VolFlowRateMax); + PlantUtilities::RegisterPlantCompDesignFlow(state, RefrigRack(RackNum).InletNode, RefrigRack(RackNum).VolFlowRateMax); } // Water cooled condenser data // Get evaporative cooled condenser input @@ -2874,7 +2874,7 @@ namespace EnergyPlus::RefrigeratedCase { Real64 Capmax = CurveManager::CurveValue(state, Condenser(CondNum).CapCurvePtr, DelTempMax) * (1.0 - 7.17e-5 * state.dataEnvrn->Elevation); // Mar 2011 bug Condenser(CondNum).TempSlope = - (DelTempMax - DelTempMin) / ((Capmax - Capmin)); // * ( 1.0 - 7.17e-5 * state.dataEnvrn->Elevation ) ) //Mar 2011 bug fix + (DelTempMax - DelTempMin) / ((Capmax - Capmin)); // * ( 1.0 - 7.17e-5 * Elevation ) ) //Mar 2011 bug fix Condenser(CondNum).MinCondLoad = Capmax - DelTempMax / Condenser(CondNum).TempSlope; } else { ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + Condenser(CondNum).Name + @@ -3301,7 +3301,7 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, "Revise flow rates."); ErrorsFound = true; } - PlantUtilities::RegisterPlantCompDesignFlow(Condenser(CondNum).InletNode, Condenser(CondNum).DesVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, Condenser(CondNum).InletNode, Condenser(CondNum).DesVolFlowRate); } // Get maximum flow rates @@ -4206,7 +4206,7 @@ namespace EnergyPlus::RefrigeratedCase { } } // Secondary Loops - } //( IF (state.dataRefrigCase->NumSimulationSecondarySystems > 0) + } //( IF (NumSimulationSecondarySystems > 0) //************ END SECONDARY SYSTEM INPUT ************** @@ -4457,8 +4457,8 @@ namespace EnergyPlus::RefrigeratedCase { TransferLoadList(ListNum).NumSecondarys = NumSecondarysOnList; TransferLoadList(ListNum).NumCascadeLoads = NumCascadeLoadsOnList; } // Num Total Loads on List - } // ListNum=1,state.dataRefrigCase->NumSimulationTransferLoadLists - } //(state.dataRefrigCase->NumSimulationTransferLoadLists > 0) + } // ListNum=1,NumSimulationTransferLoadLists + } //(NumSimulationTransferLoadLists > 0) //**** End read transfer load Lists ********************************************************** @@ -5313,7 +5313,7 @@ namespace EnergyPlus::RefrigeratedCase { if (!allocated(System(RefrigSysNum).MechSCLoad)) System(RefrigSysNum).MechSCLoad.allocate(state.dataRefrigCase->NumSimulationSubcoolers); } } - } // state.dataRefrigCase->NumSimulationSubcoolers > 0 + } // NumSimulationSubcoolers > 0 // ********** READ TRANSCRITICAL REFRIGERATION SYSTEMS ********** @@ -5917,7 +5917,7 @@ namespace EnergyPlus::RefrigeratedCase { // Want to delete portion from unused cases (numsysattach = 0)that will never be simulated if (RefrigCase(CaseNum).ActualZoneNum != ZoneIndex || RefrigCase(CaseNum).NumSysAttach > 0) continue; TempRAFraction -= RefrigCase(CaseNum).RAFrac; - } // state.dataRefrigCase->NumSimulationCases + } // NumSimulationCases if (TempRAFraction > 1.0) { ShowSevereError(state, RoutineName + ": Refrigeration:Case, Refrigerated case return air fraction for all cases in zone=\"" + CaseRAFraction(ZoneIndex).ZoneName + "\" is greater than 1.0."); @@ -5946,7 +5946,7 @@ namespace EnergyPlus::RefrigeratedCase { "\", Same refrigerated case name referenced "); ShowContinueError(state, " by more than one refrigeration system and/or compressor rack."); } // if looking for same case attached to multiple systems/racks - } // state.dataRefrigCase->NumSimulationCases + } // NumSimulationCases if ((state.dataRefrigCase->NumUnusedRefrigCases > 0) && (!state.dataGlobal->DisplayExtraWarnings)) { // write to error file, @@ -5957,7 +5957,7 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " Refrigeration:CompressorRack, Refrigeration:System, or Refrigeration:SecondarySystem object."); ShowContinueError(state, " These unused refrigeration cases will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); - } // state.dataRefrigCase->NumUnusedRefrigCases + } // NumUnusedRefrigCases } // numsimulation cases > 0 if (state.dataRefrigCase->NumSimulationCompressors > 0) { @@ -5979,7 +5979,7 @@ namespace EnergyPlus::RefrigeratedCase { "\", Same refrigeration compressor name referenced"); ShowContinueError(state, " by more than one refrigeration system."); } // looking for same compressor attached to multiple systems/racks - } // state.dataRefrigCase->NumSimulationCompressors + } // NumSimulationCompressors if ((state.dataRefrigCase->NumUnusedCompressors > 0) && (!state.dataGlobal->DisplayExtraWarnings)) { // write to error file, @@ -5990,8 +5990,8 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " Those refrigeration compressors are in the input file but are not connected to a Refrigeration:System object."); ShowContinueError(state, " These unused refrigeration compressors will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); - } // state.dataRefrigCase->NumUnusedCompressors - } // state.dataRefrigCase->NumSimulationCompressors > 0 + } // NumUnusedCompressors + } // NumSimulationCompressors > 0 int NumUnusedWalkIns = 0; if (state.dataRefrigCase->NumSimulationWalkIns > 0) { @@ -6012,7 +6012,7 @@ namespace EnergyPlus::RefrigeratedCase { "\", Same Refrigeration WalkIn name referenced"); ShowContinueError(state, " by more than one refrigeration system and/or compressor rack."); } // if looking for same walk in attached to multiple systems/racks - } // state.dataRefrigCase->NumSimulationWalkIns + } // NumSimulationWalkIns if ((NumUnusedWalkIns > 0) && (!state.dataGlobal->DisplayExtraWarnings)) { // write to error file, @@ -6026,7 +6026,7 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " These unused refrigeration WalkIns will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); } // NumUnusedWalkIns - } // state.dataRefrigCase->NumSimulationWalkIns > 0 + } // NumSimulationWalkIns > 0 if (state.dataRefrigCase->NumSimulationRefrigAirChillers > 0) { // check for air chillers not connected to any systems and @@ -6094,8 +6094,8 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " Those refrigeration Secondary Loops are in the input file but are not connected to a refrigeration system."); ShowContinueError(state, " These unused refrigeration secondaries will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); - } // state.dataRefrigCase->NumUnusedSecondarys - } // state.dataRefrigCase->NumSimulationSecondarySystems > 0 + } // NumUnusedSecondarys + } // NumSimulationSecondarySystems > 0 if (state.dataRefrigCase->NumRefrigCondensers > 0) { // Check for presence of shared condensers and for unused condensers @@ -6127,7 +6127,7 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " Those refrigeration condensers are in the input file but are not connected to a refrigeration system."); ShowContinueError(state, " These unused refrigeration condensers will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); - } // state.dataRefrigCase->NumUnusedCondensers and displayextra warnings + } // NumUnusedCondensers and displayextra warnings } // DataHeatBalance::NumRefrigCondensers > 0 if (state.dataRefrigCase->NumSimulationGasCooler > 0) { @@ -6158,7 +6158,7 @@ namespace EnergyPlus::RefrigeratedCase { ShowContinueError(state, " These refrigeration gas coolers are in the input file but are not connected to a refrigeration system."); ShowContinueError(state, " These unused refrigeration gas coolers will not be simulated."); ShowContinueError(state, " Use Output:Diagnostics,DisplayUnusedObjects; to see them. "); - } // state.dataRefrigCase->NumUnusedGasCoolers and displayextra warnings + } // NumUnusedGasCoolers and displayextra warnings } // NumSimulationGasCooler > 0 // echo input to eio file. @@ -6438,7 +6438,7 @@ namespace EnergyPlus::RefrigeratedCase { } } // END IF (.NOT. RefrigCase(CaseNum)%unusedCase) } - } // state.dataRefrigCase->NumSimulationCases > 0 + } // NumSimulationCases > 0 if (state.dataRefrigCase->NumSimulationWalkIns > 0) { // Setup Report Variables for simulated Walk In (do not report unused WalkIns) @@ -6623,8 +6623,8 @@ namespace EnergyPlus::RefrigeratedCase { } // ZoneID } //(.NOT. WalkIn( WalkInNum)%unusedWalkIn) - } // state.dataRefrigCase->NumSimulationWalkIns - } // state.dataRefrigCase->NumSimulationWalkIns > 0 + } // NumSimulationWalkIns + } // NumSimulationWalkIns > 0 if (state.dataRefrigCase->NumSimulationRefrigAirChillers > 0) { // Setup Report Variables for simulated Warehouse coils (do not report unused warehouse coils) @@ -6790,7 +6790,7 @@ namespace EnergyPlus::RefrigeratedCase { } // electric defrost coil } //(.NOT. WarehouseCoil(CoilNum)%unusedWarehouseCoil) } // NumSimulationWarehouseCoils - } // state.dataRefrigCase->NumSimulationRefrigAirChillers > 0 + } // NumSimulationRefrigAirChillers > 0 // There are no report variables for Chiller sets because they are // used to pass the demand to the coils, but are NOT used to provide the @@ -7122,8 +7122,8 @@ namespace EnergyPlus::RefrigeratedCase { &Secondary(secondNum).DistPipeZoneHeatGain); } } // not an unused - } // state.dataRefrigCase->NumSimulationSecondarySystems - } // state.dataRefrigCase->NumSimulationSecondarySystems > 0 + } // NumSimulationSecondarySystems + } // NumSimulationSecondarySystems > 0 // Setup Report Variables for Refrigeration Compressor Rack if (state.dataRefrigCase->NumRefrigeratedRacks > 0) { @@ -7991,7 +7991,7 @@ namespace EnergyPlus::RefrigeratedCase { Compressor(compNum).Name); } // Serve coils on HVAC time step or cases/walkins on Zone time step } // NumSysAttach - } // CompNum on state.dataRefrigCase->NumSimulationCompressors + } // CompNum on NumSimulationCompressors // Report Variables for Refrigeration Condensers for (int condNum = 1; condNum <= state.dataRefrigCase->NumRefrigCondensers; ++condNum) { @@ -8341,8 +8341,8 @@ namespace EnergyPlus::RefrigeratedCase { Subcooler(subcoolNum).Name); } } // Subcoolers on system serving chillers - } // Subcoolnum on state.dataRefrigCase->NumSimulationSubcoolers - } // state.dataRefrigCase->NumSimulationSubcoolers > 0 + } // Subcoolnum on NumSimulationSubcoolers + } // NumSimulationSubcoolers > 0 } // NumRefrigSystems > 0 @@ -8764,22 +8764,22 @@ namespace EnergyPlus::RefrigeratedCase { } if (state.dataRefrigCase->NumSimulationCases > 0) { - // RefrigCase ALLOCATED to state.dataRefrigCase->NumSimulationCases + // RefrigCase ALLOCATED to NumSimulationCases for (int i = RefrigCase.l(), e = RefrigCase.u(); i <= e; ++i) { RefrigCase(i).reset_init(); } - } // state.dataRefrigCase->NumSimulationCases + } // NumSimulationCases if (state.dataRefrigCase->NumSimulationWalkIns > 0) { - // WalkIn ALLOCATED to state.dataRefrigCase->NumSimulationWalkIns + // WalkIn ALLOCATED to NumSimulationWalkIns for (int i = WalkIn.l(), e = WalkIn.u(); i <= e; ++i) { WalkIn(i).reset_init(); } } if (state.dataRefrigCase->HaveChillers) { - // HaveChillers is TRUE when state.dataRefrigCase->NumSimulationRefrigAirChillers > 0 - // WarehouseCoil ALLOCATED to state.dataRefrigCase->NumSimulationRefrigAirChillers + // HaveChillers is TRUE when NumSimulationRefrigAirChillers > 0 + // WarehouseCoil ALLOCATED to NumSimulationRefrigAirChillers for (int i = WarehouseCoil.l(), e = WarehouseCoil.u(); i <= e; ++i) { WarehouseCoil(i).reset_init(); } @@ -8818,7 +8818,7 @@ namespace EnergyPlus::RefrigeratedCase { } if (state.dataRefrigCase->NumSimulationCompressors > 0) { - // Compressor ALLOCATED to state.dataRefrigCase->NumSimulationCompressors + // Compressor ALLOCATED to NumSimulationCompressors for (int i = Compressor.l(), e = Compressor.u(); i <= e; ++i) { Compressor(i).reset_init(); } @@ -8841,7 +8841,7 @@ namespace EnergyPlus::RefrigeratedCase { } if (state.dataRefrigCase->NumSimulationSecondarySystems > 0) { - // Secondary is ALLOCATED to state.dataRefrigCase->NumSimulationSecondarySystems + // Secondary is ALLOCATED to NumSimulationSecondarySystems for (int i = Secondary.l(), e = Secondary.u(); i <= e; ++i) { Secondary(i).reset_init(); } @@ -8930,7 +8930,7 @@ namespace EnergyPlus::RefrigeratedCase { RefrigCase(caseID).KgFrost = RefrigCase(caseID).KgFrostSaved; RefrigCase(caseID).StoredEnergy = RefrigCase(caseID).StoredEnergySaved; } // CaseID - } // state.dataRefrigCase->NumSimulationCases + } // NumSimulationCases if (state.dataRefrigCase->NumSimulationWalkIns > 0) { for (int walkInID = 1; walkInID <= state.dataRefrigCase->NumSimulationWalkIns; ++walkInID) { WalkIn(walkInID).KgFrost = WalkIn(walkInID).KgFrostSaved; @@ -9447,7 +9447,7 @@ namespace EnergyPlus::RefrigeratedCase { " - Evap cooling of condenser underway with no basin heater power ... continues", this->EvapFreezeWarnIndex); // END IF - } // state.dataRefrigCase->TotalBasinHeatPower == 0 when at outdoor freezing conditions + } // TotalBasinHeatPower == 0 when at outdoor freezing conditions } // cap } // evap condenser type @@ -9459,7 +9459,7 @@ namespace EnergyPlus::RefrigeratedCase { if (HeatRejectZoneNum > 0 && state.dataRefrigCase->TotalRackDeliveredCapacity > 0.0) { if (this->NumWalkIns == 0) { // rack report variables for condenser heat to Zone and/or HVAC - // The difference between TotalHeatRejectedToZone and state.dataRefrigCase->TotalRackDeliveredCapacity is the heat sent to return air + // The difference between TotalHeatRejectedToZone and TotalRackDeliveredCapacity is the heat sent to return air state.dataRefrigCase->RackSenCreditToZone = state.dataRefrigCase->TotalCondenserHeat * (TotalHeatRejectedToZone / state.dataRefrigCase->TotalRackDeliveredCapacity); state.dataRefrigCase->RackSenCreditToHVAC = state.dataRefrigCase->TotalCondenserHeat - state.dataRefrigCase->RackSenCreditToZone; } else { // walkins present and no rack heat rejection goes to return air @@ -10564,7 +10564,7 @@ namespace EnergyPlus::RefrigeratedCase { System(SysNum).SumMechSCBenefit = Subcooler(SubcoolID).MechSCTransLoad; } // subcoolerindex } // System(sysid)%numsubcoolers > 0 - } // state.dataRefrigCase->NumSimulationMechSubcoolers > 0 and not first loop + } // NumSimulationMechSubcoolers > 0 and not first loop // This loop places load on system absorbing heat from cascade condenser and & // condenser heat reclaim credits from hot gas/brine defrosts @@ -11355,7 +11355,7 @@ namespace EnergyPlus::RefrigeratedCase { // Apply ARI490 elevation correction factor here for evap condenser, then apply hrcf limits if (CapFac > 0.0) { HRCF = condenser.EvapElevFact / CapFac; - // Condenser(CondNum)%EvapElevFact=1.0d0-3.074D-5*state.dataEnvrn->Elevation + // Condenser(CondNum)%EvapElevFact=1.0d0-3.074D-5*Elevation } else { HRCF = MyLargeNumber; } @@ -12746,7 +12746,7 @@ namespace EnergyPlus::RefrigeratedCase { } } print(state.files.eio, "{}\n", Format_123); // Secondary system load header - } //(state.dataRefrigCase->NumSimulationSecondarySystems > 0) + } //(NumSimulationSecondarySystems > 0) if (state.dataRefrigCase->NumRefrigChillerSets > 0) { print(state.files.eio, "{}\n", Format_148); // Intro to Chiller set print(state.files.eio, "{}\n", Format_149); // Chiller set header @@ -12755,11 +12755,11 @@ namespace EnergyPlus::RefrigeratedCase { } //(NumRefrigSystems > 0) if (state.dataRefrigCase->NumSimulationCases > 0) { print(state.files.eio, "{}\n", Format_105); // Case header - } //(state.dataRefrigCase->NumSimulationCases > 0) + } //(NumSimulationCases > 0) if (state.dataRefrigCase->NumSimulationWalkIns > 0) { print(state.files.eio, "{}\n", Format_119); // Walk-in header print(state.files.eio, "{}\n", Format_134); // Walk-in zone-specific header - } //(state.dataRefrigCase->NumSimulationWalkIns > 0) + } //(NumSimulationWalkIns > 0) if (state.dataRefrigCase->NumSimulationCondAir > 0) { print(state.files.eio, "{}\n", Format_129); // Condenser, Air-Cooled header } //(NumSimulationCondAir > 0) @@ -12776,21 +12776,21 @@ namespace EnergyPlus::RefrigeratedCase { if (state.dataRefrigCase->NumSimulationMechSubcoolers > 0) { print(state.files.eio, "{}\n", Format_141); // Mech subcooler loads served header print(state.files.eio, "{}\n", Format_126); // Mechanical Subcooler header - } //(state.dataRefrigCase->NumSimulationMechSubcoolers > 0) + } //(NumSimulationMechSubcoolers > 0) if ((state.dataRefrigCase->NumSimulationSubcoolers - state.dataRefrigCase->NumSimulationMechSubcoolers) > 0) { print(state.files.eio, "{}\n", Format_127); // LSHX Subcooler header - } //((state.dataRefrigCase->NumSimulationSubcoolers - state.dataRefrigCase->NumSimulationMechSubcoolers) > 0) + } //((NumSimulationSubcoolers - NumSimulationMechSubcoolers) > 0) if (state.dataRefrigCase->NumTransRefrigSystems > 0) { print(state.files.eio, "{}\n", Format_120); // Intro to detailed transcriticial refrigeration system print(state.files.eio, "{}\n", Format_121); // Detailed system header if (state.dataRefrigCase->NumSimulationCases > 0) { print(state.files.eio, "{}\n", Format_105); // Case header - } //(state.dataRefrigCase->NumSimulationCases > 0) + } //(NumSimulationCases > 0) if (state.dataRefrigCase->NumSimulationWalkIns > 0) { print(state.files.eio, "{}\n", Format_119); // Walk-in header print(state.files.eio, "{}\n", Format_134); // Walk-in zone-specific header - } //(state.dataRefrigCase->NumSimulationWalkIns > 0) + } //(NumSimulationWalkIns > 0) print(state.files.eio, "{}\n", Format_108); // Compressor header (Always have compressor if have detailed system) if (state.dataRefrigCase->NumSimulationGasCooler > 0) { print(state.files.eio, "{}\n", Format_160); // Gas Cooler, Air-Cooled header diff --git a/src/EnergyPlus/ReportCoilSelection.cc b/src/EnergyPlus/ReportCoilSelection.cc index daff7d5d7ee..707e08ea33c 100644 --- a/src/EnergyPlus/ReportCoilSelection.cc +++ b/src/EnergyPlus/ReportCoilSelection.cc @@ -728,7 +728,7 @@ void ReportCoilSelection::doFinalProcessingOfCoilData(EnergyPlusData &state) if (c->waterLoopNum > 0 && c->pltSizNum > 0) { c->plantLoopName = state.dataPlnt->PlantLoop(c->waterLoopNum).Name; - if (DataSizing::PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { + if (state.dataSize->PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { c->rhoFluid = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(c->waterLoopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -802,18 +802,18 @@ void ReportCoilSelection::doFinalProcessingOfCoilData(EnergyPlusData &state) // fill out some plant design info if (c->pltSizNum > 0) { - c->plantDesSupTemp = DataSizing::PlantSizData(c->pltSizNum).ExitTemp; - c->plantDesDeltaTemp = DataSizing::PlantSizData(c->pltSizNum).DeltaT; - if (DataSizing::PlantSizData(c->pltSizNum).LoopType == DataSizing::HeatingLoop) { + c->plantDesSupTemp = state.dataSize->PlantSizData(c->pltSizNum).ExitTemp; + c->plantDesDeltaTemp = state.dataSize->PlantSizData(c->pltSizNum).DeltaT; + if (state.dataSize->PlantSizData(c->pltSizNum).LoopType == DataSizing::HeatingLoop) { c->plantDesRetTemp = c->plantDesSupTemp - c->plantDesDeltaTemp; - } else if (DataSizing::PlantSizData(c->pltSizNum).LoopType == DataSizing::CoolingLoop || - DataSizing::PlantSizData(c->pltSizNum).LoopType == DataSizing::CondenserLoop) { + } else if (state.dataSize->PlantSizData(c->pltSizNum).LoopType == DataSizing::CoolingLoop || + state.dataSize->PlantSizData(c->pltSizNum).LoopType == DataSizing::CondenserLoop) { c->plantDesRetTemp = c->plantDesSupTemp + c->plantDesDeltaTemp; } - if (DataSizing::PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { + if (state.dataSize->PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { c->plantDesCapacity = - c->cpFluid * c->rhoFluid * DataSizing::PlantSizData(c->pltSizNum).DeltaT * DataSizing::PlantSizData(c->pltSizNum).DesVolFlowRate; + c->cpFluid * c->rhoFluid * state.dataSize->PlantSizData(c->pltSizNum).DeltaT * state.dataSize->PlantSizData(c->pltSizNum).DesVolFlowRate; } else { // find boiler on this plant loop and get capacity from it if (allocated(state.dataBoilerSteam->Boiler)) { @@ -992,7 +992,7 @@ void ReportCoilSelection::setCoilWaterFlowNodeNums(EnergyPlusData &state, ) { int plantSizNum = -999; - if ((DataSizing::NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { + if ((state.dataSize->NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { bool errorsfound = false; plantSizNum = PlantUtilities::MyPlantSizingIndex(state, "water coil", coilName, inletNodeNum, outletNodeNum, errorsfound); } @@ -1017,7 +1017,7 @@ void ReportCoilSelection::setCoilWaterFlowPltSizNum(EnergyPlusData &state, } if (c->waterLoopNum > 0 && c->pltSizNum > 0) { - if (DataSizing::PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { + if (state.dataSize->PlantSizData(c->pltSizNum).LoopType != DataSizing::SteamLoop) { c->rhoFluid = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(c->waterLoopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -1159,6 +1159,9 @@ void ReportCoilSelection::setCoilCoolingCapacity( Real64 const DXFlowPerCapMaxRatio // non dimensional ratio, capacity adjustment ratio max ) { + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + int index = getIndexForOrCreateDataObjFromCoilName(state, coilName, coilType); auto &c(coilSelectionDataObjs[index]); // no this is adjusted back to ratings c->coilTotCapAtPeak = TotalCoolingCap; @@ -1175,50 +1178,50 @@ void ReportCoilSelection::setCoilCoolingCapacity( // if ( c->zoneEqNum > 0 ) doZoneEqSetup( index ); c->oASysNum = curOASysNum; - if (curSysNum > 0 && c->zoneEqNum == 0 && allocated(DataSizing::FinalSysSizing) && allocated(DataSizing::SysSizPeakDDNum)) { + if (curSysNum > 0 && c->zoneEqNum == 0 && allocated(state.dataSize->FinalSysSizing) && allocated(SysSizPeakDDNum)) { // These next blocks does not always work with SizingPeriod:WeatherFileDays or SizingPeriod:WeatherFileConditionType, protect against hard // crash - if (DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD > 0 && - DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD <= state.dataEnvrn->TotDesDays) { - c->desDayNameAtSensPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD).Title; + if (SysSizPeakDDNum(curSysNum).SensCoolPeakDD > 0 && + SysSizPeakDDNum(curSysNum).SensCoolPeakDD <= state.dataEnvrn->TotDesDays) { + c->desDayNameAtSensPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(curSysNum).SensCoolPeakDD).Title; c->coilSensePeakHrMin = PeakHrMinString(state, - DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD, - DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtSensCoolPk(DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD)); + SysSizPeakDDNum(curSysNum).SensCoolPeakDD, + SysSizPeakDDNum(curSysNum).TimeStepAtSensCoolPk(SysSizPeakDDNum(curSysNum).SensCoolPeakDD)); } - if (DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD > 0 && - DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD <= state.dataEnvrn->TotDesDays) { - c->desDayNameAtTotalPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD).Title; + if (SysSizPeakDDNum(curSysNum).TotCoolPeakDD > 0 && + SysSizPeakDDNum(curSysNum).TotCoolPeakDD <= state.dataEnvrn->TotDesDays) { + c->desDayNameAtTotalPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(curSysNum).TotCoolPeakDD).Title; c->coilTotalPeakHrMin = PeakHrMinString(state, - DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD, - DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtTotCoolPk(DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD)); + SysSizPeakDDNum(curSysNum).TotCoolPeakDD, + SysSizPeakDDNum(curSysNum).TimeStepAtTotCoolPk(SysSizPeakDDNum(curSysNum).TotCoolPeakDD)); } - if (DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD > 0 && - DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { - c->desDayNameAtAirFlowPeak = state.dataWeatherManager->DesDayInput(DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD).Title; + if (SysSizPeakDDNum(curSysNum).CoolFlowPeakDD > 0 && + SysSizPeakDDNum(curSysNum).CoolFlowPeakDD <= state.dataEnvrn->TotDesDays) { + c->desDayNameAtAirFlowPeak = state.dataWeatherManager->DesDayInput(SysSizPeakDDNum(curSysNum).CoolFlowPeakDD).Title; c->airPeakHrMin = PeakHrMinString(state, - DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD, - DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD)); + SysSizPeakDDNum(curSysNum).CoolFlowPeakDD, + SysSizPeakDDNum(curSysNum).TimeStepAtCoolFlowPk(SysSizPeakDDNum(curSysNum).CoolFlowPeakDD)); } - if (DataSizing::FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) { + if (state.dataSize->FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) { c->isCoilSizingForTotalLoad = true; } else { c->isCoilSizingForTotalLoad = false; } - c->oaPeakTemp = DataSizing::FinalSysSizing(curSysNum).OutTempAtCoolPeak; - c->oaPeakVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; - c->oaPeakHumRat = DataSizing::FinalSysSizing(curSysNum).OutHumRatAtCoolPeak; - c->raPeakTemp = DataSizing::FinalSysSizing(curSysNum).RetTempAtCoolPeak; - c->raPeakHumRat = DataSizing::FinalSysSizing(curSysNum).RetHumRatAtCoolPeak; - c->coilSizingMethodConcurrence = DataSizing::FinalSysSizing(curSysNum).SizingOption; - c->coilSizingMethodCapacity = DataSizing::FinalSysSizing(curSysNum).CoolingCapMethod; - c->coilSizingMethodAirFlow = DataSizing::FinalSysSizing(curSysNum).ScaleCoolSAFMethod; + c->oaPeakTemp = state.dataSize->FinalSysSizing(curSysNum).OutTempAtCoolPeak; + c->oaPeakVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; + c->oaPeakHumRat = state.dataSize->FinalSysSizing(curSysNum).OutHumRatAtCoolPeak; + c->raPeakTemp = state.dataSize->FinalSysSizing(curSysNum).RetTempAtCoolPeak; + c->raPeakHumRat = state.dataSize->FinalSysSizing(curSysNum).RetHumRatAtCoolPeak; + c->coilSizingMethodConcurrence = state.dataSize->FinalSysSizing(curSysNum).SizingOption; + c->coilSizingMethodCapacity = state.dataSize->FinalSysSizing(curSysNum).CoolingCapMethod; + c->coilSizingMethodAirFlow = state.dataSize->FinalSysSizing(curSysNum).ScaleCoolSAFMethod; // DesOutAirVolFlow // loop over cooled zones attached to this airloop to find average Room condition @@ -1231,38 +1234,38 @@ void ReportCoilSelection::setCoilCoolingCapacity( // Decide what day and time to use for zone/room averages int SysPeakDDnum(0); int SysPeakTimeStepInDay(0); - if (DataSizing::FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) { - SysPeakDDnum = DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD; + if (state.dataSize->FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) { + SysPeakDDnum = SysSizPeakDDNum(curSysNum).TotCoolPeakDD; if (SysPeakDDnum > 0) SysPeakTimeStepInDay = - DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtTotCoolPk(DataSizing::SysSizPeakDDNum(curSysNum).TotCoolPeakDD); - } else if (DataSizing::FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::SensibleCoolingLoad) { - SysPeakDDnum = DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD; + SysSizPeakDDNum(curSysNum).TimeStepAtTotCoolPk(SysSizPeakDDNum(curSysNum).TotCoolPeakDD); + } else if (state.dataSize->FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::SensibleCoolingLoad) { + SysPeakDDnum = SysSizPeakDDNum(curSysNum).SensCoolPeakDD; if (SysPeakDDnum > 0) SysPeakTimeStepInDay = - DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtSensCoolPk(DataSizing::SysSizPeakDDNum(curSysNum).SensCoolPeakDD); + SysSizPeakDDNum(curSysNum).TimeStepAtSensCoolPk(SysSizPeakDDNum(curSysNum).SensCoolPeakDD); } if (SysPeakDDnum > 0 && SysPeakTimeStepInDay > 0) { for (auto &z : c->zoneNum) { Real64 mult = state.dataHeatBal->Zone(z).Multiplier * state.dataHeatBal->Zone(z).ListMultiplier; - Real64 Tz = DataSizing::CalcZoneSizing(SysPeakDDnum, z).CoolZoneTempSeq(SysPeakTimeStepInDay); - Real64 Vdot_z = DataSizing::CalcZoneSizing(SysPeakDDnum, z).CoolFlowSeq(SysPeakTimeStepInDay); + Real64 Tz = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).CoolZoneTempSeq(SysPeakTimeStepInDay); + Real64 Vdot_z = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).CoolFlowSeq(SysPeakTimeStepInDay); if (Vdot_z == 0.0) { // take value from final zone sizing - Vdot_z = DataSizing::FinalZoneSizing(z).CoolMassFlow; + Vdot_z = state.dataSize->FinalZoneSizing(z).CoolMassFlow; if (Vdot_z == 0.0) { - Vdot_z = DataSizing::FinalSysSizing(curSysNum).DesCoolVolFlow * state.dataEnvrn->StdRhoAir / c->zoneNum.size(); + Vdot_z = state.dataSize->FinalSysSizing(curSysNum).DesCoolVolFlow * state.dataEnvrn->StdRhoAir / c->zoneNum.size(); } } - Real64 Wz = DataSizing::CalcZoneSizing(SysPeakDDnum, z).CoolZoneHumRatSeq(SysPeakTimeStepInDay); + Real64 Wz = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).CoolZoneHumRatSeq(SysPeakTimeStepInDay); sumT_Vdot += Tz * Vdot_z * mult; sumW_Vdot += Wz * Vdot_z * mult; sumVdot += Vdot_z * mult; - Real64 Qdot_z = DataSizing::CalcZoneSizing(SysPeakDDnum, z).CoolLoadSeq(SysPeakTimeStepInDay); + Real64 Qdot_z = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).CoolLoadSeq(SysPeakTimeStepInDay); if (Qdot_z > 0.0) { sumSensLoad += Qdot_z * mult; } else { - sumSensLoad += DataSizing::FinalZoneSizing(z).DesCoolLoad * mult; + sumSensLoad += state.dataSize->FinalZoneSizing(z).DesCoolLoad * mult; } } } @@ -1278,7 +1281,7 @@ void ReportCoilSelection::setCoilCoolingCapacity( } if (c->coilSizingMethodConcurrence == DataSizing::Coincident) { - c->rmSensibleAtPeak = DataSizing::FinalSysSizing(curSysNum).SysCoolCoinSpaceSens; + c->rmSensibleAtPeak = state.dataSize->FinalSysSizing(curSysNum).SysCoolCoinSpaceSens; } else if (c->coilSizingMethodConcurrence == DataSizing::NonCoincident) { c->rmSensibleAtPeak = sumSensLoad; } @@ -1286,19 +1289,19 @@ void ReportCoilSelection::setCoilCoolingCapacity( // now set Coil Ent And Lvg Conditions if (curOASysNum > 0) { // then this system coil is part of OA system if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly - c->coilDesEntTemp = DataSizing::FinalSysSizing(curSysNum).OutTempAtCoolPeak; + c->coilDesEntTemp = state.dataSize->FinalSysSizing(curSysNum).OutTempAtCoolPeak; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly - c->coilDesEntHumRat = DataSizing::FinalSysSizing(curSysNum).OutHumRatAtCoolPeak; + c->coilDesEntHumRat = state.dataSize->FinalSysSizing(curSysNum).OutHumRatAtCoolPeak; } c->coilDesEntWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesEntTemp, c->coilDesEntHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilCoolingCapacity"); c->coilDesEntEnth = Psychrometrics::PsyHFnTdbW(c->coilDesEntTemp, c->coilDesEntHumRat); if (c->coilDesLvgTemp == -999.0) { // don't overwrite if already set directly - c->coilDesLvgTemp = DataSizing::FinalSysSizing(curSysNum).PrecoolTemp; + c->coilDesLvgTemp = state.dataSize->FinalSysSizing(curSysNum).PrecoolTemp; } if (c->coilDesLvgHumRat == -999.0) { // don't overwrite if already set directly - c->coilDesLvgHumRat = DataSizing::FinalSysSizing(curSysNum).PrecoolHumRat; + c->coilDesLvgHumRat = state.dataSize->FinalSysSizing(curSysNum).PrecoolHumRat; } c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilCoolingCapacity"); @@ -1306,19 +1309,19 @@ void ReportCoilSelection::setCoilCoolingCapacity( } else { // part of main air loop if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly - c->coilDesEntTemp = DataSizing::FinalSysSizing(curSysNum).MixTempAtCoolPeak; + c->coilDesEntTemp = state.dataSize->FinalSysSizing(curSysNum).MixTempAtCoolPeak; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly - c->coilDesEntHumRat = DataSizing::FinalSysSizing(curSysNum).MixHumRatAtCoolPeak; + c->coilDesEntHumRat = state.dataSize->FinalSysSizing(curSysNum).MixHumRatAtCoolPeak; } c->coilDesEntWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesEntTemp, c->coilDesEntHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilCoolingCapacity"); c->coilDesEntEnth = Psychrometrics::PsyHFnTdbW(c->coilDesEntTemp, c->coilDesEntHumRat); if (c->coilDesLvgTemp == -999.0) { - c->coilDesLvgTemp = DataSizing::FinalSysSizing(curSysNum).CoolSupTemp; + c->coilDesLvgTemp = state.dataSize->FinalSysSizing(curSysNum).CoolSupTemp; } if (c->coilDesLvgHumRat == -999.0) { // don't overwrite if already set directly - c->coilDesLvgHumRat = DataSizing::FinalSysSizing(curSysNum).CoolSupHumRat; + c->coilDesLvgHumRat = state.dataSize->FinalSysSizing(curSysNum).CoolSupHumRat; } c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilCoolingCapacity"); @@ -1328,42 +1331,42 @@ void ReportCoilSelection::setCoilCoolingCapacity( } } - } else if (curZoneEqNum > 0 && allocated(DataSizing::FinalZoneSizing)) { + } else if (curZoneEqNum > 0 && allocated(state.dataSize->FinalZoneSizing)) { c->zoneNum.resize(1); c->zoneName.resize(1); if (allocated(state.dataZoneEquip->ZoneEquipConfig)) c->zoneNum[0] = state.dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ActualZoneNum; if (allocated(state.dataZoneEquip->ZoneEquipConfig)) c->zoneName[0] = state.dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ZoneName; - c->desDayNameAtSensPeak = DataSizing::FinalZoneSizing(curZoneEqNum).CoolDesDay; - c->oaPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).OutTempAtCoolPeak; - c->oaPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).OutHumRatAtCoolPeak; - c->raPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; - c->raPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; - c->rmPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; - c->rmPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; + c->desDayNameAtSensPeak = state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDesDay; + c->oaPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).OutTempAtCoolPeak; + c->oaPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).OutHumRatAtCoolPeak; + c->raPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; + c->raPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; + c->rmPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; + c->rmPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; c->rmPeakRelHum = Psychrometrics::PsyRhFnTdbWPb(state, c->rmPeakTemp, c->rmPeakHumRat, state.dataEnvrn->StdBaroPress) * 100.0; // convert to percentage - if (DataSizing::FinalZoneSizing(curZoneEqNum).CoolDDNum > 0 && - DataSizing::FinalZoneSizing(curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { + if (state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDDNum > 0 && + state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDDNum <= state.dataEnvrn->TotDesDays) { c->coilSensePeakHrMin = PeakHrMinString( - state, DataSizing::FinalZoneSizing(curZoneEqNum).CoolDDNum, DataSizing::FinalZoneSizing(curZoneEqNum).TimeStepNumAtCoolMax); + state, state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDDNum, state.dataSize->FinalZoneSizing(curZoneEqNum).TimeStepNumAtCoolMax); c->airPeakHrMin = PeakHrMinString( - state, DataSizing::FinalZoneSizing(curZoneEqNum).CoolDDNum, DataSizing::FinalZoneSizing(curZoneEqNum).TimeStepNumAtCoolMax); + state, state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDDNum, state.dataSize->FinalZoneSizing(curZoneEqNum).TimeStepNumAtCoolMax); } - c->rmSensibleAtPeak = DataSizing::FinalZoneSizing(curZoneEqNum).DesCoolLoad; + c->rmSensibleAtPeak = state.dataSize->FinalZoneSizing(curZoneEqNum).DesCoolLoad; - if (DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { - c->oaPeakVolFlow = DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow; + if (ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { + c->oaPeakVolFlow = ZoneEqSizing(curZoneEqNum).OAVolFlow; } else { c->oaPeakVolFlow = 0.0; } // coil entering conditions depend on the type of zone equipment involved // set typeof_Coil integer - if (DataSizing::TermUnitIU) { // an unpowered induction terminal unit + if (state.dataSize->TermUnitIU) { // an unpowered induction terminal unit // should be picked up by CoolingWaterDesAirInletHumRatSizing and CoolingWaterDesWaterInletTempSizing // c->coilDesEntTemp = DataSizing::FinalZoneSizing( curZoneEqNum ).ZoneTempAtCoolPeak; // c->coilDesEntHumRat = DataSizing::FinalZoneSizing( curZoneEqNum ).ZoneHumRatAtCoolPeak; - } else if (DataSizing::ZoneEqFanCoil) { + } else if (state.dataSize->ZoneEqFanCoil) { // should be picked up by CoolingWaterDesAirInletHumRatSizing and CoolingWaterDesWaterInletTempSizing // if ( DataSizing::FinalZoneSizing( curZoneEqNum ).DesCoolMassFlow > 0.0 ) { // c->oaPeakVolFrac = min( (DataEnvironment::StdRhoAir * c->oaPeakVolFlow)/DataSizing::FinalZoneSizing( curZoneEqNum @@ -1373,36 +1376,36 @@ void ReportCoilSelection::setCoilCoolingCapacity( // DataSizing::FinalZoneSizing( curZoneEqNum ).ZoneTempAtCoolPeak; c->coilDesEntHumRat = c->oaPeakVolFrac * // DataSizing::FinalZoneSizing( curZoneEqNum ).OutHumRatAtCoolPeak + ( 1.0 - c->oaPeakVolFrac ) * DataSizing::FinalZoneSizing( // curZoneEqNum ).ZoneHumRatAtCoolPeak; - } else if (DataSizing::ZoneEqDXCoil) { - if (DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { + } else if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).DesCoolCoilInTemp; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).DesCoolCoilInTemp; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).DesCoolCoilInHumRat; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).DesCoolCoilInHumRat; } } else { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtCoolPeak; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtCoolPeak; } } } else { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).DesCoolCoilInTemp; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).DesCoolCoilInTemp; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).DesCoolCoilInHumRat; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).DesCoolCoilInHumRat; } } if (c->coilDesLvgTemp == -999.0) { // don't overwrite if already set directly by setCoilLvgAirTemp - c->coilDesLvgTemp = DataSizing::FinalZoneSizing(curZoneEqNum).CoolDesTemp; + c->coilDesLvgTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDesTemp; } if (c->coilDesLvgHumRat == -999.0) { // don't overwrite if already set directly by setCoilLvgAirHumRat - c->coilDesLvgHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).CoolDesHumRat; + c->coilDesLvgHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).CoolDesHumRat; } c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilCoolingCapacity"); @@ -1430,6 +1433,11 @@ void ReportCoilSelection::setCoilHeatingCapacity( Real64 const DXFlowPerCapMaxRatio // non dimensional ratio, capacity adjustment ratio max ) { + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + auto &UnitarySysEqSizing(state.dataSize->UnitarySysEqSizing); + int index = getIndexForOrCreateDataObjFromCoilName(state, coilName, coilType); auto &c(coilSelectionDataObjs[index]); c->capIsAutosized = isAutoSize; @@ -1443,17 +1451,17 @@ void ReportCoilSelection::setCoilHeatingCapacity( doAirLoopSetup(state, index); c->zoneEqNum = curZoneEqNum; // if ( c->zoneEqNum > 0 ) doZoneEqSetup( index ); - if (curSysNum > 0 && c->zoneEqNum == 0 && allocated(DataSizing::FinalSysSizing)) { - c->desDayNameAtSensPeak = DataSizing::FinalSysSizing(curSysNum).HeatDesDay; - - c->oaPeakTemp = DataSizing::FinalSysSizing(curSysNum).HeatOutTemp; - c->oaPeakHumRat = DataSizing::FinalSysSizing(curSysNum).HeatOutHumRat; - c->oaPeakVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; - c->raPeakTemp = DataSizing::FinalSysSizing(curSysNum).HeatRetTemp; - c->raPeakHumRat = DataSizing::FinalSysSizing(curSysNum).HeatRetHumRat; - c->coilSizingMethodConcurrence = DataSizing::FinalSysSizing(curSysNum).SizingOption; - c->coilSizingMethodCapacity = DataSizing::FinalSysSizing(curSysNum).HeatingCapMethod; - c->coilSizingMethodAirFlow = DataSizing::FinalSysSizing(curSysNum).ScaleHeatSAFMethod; + if (curSysNum > 0 && c->zoneEqNum == 0 && allocated(state.dataSize->FinalSysSizing)) { + c->desDayNameAtSensPeak = state.dataSize->FinalSysSizing(curSysNum).HeatDesDay; + + c->oaPeakTemp = state.dataSize->FinalSysSizing(curSysNum).HeatOutTemp; + c->oaPeakHumRat = state.dataSize->FinalSysSizing(curSysNum).HeatOutHumRat; + c->oaPeakVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; + c->raPeakTemp = state.dataSize->FinalSysSizing(curSysNum).HeatRetTemp; + c->raPeakHumRat = state.dataSize->FinalSysSizing(curSysNum).HeatRetHumRat; + c->coilSizingMethodConcurrence = state.dataSize->FinalSysSizing(curSysNum).SizingOption; + c->coilSizingMethodCapacity = state.dataSize->FinalSysSizing(curSysNum).HeatingCapMethod; + c->coilSizingMethodAirFlow = state.dataSize->FinalSysSizing(curSysNum).ScaleHeatSAFMethod; // Central Heating Coils are always sized at the conditions at the peak Sensible Heating Load c->isCoilSizingForTotalLoad = false; @@ -1468,29 +1476,29 @@ void ReportCoilSelection::setCoilHeatingCapacity( Real64 sumVdot(0.0); // denominator for zone-volume weighted averages int SysPeakDDnum(0); - SysPeakDDnum = DataSizing::FinalSysSizing(curSysNum).HeatDDNum; + SysPeakDDnum = state.dataSize->FinalSysSizing(curSysNum).HeatDDNum; int SysPeakTimeStepInDay(0); - SysPeakTimeStepInDay = DataSizing::FinalSysSizing(curSysNum).SysHeatCoilTimeStepPk; + SysPeakTimeStepInDay = state.dataSize->FinalSysSizing(curSysNum).SysHeatCoilTimeStepPk; if (SysPeakDDnum > 0 && SysPeakTimeStepInDay > 0) { // may be zero if no peak found because of zero system load for (auto &z : c->zoneNum) { Real64 mult = state.dataHeatBal->Zone(z).Multiplier * state.dataHeatBal->Zone(z).ListMultiplier; - Real64 Tz = DataSizing::CalcZoneSizing(SysPeakDDnum, z).HeatZoneTempSeq(SysPeakTimeStepInDay); - Real64 Vdot_z = DataSizing::CalcZoneSizing(SysPeakDDnum, z).HeatFlowSeq(SysPeakTimeStepInDay); + Real64 Tz = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).HeatZoneTempSeq(SysPeakTimeStepInDay); + Real64 Vdot_z = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).HeatFlowSeq(SysPeakTimeStepInDay); if (Vdot_z == 0.0) { // take value from final zone sizing - Vdot_z = DataSizing::FinalZoneSizing(z).HeatMassFlow; + Vdot_z = state.dataSize->FinalZoneSizing(z).HeatMassFlow; if (Vdot_z == 0.0) { - Vdot_z = DataSizing::FinalSysSizing(curSysNum).DesHeatVolFlow * state.dataEnvrn->StdRhoAir / c->zoneNum.size(); + Vdot_z = state.dataSize->FinalSysSizing(curSysNum).DesHeatVolFlow * state.dataEnvrn->StdRhoAir / c->zoneNum.size(); } } - Real64 Wz = DataSizing::CalcZoneSizing(SysPeakDDnum, z).HeatZoneHumRatSeq(SysPeakTimeStepInDay); + Real64 Wz = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).HeatZoneHumRatSeq(SysPeakTimeStepInDay); sumT_Vdot += Tz * Vdot_z * mult; sumW_Vdot += Wz * Vdot_z * mult; sumVdot += Vdot_z * mult; - Real64 Qdot_z = DataSizing::CalcZoneSizing(SysPeakDDnum, z).HeatLoadSeq(SysPeakTimeStepInDay); + Real64 Qdot_z = state.dataSize->CalcZoneSizing(SysPeakDDnum, z).HeatLoadSeq(SysPeakTimeStepInDay); if (Qdot_z > 0.0) { sumLoad += Qdot_z * mult; } else { - sumLoad += DataSizing::FinalZoneSizing(z).DesHeatLoad * mult; + sumLoad += state.dataSize->FinalZoneSizing(z).DesHeatLoad * mult; } } } @@ -1507,43 +1515,43 @@ void ReportCoilSelection::setCoilHeatingCapacity( } if (c->coilSizingMethodConcurrence == DataSizing::Coincident) { - c->rmSensibleAtPeak = DataSizing::FinalSysSizing(curSysNum).SysHeatCoinSpaceSens; + c->rmSensibleAtPeak = state.dataSize->FinalSysSizing(curSysNum).SysHeatCoinSpaceSens; } else if (c->coilSizingMethodConcurrence == DataSizing::NonCoincident) { c->rmSensibleAtPeak = sumLoad; } - if (DataSizing::FinalSysSizing(curSysNum).HeatDDNum > 0 && DataSizing::FinalSysSizing(curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { + if (state.dataSize->FinalSysSizing(curSysNum).HeatDDNum > 0 && state.dataSize->FinalSysSizing(curSysNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { c->coilSensePeakHrMin = - PeakHrMinString(state, DataSizing::FinalSysSizing(curSysNum).HeatDDNum, DataSizing::FinalSysSizing(curSysNum).SysHeatCoilTimeStepPk); + PeakHrMinString(state, state.dataSize->FinalSysSizing(curSysNum).HeatDDNum, state.dataSize->FinalSysSizing(curSysNum).SysHeatCoilTimeStepPk); c->airPeakHrMin = - PeakHrMinString(state, DataSizing::FinalSysSizing(curSysNum).HeatDDNum, DataSizing::FinalSysSizing(curSysNum).SysHeatAirTimeStepPk); + PeakHrMinString(state, state.dataSize->FinalSysSizing(curSysNum).HeatDDNum, state.dataSize->FinalSysSizing(curSysNum).SysHeatAirTimeStepPk); - c->desDayNameAtAirFlowPeak = state.dataWeatherManager->DesDayInput(DataSizing::FinalSysSizing(curSysNum).HeatDDNum).Title; + c->desDayNameAtAirFlowPeak = state.dataWeatherManager->DesDayInput(state.dataSize->FinalSysSizing(curSysNum).HeatDDNum).Title; } // now set Coil Ent And Lvg Conditions if (curOASysNum > 0) { // then this system coil is part of OA system - if (c->coilDesEntTemp == -999.0) c->coilDesEntTemp = DataSizing::FinalSysSizing(curSysNum).HeatOutTemp; - if (c->coilDesEntHumRat == -999.0) c->coilDesEntHumRat = DataSizing::FinalSysSizing(curSysNum).HeatOutHumRat; + if (c->coilDesEntTemp == -999.0) c->coilDesEntTemp = state.dataSize->FinalSysSizing(curSysNum).HeatOutTemp; + if (c->coilDesEntHumRat == -999.0) c->coilDesEntHumRat = state.dataSize->FinalSysSizing(curSysNum).HeatOutHumRat; c->coilDesEntWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesEntTemp, c->coilDesEntHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilHeatingCapacity"); c->coilDesEntEnth = Psychrometrics::PsyHFnTdbW(c->coilDesEntTemp, c->coilDesEntHumRat); - if (c->coilDesLvgTemp == -999.0) c->coilDesLvgTemp = DataSizing::FinalSysSizing(curSysNum).PreheatTemp; - if (c->coilDesLvgHumRat == -999.0) c->coilDesLvgHumRat = DataSizing::FinalSysSizing(curSysNum).PreheatHumRat; + if (c->coilDesLvgTemp == -999.0) c->coilDesLvgTemp = state.dataSize->FinalSysSizing(curSysNum).PreheatTemp; + if (c->coilDesLvgHumRat == -999.0) c->coilDesLvgHumRat = state.dataSize->FinalSysSizing(curSysNum).PreheatHumRat; c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilHeatingCapacity"); c->coilDesLvgEnth = Psychrometrics::PsyHFnTdbW(c->coilDesLvgTemp, c->coilDesLvgHumRat); } else { // part of main air loop - if (c->coilDesEntTemp == -999.0) c->coilDesEntTemp = DataSizing::FinalSysSizing(curSysNum).HeatMixTemp; - if (c->coilDesEntHumRat == -999.0) c->coilDesEntHumRat = DataSizing::FinalSysSizing(curSysNum).HeatMixHumRat; + if (c->coilDesEntTemp == -999.0) c->coilDesEntTemp = state.dataSize->FinalSysSizing(curSysNum).HeatMixTemp; + if (c->coilDesEntHumRat == -999.0) c->coilDesEntHumRat = state.dataSize->FinalSysSizing(curSysNum).HeatMixHumRat; c->coilDesEntWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesEntTemp, c->coilDesEntHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilHeatingCapacity"); c->coilDesEntEnth = Psychrometrics::PsyHFnTdbW(c->coilDesEntTemp, c->coilDesEntHumRat); - if (c->coilDesLvgTemp == -999.0) c->coilDesLvgTemp = DataSizing::FinalSysSizing(curSysNum).HeatSupTemp; - if (c->coilDesLvgHumRat == -999.0) c->coilDesLvgHumRat = DataSizing::FinalSysSizing(curSysNum).HeatSupHumRat; + if (c->coilDesLvgTemp == -999.0) c->coilDesLvgTemp = state.dataSize->FinalSysSizing(curSysNum).HeatSupTemp; + if (c->coilDesLvgHumRat == -999.0) c->coilDesLvgHumRat = state.dataSize->FinalSysSizing(curSysNum).HeatSupHumRat; c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilHeatingCapacity"); c->coilDesLvgEnth = Psychrometrics::PsyHFnTdbW(c->coilDesLvgTemp, c->coilDesLvgHumRat); @@ -1552,101 +1560,101 @@ void ReportCoilSelection::setCoilHeatingCapacity( } } - } else if (curZoneEqNum > 0 && allocated(DataSizing::FinalZoneSizing)) { + } else if (curZoneEqNum > 0 && allocated(state.dataSize->FinalZoneSizing)) { c->zoneNum.resize(1); c->zoneName.resize(1); if (allocated(state.dataZoneEquip->ZoneEquipConfig)) c->zoneNum[0] = state.dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ActualZoneNum; if (allocated(state.dataZoneEquip->ZoneEquipConfig)) c->zoneName[0] = state.dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ZoneName; - c->desDayNameAtSensPeak = DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesDay; - c->oaPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak; - c->oaPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak; - c->raPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneRetTempAtHeatPeak; - c->raPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; - c->rmPeakTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; - c->rmPeakHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; + c->desDayNameAtSensPeak = state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDesDay; + c->oaPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak; + c->oaPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak; + c->raPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneRetTempAtHeatPeak; + c->raPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; + c->rmPeakTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; + c->rmPeakHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; c->rmPeakRelHum = Psychrometrics::PsyRhFnTdbWPb(state, c->rmPeakTemp, c->rmPeakHumRat, state.dataEnvrn->StdBaroPress) * 100.0; // convert to percentage - if (DataSizing::FinalZoneSizing(curZoneEqNum).HeatDDNum > 0 && - DataSizing::FinalZoneSizing(curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { + if (state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDDNum > 0 && + state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDDNum <= state.dataEnvrn->TotDesDays) { c->coilSensePeakHrMin = PeakHrMinString( - state, DataSizing::FinalZoneSizing(curZoneEqNum).HeatDDNum, DataSizing::FinalZoneSizing(curZoneEqNum).TimeStepNumAtHeatMax); + state, state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDDNum, state.dataSize->FinalZoneSizing(curZoneEqNum).TimeStepNumAtHeatMax); c->airPeakHrMin = PeakHrMinString( - state, DataSizing::FinalZoneSizing(curZoneEqNum).HeatDDNum, DataSizing::FinalZoneSizing(curZoneEqNum).TimeStepNumAtHeatMax); + state, state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDDNum, state.dataSize->FinalZoneSizing(curZoneEqNum).TimeStepNumAtHeatMax); } - c->desDayNameAtAirFlowPeak = DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesDay; + c->desDayNameAtAirFlowPeak = state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDesDay; - c->rmSensibleAtPeak = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatLoad; + c->rmSensibleAtPeak = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatLoad; - if (DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { - c->oaPeakVolFlow = DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow; - } else if (DataSizing::ZoneEqSizing(curZoneEqNum).ATMixerVolFlow > 0.0) { - c->oaPeakVolFlow = DataSizing::ZoneEqSizing(curZoneEqNum).ATMixerVolFlow; + if (ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { + c->oaPeakVolFlow = ZoneEqSizing(curZoneEqNum).OAVolFlow; + } else if (ZoneEqSizing(curZoneEqNum).ATMixerVolFlow > 0.0) { + c->oaPeakVolFlow = ZoneEqSizing(curZoneEqNum).ATMixerVolFlow; } else { c->oaPeakVolFlow = 0.0; } // coil entering conditions depend on the type of zone equipment involved // set typeof_Coil integer - if (DataSizing::TermUnitIU) { // an unpowered induction terminal unit + if (state.dataSize->TermUnitIU) { // an unpowered induction terminal unit if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInTempTU; - c->coilDesEntHumRat = DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInHumRatTU; + c->coilDesEntTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU; + c->coilDesEntHumRat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU; } - } else if (DataSizing::TermUnitSingDuct) { + } else if (state.dataSize->TermUnitSingDuct) { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInTempTU; - c->coilDesEntHumRat = DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInHumRatTU; + c->coilDesEntTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU; + c->coilDesEntHumRat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU; } - } else if (DataSizing::TermUnitPIU) { - Real64 MinPriFlowFrac = DataSizing::TermUnitSizing(DataSizing::CurTermUnitSizingNum).MinFlowFrac; - if (DataSizing::TermUnitSizing(DataSizing::CurTermUnitSizingNum).InducesPlenumAir) { + } else if (state.dataSize->TermUnitPIU) { + Real64 MinPriFlowFrac = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MinFlowFrac; + if (TermUnitSizing(state.dataSize->CurTermUnitSizingNum).InducesPlenumAir) { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp c->coilDesEntTemp = - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInTempTU * MinPriFlowFrac) + - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).ZoneRetTempAtHeatPeak * (1.0 - MinPriFlowFrac)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU * MinPriFlowFrac) + + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneRetTempAtHeatPeak * (1.0 - MinPriFlowFrac)); c->coilDesEntHumRat = - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInHumRatTU * MinPriFlowFrac) + - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).ZoneHumRatAtHeatPeak * (1.0 - MinPriFlowFrac)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU * MinPriFlowFrac) + + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtHeatPeak * (1.0 - MinPriFlowFrac)); } } else { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp c->coilDesEntTemp = - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInTempTU * MinPriFlowFrac) + - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - MinPriFlowFrac)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU * MinPriFlowFrac) + + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak * (1.0 - MinPriFlowFrac)); c->coilDesEntHumRat = - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInHumRatTU * MinPriFlowFrac) + - (DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).ZoneHumRatAtHeatPeak * (1.0 - MinPriFlowFrac)); + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU * MinPriFlowFrac) + + (state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtHeatPeak * (1.0 - MinPriFlowFrac)); } } - } else if (DataSizing::ZoneEqFanCoil) { + } else if (state.dataSize->ZoneEqFanCoil) { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - Real64 desOAFlowFrac = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatOAFlowFrac; - c->coilDesEntTemp = desOAFlowFrac * DataSizing::FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak + - (1.0 - desOAFlowFrac) * DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; - c->coilDesEntHumRat = desOAFlowFrac * DataSizing::FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak + - (1.0 - desOAFlowFrac) * DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; + Real64 desOAFlowFrac = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatOAFlowFrac; + c->coilDesEntTemp = desOAFlowFrac * state.dataSize->FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak + + (1.0 - desOAFlowFrac) * state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; + c->coilDesEntHumRat = desOAFlowFrac * state.dataSize->FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak + + (1.0 - desOAFlowFrac) * state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; } - } else if (DataSizing::ZoneEqDXCoil) { - if (DataSizing::ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { + } else if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(curZoneEqNum).OAVolFlow > 0.0) { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatCoilInTemp; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatCoilInTemp; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatCoilInHumRat; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatCoilInHumRat; } } else { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak; } } } else { if (c->coilDesEntTemp == -999.0) { // don't overwrite if already set directly by setCoilEntAirTemp - c->coilDesEntTemp = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatCoilInTemp; + c->coilDesEntTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatCoilInTemp; } if (c->coilDesEntHumRat == -999.0) { // don't overwrite if already set directly by setCoilEntAirHumRat - c->coilDesEntHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatCoilInHumRat; + c->coilDesEntHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatCoilInHumRat; } } @@ -1657,10 +1665,10 @@ void ReportCoilSelection::setCoilHeatingCapacity( } if (c->coilDesLvgTemp == -999.0) { // don't overwrite if already set directly by setCoilLvgAirTemp - c->coilDesLvgTemp = DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesTemp; + c->coilDesLvgTemp = state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDesTemp; } if (c->coilDesLvgHumRat == -999.0) { // don't overwrite if already set directly by setCoilLvgAirHumRat - c->coilDesLvgHumRat = DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesHumRat; + c->coilDesLvgHumRat = state.dataSize->FinalZoneSizing(curZoneEqNum).HeatDesHumRat; } c->coilDesLvgWetBulb = Psychrometrics::PsyTwbFnTdbWPb(state, c->coilDesLvgTemp, c->coilDesLvgHumRat, state.dataEnvrn->StdBaroPress, "ReportCoilSelection::setCoilHeatingCapacity"); @@ -1669,54 +1677,54 @@ void ReportCoilSelection::setCoilHeatingCapacity( // do nothing } - if (DataSizing::DataCoilIsSuppHeater) { + if (state.dataSize->DataCoilIsSuppHeater) { c->isSupplementalHeater = true; } // some heating coils only use this routine, so set air flow if not yet set if (c->coilDesVolFlow <= 0.0) { - if (DataSizing::DataFlowUsedForSizing > 0.0) { // flow has been set in global, so use it - c->coilDesVolFlow = DataSizing::DataFlowUsedForSizing; - } else if ((curZoneEqNum > 0) && allocated(DataSizing::FinalZoneSizing) && - (DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatMassFlow >= DataHVACGlobals::SmallMassFlow)) { - c->coilDesMassFlow = DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatMassFlow; + if (state.dataSize->DataFlowUsedForSizing > 0.0) { // flow has been set in global, so use it + c->coilDesVolFlow = state.dataSize->DataFlowUsedForSizing; + } else if ((curZoneEqNum > 0) && allocated(state.dataSize->FinalZoneSizing) && + (state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatMassFlow >= DataHVACGlobals::SmallMassFlow)) { + c->coilDesMassFlow = state.dataSize->FinalZoneSizing(curZoneEqNum).DesHeatMassFlow; c->coilDesVolFlow = c->coilDesMassFlow / state.dataEnvrn->StdRhoAir; - } else if (curSysNum > 0 && allocated(DataSizing::FinalSysSizing)) { - if (curOASysNum > 0 && allocated(DataSizing::OASysEqSizing)) { - if (DataSizing::OASysEqSizing(curOASysNum).AirFlow) { - c->coilDesVolFlow = DataSizing::OASysEqSizing(curOASysNum).AirVolFlow; - } else if (DataSizing::OASysEqSizing(curOASysNum).HeatingAirFlow) { - c->coilDesVolFlow = DataSizing::OASysEqSizing(curOASysNum).HeatingAirVolFlow; + } else if (curSysNum > 0 && allocated(state.dataSize->FinalSysSizing)) { + if (curOASysNum > 0 && allocated(OASysEqSizing)) { + if (OASysEqSizing(curOASysNum).AirFlow) { + c->coilDesVolFlow = OASysEqSizing(curOASysNum).AirVolFlow; + } else if (OASysEqSizing(curOASysNum).HeatingAirFlow) { + c->coilDesVolFlow = OASysEqSizing(curOASysNum).HeatingAirVolFlow; } else { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow; + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesOutAirVolFlow; } } else { - if (DataSizing::DataFlowUsedForSizing > 0.0) { - c->coilDesVolFlow = DataSizing::DataFlowUsedForSizing; - } else if (DataSizing::UnitarySysEqSizing(curSysNum).AirFlow) { - c->coilDesVolFlow = DataSizing::UnitarySysEqSizing(curSysNum).AirVolFlow; - } else if (DataSizing::UnitarySysEqSizing(curSysNum).HeatingAirFlow) { - c->coilDesVolFlow = DataSizing::UnitarySysEqSizing(curSysNum).HeatingAirVolFlow; + if (state.dataSize->DataFlowUsedForSizing > 0.0) { + c->coilDesVolFlow = state.dataSize->DataFlowUsedForSizing; + } else if (UnitarySysEqSizing(curSysNum).AirFlow) { + c->coilDesVolFlow = UnitarySysEqSizing(curSysNum).AirVolFlow; + } else if (UnitarySysEqSizing(curSysNum).HeatingAirFlow) { + c->coilDesVolFlow = UnitarySysEqSizing(curSysNum).HeatingAirVolFlow; } else { - if (DataSizing::CurDuctType == DataHVACGlobals::Main) { - if (DataSizing::FinalSysSizing(curSysNum).SysAirMinFlowRat > 0.0 && !DataSizing::DataDesicRegCoil) { + if (state.dataSize->CurDuctType == DataHVACGlobals::Main) { + if (state.dataSize->FinalSysSizing(curSysNum).SysAirMinFlowRat > 0.0 && !state.dataSize->DataDesicRegCoil) { c->coilDesVolFlow = - DataSizing::FinalSysSizing(curSysNum).SysAirMinFlowRat * DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + state.dataSize->FinalSysSizing(curSysNum).SysAirMinFlowRat * state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; } else { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; } - } else if (DataSizing::CurDuctType == DataHVACGlobals::Cooling) { - if (DataSizing::FinalSysSizing(curSysNum).SysAirMinFlowRat > 0.0 && !DataSizing::DataDesicRegCoil) { + } else if (state.dataSize->CurDuctType == DataHVACGlobals::Cooling) { + if (state.dataSize->FinalSysSizing(curSysNum).SysAirMinFlowRat > 0.0 && !state.dataSize->DataDesicRegCoil) { c->coilDesVolFlow = - DataSizing::FinalSysSizing(curSysNum).SysAirMinFlowRat * DataSizing::FinalSysSizing(curSysNum).DesCoolVolFlow; + state.dataSize->FinalSysSizing(curSysNum).SysAirMinFlowRat * state.dataSize->FinalSysSizing(curSysNum).DesCoolVolFlow; } else { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesCoolVolFlow; + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesCoolVolFlow; } - } else if (DataSizing::CurDuctType == DataHVACGlobals::Heating) { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesHeatVolFlow; - } else if (DataSizing::CurDuctType == DataHVACGlobals::Other) { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + } else if (state.dataSize->CurDuctType == DataHVACGlobals::Heating) { + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesHeatVolFlow; + } else if (state.dataSize->CurDuctType == DataHVACGlobals::Other) { + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; } else { - c->coilDesVolFlow = DataSizing::FinalSysSizing(curSysNum).DesMainVolFlow; + c->coilDesVolFlow = state.dataSize->FinalSysSizing(curSysNum).DesMainVolFlow; } } } @@ -1744,7 +1752,7 @@ void ReportCoilSelection::setCoilWaterCoolingCapacity(EnergyPlusData &state, std auto &c(coilSelectionDataObjs[index]); c->coilTotCapAtPeak = totalCoolingCap; c->capIsAutosized = isAutoSize; - if ((DataSizing::NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { + if ((state.dataSize->NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { bool errorsfound = false; c->pltSizNum = PlantUtilities::MyPlantSizingIndex(state, "chilled water coil", coilName, inletNodeNum, outletNodeNum, errorsfound); } else { @@ -1766,7 +1774,7 @@ void ReportCoilSelection::setCoilWaterHeaterCapacityNodeNums(EnergyPlusData &sta auto &c(coilSelectionDataObjs[index]); c->coilTotCapAtPeak = totalHeatingCap; c->capIsAutosized = isAutoSize; - if ((DataSizing::NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { + if ((state.dataSize->NumPltSizInput > 0) && (inletNodeNum > 0) && (outletNodeNum > 0)) { bool errorsfound = false; c->pltSizNum = PlantUtilities::MyPlantSizingIndex(state, "hot water coil", coilName, inletNodeNum, outletNodeNum, errorsfound); } else { diff --git a/src/EnergyPlus/SetPointManager.cc b/src/EnergyPlus/SetPointManager.cc index 29ca440b4ea..a876864b084 100644 --- a/src/EnergyPlus/SetPointManager.cc +++ b/src/EnergyPlus/SetPointManager.cc @@ -3999,7 +3999,7 @@ namespace EnergyPlus::SetPointManager { state.dataSetPointManager->MZAverageHeatingSetPtMgr(SetPtMgrNum).AirLoopNum = AirLoopNum; } // Commented out as we are using %NumZonesCooled instead of %NumZonesHeated for all systems for now - // IF (state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated == 0) THEN + // IF (AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated == 0) THEN // CALL ShowSevereError(state, TRIM(cSetPointManagerType)//': Air Loop provides no heating ' // & // TRIM(MZAverageHeatingSetPtMgr(SetPtMgrNum)%Name)) // CALL ShowContinueError(state, 'Occurs in Setpoint Manager='//TRIM(MZAverageHeatingSetPtMgr(SetPtMgrNum)%Name)) @@ -6135,14 +6135,14 @@ namespace EnergyPlus::SetPointManager { SetPointTemp = this->MinSetTemp; for (ZonesHeatedIndex = 1; ZonesHeatedIndex <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++ZonesHeatedIndex) { - // DO ZonesHeatedIndex=1,state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated - // Using state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%Cool* structure variables since they include heating and cooling. + // DO ZonesHeatedIndex=1,AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated + // Using AirToZoneNodeInfo(AirLoopNum)%Cool* structure variables since they include heating and cooling. // The data for number of zones heated is included in the data structure of the variable - // "state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%NumZonesCooled" for all systems. The data structure - // "state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated" applies to Dual Duct System only and + // "AirToZoneNodeInfo(AirLoopNum)%NumZonesCooled" for all systems. The data structure + // "AirToZoneNodeInfo(AirLoopNum)%NumZonesHeated" applies to Dual Duct System only and // if used will limit the application of this setpoint manager to other systems. Thus, - // the "state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum)%NumZonesCooled" data is used instead. + // the "AirToZoneNodeInfo(AirLoopNum)%NumZonesCooled" data is used instead. CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesHeatedIndex); ZoneInletNode = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolZoneInletNodes(ZonesHeatedIndex); diff --git a/src/EnergyPlus/SimAirServingZones.cc b/src/EnergyPlus/SimAirServingZones.cc index ca95048f0e2..c88d1060d32 100644 --- a/src/EnergyPlus/SimAirServingZones.cc +++ b/src/EnergyPlus/SimAirServingZones.cc @@ -160,6 +160,8 @@ namespace EnergyPlus::SimAirServingZones { // The subroutine performs the usual manager functions: it calls the // Get, Init, Sim, Update, and Report routines. + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); + using MixedAir::ManageOutsideAirSystem; if (state.dataSimAirServingZones->GetAirLoopInputFlag) { // First time subroutine has been entered @@ -180,7 +182,7 @@ namespace EnergyPlus::SimAirServingZones { // This flag could be used to resimulate only the air loops that needed additional iterations. // This flag would have to be moved inside SimAirLoops to gain this flexibility. SimAir = std::any_of( - state.dataAirLoop->AirLoopControlInfo.begin(), state.dataAirLoop->AirLoopControlInfo.end(), [](DataAirLoop::AirLoopControlData const &e) { return e.ResimAirLoopFlag; }); + AirLoopControlInfo.begin(), AirLoopControlInfo.end(), [](DataAirLoop::AirLoopControlData const &e) { return e.ResimAirLoopFlag; }); } // Get Input Section of the Module @@ -252,7 +254,6 @@ namespace EnergyPlus::SimAirServingZones { using BranchInputManager::GetNumSplitterMixerInConntrList; using BranchInputManager::NumBranchesInBranchList; using BranchInputManager::NumCompsInBranch; - using HVACControllers::CheckCoilWaterInletNode; using HVACControllers::GetControllerActuatorNodeNum; using MixedAir::FindOAMixerMatchForOASystem; @@ -276,6 +277,11 @@ namespace EnergyPlus::SimAirServingZones { // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("GetAirPathData: "); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &OutsideAirSys(state.dataAirLoop->OutsideAirSys); + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); + // SUBROUTINE LOCAL VARIABLE DEFINITIONS int NumNumbers; // number of numbers returned by GetObjectItem Array1D Numbers; // numbers (REAL(r64)s) returned by GetObjectItem @@ -396,15 +402,15 @@ namespace EnergyPlus::SimAirServingZones { NumPrimaryAirSys = inputProcessor->getNumObjectsFound(state, "AirLoopHVAC"); TestUniqueNodes.allocate(NumPrimaryAirSys * 4); // used to look at specific nodes that must be unique, fields A6-A9 - state.dataAirSystemsData->PrimaryAirSystems.allocate(NumPrimaryAirSys); // allocate the primary air sys data array - state.dataAirLoop->AirToZoneNodeInfo.allocate(NumPrimaryAirSys); // allocate the array that stores the air sys / zone equp connection data + PrimaryAirSystems.allocate(NumPrimaryAirSys); // allocate the primary air sys data array + AirToZoneNodeInfo.allocate(NumPrimaryAirSys); // allocate the array that stores the air sys / zone equp connection data state.dataAirLoop->AirLoopZoneInfo.allocate(NumPrimaryAirSys); // allocate array that has cleaner list of zones attached to air loop state.dataAirLoop->AirToOANodeInfo.allocate(NumPrimaryAirSys); // allocate the array that stores the OA node connections (reporting) PackagedUnit.allocate(NumPrimaryAirSys); - state.dataAirLoop->AirLoopControlInfo.allocate(NumPrimaryAirSys); + AirLoopControlInfo.allocate(NumPrimaryAirSys); state.dataAirLoop->AirLoopFlow.allocate(NumPrimaryAirSys); state.dataConvergeParams->AirLoopConvergence.allocate(NumPrimaryAirSys); - UnitarySysEqSizing.allocate(NumPrimaryAirSys); + state.dataSize->UnitarySysEqSizing.allocate(NumPrimaryAirSys); if (AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlMultiADS || AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlSimpleADS) { state.dataAirLoop->AirLoopAFNInfo.allocate(NumPrimaryAirSys); @@ -423,13 +429,13 @@ namespace EnergyPlus::SimAirServingZones { NumOASysSimpControllers = 0; OASysContListNum = 0; PackagedUnit(AirSysNum) = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysExists = false; // init Outside Air system connection data to none - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).isAllOA = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysInletNodeNum = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOAHeatCoils = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOACoolCoils = 0; - state.dataAirLoop->AirLoopControlInfo(AirSysNum).FanOpMode = DataHVACGlobals::ContFanCycCoil; // initialize to constant fan mode for all air loops + PrimaryAirSystems(AirSysNum).OASysExists = false; // init Outside Air system connection data to none + PrimaryAirSystems(AirSysNum).isAllOA = false; + PrimaryAirSystems(AirSysNum).OASysInletNodeNum = 0; + PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = 0; + PrimaryAirSystems(AirSysNum).NumOAHeatCoils = 0; + PrimaryAirSystems(AirSysNum).NumOACoolCoils = 0; + AirLoopControlInfo(AirSysNum).FanOpMode = DataHVACGlobals::ContFanCycCoil; // initialize to constant fan mode for all air loops state.dataAirLoop->AirLoopFlow(AirSysNum).FanPLR = 1.0; // initialize to 1 for all air loops CurrentModuleObject = "AirLoopHVAC"; @@ -449,10 +455,10 @@ namespace EnergyPlus::SimAirServingZones { // Assign the air system data to the simulation variables. // Data needed to simulate the system goes into PrimaryAirSystem. - // Data connecting the air system to the zone equioment goes into state.dataAirLoop->AirToZoneNodeInfo (in DataLoopNode). + // Data connecting the air system to the zone equipment goes into AirToZoneNodeInfo (in DataLoopNode). UtilityRoutines::IsNameEmpty(state, Alphas(1), CurrentModuleObject, ErrorsFound); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name = Alphas(1); - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopName = Alphas(1); + PrimaryAirSystems(AirSysNum).Name = Alphas(1); + AirToZoneNodeInfo(AirSysNum).AirLoopName = Alphas(1); if (NumAlphas < 9) { ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + Alphas(1) + "\", insufficient information."); ShowContinueError(state, "...Have supplied less than 9 alpha fields."); @@ -465,24 +471,24 @@ namespace EnergyPlus::SimAirServingZones { ErrorsFound = true; continue; } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).DesignVolFlowRate = Numbers(1); + PrimaryAirSystems(AirSysNum).DesignVolFlowRate = Numbers(1); if (!lNumericBlanks(2)) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).DesignReturnFlowFraction = Numbers(2); + PrimaryAirSystems(AirSysNum).DesignReturnFlowFraction = Numbers(2); } // Only allow one return air node (at the loop level) - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes = 1; + AirToZoneNodeInfo(AirSysNum).NumReturnNodes = 1; // Allocate the return air node arrays - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum.allocate(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes); - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum.allocate(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes); + AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum.allocate(AirToZoneNodeInfo(AirSysNum).NumReturnNodes); + AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum.allocate(AirToZoneNodeInfo(AirSysNum).NumReturnNodes); // fill the return air node arrays with node numbers - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(1) = + AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(1) = GetOnlySingleNode(state, Alphas(6), ErrorsFound, CurrentModuleObject, Alphas(1), NodeType_Air, NodeConnectionType_Inlet, 1, ObjectIsParent); if (!lAlphaBlanks(7)) { - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1) = GetOnlySingleNode(state, + AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1) = GetOnlySingleNode(state, Alphas(7), ErrorsFound, CurrentModuleObject, Alphas(1), NodeType_Air, NodeConnectionType_Outlet, 1, ObjectIsParent); } else { // If no return path, set this to zero to trigger special handling when calling UpdateHVACInterface - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1) = 0; + AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1) = 0; } // work on unique nodes @@ -547,22 +553,22 @@ namespace EnergyPlus::SimAirServingZones { // this test depends on the controlled zone input having been "gotten" test = 0; for (count = 1; count <= state.dataZoneEquip->NumReturnAirPaths; ++count) { - if (state.dataZoneEquip->ReturnAirPath(count).OutletNodeNum == state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1)) { + if (state.dataZoneEquip->ReturnAirPath(count).OutletNodeNum == AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1)) { test = state.dataZoneEquip->ReturnAirPath(count).OutletNodeNum; break; } } - if ((test == 0) && (state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes > 0)) { // there, see if it's in the controlled zone info + if ((test == 0) && (AirToZoneNodeInfo(AirSysNum).NumReturnNodes > 0)) { // there, see if it's in the controlled zone info for (count = 1; count <= state.dataGlobal->NumOfZones; ++count) { for (int retNode = 1; retNode <= state.dataZoneEquip->ZoneEquipConfig(count).NumReturnNodes; ++retNode) { - if (state.dataZoneEquip->ZoneEquipConfig(count).ReturnNode(retNode) != state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1)) continue; + if (state.dataZoneEquip->ZoneEquipConfig(count).ReturnNode(retNode) != AirToZoneNodeInfo(AirSysNum).ZoneEquipReturnNodeNum(1)) continue; test = count; break; } if (test == count) break; } } - if ((test == 0) && (state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes > 0) && !lAlphaBlanks(7)) { + if ((test == 0) && (AirToZoneNodeInfo(AirSysNum).NumReturnNodes > 0) && !lAlphaBlanks(7)) { ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + Alphas(1) + "\", invalid."); ShowContinueError(state, cAlphaFields(7) + " (Return Air Path or ZoneHVAC:EquipmentConnections) not valid = \"" + Alphas(7) + "\"."); ErrorsFound = true; @@ -576,7 +582,7 @@ namespace EnergyPlus::SimAirServingZones { ErrInList, NodeType_Air, CurrentModuleObject, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, NodeConnectionType_Inlet, 1, ObjectIsParent, @@ -589,24 +595,24 @@ namespace EnergyPlus::SimAirServingZones { } // Allow at most 3 supply nodes (for a 3 deck system) if (NumNodes > 3) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", too many nodes."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", too many nodes."); ShowContinueError(state, "Only 1st 3 Nodes will be used from " + cAlphaFields(8) + "=\"" + Alphas(8) + "\"."); ErrorsFound = true; } if (NumNodes == 0) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", too few nodes."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", too few nodes."); ShowContinueError(state, "There must be at least 1 supply node in the system."); ErrorsFound = true; } - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes = NumNodes; - // Allocate the supply node arrays in state.dataAirLoop->AirToZoneNodeInfo - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipSupplyNodeNum.allocate(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum.allocate(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).SupplyDuctType.allocate(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); + AirToZoneNodeInfo(AirSysNum).NumSupplyNodes = NumNodes; + // Allocate the supply node arrays in AirToZoneNodeInfo + AirToZoneNodeInfo(AirSysNum).ZoneEquipSupplyNodeNum.allocate(AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); + AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum.allocate(AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); + AirToZoneNodeInfo(AirSysNum).SupplyDuctType.allocate(AirToZoneNodeInfo(AirSysNum).NumSupplyNodes); // Fill the supply node arrays with node numbers - for (I = 1; I <= state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; ++I) { - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).ZoneEquipSupplyNodeNum(I) = NodeNums(I); - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).SupplyDuctType(I) = 0; + for (I = 1; I <= AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; ++I) { + AirToZoneNodeInfo(AirSysNum).ZoneEquipSupplyNodeNum(I) = NodeNums(I); + AirToZoneNodeInfo(AirSysNum).SupplyDuctType(I) = 0; } ErrInList = false; GetNodeNums(state, @@ -616,7 +622,7 @@ namespace EnergyPlus::SimAirServingZones { ErrInList, NodeType_Air, CurrentModuleObject, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, NodeConnectionType_Outlet, 1, ObjectIsParent, @@ -627,46 +633,46 @@ namespace EnergyPlus::SimAirServingZones { // '", invalid '//TRIM(cAlphaFields(9))//'.') ErrorsFound = true; } - if (NumNodes != state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes) { + if (NumNodes != AirToZoneNodeInfo(AirSysNum).NumSupplyNodes) { ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + Alphas(1) + "\", node mismatch."); ShowContinueError(state, format("...number of air system exit nodes [{}] must match number of zone equip inlet nodes [{}].", NumNodes, - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes)); + AirToZoneNodeInfo(AirSysNum).NumSupplyNodes)); ErrorsFound = true; } - for (I = 1; I <= state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; ++I) { - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(I) = NodeNums(I); + for (I = 1; I <= AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; ++I) { + AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(I) = NodeNums(I); } - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumZonesCooled = 0; - state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumZonesHeated = 0; + AirToZoneNodeInfo(AirSysNum).NumZonesCooled = 0; + AirToZoneNodeInfo(AirSysNum).NumZonesHeated = 0; // Branch, Controller, Availability Manager and Connector List Names to access later ControllerListName = Alphas(2); BranchListName = Alphas(4); AvailManagerListName = Alphas(3); ConnectorListName = Alphas(5); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches = NumBranchesInBranchList(state, BranchListName); - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches == 0) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", insufficient information."); + PrimaryAirSystems(AirSysNum).NumBranches = NumBranchesInBranchList(state, BranchListName); + if (PrimaryAirSystems(AirSysNum).NumBranches == 0) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", insufficient information."); ShowContinueError(state, "...there must be at least 1 branch specified."); ErrorsFound = true; } - BranchNames.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches); + BranchNames.allocate(PrimaryAirSystems(AirSysNum).NumBranches); BranchNames = ""; // get the branch lists GetBranchList(state, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, BranchListName, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches, + PrimaryAirSystems(AirSysNum).NumBranches, BranchNames, "Air"); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches); + PrimaryAirSystems(AirSysNum).Branch.allocate(PrimaryAirSystems(AirSysNum).NumBranches); // Cycle through all of the branches and set up the branch data - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name = BranchNames(BranchNum); + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name = BranchNames(BranchNum); NumCompsOnBranch = NumCompsInBranch(state, BranchNames(BranchNum)); if (NumCompsOnBranch <= 0) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", insufficient information."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", insufficient information."); ShowContinueError(state, "...Branch=\"" + BranchNames(BranchNum) + "\", no components on branch."); ErrorsFound = true; continue; @@ -679,7 +685,7 @@ namespace EnergyPlus::SimAirServingZones { OutletNodeNumbers.dimension(NumCompsOnBranch, 0); GetBranchData(state, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, BranchNames(BranchNum), PressCurveType, PressCurveIndex, @@ -691,70 +697,70 @@ namespace EnergyPlus::SimAirServingZones { OutletNodeNames, OutletNodeNumbers, ErrorsFound); // Placeholders for plant branch pressure data (not used in air loops) - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp.allocate(NumCompsOnBranch); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents = NumCompsOnBranch; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp.allocate(NumCompsOnBranch); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents = NumCompsOnBranch; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalNodes = NumCompsOnBranch + 1; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum.allocate(NumCompsOnBranch + 1); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum(1) = InletNodeNumbers(1); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).DuctType = Main; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalNodes = NumCompsOnBranch + 1; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum.allocate(NumCompsOnBranch + 1); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum(1) = InletNodeNumbers(1); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).DuctType = Main; // If first node is an outdoor air node, then consider this to have a simple OA system (many places check for this) if (OutAirNodeManager::CheckOutAirNodeNumber(state, InletNodeNumbers(1))) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysExists = true; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).isAllOA = true; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysInletNodeNum = InletNodeNumbers(1); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = InletNodeNumbers(1); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OAMixOAInNodeNum = InletNodeNumbers(1); + PrimaryAirSystems(AirSysNum).OASysExists = true; + PrimaryAirSystems(AirSysNum).isAllOA = true; + PrimaryAirSystems(AirSysNum).OASysInletNodeNum = InletNodeNumbers(1); + PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = InletNodeNumbers(1); + PrimaryAirSystems(AirSysNum).OAMixOAInNodeNum = InletNodeNumbers(1); state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysExists = true; state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysInletNodeNum = InletNodeNumbers(1); state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysOutletNodeNum = InletNodeNumbers(1); } - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf = CompTypes(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name = CompNames(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompIndex = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNameIn = InletNodeNames(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNumIn = InletNodeNumbers(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNameOut = OutletNodeNames(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNumOut = OutletNodeNumbers(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum(CompNum + 1) = OutletNodeNumbers(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf = CompTypes(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name = CompNames(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompIndex = 0; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNameIn = InletNodeNames(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNumIn = InletNodeNumbers(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNameOut = OutletNodeNames(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).NodeNumOut = OutletNodeNumbers(CompNum); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNum(CompNum + 1) = OutletNodeNumbers(CompNum); // Check for Outside Air system; if there, store its connection node numbers to primary air system if (UtilityRoutines::SameString(CompTypes(CompNum), "AirLoopHVAC:OutdoorAirSystem")) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysExists) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + + if (PrimaryAirSystems(AirSysNum).OASysExists) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", too many outdoor air systems."); ShowContinueError(state, "Only one AirLoopHVAC:OutdoorAirSystem allowed."); ErrorsFound = true; continue; } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysExists = true; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysInletNodeNum = InletNodeNumbers(CompNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = OutletNodeNumbers(CompNum); + PrimaryAirSystems(AirSysNum).OASysExists = true; + PrimaryAirSystems(AirSysNum).OASysInletNodeNum = InletNodeNumbers(CompNum); + PrimaryAirSystems(AirSysNum).OASysOutletNodeNum = OutletNodeNumbers(CompNum); state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysExists = true; state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysInletNodeNum = InletNodeNumbers(CompNum); state.dataAirLoop->AirToOANodeInfo(AirSysNum).OASysOutletNodeNum = OutletNodeNumbers(CompNum); OANum = GetOASystemNumber(state, CompNames(CompNum)); if (OANum > 0) { NumOASysSimpControllers = GetOASysNumSimpControllers(state, OANum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOAHeatCoils = GetOASysNumHeatingCoils(state, OANum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOACoolCoils = GetOASysNumCoolingCoils(state, OANum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOAHXs = GetOASysNumHXs(state, OANum); + PrimaryAirSystems(AirSysNum).NumOAHeatCoils = GetOASysNumHeatingCoils(state, OANum); + PrimaryAirSystems(AirSysNum).NumOACoolCoils = GetOASysNumCoolingCoils(state, OANum); + PrimaryAirSystems(AirSysNum).NumOAHXs = GetOASysNumHXs(state, OANum); OASysContListNum = GetOASysControllerListIndex(state, OANum); OAMixNum = FindOAMixerMatchForOASystem(state, OANum); if (OAMixNum > 0) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OAMixOAInNodeNum = GetOAMixerInletNodeNumber(state, OAMixNum); + PrimaryAirSystems(AirSysNum).OAMixOAInNodeNum = GetOAMixerInletNodeNumber(state, OAMixNum); } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", item not found."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", item not found."); ShowContinueError(state, "OutdoorAir:Mixer for AirLoopHVAC:OutdoorAirSystem=\"" + CompNames(CompNum) + "\" not found."); ErrorsFound = true; } } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", item not found."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", item not found."); ShowContinueError(state, "AirLoopHVAC:OutdoorAirSystem=\"" + CompNames(CompNum) + "\" not found."); - ShowContinueError(state, " referenced in Branch=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); + ShowContinueError(state, " referenced in Branch=\"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); ErrorsFound = true; } } @@ -787,9 +793,9 @@ namespace EnergyPlus::SimAirServingZones { } // end of component loop - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).ControlType = ""; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn = InletNodeNumbers(1); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut = OutletNodeNumbers(NumCompsOnBranch); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).ControlType = ""; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn = InletNodeNumbers(1); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut = OutletNodeNumbers(NumCompsOnBranch); CompTypes.deallocate(); CompNames.deallocate(); @@ -803,42 +809,42 @@ namespace EnergyPlus::SimAirServingZones { BranchNames.deallocate(); // find and store the primary air system outlet branch reference numbers - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOutletBranches = state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; + PrimaryAirSystems(AirSysNum).NumOutletBranches = AirToZoneNodeInfo(AirSysNum).NumSupplyNodes; for (OutBranchNum = 1; OutBranchNum <= 3; ++OutBranchNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) = 0; - if (OutBranchNum > state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOutletBranches) break; - MatchNodeName(OutBranchNum) = NodeID(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(OutBranchNum)); - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(OutBranchNum) == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) = BranchNum; + PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) = 0; + if (OutBranchNum > PrimaryAirSystems(AirSysNum).NumOutletBranches) break; + MatchNodeName(OutBranchNum) = NodeID(AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(OutBranchNum)); + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + if (AirToZoneNodeInfo(AirSysNum).AirLoopSupplyNodeNum(OutBranchNum) == PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut) { + PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) = BranchNum; } } } // Check for errors - for (OutBranchNum = 1; OutBranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumOutletBranches; ++OutBranchNum) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) != 0) continue; - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", branch in error."); + for (OutBranchNum = 1; OutBranchNum <= PrimaryAirSystems(AirSysNum).NumOutletBranches; ++OutBranchNum) { + if (PrimaryAirSystems(AirSysNum).OutletBranchNum(OutBranchNum) != 0) continue; + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", branch in error."); ShowContinueError(state, "Probable missing or misspelled node referenced in the branch(es):"); - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - ShowContinueError(state, "Possible Error in Branch Object=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + ShowContinueError(state, "Possible Error in Branch Object=\"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); } ShowContinueError(state, "...looking to match to Node=\"" + MatchNodeName(OutBranchNum) + "\"."); ErrorsFound = true; } // find and store the primary air system inlet branch numbers - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumInletBranches = state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).NumReturnNodes; - for (InBranchNum = 1; InBranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumInletBranches; ++InBranchNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) = 0; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(InBranchNum) == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) = BranchNum; + PrimaryAirSystems(AirSysNum).NumInletBranches = AirToZoneNodeInfo(AirSysNum).NumReturnNodes; + for (InBranchNum = 1; InBranchNum <= PrimaryAirSystems(AirSysNum).NumInletBranches; ++InBranchNum) { + PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) = 0; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + if (AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(InBranchNum) == PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn) { + PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) = BranchNum; } } - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) == 0) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", connection to zone."); + if (PrimaryAirSystems(AirSysNum).InletBranchNum(InBranchNum) == 0) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", connection to zone."); ShowContinueError(state, "No Connection found for Return Air from Zone"); - ShowContinueError(state, "Expected node name =\"" + NodeID(state.dataAirLoop->AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(InBranchNum)) + "\"."); + ShowContinueError(state, "Expected node name =\"" + NodeID(AirToZoneNodeInfo(AirSysNum).AirLoopReturnNodeNum(InBranchNum)) + "\"."); ErrorsFound = true; } } @@ -859,7 +865,7 @@ namespace EnergyPlus::SimAirServingZones { MixerExists = true; } } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", connector list object."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", connector list object."); ShowContinueError(state, "ConnectorList object=\"" + ConnectorListName + "\" not found in input."); } errFlag = false; @@ -874,41 +880,41 @@ namespace EnergyPlus::SimAirServingZones { NodeNames.allocate(NumAlphas); NodeNumbers.allocate(NumAlphas); GetLoopSplitter(state, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, ConnectorListName, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.Name, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.Exists, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNameIn, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes, + PrimaryAirSystems(AirSysNum).Splitter.Name, + PrimaryAirSystems(AirSysNum).Splitter.Exists, + PrimaryAirSystems(AirSysNum).Splitter.NodeNameIn, + PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn, + PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes, NodeNames, NodeNumbers, ErrorsFound); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); + PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut.allocate(PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); + PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut.allocate(PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); + PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut.allocate(PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes); - for (NodeNum = 1; NodeNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes; ++NodeNum) { + for (NodeNum = 1; NodeNum <= PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes; ++NodeNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut(NodeNum) = NodeNames(NodeNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut(NodeNum) = NodeNumbers(NodeNum); + PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut(NodeNum) = NodeNames(NodeNum); + PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut(NodeNum) = NodeNumbers(NodeNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut(NodeNum) = 0; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut(NodeNum) = 0; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut(NodeNum)) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut(NodeNum) = BranchNum; + if (PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut(NodeNum)) { + PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut(NodeNum) = BranchNum; break; } } } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = 0; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = 0; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = BranchNum; + if (PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumOut == PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn) { + PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = BranchNum; break; } } @@ -919,14 +925,14 @@ namespace EnergyPlus::SimAirServingZones { } } else { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.Exists = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNameIn = ""; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut.allocate(0); + PrimaryAirSystems(AirSysNum).Splitter.Exists = false; + PrimaryAirSystems(AirSysNum).Splitter.NodeNumIn = 0; + PrimaryAirSystems(AirSysNum).Splitter.BranchNumIn = 0; + PrimaryAirSystems(AirSysNum).Splitter.NodeNameIn = ""; + PrimaryAirSystems(AirSysNum).Splitter.TotalOutletNodes = 0; + PrimaryAirSystems(AirSysNum).Splitter.NodeNumOut.allocate(0); + PrimaryAirSystems(AirSysNum).Splitter.BranchNumOut.allocate(0); + PrimaryAirSystems(AirSysNum).Splitter.NodeNameOut.allocate(0); } // If there is a MIXER, get its data @@ -935,41 +941,41 @@ namespace EnergyPlus::SimAirServingZones { NodeNames.allocate(NumAlphas); NodeNumbers.allocate(NumAlphas); GetLoopMixer(state, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name, + PrimaryAirSystems(AirSysNum).Name, ConnectorListName, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.Name, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.Exists, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNameOut, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes, + PrimaryAirSystems(AirSysNum).Mixer.Name, + PrimaryAirSystems(AirSysNum).Mixer.Exists, + PrimaryAirSystems(AirSysNum).Mixer.NodeNameOut, + PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut, + PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes, NodeNames, NodeNumbers, ErrorsFound); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn.allocate(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); + PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn.allocate(PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); + PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn.allocate(PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); + PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn.allocate(PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes); - for (NodeNum = 1; NodeNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes; ++NodeNum) { + for (NodeNum = 1; NodeNum <= PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes; ++NodeNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn(NodeNum) = NodeNames(NodeNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn(NodeNum) = NodeNumbers(NodeNum); + PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn(NodeNum) = NodeNames(NodeNum); + PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn(NodeNum) = NodeNumbers(NodeNum); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn(NodeNum) = 0; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn(NodeNum) = 0; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn(NodeNum)) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn(NodeNum) = BranchNum; + if (PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn(NodeNum)) { + PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn(NodeNum) = BranchNum; break; } } } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = 0; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = 0; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = BranchNum; + if (PrimaryAirSystems(AirSysNum).Branch(BranchNum).NodeNumIn == PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut) { + PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = BranchNum; break; } } @@ -980,14 +986,14 @@ namespace EnergyPlus::SimAirServingZones { } } else { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.Exists = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNameOut = ""; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn.allocate(0); + PrimaryAirSystems(AirSysNum).Mixer.Exists = false; + PrimaryAirSystems(AirSysNum).Mixer.NodeNumOut = 0; + PrimaryAirSystems(AirSysNum).Mixer.BranchNumOut = 0; + PrimaryAirSystems(AirSysNum).Mixer.NodeNameOut = ""; + PrimaryAirSystems(AirSysNum).Mixer.TotalInletNodes = 0; + PrimaryAirSystems(AirSysNum).Mixer.NodeNumIn.allocate(0); + PrimaryAirSystems(AirSysNum).Mixer.BranchNumIn.allocate(0); + PrimaryAirSystems(AirSysNum).Mixer.NodeNameIn.allocate(0); } NumControllers = 0; @@ -999,30 +1005,30 @@ namespace EnergyPlus::SimAirServingZones { // Check the current controller list and if it matches input names NumControllers = (NumAlphas - 1) / 2; // Subtract off the controller list name first // store all the controller data - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumControllers = NumControllers + NumOASysSimpControllers; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerName.allocate(NumControllers + NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerType.allocate(NumControllers + NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerIndex.allocate(NumControllers + NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerIndex = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged.allocate(NumControllers + NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(NumControllers + NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).NumControllers = NumControllers + NumOASysSimpControllers; + PrimaryAirSystems(AirSysNum).ControllerName.allocate(NumControllers + NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerType.allocate(NumControllers + NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerIndex.allocate(NumControllers + NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerIndex = 0; + PrimaryAirSystems(AirSysNum).ControlConverged.allocate(NumControllers + NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(NumControllers + NumOASysSimpControllers); for (ControllerNum = NumOASysSimpControllers + 1; ControllerNum <= NumOASysSimpControllers + NumControllers; ++ControllerNum) { ControllerName = Alphas((ControllerNum - NumOASysSimpControllers) * 2 + 1); ControllerType = Alphas((ControllerNum - NumOASysSimpControllers) * 2); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerName(ControllerNum) = ControllerName; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerType(ControllerNum) = ControllerType; + PrimaryAirSystems(AirSysNum).ControllerName(ControllerNum) = ControllerName; + PrimaryAirSystems(AirSysNum).ControllerType(ControllerNum) = ControllerType; IsNotOK = false; ValidateComponent(state, ControllerType, ControllerName, IsNotOK, CurrentModuleObject); if (IsNotOK) { - ShowContinueError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + + ShowContinueError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", for ControllerList=\"" + ControllerListName + "\"."); ErrorsFound = true; } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged(ControllerNum) = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(ControllerNum) = false; + PrimaryAirSystems(AirSysNum).ControlConverged(ControllerNum) = false; + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(ControllerNum) = false; } // End of ControllerListNum Loop } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\", controller list object."); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\", controller list object."); ShowContinueError(state, "ControllerList object=\"" + ControllerListName + "\" not found in input."); ErrorsFound = true; } @@ -1031,15 +1037,15 @@ namespace EnergyPlus::SimAirServingZones { inputProcessor->getObjectItem(state, "AirLoopHVAC:ControllerList", OASysContListNum, Alphas, NumAlphas, Numbers, NumNumbers, IOStat); // allocate air primary system controller lists if not already done if (NumControllers == 0) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumControllers = NumOASysSimpControllers; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerName.allocate(NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerType.allocate(NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerIndex.allocate(NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerIndex = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged.allocate(NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(NumOASysSimpControllers); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono = false; + PrimaryAirSystems(AirSysNum).NumControllers = NumOASysSimpControllers; + PrimaryAirSystems(AirSysNum).ControllerName.allocate(NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerType.allocate(NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerIndex.allocate(NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControllerIndex = 0; + PrimaryAirSystems(AirSysNum).ControlConverged.allocate(NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(NumOASysSimpControllers); + PrimaryAirSystems(AirSysNum).ControlConverged = false; + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono = false; } // loop over the OA Sys controllers and move them up to the primary air system controller lists OASysControllerNum = 0; @@ -1049,20 +1055,20 @@ namespace EnergyPlus::SimAirServingZones { ControllerType = Alphas(ControllerNum * 2); if (!UtilityRoutines::SameString(ControllerType, "Controller:OutdoorAir")) { ++OASysControllerNum; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerName(OASysControllerNum) = ControllerName; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerType(OASysControllerNum) = ControllerType; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged(OASysControllerNum) = false; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(OASysControllerNum) = true; + PrimaryAirSystems(AirSysNum).ControllerName(OASysControllerNum) = ControllerName; + PrimaryAirSystems(AirSysNum).ControllerType(OASysControllerNum) = ControllerType; + PrimaryAirSystems(AirSysNum).ControlConverged(OASysControllerNum) = false; + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(OASysControllerNum) = true; GetControllerActuatorNodeNum(state, ControllerName, ActuatorNodeNum, errFlag); bool nonLockoutCoilFound = false; WaterCoilNodeNum = -1; // added to fix bug issue #5695, if HW coil on outdoor air system, don't lock out during economizing if (OANum > 0) { - for (int OACompNum = 1; OACompNum <= state.dataAirLoop->OutsideAirSys(OANum).NumComponents; ++OACompNum) { - CompType = state.dataAirLoop->OutsideAirSys(OANum).ComponentType(OACompNum); + for (int OACompNum = 1; OACompNum <= OutsideAirSys(OANum).NumComponents; ++OACompNum) { + CompType = OutsideAirSys(OANum).ComponentType(OACompNum); if (UtilityRoutines::SameString(CompType, "Coil:Heating:Water")) { - WaterCoilNodeNum = GetCoilWaterInletNode(state, CompType, state.dataAirLoop->OutsideAirSys(OANum).ComponentName(OACompNum), ErrorsFound); + WaterCoilNodeNum = GetCoilWaterInletNode(state, CompType, OutsideAirSys(OANum).ComponentName(OACompNum), ErrorsFound); if (WaterCoilNodeNum == ActuatorNodeNum) nonLockoutCoilFound = true; break; } @@ -1073,17 +1079,17 @@ namespace EnergyPlus::SimAirServingZones { // OA system controller list. The CanBeLockedOutByEcono should only be set for OA coils // First get the OA controller actuator node and then compare to the air loop coil water inlet node // If these node numbers match, the coil is in the main air loop and the lockout flag should be reset to FALSE - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { - if (UtilityRoutines::SameString(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf, + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { + if (UtilityRoutines::SameString(PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf, "AirloopHVAC:OutdoorAirSystem")) continue; - CompType = state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf; + CompType = PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf; if (UtilityRoutines::SameString(CompType, "Coil:Cooling:Water:DetailedGeometry") || UtilityRoutines::SameString(CompType, "Coil:Heating:Water") || UtilityRoutines::SameString(CompType, "Coil:Cooling:Water")) { WaterCoilNodeNum = GetCoilWaterInletNode(state, - CompType, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, ErrorsFound); + CompType, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, ErrorsFound); if (WaterCoilNodeNum == ActuatorNodeNum) { nonLockoutCoilFound = true; break; @@ -1093,27 +1099,27 @@ namespace EnergyPlus::SimAirServingZones { } } if (nonLockoutCoilFound) { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(OASysControllerNum) = false; + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono(OASysControllerNum) = false; } } } } if (NumControllers + NumOASysSimpControllers == 0) { if (!PackagedUnit(AirSysNum)) { - ShowWarningError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\" has no Controllers."); + ShowWarningError(state, RoutineName + CurrentModuleObject + "=\"" + PrimaryAirSystems(AirSysNum).Name + "\" has no Controllers."); } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumControllers = 0; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerName.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControllerType.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).ControlConverged.allocate(0); - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(0); + PrimaryAirSystems(AirSysNum).NumControllers = 0; + PrimaryAirSystems(AirSysNum).ControllerName.allocate(0); + PrimaryAirSystems(AirSysNum).ControllerType.allocate(0); + PrimaryAirSystems(AirSysNum).ControlConverged.allocate(0); + PrimaryAirSystems(AirSysNum).CanBeLockedOutByEcono.allocate(0); } errFlag = false; GetAirLoopAvailabilityManager(state, AvailManagerListName, AirSysNum, NumPrimaryAirSys, errFlag); if (errFlag) { - ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name); + ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + PrimaryAirSystems(AirSysNum).Name); ErrorsFound = true; } @@ -1128,157 +1134,157 @@ namespace EnergyPlus::SimAirServingZones { TestUniqueNodes.deallocate(); for (AirSysNum = 1; AirSysNum <= NumPrimaryAirSys; ++AirSysNum) { - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { { - auto const componentType(uppercased(state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf)); + auto const componentType(uppercased(PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf)); if (componentType == "AIRLOOPHVAC:OUTDOORAIRSYSTEM") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = OAMixer_Num; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = OAMixer_Num; // Fan Types for the air sys simulation } else if (componentType == "FAN:CONSTANTVOLUME") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_Simple_CV; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_Simple_CV; } else if (componentType == "FAN:VARIABLEVOLUME") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_Simple_VAV; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_Simple_VAV; } else if (componentType == "FAN:SYSTEMMODEL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_System_Object; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_System_Object; // Construct fan object - if (HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, false) < 0) { + if (HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, false) < 0) { HVACFan::fanObjs.emplace_back( - new HVACFan::FanSystem(state, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)); + new HVACFan::FanSystem(state, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)); } - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompIndex = - HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name) + + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompIndex = + HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name) + 1; // + 1 for shift from zero-based vector to 1-based compIndex - HVACFan::fanObjs[HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)] + HVACFan::fanObjs[HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)] ->AirPathFlag = true; } else if (componentType == "FAN:COMPONENTMODEL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_ComponentModel; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Fan_ComponentModel; // Coil Types for the air sys simulation // HX Assisted coils are not allowed on a branch at this time // CASE('COILSYSTEM:COOLING:DX:HEATEXCHANGERASSISTED') // PrimaryAirSystem(AirSysNum)%Branch(BranchNum)%Comp(CompNum)%CompType_Num=DXCoil_CoolingHXAsst } else if (componentType == "COILSYSTEM:COOLING:WATER:HEATEXCHANGERASSISTED") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_CoolingHXAsst; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_CoolingHXAsst; } else if (componentType == "COIL:HEATING:WATER") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_SimpleHeat; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_SimpleHeat; } else if (componentType == "COIL:HEATING:STEAM") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = SteamCoil_AirHeat; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = SteamCoil_AirHeat; } else if (componentType == "COIL:COOLING:WATER:DETAILEDGEOMETRY") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_DetailedCool; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_DetailedCool; } else if (componentType == "COIL:COOLING:WATER") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_Cooling; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = WaterCoil_Cooling; } else if (componentType == "COIL:HEATING:ELECTRIC") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_ElectricHeat; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_ElectricHeat; } else if (componentType == "COIL:HEATING:FUEL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_GasHeat; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_GasHeat; // Heat reclaim } else if (componentType == "COIL:HEATING:DESUPERHEATER") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_DeSuperHeat; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Coil_DeSuperHeat; } else if (componentType == "COILSYSTEM:COOLING:DX") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = DXSystem; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = DXSystem; } else if (componentType == "COILSYSTEM:HEATING:DX") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = DXHeatPumpSystem; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = DXHeatPumpSystem; } else if (componentType == "COIL:USERDEFINED") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = CoilUserDefined; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = CoilUserDefined; } else if (componentType == "AIRLOOPHVAC:UNITARYSYSTEM") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystemModel; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystemModel; UnitarySystems::UnitarySys thisSys; - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).compPointer = + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).compPointer = thisSys.factory(state, DataHVACGlobals::UnitarySys_AnyCoilType, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, false, 0); } else if (componentType == "AIRLOOPHVAC:UNITARY:FURNACE:HEATONLY") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatOnly; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatOnly; } else if (componentType == "AIRLOOPHVAC:UNITARY:FURNACE:HEATCOOL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATONLY") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatOnly; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatOnly; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATCOOL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATPUMP:AIRTOAIR") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Furnace_UnitarySys_HeatCool; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATCOOL:VAVCHANGEOVERBYPASS") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystem_BypassVAVSys; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystem_BypassVAVSys; // Humidifier Types for the air system simulation } else if (componentType == "HUMIDIFIER:STEAM:ELECTRIC") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Humidifier; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Humidifier; } else if (componentType == "HUMIDIFIER:STEAM:GAS") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Humidifier; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Humidifier; // Evap Cooler Types for the air system simulation } else if (componentType == "EVAPORATIVECOOLER:DIRECT:CELDEKPAD") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; } else if (componentType == "EVAPORATIVECOOLER:INDIRECT:CELDEKPAD") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; } else if (componentType == "EVAPORATIVECOOLER:INDIRECT:WETCOIL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; } else if (componentType == "EVAPORATIVECOOLER:INDIRECT:RESEARCHSPECIAL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; } else if (componentType == "EVAPORATIVECOOLER:DIRECT:RESEARCHSPECIAL") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = EvapCooler; // Desiccant Dehumidifier Types for the air system simulation } else if (componentType == "DEHUMIDIFIER:DESICCANT:NOFANS") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Desiccant; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Desiccant; } else if (componentType == "DEHUMIDIFIER:DESICCANT:SYSTEM") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Desiccant; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Desiccant; // Heat recovery } else if (componentType == "HEATEXCHANGER:AIRTOAIR:FLATPLATE") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; } else if (componentType == "HEATEXCHANGER:AIRTOAIR:SENSIBLEANDLATENT") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; } else if (componentType == "HEATEXCHANGER:DESICCANT:BALANCEDFLOW") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = HeatXchngr; // Ducts } else if (componentType == "DUCT") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Duct; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = Duct; } else if (componentType == "AIRLOOPHVAC:UNITARYHEATPUMP:AIRTOAIR:MULTISPEED") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystem_MSHeatPump; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = UnitarySystem_MSHeatPump; } else if (componentType == "ZONEHVAC:TERMINALUNIT:VARIABLEREFRIGERANTFLOW") { - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = ZoneVRFasAirLoopEquip; + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = ZoneVRFasAirLoopEquip; } else if (componentType == "FAN:ONOFF" || componentType == "COIL:COOLING:DX:SINGLESPEED" || componentType == "COIL:HEATING:DX:SINGLESPEED" || componentType == "COIL:COOLING:DX:TWOSTAGEWITHHUMIDITYCONTROLMODE" || componentType == "COIL:COOLING:DX:MULTISPEED" || componentType == "COIL:HEATING:DX:MULTISPEED") { - ShowSevereError(state, RoutineName + CurrentModuleObject + " = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\"."); + ShowSevereError(state, RoutineName + CurrentModuleObject + " = \"" + PrimaryAirSystems(AirSysNum).Name + "\"."); ShowContinueError(state, "..Invalid Air Loop Component Type = \"" + - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf + "\"."); - ShowContinueError(state, "..Air Loop Component Name = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf + "\"."); + ShowContinueError(state, "..Air Loop Component Name = \"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + "\"."); - ShowContinueError(state, "..reference Branch = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); + ShowContinueError(state, "..reference Branch = \"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); ShowContinueError(state, "...This component may only be referenced by a parent component such as " "AirLoopHVAC:Unitary:Furnace:HeatCool or similar."); ErrorsFound = true; } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + " = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name + "\"."); + ShowSevereError(state, RoutineName + CurrentModuleObject + " = \"" + PrimaryAirSystems(AirSysNum).Name + "\"."); ShowContinueError(state, "..Invalid Air Loop Component Type = \"" + - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf + "\"."); - ShowContinueError(state, "..Air Loop Component Name = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf + "\"."); + ShowContinueError(state, "..Air Loop Component Name = \"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + "\"."); - ShowContinueError(state, "..reference Branch = \"" + state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); + ShowContinueError(state, "..reference Branch = \"" + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Name + "\"."); ErrorsFound = true; } } @@ -1289,18 +1295,18 @@ namespace EnergyPlus::SimAirServingZones { // check that actuator nodes are matched by a water coil inlet node for (AirSysNum = 1; AirSysNum <= NumPrimaryAirSys; ++AirSysNum) { - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { - CompType_Num = state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { + CompType_Num = PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num; if (CompType_Num == WaterCoil_DetailedCool || CompType_Num == WaterCoil_SimpleHeat || CompType_Num == WaterCoil_Cooling) { - WaterCoilNodeNum = GetCoilWaterInletNode(state, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf, - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, + WaterCoilNodeNum = GetCoilWaterInletNode(state, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).TypeOf, + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, ErrorsFound); CheckCoilWaterInletNode(state, WaterCoilNodeNum, NodeNotFound); if (NodeNotFound) { ErrorsFound = true; ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + "\", invalid actuator."); + PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name + "\", invalid actuator."); ShowContinueError(state, "...this coil requires a water coil controller and the inlet node of a water coil must also be an " "actuator node of a water coil controller."); } @@ -1338,7 +1344,7 @@ namespace EnergyPlus::SimAirServingZones { state.dataAirLoop->PriAirSysAvailMgr(AirSysNum).AvailStatus, "HVAC", "Average", - state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Name); + PrimaryAirSystems(AirSysNum).Name); } state.dataAirLoopHVACDOAS->numAirLoopDOAS = inputProcessor->getNumObjectsFound(state, "AirLoopHVAC:DedicatedOutdoorAirSystem"); @@ -1452,11 +1458,15 @@ namespace EnergyPlus::SimAirServingZones { ErrorsFound = false; AirLoopInit = true; + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); + // Do the one time initializations if (state.dataSimAirServingZones->InitAirLoopsOneTimeFlag) { // Figure out what zones are served by each primary air system (air loop) and - // store the results in state.dataAirLoop->AirToZoneNodeInfo()%CoolCtrlZoneNums and state.dataAirLoop->AirToZoneNodeInfo()%HeatCtrlZoneNums + // store the results in AirToZoneNodeInfo()%CoolCtrlZoneNums and AirToZoneNodeInfo()%HeatCtrlZoneNums // Allocate scratch arrays for storing controlled zone numbers for each air loop. CtrlZoneNumsCool.allocate(state.dataGlobal->NumOfZones); @@ -1603,19 +1613,19 @@ namespace EnergyPlus::SimAirServingZones { NumComponentsInSys = 0; // count the number of components in this primary air system - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { - NumComponentsInSys += state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + NumComponentsInSys += PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; } // set the Simple flag - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches == 1 && NumComponentsInSys == 1) { - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).Simple = true; + if (PrimaryAirSystems(AirLoopNum).NumBranches == 1 && NumComponentsInSys == 1) { + AirLoopControlInfo(AirLoopNum).Simple = true; } // loop over the air loop's output nodes - for (OutNum = 1; OutNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++OutNum) { - ZoneSideNodeNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(OutNum); + for (OutNum = 1; OutNum <= AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++OutNum) { + ZoneSideNodeNum = AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(OutNum); // find the corresponding branch number - OutBranchNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OutletBranchNum(OutNum); + OutBranchNum = PrimaryAirSystems(AirLoopNum).OutletBranchNum(OutNum); // find the supply air path corresponding to each air loop outlet node SupAirPathNum = 0; // loop over the air loop's output nodes @@ -1643,7 +1653,7 @@ namespace EnergyPlus::SimAirServingZones { // Look for a match between the zone splitter outlet node and the air distribution unit inlet node. // When match found save the controlled zone number in CtrlZoneNumsCool or CtrlZoneNumsHeat for (ZoneInNum = 1; ZoneInNum <= state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).NumInletNodes; ++ZoneInNum) { - NumComponentsOnBranch = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).TotalComponents; + NumComponentsOnBranch = PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).TotalComponents; // BEGIN COOLING: Check for a match between the cooling air distribution unit inlet // and the supply air path outlet @@ -1652,10 +1662,10 @@ namespace EnergyPlus::SimAirServingZones { ++NumZonesCool; // Set Duct Type for branch for dual duct if (NumZonesCool == 1 && OutBranchNum > 1) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Cooling; + PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Cooling; } if (NumZonesCool == 1) { - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).SupplyDuctType(OutNum) = Cooling; + AirToZoneNodeInfo(AirLoopNum).SupplyDuctType(OutNum) = Cooling; } CtrlZoneNumsCool(NumZonesCool) = CtrlZoneNum; ZoneInletNodesCool(NumZonesCool) = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNode(ZoneInNum); @@ -1663,7 +1673,7 @@ namespace EnergyPlus::SimAirServingZones { TermUnitSizingNumsCool(NumZonesCool) = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).AirDistUnitCool(ZoneInNum).TermUnitSizingIndex; if (AirLoopNum > 0) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysExists) { + if (PrimaryAirSystems(AirLoopNum).OASysExists) { state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneHasAirLoopWithOASys = true; } } @@ -1688,10 +1698,10 @@ namespace EnergyPlus::SimAirServingZones { ++NumZonesHeat; // Set Duct Type for branch for dual duct if (NumZonesHeat == 1 && OutBranchNum > 1) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Heating; + PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Heating; } if (NumZonesHeat == 1) { - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).SupplyDuctType(OutNum) = Heating; + AirToZoneNodeInfo(AirLoopNum).SupplyDuctType(OutNum) = Heating; } CtrlZoneNumsHeat(NumZonesHeat) = CtrlZoneNum; ZoneInletNodesHeat(NumZonesHeat) = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNode(ZoneInNum); @@ -1745,7 +1755,7 @@ namespace EnergyPlus::SimAirServingZones { ++NumZonesCool; // Set Duct Type for branch for dual duct if (NumZonesCool == 1 && OutBranchNum > 1) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Cooling; + PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Cooling; } CtrlZoneNumsCool(NumZonesCool) = CtrlZoneNum; ZoneInletNodesCool(NumZonesCool) = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNode(ZoneInNum); @@ -1761,7 +1771,7 @@ namespace EnergyPlus::SimAirServingZones { ++NumZonesHeat; // Set Duct Type for branch for dual duct if (NumZonesHeat == 1 && OutBranchNum > 1) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Heating; + PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).DuctType = Heating; } CtrlZoneNumsHeat(NumZonesHeat) = CtrlZoneNum; ZoneInletNodesHeat(NumZonesHeat) = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNode(ZoneInNum); @@ -1779,77 +1789,77 @@ namespace EnergyPlus::SimAirServingZones { } // we now know the number of heated and cooled zones served by this primary air system. - // Allocate the subarrays in state.dataAirLoop->AirToZoneNodeInfo - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums.allocate(NumZonesCool); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums.allocate(NumZonesHeat); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolZoneInletNodes.allocate(NumZonesCool); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatZoneInletNodes.allocate(NumZonesHeat); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes.allocate(NumZonesCool); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatInletNodes.allocate(NumZonesHeat); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex.allocate(NumZonesCool); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex.allocate(NumZonesHeat); - // Move the controlled zone numbers from the scratch arrays into state.dataAirLoop->AirToZoneNodeInfo + // Allocate the subarrays in AirToZoneNodeInfo + AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums.allocate(NumZonesCool); + AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums.allocate(NumZonesHeat); + AirToZoneNodeInfo(AirLoopNum).CoolZoneInletNodes.allocate(NumZonesCool); + AirToZoneNodeInfo(AirLoopNum).HeatZoneInletNodes.allocate(NumZonesHeat); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes.allocate(NumZonesCool); + AirToZoneNodeInfo(AirLoopNum).TermUnitHeatInletNodes.allocate(NumZonesHeat); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex.allocate(NumZonesCool); + AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex.allocate(NumZonesHeat); + // Move the controlled zone numbers from the scratch arrays into AirToZoneNodeInfo for (ZoneInSysIndex = 1; ZoneInSysIndex <= NumZonesCool; ++ZoneInSysIndex) { - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZoneInSysIndex) = CtrlZoneNumsCool(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolZoneInletNodes(ZoneInSysIndex) = ZoneInletNodesCool(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes(ZoneInSysIndex) = TermInletNodesCool(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZoneInSysIndex) = TermUnitSizingNumsCool(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZoneInSysIndex) = CtrlZoneNumsCool(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).CoolZoneInletNodes(ZoneInSysIndex) = ZoneInletNodesCool(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes(ZoneInSysIndex) = TermInletNodesCool(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZoneInSysIndex) = TermUnitSizingNumsCool(ZoneInSysIndex); } for (ZoneInSysIndex = 1; ZoneInSysIndex <= NumZonesHeat; ++ZoneInSysIndex) { - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZoneInSysIndex) = CtrlZoneNumsHeat(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatZoneInletNodes(ZoneInSysIndex) = ZoneInletNodesHeat(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatInletNodes(ZoneInSysIndex) = TermInletNodesHeat(ZoneInSysIndex); - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZoneInSysIndex) = TermUnitSizingNumsHeat(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZoneInSysIndex) = CtrlZoneNumsHeat(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).HeatZoneInletNodes(ZoneInSysIndex) = ZoneInletNodesHeat(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).TermUnitHeatInletNodes(ZoneInSysIndex) = TermInletNodesHeat(ZoneInSysIndex); + AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZoneInSysIndex) = TermUnitSizingNumsHeat(ZoneInSysIndex); } - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled = NumZonesCool; - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated = NumZonesHeat; + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled = NumZonesCool; + AirToZoneNodeInfo(AirLoopNum).NumZonesHeated = NumZonesHeat; if ((NumZonesCool + NumZonesHeat) == 0) { - ShowSevereError(state, "An outlet node in AirLoopHVAC=\"" + state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name + "\" is not connected to any zone"); + ShowSevereError(state, "An outlet node in AirLoopHVAC=\"" + PrimaryAirSystems(AirLoopNum).Name + "\" is not connected to any zone"); ShowContinueError(state, "Could not match ZoneEquipGroup Inlet Node=\"" + NodeID(ZoneSideNodeNum) + "\" to any Supply Air Path or controlled zone"); ErrorsFound = true; } // now fill the return air bypass information needed by the RAB setpoint manager - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.Exists && state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.Exists) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABExists = true; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + if (PrimaryAirSystems(AirLoopNum).Splitter.Exists && PrimaryAirSystems(AirLoopNum).Mixer.Exists) { + PrimaryAirSystems(AirLoopNum).RABExists = true; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // find the RAB branch; its inlet is a splitter outlet and it outlet is a mixer inlet - if ((state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1) || - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(2)) && - (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1) || - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(2)) && - (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents == 1) && - (UtilityRoutines::SameString(state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(1).TypeOf, "Duct"))) { + if ((PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn == PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1) || + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn == PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(2)) && + (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut == PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1) || + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut == PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(2)) && + (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents == 1) && + (UtilityRoutines::SameString(PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(1).TypeOf, "Duct"))) { // set the RAB splitter outlet node and the RAB mixer inlet node - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABSplitOutNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABMixInNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut; + PrimaryAirSystems(AirLoopNum).RABSplitOutNode = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumIn; + PrimaryAirSystems(AirLoopNum).RABMixInNode = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNumOut; // set the other nodes - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1) == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABSplitOutNode) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OtherSplitOutNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(2); + if (PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1) == PrimaryAirSystems(AirLoopNum).RABSplitOutNode) { + PrimaryAirSystems(AirLoopNum).OtherSplitOutNode = PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(2); } else { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OtherSplitOutNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1); + PrimaryAirSystems(AirLoopNum).OtherSplitOutNode = PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(1); } - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1) == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABMixInNode) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).SupMixInNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(2); + if (PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1) == PrimaryAirSystems(AirLoopNum).RABMixInNode) { + PrimaryAirSystems(AirLoopNum).SupMixInNode = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(2); } else { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).SupMixInNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1); + PrimaryAirSystems(AirLoopNum).SupMixInNode = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1); } // set the duct type - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType = RAB; + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType = RAB; } } - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).MixOutNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumOut; + PrimaryAirSystems(AirLoopNum).MixOutNode = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumOut; } } - // now fill out state.dataAirLoop->AirLoopZoneInfo for cleaner struct of zones attached to air loop, moved from MixedAir to here for use with Std. 62.1 + // now fill out AirLoopZoneInfo for cleaner struct of zones attached to air loop, moved from MixedAir to here for use with Std. 62.1 int MaxNumAirLoopZones = 0; for (int NumofAirLoop = 1; NumofAirLoop <= NumPrimaryAirSys; ++NumofAirLoop) { - int NumAirLoopZones = state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).NumZonesCooled + state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).NumZonesHeated; + int NumAirLoopZones = AirToZoneNodeInfo(NumofAirLoop).NumZonesCooled + AirToZoneNodeInfo(NumofAirLoop).NumZonesHeated; // NumZonesCooled + NumZonesHeated must be > 0 or Fatal error is issued in SimAirServingZones MaxNumAirLoopZones = max(MaxNumAirLoopZones, NumAirLoopZones); // Max number of zones on any air loop being simulated } @@ -1857,23 +1867,23 @@ namespace EnergyPlus::SimAirServingZones { for (int NumofAirLoop = 1; NumofAirLoop <= NumPrimaryAirSys; ++NumofAirLoop) { state.dataAirLoop->AirLoopZoneInfo(NumofAirLoop).Zone.allocate(MaxNumAirLoopZones); state.dataAirLoop->AirLoopZoneInfo(NumofAirLoop).ActualZoneNumber.allocate(MaxNumAirLoopZones); - int NumAirLoopCooledZones = state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).NumZonesCooled; + int NumAirLoopCooledZones = AirToZoneNodeInfo(NumofAirLoop).NumZonesCooled; int AirLoopZones = NumAirLoopCooledZones; - int NumAirLoopHeatedZones = state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).NumZonesHeated; - // Store cooling zone numbers in state.dataAirLoop->AirLoopZoneInfo data structure + int NumAirLoopHeatedZones = AirToZoneNodeInfo(NumofAirLoop).NumZonesHeated; + // Store cooling zone numbers in AirLoopZoneInfo data structure for (int NumAirLoopCooledZonesTemp = 1; NumAirLoopCooledZonesTemp <= NumAirLoopCooledZones; ++NumAirLoopCooledZonesTemp) { state.dataAirLoop->AirLoopZoneInfo(NumofAirLoop).Zone(NumAirLoopCooledZonesTemp) = - state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp); + AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp); state.dataAirLoop->AirLoopZoneInfo(NumofAirLoop).ActualZoneNumber(NumAirLoopCooledZonesTemp) = - state.dataZoneEquip->ZoneEquipConfig(state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp)).ActualZoneNum; + state.dataZoneEquip->ZoneEquipConfig(AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp)).ActualZoneNum; } - // Store heating zone numbers in state.dataAirLoop->AirLoopZoneInfo data structure + // Store heating zone numbers in AirLoopZoneInfo data structure // Only store zone numbers that aren't already defined as cooling zones above for (int NumAirLoopHeatedZonesTemp = 1; NumAirLoopHeatedZonesTemp <= NumAirLoopHeatedZones; ++NumAirLoopHeatedZonesTemp) { - ZoneNum = state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).HeatCtrlZoneNums(NumAirLoopHeatedZonesTemp); + ZoneNum = AirToZoneNodeInfo(NumofAirLoop).HeatCtrlZoneNums(NumAirLoopHeatedZonesTemp); bool CommonZone = false; for (int NumAirLoopCooledZonesTemp = 1; NumAirLoopCooledZonesTemp <= NumAirLoopCooledZones; ++NumAirLoopCooledZonesTemp) { - if (ZoneNum != state.dataAirLoop->AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp)) continue; + if (ZoneNum != AirToZoneNodeInfo(NumofAirLoop).CoolCtrlZoneNums(NumAirLoopCooledZonesTemp)) continue; CommonZone = true; } if (!CommonZone) { @@ -1920,16 +1930,16 @@ namespace EnergyPlus::SimAirServingZones { SupFanIndex = 0; RetFanIndex = 0; FoundOASys = false; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).FanDesCoolLoad = 0.0; + PrimaryAirSystems(AirLoopNum).FanDesCoolLoad = 0.0; fanModelTypeEnum supFanModelType = fanModelTypeNotYetSet; fanModelTypeEnum retFanModelType = fanModelTypeNotYetSet; bool FoundCentralCoolCoil = false; - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { - CompTypeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num == OAMixer_Num) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { + CompTypeNum = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + if (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num == OAMixer_Num) { FoundOASys = true; } if (CompTypeNum == WaterCoil_SimpleCool || CompTypeNum == WaterCoil_Cooling || CompTypeNum == WaterCoil_DetailedCool || @@ -1937,11 +1947,11 @@ namespace EnergyPlus::SimAirServingZones { FoundCentralCoolCoil = true; } if (CompTypeNum == Fan_Simple_CV || CompTypeNum == Fan_Simple_VAV || CompTypeNum == Fan_ComponentModel) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysExists && !state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).OASysExists && !PrimaryAirSystems(AirLoopNum).isAllOA) { if (FoundOASys) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType != 3) { + if (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType != 3) { GetFanIndex(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, SupFanIndex, ErrorsFound, ObjexxFCL::Optional_string_const()); @@ -1950,7 +1960,7 @@ namespace EnergyPlus::SimAirServingZones { } } else { GetFanIndex(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, RetFanIndex, ErrorsFound, ObjexxFCL::Optional_string_const()); @@ -1958,7 +1968,7 @@ namespace EnergyPlus::SimAirServingZones { } } else { GetFanIndex(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, SupFanIndex, ErrorsFound, ObjexxFCL::Optional_string_const()); @@ -1967,20 +1977,20 @@ namespace EnergyPlus::SimAirServingZones { } } if (CompTypeNum == Fan_System_Object) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysExists && !state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).OASysExists && !PrimaryAirSystems(AirLoopNum).isAllOA) { if (FoundOASys) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType != 3) { + if (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType != 3) { SupFanIndex = - HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); + HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); supFanModelType = objectVectorOOFanSystemModel; goto EndOfAirLoop; } } else { - RetFanIndex = HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); + RetFanIndex = HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); retFanModelType = objectVectorOOFanSystemModel; } } else { - SupFanIndex = HVACFan::getFanObjectVectorIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); + SupFanIndex = HVACFan::getFanObjectVectorIndex(state, PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name); supFanModelType = objectVectorOOFanSystemModel; goto EndOfAirLoop; } @@ -1992,32 +2002,32 @@ namespace EnergyPlus::SimAirServingZones { EndOfAirLoop:; if (supFanModelType == structArrayLegacyFanModels) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).SupFanNum = SupFanIndex; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanModelTypeEnum = structArrayLegacyFanModels; + PrimaryAirSystems(AirLoopNum).SupFanNum = SupFanIndex; + PrimaryAirSystems(AirLoopNum).supFanModelTypeEnum = structArrayLegacyFanModels; } else if (supFanModelType == objectVectorOOFanSystemModel) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanVecIndex = SupFanIndex; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanModelTypeEnum = objectVectorOOFanSystemModel; + PrimaryAirSystems(AirLoopNum).supFanVecIndex = SupFanIndex; + PrimaryAirSystems(AirLoopNum).supFanModelTypeEnum = objectVectorOOFanSystemModel; } if (FoundCentralCoolCoil) { // parent systems with fan will need to set the fan placement - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanLocation = fanPlacement::DrawThru; + PrimaryAirSystems(AirLoopNum).supFanLocation = fanPlacement::DrawThru; } else { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanLocation = fanPlacement::BlowThru; + PrimaryAirSystems(AirLoopNum).supFanLocation = fanPlacement::BlowThru; } if (retFanModelType == structArrayLegacyFanModels) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).retFanModelTypeEnum = structArrayLegacyFanModels; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RetFanNum = RetFanIndex; + PrimaryAirSystems(AirLoopNum).retFanModelTypeEnum = structArrayLegacyFanModels; + PrimaryAirSystems(AirLoopNum).RetFanNum = RetFanIndex; } else if (retFanModelType == objectVectorOOFanSystemModel) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).retFanModelTypeEnum = objectVectorOOFanSystemModel; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).retFanVecIndex = RetFanIndex; + PrimaryAirSystems(AirLoopNum).retFanModelTypeEnum = objectVectorOOFanSystemModel; + PrimaryAirSystems(AirLoopNum).retFanVecIndex = RetFanIndex; } } // Check whether there are Central Heating Coils in the Primary Air System for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { bool FoundCentralHeatCoil = false; - for (BranchNum = 1; !FoundCentralHeatCoil && BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { - for (CompNum = 1; !FoundCentralHeatCoil && CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { - CompTypeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + for (BranchNum = 1; !FoundCentralHeatCoil && BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + for (CompNum = 1; !FoundCentralHeatCoil && CompNum <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { + CompTypeNum = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; if (CompTypeNum == WaterCoil_SimpleHeat || CompTypeNum == Coil_ElectricHeat || CompTypeNum == Coil_GasHeat || CompTypeNum == SteamCoil_AirHeat || CompTypeNum == Coil_DeSuperHeat || CompTypeNum == DXHeatPumpSystem || CompTypeNum == Furnace_UnitarySys_HeatOnly || CompTypeNum == Furnace_UnitarySys_HeatCool || @@ -2025,7 +2035,7 @@ namespace EnergyPlus::SimAirServingZones { FoundCentralHeatCoil = true; } else if (CompTypeNum == UnitarySystemModel) { // mine HeatCoilExists from UnitarySystem - std::string CompName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; + std::string CompName = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; bool CoolingCoilExists = false; bool HeatingCoilExists = false; UnitarySystems::UnitarySys::getUnitarySysHeatCoolCoil(state, CompName, CoolingCoilExists, HeatingCoilExists, 0); @@ -2033,15 +2043,15 @@ namespace EnergyPlus::SimAirServingZones { } } // end of component loop } // end of Branch loop - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).CentralHeatCoilExists = FoundCentralHeatCoil; + PrimaryAirSystems(AirLoopNum).CentralHeatCoilExists = FoundCentralHeatCoil; } // end of AirLoop loop // Check whether there are Central Cooling Coils in the Primary Air System for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { bool FoundCentralCoolCoil = false; - for (BranchNum = 1; !FoundCentralCoolCoil && BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { - for (CompNum = 1; !FoundCentralCoolCoil && CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { - CompTypeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + for (BranchNum = 1; !FoundCentralCoolCoil && BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + for (CompNum = 1; !FoundCentralCoolCoil && CompNum <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { + CompTypeNum = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; if (CompTypeNum == WaterCoil_SimpleCool || CompTypeNum == WaterCoil_Cooling || CompTypeNum == WaterCoil_DetailedCool || CompTypeNum == WaterCoil_CoolingHXAsst || CompTypeNum == DXCoil_CoolingHXAsst || CompTypeNum == DXSystem || CompTypeNum == Furnace_UnitarySys_HeatCool || CompTypeNum == UnitarySystem_BypassVAVSys || @@ -2049,7 +2059,7 @@ namespace EnergyPlus::SimAirServingZones { FoundCentralCoolCoil = true; } else if (CompTypeNum == UnitarySystemModel) { // mine CoolHeat coil exists from UnitarySys - std::string CompName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; + std::string CompName = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; bool CoolingCoilExists = false; bool HeatingCoilExists = false; UnitarySystems::UnitarySys::getUnitarySysHeatCoolCoil(state, CompName, CoolingCoilExists, HeatingCoilExists, 0); @@ -2057,7 +2067,7 @@ namespace EnergyPlus::SimAirServingZones { } } // end of component loop } // end of Branch loop - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).CentralCoolCoilExists = FoundCentralCoolCoil; + PrimaryAirSystems(AirLoopNum).CentralCoolCoilExists = FoundCentralCoolCoil; } // end of AirLoop loop } // one time flag @@ -2067,7 +2077,7 @@ namespace EnergyPlus::SimAirServingZones { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { SizeAirLoopBranches(state, AirLoopNum, BranchNum); } } @@ -2077,10 +2087,10 @@ namespace EnergyPlus::SimAirServingZones { // calculate the ratio of air loop design flow to the sum of the zone design flows for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { SumZoneDesFlow = 0.0; - state.dataAirLoop->AirLoopFlow(AirLoopNum).DesSupply = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate * state.dataEnvrn->StdRhoAir; - state.dataAirLoop->AirLoopFlow(AirLoopNum).DesReturnFrac = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignReturnFlowFraction; - for (ZoneInSysIndex = 1; ZoneInSysIndex <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++ZoneInSysIndex) { - TUInNode = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes(ZoneInSysIndex); + state.dataAirLoop->AirLoopFlow(AirLoopNum).DesSupply = PrimaryAirSystems(AirLoopNum).DesignVolFlowRate * state.dataEnvrn->StdRhoAir; + state.dataAirLoop->AirLoopFlow(AirLoopNum).DesReturnFrac = PrimaryAirSystems(AirLoopNum).DesignReturnFlowFraction; + for (ZoneInSysIndex = 1; ZoneInSysIndex <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++ZoneInSysIndex) { + TUInNode = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolInletNodes(ZoneInSysIndex); SumZoneDesFlow += Node(TUInNode).MassFlowRateMax; } if (SumZoneDesFlow > VerySmallMassFlow) { @@ -2104,11 +2114,11 @@ namespace EnergyPlus::SimAirServingZones { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { // Start looping through all of the air loops... - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in system - for (NodeIndex = 1; NodeIndex <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalNodes; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in system + for (NodeIndex = 1; NodeIndex <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over alll nodes on branch - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNum(NodeIndex); + NodeNum = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNum(NodeIndex); // Initialize the nodes to a standard set of initial conditions that will // change after the first iteration to a system value @@ -2154,11 +2164,11 @@ namespace EnergyPlus::SimAirServingZones { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { // zero all MassFlowRateSetPoints - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in system - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType == RAB) continue; - for (NodeIndex = 1; NodeIndex <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalNodes; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in system + if (PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType == RAB) continue; + for (NodeIndex = 1; NodeIndex <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over alll nodes on branch - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNum(NodeIndex); + NodeNum = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).NodeNum(NodeIndex); Node(NodeNum).MassFlowRateSetPoint = 0.0; // Reset MassFlowRateMaxAvail at start of each HVAC simulation if (FirstHVACIteration) { @@ -2169,10 +2179,10 @@ namespace EnergyPlus::SimAirServingZones { } // set the required flow (from zone equipment) at system outlet nodes - for (OutNum = 1; OutNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumOutletBranches; ++OutNum) { - OutBranchNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OutletBranchNum(OutNum); - NodeNumOut = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).NodeNumOut; - ZoneSideNodeNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(OutNum); + for (OutNum = 1; OutNum <= PrimaryAirSystems(AirLoopNum).NumOutletBranches; ++OutNum) { + OutBranchNum = PrimaryAirSystems(AirLoopNum).OutletBranchNum(OutNum); + NodeNumOut = PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).NodeNumOut; + ZoneSideNodeNum = AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(OutNum); if (!FirstHVACIteration) { MassFlowSet = Node(ZoneSideNodeNum).MassFlowRate; @@ -2191,11 +2201,11 @@ namespace EnergyPlus::SimAirServingZones { } // Pass the required mass flow upstream to the start of each outlet branch - for (BranchNodeIndex = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).TotalNodes - 1; BranchNodeIndex >= 1; --BranchNodeIndex) { - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).NodeNum(BranchNodeIndex); - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysExists && (NodeNum == state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysInletNodeNum)) { + for (BranchNodeIndex = PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).TotalNodes - 1; BranchNodeIndex >= 1; --BranchNodeIndex) { + NodeNum = PrimaryAirSystems(AirLoopNum).Branch(OutBranchNum).NodeNum(BranchNodeIndex); + if (PrimaryAirSystems(AirLoopNum).OASysExists && (NodeNum == PrimaryAirSystems(AirLoopNum).OASysInletNodeNum)) { // need to modify if OA relief and supply not balanced because of exhaust fans - OAReliefDiff = Node(state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysOutletNodeNum).MassFlowRate - Node(NodeNum).MassFlowRate; + OAReliefDiff = Node(PrimaryAirSystems(AirLoopNum).OASysOutletNodeNum).MassFlowRate - Node(NodeNum).MassFlowRate; if (OAReliefDiff > 0.0) { Node(NodeNum).MassFlowRateSetPoint = Node(NodeNumOut).MassFlowRateSetPoint - OAReliefDiff; } else { @@ -2209,21 +2219,21 @@ namespace EnergyPlus::SimAirServingZones { } // end loop over outlet branches // [DC/LBNL] Initialize flag for current air loop - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).NewFlowRateFlag = false; + AirLoopControlInfo(AirLoopNum).NewFlowRateFlag = false; // start each HVAC simulation at design air flow rate if (FirstHVACIteration) { // At each new HVAC iteration reset air loop converged flag to avoid attempting a warm restart // in SimAirLoop - for (auto &e : state.dataAirLoop->AirLoopControlInfo) + for (auto &e : AirLoopControlInfo) e.ConvergedFlag = false; - for (InNum = 1; InNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumInletBranches; ++InNum) { - InBranchNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).InletBranchNum(InNum); + for (InNum = 1; InNum <= PrimaryAirSystems(AirLoopNum).NumInletBranches; ++InNum) { + InBranchNum = PrimaryAirSystems(AirLoopNum).InletBranchNum(InNum); if (InBranchNum == 0) { - ShowFatalError(state, "Missing Inlet Branch on Primary Air System=" + state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name); + ShowFatalError(state, "Missing Inlet Branch on Primary Air System=" + PrimaryAirSystems(AirLoopNum).Name); } - NodeNumIn = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(InBranchNum).NodeNumIn; + NodeNumIn = PrimaryAirSystems(AirLoopNum).Branch(InBranchNum).NodeNumIn; // [DC/LBNL] Save previous mass flow rate MassFlowSaved = Node(NodeNumIn).MassFlowRate; @@ -2232,17 +2242,17 @@ namespace EnergyPlus::SimAirServingZones { // [DC/LBNL] Detect if air mass flow rate has changed since last air loop simulation if (Node(NodeNumIn).MassFlowRate != MassFlowSaved) { - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).NewFlowRateFlag = true; + AirLoopControlInfo(AirLoopNum).NewFlowRateFlag = true; } } // end loop over inlet branches - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoLockout = false; + AirLoopControlInfo(AirLoopNum).EconoLockout = false; } // if a flow rate is specified for the loop use it here - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).LoopFlowRateSet && !FirstHVACIteration) { - for (InNum = 1; InNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumInletBranches; ++InNum) { - InBranchNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).InletBranchNum(InNum); - NodeNumIn = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(InBranchNum).NodeNumIn; + if (AirLoopControlInfo(AirLoopNum).LoopFlowRateSet && !FirstHVACIteration) { + for (InNum = 1; InNum <= PrimaryAirSystems(AirLoopNum).NumInletBranches; ++InNum) { + InBranchNum = PrimaryAirSystems(AirLoopNum).InletBranchNum(InNum); + NodeNumIn = PrimaryAirSystems(AirLoopNum).Branch(InBranchNum).NodeNumIn; Node(NodeNumIn).MassFlowRate = state.dataAirLoop->AirLoopFlow(AirLoopNum).DesSupply * state.dataAirLoop->AirLoopFlow(AirLoopNum).ReqSupplyFrac - (state.dataAirLoop->AirLoopFlow(AirLoopNum).SupFlow - state.dataAirLoop->AirLoopFlow(AirLoopNum).SysRetFlow); } @@ -2257,6 +2267,8 @@ namespace EnergyPlus::SimAirServingZones { // Search all return paths to match return nodes with the airloop they are connected to and find the corresponding zone inlet node (same zone, // same airloop) + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + if (!state.dataZoneEquip->ZoneEquipInputsFilled) return; bool returnPathFound = false; @@ -2274,8 +2286,8 @@ namespace EnergyPlus::SimAirServingZones { auto const &thisRetPath(state.dataZoneEquip->ReturnAirPath(retPathNum)); // Find which airloop this return path is on for (int sysNum = 1; sysNum <= NumPrimaryAirSys; ++sysNum) { - if (state.dataAirLoop->AirToZoneNodeInfo(sysNum).NumReturnNodes > 0) { - if (thisRetPath.OutletNodeNum == state.dataAirLoop->AirToZoneNodeInfo(sysNum).ZoneEquipReturnNodeNum(1)) { + if (AirToZoneNodeInfo(sysNum).NumReturnNodes > 0) { + if (thisRetPath.OutletNodeNum == AirToZoneNodeInfo(sysNum).ZoneEquipReturnNodeNum(1)) { airLoopNum = sysNum; break; } @@ -2323,8 +2335,8 @@ namespace EnergyPlus::SimAirServingZones { // Check for any air loops that may be connected directly to a zone return node for (int airLoopNum = 1; airLoopNum <= NumPrimaryAirSys; ++airLoopNum) { bool returnFound = false; - if (state.dataAirLoop->AirToZoneNodeInfo(airLoopNum).NumReturnNodes > 0) { - int zeqReturnNodeNum = state.dataAirLoop->AirToZoneNodeInfo(airLoopNum).ZoneEquipReturnNodeNum(1); + if (AirToZoneNodeInfo(airLoopNum).NumReturnNodes > 0) { + int zeqReturnNodeNum = AirToZoneNodeInfo(airLoopNum).ZoneEquipReturnNodeNum(1); if (zeqReturnNodeNum > 0) { for (int ctrlZoneNum = 1; ctrlZoneNum <= state.dataGlobal->NumOfZones; ++ctrlZoneNum) { auto &thisZoneEquip(state.dataZoneEquip->ZoneEquipConfig(ctrlZoneNum)); @@ -2390,12 +2402,6 @@ namespace EnergyPlus::SimAirServingZones { // TRUE if first full HVAC iteration in an HVAC timestep // TRUE if Zone Equipment needs to be resimulated. - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - // SUBROUTINE LOCAL VARIABLE DEFINITIONS // Last saved HVAC time stamp at beginning of step in seconds. // Used to control when to reset the statistic counters for each new HVAC step. @@ -2423,7 +2429,8 @@ namespace EnergyPlus::SimAirServingZones { bool SysReSim; DataConvergParams::iCalledFrom CalledFrom; - + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); // Set up output variables if (!state.dataSimAirServingZones->OutputSetupFlag) { @@ -2466,18 +2473,18 @@ namespace EnergyPlus::SimAirServingZones { if (state.dataAirLoop->PriAirSysAvailMgr(AirLoopNum).AvailStatus == ForceOff) { TurnFansOff = true; } - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).NightVent) { + if (AirLoopControlInfo(AirLoopNum).NightVent) { NightVentOn = true; } // Set current system number for sizing routines - CurSysNum = AirLoopNum; + state.dataSize->CurSysNum = AirLoopNum; // 2 passes; 1 usually suffices; 2 is done if ResolveSysFlow detects a failure of mass balance for (AirLoopPass = 1; AirLoopPass <= 2; ++AirLoopPass) { SysReSim = false; - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AirLoopPass = AirLoopPass; // save for use without passing as argument + AirLoopControlInfo(AirLoopNum).AirLoopPass = AirLoopPass; // save for use without passing as argument // Simulate controllers on air loop with current air mass flow rates SimAirLoop(state, FirstHVACIteration, AirLoopNum, AirLoopPass, AirLoopIterMax, AirLoopIterTot, AirLoopNumCalls); @@ -2492,7 +2499,7 @@ namespace EnergyPlus::SimAirServingZones { // At the end of the first pass, check whether a second pass is needed or not if (AirLoopPass == 1) { // If simple system, skip second pass - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).Simple) break; + if (AirLoopControlInfo(AirLoopNum).Simple) break; ResolveSysFlow(state, AirLoopNum, SysReSim); // If mass balance OK, skip second pass if (!SysReSim) break; @@ -2502,14 +2509,14 @@ namespace EnergyPlus::SimAirServingZones { // Air system side has been simulated, now transfer conditions across to // the zone equipment side, looping through all supply air paths for this // air loop. - for (AirSysOutNum = 1; AirSysOutNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++AirSysOutNum) { + for (AirSysOutNum = 1; AirSysOutNum <= AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++AirSysOutNum) { if (AirSysOutNum == 1) CalledFrom = DataConvergParams::iCalledFrom::AirSystemSupplySideDeck1; if (AirSysOutNum == 2) CalledFrom = DataConvergParams::iCalledFrom::AirSystemSupplySideDeck2; UpdateHVACInterface(state, AirLoopNum, CalledFrom, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopSupplyNodeNum(AirSysOutNum), - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(AirSysOutNum), + AirToZoneNodeInfo(AirLoopNum).AirLoopSupplyNodeNum(AirSysOutNum), + AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(AirSysOutNum), SimZoneEquipment); } // ...end of DO loop over supply air paths for this air loop. @@ -2540,18 +2547,18 @@ namespace EnergyPlus::SimAirServingZones { if (state.dataAirLoop->PriAirSysAvailMgr(AirLoopNum).AvailStatus == ForceOff) { TurnFansOff = true; } - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).NightVent) { + if (AirLoopControlInfo(AirLoopNum).NightVent) { NightVentOn = true; } // Set current system number for sizing routines - CurSysNum = AirLoopNum; + state.dataSize->CurSysNum = AirLoopNum; // 2 passes; 1 usually suffices; 2 is done if ResolveSysFlow detects a failure of mass balance for (AirLoopPass = 1; AirLoopPass <= 2; ++AirLoopPass) { SysReSim = false; - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AirLoopPass = AirLoopPass; // save for use without passing as argument + AirLoopControlInfo(AirLoopNum).AirLoopPass = AirLoopPass; // save for use without passing as argument // Simulate controllers on air loop with current air mass flow rates SimAirLoop(state, FirstHVACIteration, AirLoopNum, AirLoopPass, AirLoopIterMax, AirLoopIterTot, AirLoopNumCalls); @@ -2566,7 +2573,7 @@ namespace EnergyPlus::SimAirServingZones { // At the end of the first pass, check whether a second pass is needed or not if (AirLoopPass == 1) { // If simple system, skip second pass - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).Simple) break; + if (AirLoopControlInfo(AirLoopNum).Simple) break; ResolveSysFlow(state, AirLoopNum, SysReSim); // If mass balance OK, skip second pass if (!SysReSim) break; @@ -2576,14 +2583,14 @@ namespace EnergyPlus::SimAirServingZones { // Air system side has been simulated, now transfer conditions across to // the zone equipment side, looping through all supply air paths for this // air loop. - for (AirSysOutNum = 1; AirSysOutNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++AirSysOutNum) { + for (AirSysOutNum = 1; AirSysOutNum <= AirToZoneNodeInfo(AirLoopNum).NumSupplyNodes; ++AirSysOutNum) { if (AirSysOutNum == 1) CalledFrom = DataConvergParams::iCalledFrom::AirSystemSupplySideDeck1; if (AirSysOutNum == 2) CalledFrom = DataConvergParams::iCalledFrom::AirSystemSupplySideDeck2; UpdateHVACInterface(state, AirLoopNum, CalledFrom, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopSupplyNodeNum(AirSysOutNum), - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(AirSysOutNum), + AirToZoneNodeInfo(AirLoopNum).AirLoopSupplyNodeNum(AirSysOutNum), + AirToZoneNodeInfo(AirLoopNum).ZoneEquipSupplyNodeNum(AirSysOutNum), SimZoneEquipment); } // ...end of DO loop over supply air paths for this air loop. @@ -2593,7 +2600,7 @@ namespace EnergyPlus::SimAirServingZones { } } // Reset current system number for sizing routines - CurSysNum = 0; + state.dataSize->CurSysNum = 0; } void SimAirLoop(EnergyPlusData &state, @@ -2644,12 +2651,6 @@ namespace EnergyPlus::SimAirServingZones { // Aggregated number of iterations across all controllers on this air loop // Total number of times SimAirLoopComponents() has been invoked to simulate this air loop - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - // SUBROUTINE LOCAL VARIABLE DEFINITIONS // Maximum number of iterations performed by each controller on this air loop static int IterMax(0); @@ -2666,7 +2667,8 @@ namespace EnergyPlus::SimAirServingZones { // If Status>0, warm restart succeeded. static int WarmRestartStatus(iControllerWarmRestartNone); - + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); // Reset air loop trackers to zero AirLoopIterMax = 0; @@ -2686,9 +2688,9 @@ namespace EnergyPlus::SimAirServingZones { // Next condition is true whenever the final check for the air loop was converged // at the previous SimAirLoop call // Next conditions should detect when air mass flow rates have changed - DoWarmRestartFlag = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers > 0 && state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && - !FirstHVACIteration && !state.dataGlobal->SysSizingCalc && state.dataAirLoop->AirLoopControlInfo(AirLoopNum).ConvergedFlag && - !state.dataAirLoop->AirLoopControlInfo(AirLoopNum).LoopFlowRateSet && !state.dataAirLoop->AirLoopControlInfo(AirLoopNum).NewFlowRateFlag; + DoWarmRestartFlag = PrimaryAirSystems(AirLoopNum).NumControllers > 0 && AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && + !FirstHVACIteration && !state.dataGlobal->SysSizingCalc && AirLoopControlInfo(AirLoopNum).ConvergedFlag && + !AirLoopControlInfo(AirLoopNum).LoopFlowRateSet && !AirLoopControlInfo(AirLoopNum).NewFlowRateFlag; if (!DoWarmRestartFlag) { // Solve controllers with cold start using default initial values @@ -2742,7 +2744,7 @@ namespace EnergyPlus::SimAirServingZones { // happen if // If this is the case then we do not want to try a warm restart as it is very // unlikely to succeed. - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).ConvergedFlag = AirLoopConvergedFlag; + AirLoopControlInfo(AirLoopNum).ConvergedFlag = AirLoopConvergedFlag; } void SolveAirLoopControllers(EnergyPlusData &state, @@ -2814,7 +2816,8 @@ namespace EnergyPlus::SimAirServingZones { // A character string equivalent of ErrCount static bool BypassOAController; // logical to tell ManageControllers to sim or not sim controller in OA System (don't sim here) - + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); // To track number of calls to SimAirLoopComponents() for each air loop // Represents the most computationally expensive operation in the iteration. @@ -2826,34 +2829,34 @@ namespace EnergyPlus::SimAirServingZones { AirLoopConvergedFlag = true; BypassOAController = true; // don't simulate OA contollers at this time (see SolveWaterCoilController) IsUpToDateFlag = false; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged = false; + PrimaryAirSystems(AirLoopNum).ControlConverged = false; AllowWarmRestartFlag = true; - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = true; + AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = true; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).SizeAirloopCoil) { // one time flag to initialize controller index and size coils if needed + if (PrimaryAirSystems(AirLoopNum).SizeAirloopCoil) { // one time flag to initialize controller index and size coils if needed // Loop through the controllers first to set the controller index in the PrimaryAirSystem array. // Need to actaully simulate controller to get controller index. - for (int AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum) = - HVACControllers::GetControllerIndex(state, state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum)); - HVACControllers::ControllerProps(state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum)).AirLoopControllerIndex = + for (int AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum) = + HVACControllers::GetControllerIndex(state, PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum)); + HVACControllers::ControllerProps(PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum)).AirLoopControllerIndex = AirLoopControlNum; } // When using controllers, size air loop coils so ControllerProps (e.g., Min/Max Actuated) can be set - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers > 0) SimAirLoopComponents(state, AirLoopNum, FirstHVACIteration); - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).SizeAirloopCoil = false; + if (PrimaryAirSystems(AirLoopNum).NumControllers > 0) SimAirLoopComponents(state, AirLoopNum, FirstHVACIteration); + PrimaryAirSystems(AirLoopNum).SizeAirloopCoil = false; } // This call to ManageControllers reinitializes the controllers actuated variables to zero // E.g., actuator inlet water flow - for (int AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + for (int AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { // BypassOAController is true here since we do not want to simulate the controller if it has already been simulated in the OA system // ControllerConvergedFlag is returned true here for water coils in OA system ManageControllers(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), FirstHVACIteration, AirLoopNum, iControllerOpColdStart, @@ -2863,7 +2866,7 @@ namespace EnergyPlus::SimAirServingZones { AllowWarmRestartFlag); // Detect whether the speculative warm restart feature is supported by each controller // on this air loop. - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && AllowWarmRestartFlag; + AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && AllowWarmRestartFlag; } // Evaluate air loop components with new actuated variables @@ -2872,14 +2875,14 @@ namespace EnergyPlus::SimAirServingZones { IsUpToDateFlag = true; // Loop over the air sys controllers until convergence or MaxIter iterations - for (int AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + for (int AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { Iter = 0; ControllerConvergedFlag = false; // if the controller can be locked out by the economizer operation and the economizer is active, leave the controller inactive - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoActive) { + if (AirLoopControlInfo(AirLoopNum).EconoActive) { // nesting this next if to try and speed this up. If economizer is not active, it doesn't matter if CanBeLockedOutByEcono = true - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).CanBeLockedOutByEcono(AirLoopControlNum)) { + if (PrimaryAirSystems(AirLoopNum).CanBeLockedOutByEcono(AirLoopControlNum)) { ControllerConvergedFlag = true; continue; } @@ -2891,8 +2894,8 @@ namespace EnergyPlus::SimAirServingZones { ++Iter; ManageControllers(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), FirstHVACIteration, AirLoopNum, iControllerOpIterate, @@ -2900,7 +2903,7 @@ namespace EnergyPlus::SimAirServingZones { IsUpToDateFlag, BypassOAController); - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; + PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; if (!ControllerConvergedFlag) { // Only check abnormal termination if not yet converged @@ -2916,8 +2919,8 @@ namespace EnergyPlus::SimAirServingZones { ErrEnvironmentName = state.dataEnvrn->EnvironmentName; const auto CharErrOut = fmt::to_string(MaxIter); ShowWarningError(state, "SolveAirLoopControllers: Maximum iterations (" + CharErrOut + ") exceeded for " + - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name + ", " + - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum) + ", at " + state.dataEnvrn->EnvironmentName + ", " + + PrimaryAirSystems(AirLoopNum).Name + ", " + + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum) + ", at " + state.dataEnvrn->EnvironmentName + ", " + state.dataEnvrn->CurMnDy + ' ' + CreateSysTimeIntervalString(state)); } else { if (state.dataEnvrn->EnvironmentName != ErrEnvironmentName) { @@ -2925,7 +2928,7 @@ namespace EnergyPlus::SimAirServingZones { ErrEnvironmentName = state.dataEnvrn->EnvironmentName; } ShowRecurringWarningErrorAtEnd(state, "SolveAirLoopControllers: Exceeding Maximum iterations for " + - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name + " during " + state.dataEnvrn->EnvironmentName + " continues", + PrimaryAirSystems(AirLoopNum).Name + " during " + state.dataEnvrn->EnvironmentName + " continues", MaxErrCount); } } @@ -2945,7 +2948,7 @@ namespace EnergyPlus::SimAirServingZones { // for future reference, the PrimaryAirSystem().ControlConverged flag is set while managing OA system water coils. // If convergence is not achieved with OA system water coils, suspect how this flag is passed back here or why OA system coils do // not converge - ControllerConvergedFlag = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum); + ControllerConvergedFlag = PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum); IsUpToDateFlag = true; } @@ -2968,13 +2971,13 @@ namespace EnergyPlus::SimAirServingZones { } // Check that all active controllers are still convergence - for (int AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + for (int AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { ControllerConvergedFlag = false; ManageControllers(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), FirstHVACIteration, AirLoopNum, iControllerOpEnd, @@ -2982,7 +2985,7 @@ namespace EnergyPlus::SimAirServingZones { IsUpToDateFlag, BypassOAController); - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; + PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; AirLoopConvergedFlag = AirLoopConvergedFlag && ControllerConvergedFlag; } @@ -3054,7 +3057,8 @@ namespace EnergyPlus::SimAirServingZones { int static AirLoopPass; static bool BypassOAController; - + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); bool AirLoopCheck = false; if (AirLoopNum > 0) { @@ -3062,16 +3066,16 @@ namespace EnergyPlus::SimAirServingZones { } BypassOAController = false; // simulate OA water coil controllers if (AirLoopCheck) { - AirLoopPass = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AirLoopPass; + AirLoopPass = AirLoopControlInfo(AirLoopNum).AirLoopPass; } IsUpToDateFlag = false; if (AirLoopCheck) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged = false; + PrimaryAirSystems(AirLoopNum).ControlConverged = false; } AllowWarmRestartFlag = true; if (AirLoopCheck) { - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = true; + AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = true; } // This call to ManageControllers reinitializes the controllers actuated variables to zero @@ -3090,7 +3094,7 @@ namespace EnergyPlus::SimAirServingZones { // Detect whether the speculative warm restart feature is supported by each controller on this air loop. if (AirLoopCheck) { - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && AllowWarmRestartFlag; + AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag = AirLoopControlInfo(AirLoopNum).AllowWarmRestartFlag && AllowWarmRestartFlag; } // Evaluate water coils with new actuated variables @@ -3106,8 +3110,8 @@ namespace EnergyPlus::SimAirServingZones { ControllerConvergedFlag = false; // if the controller can be locked out by the economizer operation and the economizer is active, leave the controller inactive if (AirLoopCheck) { - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoActive) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).CanBeLockedOutByEcono(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex)) { + if (AirLoopControlInfo(AirLoopNum).EconoActive) { + if (PrimaryAirSystems(AirLoopNum).CanBeLockedOutByEcono(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex)) { ControllerConvergedFlag = true; } } @@ -3129,7 +3133,7 @@ namespace EnergyPlus::SimAirServingZones { BypassOAController); if (AirLoopCheck) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex) = + PrimaryAirSystems(AirLoopNum).ControlConverged(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex) = ControllerConvergedFlag; } @@ -3145,7 +3149,7 @@ namespace EnergyPlus::SimAirServingZones { ErrEnvironmentName = state.dataEnvrn->EnvironmentName; const auto CharErrOut = fmt::to_string(MaxIter); ShowWarningError(state, "SolveAirLoopControllers: Maximum iterations (" + CharErrOut + ") exceeded for " + - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name + ":" + ControllerName + ", at " + state.dataEnvrn->EnvironmentName + ", " + state.dataEnvrn->CurMnDy + + PrimaryAirSystems(AirLoopNum).Name + ":" + ControllerName + ", at " + state.dataEnvrn->EnvironmentName + ", " + state.dataEnvrn->CurMnDy + ' ' + CreateSysTimeIntervalString(state)); } else { if (state.dataEnvrn->EnvironmentName != ErrEnvironmentName) { @@ -3153,7 +3157,7 @@ namespace EnergyPlus::SimAirServingZones { ErrEnvironmentName = state.dataEnvrn->EnvironmentName; } ShowRecurringWarningErrorAtEnd(state, "SolveAirLoopControllers: Exceeding Maximum iterations for " + - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name + " during " + state.dataEnvrn->EnvironmentName + " continues", + PrimaryAirSystems(AirLoopNum).Name + " during " + state.dataEnvrn->EnvironmentName + " continues", MaxErrCount); } } @@ -3192,9 +3196,9 @@ namespace EnergyPlus::SimAirServingZones { // pass convergence of OA system water coils back to SolveAirLoopControllers via PrimaryAirSystem().ControlConverged flag if (AirLoopCheck) { - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex) = + PrimaryAirSystems(AirLoopNum).ControlConverged(HVACControllers::ControllerProps(ControllerIndex).AirLoopControllerIndex) = ControllerConvergedFlag; - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).ConvergedFlag = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).ConvergedFlag && ControllerConvergedFlag; + AirLoopControlInfo(AirLoopNum).ConvergedFlag = AirLoopControlInfo(AirLoopNum).ConvergedFlag && ControllerConvergedFlag; } } @@ -3241,12 +3245,6 @@ namespace EnergyPlus::SimAirServingZones { // Aggregated number of iterations across all air loops // Total number of times SimAirLoopComponents() has been invoked - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - // SUBROUTINE LOCAL VARIABLE DEFINITIONS // Controller DO loop index int AirLoopControlNum; @@ -3257,7 +3255,7 @@ namespace EnergyPlus::SimAirServingZones { bool IsUpToDateFlag; static bool BypassOAController; // logical to bypass HVAC controller calcs - + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); // To track number of calls to SimAirLoopComponents() for each air loop // Represents the most computationally expensive operation in the iteration. @@ -3269,16 +3267,16 @@ namespace EnergyPlus::SimAirServingZones { AirLoopConvergedFlag = true; BypassOAController = false; // not exactly sure of this but it seems all controllers need to be simulated -- don't bypass IsUpToDateFlag = false; - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged = false; + PrimaryAirSystems(AirLoopNum).ControlConverged = false; // This call to ManageControllers reinitializes the controllers actuated variables to zero // E.g., actuator inlet water flow - for (AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + for (AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { // BypassOAController is false here since we want to simulate the controller during ReSolveAirLoopControllers calls ? ManageControllers(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), FirstHVACIteration, AirLoopNum, iControllerOpWarmRestart, @@ -3294,13 +3292,13 @@ namespace EnergyPlus::SimAirServingZones { // Check that all active controllers are still convergence // Check that actuated variables are within min/max constraints - for (AirLoopControlNum = 1; AirLoopControlNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { + for (AirLoopControlNum = 1; AirLoopControlNum <= PrimaryAirSystems(AirLoopNum).NumControllers; ++AirLoopControlNum) { ControllerConvergedFlag = false; ManageControllers(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerName(AirLoopControlNum), + PrimaryAirSystems(AirLoopNum).ControllerIndex(AirLoopControlNum), FirstHVACIteration, AirLoopNum, iControllerOpEnd, @@ -3308,7 +3306,7 @@ namespace EnergyPlus::SimAirServingZones { IsUpToDateFlag, BypassOAController); - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; + PrimaryAirSystems(AirLoopNum).ControlConverged(AirLoopControlNum) = ControllerConvergedFlag; AirLoopConvergedFlag = AirLoopConvergedFlag && ControllerConvergedFlag; @@ -3345,19 +3343,6 @@ namespace EnergyPlus::SimAirServingZones { // Sets duct type of current branch to CurDuctType defined in MODULE DataSizing // Upon exiting, resets both counters to 0. - // REFERENCES: None - - // USE STATEMENTS: None - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - // SUBROUTINE LOCAL VARIABLE DEFINITIONS: None int BranchNum; // Branch DO loop index int CompNum; // Component DO loop index @@ -3365,27 +3350,29 @@ namespace EnergyPlus::SimAirServingZones { // std::string CompName; // Component name int CompType_Num; // Numeric equivalent for CompType - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in air system + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(AirLoopNum).NumBranches; ++BranchNum) { // loop over all branches in air system UpdateBranchConnections(state, AirLoopNum, BranchNum, BeforeBranchSim); - CurBranchNum = BranchNum; - CurDuctType = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType; + state.dataSize->CurBranchNum = BranchNum; + state.dataSize->CurDuctType = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).DuctType; // Loop over components in branch - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { // CompType = PrimaryAirSystem( AirLoopNum ).Branch( BranchNum ).Comp( CompNum ).TypeOf; // CompName = PrimaryAirSystem( AirLoopNum ).Branch( BranchNum ).Comp( CompNum ).Name; - CompType_Num = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + CompType_Num = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; // Simulate each component on PrimaryAirSystem(AirLoopNum)%Branch(BranchNum)%Name SimAirLoopComponent(state, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name, CompType_Num, FirstHVACIteration, AirLoopNum, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompIndex, - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).compPointer); + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompIndex, + PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).compPointer); } // End of component loop // Enforce continuity through the splitter @@ -3393,8 +3380,8 @@ namespace EnergyPlus::SimAirServingZones { } // End of branch loop - CurBranchNum = 0; - CurDuctType = 0; + state.dataSize->CurBranchNum = 0; + state.dataSize->CurDuctType = 0; } void SimAirLoopComponent(EnergyPlusData &state, @@ -3440,26 +3427,16 @@ namespace EnergyPlus::SimAirServingZones { using UserDefinedComponents::SimCoilUserDefined; using WaterCoils::SimulateWaterCoilComponents; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - // SUBROUTINE LOCAL VARIABLE DEFINITIONS: Real64 QActual; int OAUnitNum = 0; // used only for UnitarySystem call Real64 OAUCoilOutTemp = 0.0; // used only for UnitarySystem call bool ZoneEquipFlag = false; // used only for UnitarySystem call - - - bool CoolingActive = false; bool HeatingActive = false; + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); + { auto const SELECT_CASE_var(CompType_Num); @@ -3582,13 +3559,13 @@ namespace EnergyPlus::SimAirServingZones { CompName, FirstHVACIteration, CompIndex, - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).FanOpMode, + AirLoopControlInfo(AirLoopNum).FanOpMode, state.dataAirLoop->AirLoopFlow(AirLoopNum).FanPLR, _, _, _, - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoActive, - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).HighHumCtrlActive); + AirLoopControlInfo(AirLoopNum).EconoActive, + AirLoopControlInfo(AirLoopNum).HighHumCtrlActive); // Ducts } else if (SELECT_CASE_var == ZoneVRFasAirLoopEquip) { // 'ZoneHVAC:TerminalUnit:VariableRefrigerantFlow' @@ -3621,8 +3598,8 @@ namespace EnergyPlus::SimAirServingZones { // Set AirLoopControlInfo flag to identify coil operation for "Air Loop Coils" // Any coil operation from multiple coils causes flag to be TRUE // Flag is reset at beginning of each iteration (Subroutine SimHVAC) - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).CoolingActiveFlag = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).CoolingActiveFlag || CoolingActive; - state.dataAirLoop->AirLoopControlInfo(AirLoopNum).HeatingActiveFlag = state.dataAirLoop->AirLoopControlInfo(AirLoopNum).HeatingActiveFlag || HeatingActive; + AirLoopControlInfo(AirLoopNum).CoolingActiveFlag = AirLoopControlInfo(AirLoopNum).CoolingActiveFlag || CoolingActive; + AirLoopControlInfo(AirLoopNum).HeatingActiveFlag = AirLoopControlInfo(AirLoopNum).HeatingActiveFlag || HeatingActive; } void UpdateBranchConnections(EnergyPlusData &state, @@ -3649,23 +3626,9 @@ namespace EnergyPlus::SimAirServingZones { // simulation. The required mass flows are were stored in the node data // as MassFlowRateSetPoints in the InitAirLoops routine. - // REFERENCES: None - - // USE STATEMENTS // Using/Aliasing using Psychrometrics::PsyTdbFnHW; - // Locals - // SUBROUTINE ARGUMENTS: - - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - - // SUBROUTINE LOCAL VARIABLE DEFINITIONS - int OutletNum; // splitter outlet DO loop index int InletNum; // mixer inlet DO loop index int InletNodeNum; // node number of splitter inlet node @@ -3680,8 +3643,6 @@ namespace EnergyPlus::SimAirServingZones { Real64 OutletPress; Real64 OutletCO2; // outlet CO2 of mixer Real64 OutletGC; // outlet generic contaminant of mixer - - MassFlowRateSetSum = 0.0; MassFlowRateOut = 0.0; MassFlowRateMinAvailOut = 0.0; @@ -3693,13 +3654,16 @@ namespace EnergyPlus::SimAirServingZones { OutletCO2 = 0.0; OutletGC = 0.0; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.Exists && Update == AfterBranchSim) { + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); + + if (PrimaryAirSystems(AirLoopNum).Splitter.Exists && Update == AfterBranchSim) { // if we are at an inlet branch, pass data through the splitter - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.BranchNumIn == BranchNum) { - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumIn; + if (PrimaryAirSystems(AirLoopNum).Splitter.BranchNumIn == BranchNum) { + InletNodeNum = PrimaryAirSystems(AirLoopNum).Splitter.NodeNumIn; // Pass node data through the splitter - for (OutletNum = 1; OutletNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.TotalOutletNodes; ++OutletNum) { - OutletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(OutletNum); + for (OutletNum = 1; OutletNum <= PrimaryAirSystems(AirLoopNum).Splitter.TotalOutletNodes; ++OutletNum) { + OutletNodeNum = PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(OutletNum); Node(OutletNodeNum).Temp = Node(InletNodeNum).Temp; Node(OutletNodeNum).HumRat = Node(InletNodeNum).HumRat; Node(OutletNodeNum).Enthalpy = Node(InletNodeNum).Enthalpy; @@ -3712,10 +3676,10 @@ namespace EnergyPlus::SimAirServingZones { Node(OutletNodeNum).GenContam = Node(InletNodeNum).GenContam; } } - if (!state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABExists) { + if (!PrimaryAirSystems(AirLoopNum).RABExists) { // set the outlet mass flows - for (OutletNum = 1; OutletNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.TotalOutletNodes; ++OutletNum) { - OutletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(OutletNum); + for (OutletNum = 1; OutletNum <= PrimaryAirSystems(AirLoopNum).Splitter.TotalOutletNodes; ++OutletNum) { + OutletNodeNum = PrimaryAirSystems(AirLoopNum).Splitter.NodeNumOut(OutletNum); if (MassFlowRateSetSum < SmallMassFlow || Node(InletNodeNum).MassFlowRate < SmallMassFlow) { Node(OutletNodeNum).MassFlowRate = 0.0; } else { @@ -3727,9 +3691,9 @@ namespace EnergyPlus::SimAirServingZones { Node(OutletNodeNum).MassFlowRateMinAvail = 0.0; } } else { // set the RAB flow rates - RABNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).RABSplitOutNode; - NonRABNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OtherSplitOutNode; - if (state.dataAirLoop->AirLoopControlInfo(AirLoopNum).EconoActive) { + RABNodeNum = PrimaryAirSystems(AirLoopNum).RABSplitOutNode; + NonRABNodeNum = PrimaryAirSystems(AirLoopNum).OtherSplitOutNode; + if (AirLoopControlInfo(AirLoopNum).EconoActive) { Node(RABNodeNum).MassFlowRate = 0.0; Node(NonRABNodeNum).MassFlowRate = Node(InletNodeNum).MassFlowRate; } else { @@ -3744,13 +3708,13 @@ namespace EnergyPlus::SimAirServingZones { } } - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.Exists && Update == BeforeBranchSim) { + if (PrimaryAirSystems(AirLoopNum).Mixer.Exists && Update == BeforeBranchSim) { // if we are at a mixer outlet branch, calculate the outlet branch conditions - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.BranchNumOut == BranchNum) { - OutletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumOut; + if (PrimaryAirSystems(AirLoopNum).Mixer.BranchNumOut == BranchNum) { + OutletNodeNum = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumOut; // get the outlet mass flow rate and the outlet minavail mass flow rate - for (InletNum = 1; InletNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.TotalInletNodes; ++InletNum) { - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(InletNum); + for (InletNum = 1; InletNum <= PrimaryAirSystems(AirLoopNum).Mixer.TotalInletNodes; ++InletNum) { + InletNodeNum = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(InletNum); MassFlowRateOut += Node(InletNodeNum).MassFlowRate; MassFlowRateMinAvailOut += Node(InletNodeNum).MassFlowRateMinAvail; } @@ -3760,8 +3724,8 @@ namespace EnergyPlus::SimAirServingZones { Node(OutletNodeNum).MassFlowRateMaxAvail = Node(OutletNodeNum).MassFlowRateMax; // calculate the outlet humidity ratio and enthalpy and pressure if (MassFlowRateOut > 0.0) { - for (InletNum = 1; InletNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.TotalInletNodes; ++InletNum) { - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(InletNum); + for (InletNum = 1; InletNum <= PrimaryAirSystems(AirLoopNum).Mixer.TotalInletNodes; ++InletNum) { + InletNodeNum = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(InletNum); OutletHumRat += (Node(InletNodeNum).MassFlowRate * Node(InletNodeNum).HumRat) / MassFlowRateOut; OutletEnthalpy += (Node(InletNodeNum).MassFlowRate * Node(InletNodeNum).Enthalpy) / MassFlowRateOut; OutletPress += (Node(InletNodeNum).MassFlowRate * Node(InletNodeNum).Press) / MassFlowRateOut; @@ -3773,7 +3737,7 @@ namespace EnergyPlus::SimAirServingZones { } } } else { - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1); + InletNodeNum = PrimaryAirSystems(AirLoopNum).Mixer.NodeNumIn(1); OutletHumRat = Node(InletNodeNum).HumRat; OutletEnthalpy = Node(InletNodeNum).Enthalpy; OutletPress = Node(InletNodeNum).Press; @@ -3823,21 +3787,6 @@ namespace EnergyPlus::SimAirServingZones { // at the branch connections. System inlet mass flows are forced to // be less than or equal to the resulting inlet MassFlowRateMaxAvails. - // REFERENCES: None - - // USE STATEMENTS:none - - // Locals - // SUBROUTINE ARGUMENTS: - - // SUBROUTINE PARAMETER DEFINITIONS: None - - // INTERFACE BLOCK DEFINITIONS: None - - // DERIVED TYPE DEFINITIONS: None - - // SUBROUTINE LOCAL VARIABLE DEFINITIONS - int BranchNum; // branch DO loop index int NodeIndex; // node on branch DO loop index Real64 MassFlowRateOutSum; // sum of splitter outlet mass flow rates (imposed) @@ -3851,42 +3800,43 @@ namespace EnergyPlus::SimAirServingZones { int InBranchNum; // air system inlet branch number int InBranchIndex; // air sys inlet branch DO loop index - + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &AirLoopControlInfo(state.dataAirLoop->AirLoopControlInfo); // Find the minimum MassFlowMaxAvail for each branch in the system and store it on the branch inlet node. // Check for mass flow conservation on each branch. Set SysReSim to TRUE is mass flow not conserved. - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).NumBranches; ++BranchNum) { // loop over branches in system + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(SysNum).NumBranches; ++BranchNum) { // loop over branches in system // Initialize branch max avail mass flow to max avail mass flow at outlet node - BranchMassFlowMaxAvail = Node(state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumOut).MassFlowRateMaxAvail; - for (NodeIndex = 1; NodeIndex <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over nodes on branch + BranchMassFlowMaxAvail = Node(PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumOut).MassFlowRateMaxAvail; + for (NodeIndex = 1; NodeIndex <= PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over nodes on branch // Get the new smallest max avail mass flow - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex); + NodeNum = PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex); BranchMassFlowMaxAvail = min(BranchMassFlowMaxAvail, Node(NodeNum).MassFlowRateMaxAvail); // Check for mass flow conservation on the branch - if (NodeIndex < state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes) { + if (NodeIndex < PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes) { // Set ReSim flag to TRUE if mass flow not conserved on this branch - NodeNumNext = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex + 1); - if (NodeNum == state.dataAirSystemsData->PrimaryAirSystems(SysNum).OASysInletNodeNum) continue; // don't enforce mass balance across OA Sys + NodeNumNext = PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex + 1); + if (NodeNum == PrimaryAirSystems(SysNum).OASysInletNodeNum) continue; // don't enforce mass balance across OA Sys // Changeover bypass system connected to a plenum or mixer will need to include the bypass flow rate if (std::abs(Node(NodeNum).MassFlowRate - Node(NodeNumNext).MassFlowRate - state.dataAirLoop->AirLoopFlow(SysNum).BypassMassFlow) > SmallMassFlow) SysReSim = true; } } // end node loop // Store the minimum MassFlowMaxAvail for this branch on the branch inlet node (AirloopHVAC supply inlet node) - Node(state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumIn).MassFlowRateMaxAvail = BranchMassFlowMaxAvail; + Node(PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumIn).MassFlowRateMaxAvail = BranchMassFlowMaxAvail; } // end branch loop // force resimulation for fan-cycling, nonsimple systems - if (!state.dataAirLoop->AirLoopControlInfo(SysNum).Simple && state.dataAirLoop->AirLoopControlInfo(SysNum).CyclingFan) { + if (!AirLoopControlInfo(SysNum).Simple && AirLoopControlInfo(SysNum).CyclingFan) { SysReSim = true; } // If mass flow conserved on each branch, check for mass balance across splitter - if (!SysReSim && state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.Exists) { + if (!SysReSim && PrimaryAirSystems(SysNum).Splitter.Exists) { MassFlowRateOutSum = 0.0; - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.NodeNumIn; + InletNodeNum = PrimaryAirSystems(SysNum).Splitter.NodeNumIn; // Get sum of splitter outlet mass flows - for (OutletNum = 1; OutletNum <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.TotalOutletNodes; ++OutletNum) { - OutletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.NodeNumOut(OutletNum); + for (OutletNum = 1; OutletNum <= PrimaryAirSystems(SysNum).Splitter.TotalOutletNodes; ++OutletNum) { + OutletNodeNum = PrimaryAirSystems(SysNum).Splitter.NodeNumOut(OutletNum); MassFlowRateOutSum += Node(OutletNodeNum).MassFlowRate; } // Check whether sum of splitter outlet mass flows equals splitter inlet flow. @@ -3899,20 +3849,20 @@ namespace EnergyPlus::SimAirServingZones { // If mass balance failed, resimulation is needed. Impose a mass balance for the new simulation. if (SysReSim) { // Set the MassFlowRateMaxAvail on each node to the minimum MassFlowRateMaxAvail for the branch. - for (BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).NumBranches; ++BranchNum) { // loop over branches in system - for (NodeIndex = 2; NodeIndex <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over nodes on branch - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex); - Node(NodeNum).MassFlowRateMaxAvail = Node(state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumIn).MassFlowRateMaxAvail; + for (BranchNum = 1; BranchNum <= PrimaryAirSystems(SysNum).NumBranches; ++BranchNum) { // loop over branches in system + for (NodeIndex = 2; NodeIndex <= PrimaryAirSystems(SysNum).Branch(BranchNum).TotalNodes; ++NodeIndex) { // loop over nodes on branch + NodeNum = PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNum(NodeIndex); + Node(NodeNum).MassFlowRateMaxAvail = Node(PrimaryAirSystems(SysNum).Branch(BranchNum).NodeNumIn).MassFlowRateMaxAvail; } } // Impose mass balance at splitter - if (state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.Exists) { - InBranchNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.BranchNumIn; + if (PrimaryAirSystems(SysNum).Splitter.Exists) { + InBranchNum = PrimaryAirSystems(SysNum).Splitter.BranchNumIn; MassFlowRateOutSum = 0.0; - InletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.NodeNumIn; - for (OutletNum = 1; OutletNum <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.TotalOutletNodes; ++OutletNum) { - OutletNodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Splitter.NodeNumOut(OutletNum); + InletNodeNum = PrimaryAirSystems(SysNum).Splitter.NodeNumIn; + for (OutletNum = 1; OutletNum <= PrimaryAirSystems(SysNum).Splitter.TotalOutletNodes; ++OutletNum) { + OutletNodeNum = PrimaryAirSystems(SysNum).Splitter.NodeNumOut(OutletNum); MassFlowRateOutSum += min(Node(OutletNodeNum).MassFlowRateMaxAvail, Node(OutletNodeNum).MassFlowRateSetPoint); } // set the splitter inlet Max Avail mass flow rate @@ -3920,17 +3870,17 @@ namespace EnergyPlus::SimAirServingZones { Node(InletNodeNum).MassFlowRateMaxAvail = MassFlowRateOutSum; } // Pass the splitter inlet Max Avail mass flow rate upstream to the mixed air node - for (NodeIndex = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(InBranchNum).TotalNodes - 1; NodeIndex >= 1; --NodeIndex) { - NodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(InBranchNum).NodeNum(NodeIndex); + for (NodeIndex = PrimaryAirSystems(SysNum).Branch(InBranchNum).TotalNodes - 1; NodeIndex >= 1; --NodeIndex) { + NodeNum = PrimaryAirSystems(SysNum).Branch(InBranchNum).NodeNum(NodeIndex); Node(NodeNum).MassFlowRateMaxAvail = Node(InletNodeNum).MassFlowRateMaxAvail; - if (NodeNum == state.dataAirSystemsData->PrimaryAirSystems(SysNum).OASysOutletNodeNum) break; + if (NodeNum == PrimaryAirSystems(SysNum).OASysOutletNodeNum) break; } } // Make sure air system inlet nodes have flow consistent with MassFlowRateMaxAvail - for (InBranchIndex = 1; InBranchIndex <= state.dataAirSystemsData->PrimaryAirSystems(SysNum).NumInletBranches; ++InBranchIndex) { - InBranchNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).InletBranchNum(InBranchIndex); - InNodeNum = state.dataAirSystemsData->PrimaryAirSystems(SysNum).Branch(InBranchNum).NodeNumIn; + for (InBranchIndex = 1; InBranchIndex <= PrimaryAirSystems(SysNum).NumInletBranches; ++InBranchIndex) { + InBranchNum = PrimaryAirSystems(SysNum).InletBranchNum(InBranchIndex); + InNodeNum = PrimaryAirSystems(SysNum).Branch(InBranchNum).NodeNumIn; Node(InNodeNum).MassFlowRate = min(Node(InNodeNum).MassFlowRate, Node(InNodeNum).MassFlowRateMaxAvail); } } @@ -3977,29 +3927,12 @@ namespace EnergyPlus::SimAirServingZones { // METHODOLOGY EMPLOYED: // Obtains flow rates from the zone or system sizing arrays. - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; using HVACHXAssistedCoolingCoil::GetHXCoilType; using HVACHXAssistedCoolingCoil::GetHXDXCoilName; using WaterCoils::SetCoilDesFlow; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - std::string CompType; // Component type std::string CompName; // Component name std::string CoilName; @@ -4009,13 +3942,16 @@ namespace EnergyPlus::SimAirServingZones { int CompNum; bool ErrorsFound; + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + ErrorsFound = false; if (BranchNum == 1) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate == AutoSize) { - CheckSysSizing(state, "AirLoopHVAC", state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name); - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate = FinalSysSizing(AirLoopNum).DesMainVolFlow; + if (PrimaryAirSystems(AirLoopNum).DesignVolFlowRate == AutoSize) { + CheckSysSizing(state, "AirLoopHVAC", PrimaryAirSystems(AirLoopNum).Name); + PrimaryAirSystems(AirLoopNum).DesignVolFlowRate = FinalSysSizing(AirLoopNum).DesMainVolFlow; { auto const SELECT_CASE_var(FinalSysSizing(AirLoopNum).ScaleCoolSAFMethod); @@ -4030,28 +3966,28 @@ namespace EnergyPlus::SimAirServingZones { } } BaseSizer::reportSizerOutput(state, "AirLoopHVAC", - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name, + PrimaryAirSystems(AirLoopNum).Name, ScalableSM + "Supply Air Flow Rate [m3/s]", - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate); + PrimaryAirSystems(AirLoopNum).DesignVolFlowRate); // Initialize MaxOutAir for DOAS loops with no actual OASys, systems with an OA controller will overwrite this is CalcOAController - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) - state.dataAirLoop->AirLoopFlow(AirLoopNum).MaxOutAir = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate * state.dataEnvrn->StdRhoAir; + if (PrimaryAirSystems(AirLoopNum).isAllOA) + state.dataAirLoop->AirLoopFlow(AirLoopNum).MaxOutAir = PrimaryAirSystems(AirLoopNum).DesignVolFlowRate * state.dataEnvrn->StdRhoAir; } if (allocated(FinalSysSizing) && FinalSysSizing(AirLoopNum).SysAirMinFlowRatWasAutoSized) { BaseSizer::reportSizerOutput(state, "AirLoopHVAC", - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name, + PrimaryAirSystems(AirLoopNum).Name, "Central Heating Maximum System Air Flow Ratio", FinalSysSizing(AirLoopNum).SysAirMinFlowRat); } - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate < SmallAirVolFlow) { + if (PrimaryAirSystems(AirLoopNum).DesignVolFlowRate < SmallAirVolFlow) { ShowSevereError(state, format("SizeAirLoopBranches: AirLoopHVAC {} has air flow less than {:.4R} m3/s.", - state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name, + PrimaryAirSystems(AirLoopNum).Name, SmallAirVolFlow)); ShowContinueError(state, - format("Primary air system volumetric flow rate = {:.4R} m3/s.", state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate)); + format("Primary air system volumetric flow rate = {:.4R} m3/s.", PrimaryAirSystems(AirLoopNum).DesignVolFlowRate)); ShowContinueError(state, "Check flow rate inputs for components in this air loop and,"); ShowContinueError(state, "if autosized, check Sizing:Zone and Sizing:System objects and related inputs."); ShowFatalError(state, "Previous condition causes termination."); @@ -4060,10 +3996,10 @@ namespace EnergyPlus::SimAirServingZones { // Loop over components in branch; pass the design air flow rate to the coil components that don't have // design air flow as an input - for (CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { - CompType = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).TypeOf; - CompName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; - CompType_Num = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; + for (CompNum = 1; CompNum <= PrimaryAirSystems(AirLoopNum).Branch(BranchNum).TotalComponents; ++CompNum) { + CompType = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).TypeOf; + CompName = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).Name; + CompType_Num = PrimaryAirSystems(AirLoopNum).Branch(BranchNum).Comp(CompNum).CompType_Num; if (CompType_Num == WaterCoil_DetailedCool || CompType_Num == WaterCoil_SimpleHeat || CompType_Num == WaterCoil_CoolingHXAsst) { if (CompType_Num == WaterCoil_CoolingHXAsst) { CoilName = GetHXDXCoilName(state, CompType, CompName, ErrorsFound); @@ -4072,7 +4008,7 @@ namespace EnergyPlus::SimAirServingZones { CoilName = CompName; CoilType = CompType; } - SetCoilDesFlow(state, CoilType, CoilName, state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate, ErrorsFound); + SetCoilDesFlow(state, CoilType, CoilName, PrimaryAirSystems(AirLoopNum).DesignVolFlowRate, ErrorsFound); } } // End of component loop if (ErrorsFound) { @@ -4094,41 +4030,49 @@ namespace EnergyPlus::SimAirServingZones { // METHODOLOGY EMPLOYED: // Uses data from System Sizing input and the system to zone connection data - // calculated in InitAirLoops and stored in state.dataAirLoop->AirToZoneNodeInfo in DataLoopNode.. + // calculated in InitAirLoops and stored in AirToZoneNodeInfo in DataLoopNode.. static bool ErrorsFound(false); // Set to true if errors in input, fatal at end of routine + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &SysSizing(state.dataSize->SysSizing); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &NumAirTerminalUnits(state.dataSize->NumAirTerminalUnits); + auto &SysSizInput(state.dataSize->SysSizInput); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + // have moved a large number of std 62.1 variables to DataSizing.hh so they can be used outside of this routine // allocate arrays used to store values for standard 62.1 tabular report - if (!allocated(VpzClgByZone)) { - DataSizing::VdzClgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VdzMinClgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VdzHtgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VdzMinHtgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::ZdzClgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::ZdzHtgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VpzClgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VpzMinClgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VpzHtgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VpzMinHtgByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::VpzClgSumBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::VpzHtgSumBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::VbzByZone.dimension(NumAirTerminalUnits, 0.0); - DataSizing::PzSumBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::PsBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::DBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::SumRpxPzBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::SumRaxAzBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::PeakPsOccurrenceDateTimeStringBySys.dimension(NumPrimaryAirSys, ""); - DataSizing::PeakPsOccurrenceEnvironmentStringBySys.dimension(NumPrimaryAirSys, ""); - DataSizing::VouBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::VpsClgBySys.dimension(NumPrimaryAirSys, 0.0); - DataSizing::VpsHtgBySys.dimension(NumPrimaryAirSys, 0.0); + if (!allocated(state.dataSize->VpzClgByZone)) { + state.dataSize->VdzClgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VdzMinClgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VdzHtgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VdzMinHtgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->ZdzClgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->ZdzHtgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VpzClgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VpzMinClgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VpzHtgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VpzMinHtgByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->VpzClgSumBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VpzHtgSumBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VbzByZone.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->PzSumBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->PsBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->DBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->SumRpxPzBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->SumRaxAzBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->PeakPsOccurrenceDateTimeStringBySys.dimension(NumPrimaryAirSys, ""); + state.dataSize->PeakPsOccurrenceEnvironmentStringBySys.dimension(NumPrimaryAirSys, ""); + state.dataSize->VouBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VpsClgBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VpsHtgBySys.dimension(NumPrimaryAirSys, 0.0); } - for (int SysSizIndex = 1; SysSizIndex <= NumSysSizInput; ++SysSizIndex) { - int PrimAirIndex = UtilityRoutines::FindItemInList(SysSizInput(SysSizIndex).AirPriLoopName, state.dataAirSystemsData->PrimaryAirSystems); + for (int SysSizIndex = 1; SysSizIndex <= state.dataSize->NumSysSizInput; ++SysSizIndex) { + int PrimAirIndex = UtilityRoutines::FindItemInList(SysSizInput(SysSizIndex).AirPriLoopName, PrimaryAirSystems); if (PrimAirIndex == 0) { ShowSevereError(state, "Sizing:System: " + SysSizInput(SysSizIndex).AirPriLoopName + " references unknown AirLoopHVAC"); ErrorsFound = true; @@ -4148,7 +4092,7 @@ namespace EnergyPlus::SimAirServingZones { for (int DesDayEnvrnNum = 1; DesDayEnvrnNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DesDayEnvrnNum) { for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - SysSizing(DesDayEnvrnNum, AirLoopNum).AirPriLoopName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name; + SysSizing(DesDayEnvrnNum, AirLoopNum).AirPriLoopName = PrimaryAirSystems(AirLoopNum).Name; int SysSizNum = UtilityRoutines::FindItemInList( SysSizing(DesDayEnvrnNum, AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum > 0) { // move data from system sizing input @@ -4167,7 +4111,7 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(DesDayEnvrnNum, AirLoopNum).CoolSupHumRat = SysSizInput(SysSizNum).CoolSupHumRat; SysSizing(DesDayEnvrnNum, AirLoopNum).HeatSupHumRat = SysSizInput(SysSizNum).HeatSupHumRat; SysSizing(DesDayEnvrnNum, AirLoopNum).SizingOption = SysSizInput(SysSizNum).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { SysSizing(DesDayEnvrnNum, AirLoopNum).CoolOAOption = AllOA; SysSizing(DesDayEnvrnNum, AirLoopNum).HeatOAOption = AllOA; } else { @@ -4201,7 +4145,7 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(DesDayEnvrnNum, AirLoopNum).CoolSupHumRat = SysSizInput(1).CoolSupHumRat; SysSizing(DesDayEnvrnNum, AirLoopNum).HeatSupHumRat = SysSizInput(1).HeatSupHumRat; SysSizing(DesDayEnvrnNum, AirLoopNum).SizingOption = SysSizInput(1).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { SysSizing(DesDayEnvrnNum, AirLoopNum).CoolOAOption = AllOA; SysSizing(DesDayEnvrnNum, AirLoopNum).HeatOAOption = AllOA; } else { @@ -4244,8 +4188,8 @@ namespace EnergyPlus::SimAirServingZones { for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - FinalSysSizing(AirLoopNum).AirPriLoopName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name; - CalcSysSizing(AirLoopNum).AirPriLoopName = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).Name; + FinalSysSizing(AirLoopNum).AirPriLoopName = PrimaryAirSystems(AirLoopNum).Name; + CalcSysSizing(AirLoopNum).AirPriLoopName = PrimaryAirSystems(AirLoopNum).Name; int SysSizNum = UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum > 0) { // move data from system sizing input @@ -4264,7 +4208,7 @@ namespace EnergyPlus::SimAirServingZones { FinalSysSizing(AirLoopNum).CoolSupHumRat = SysSizInput(SysSizNum).CoolSupHumRat; FinalSysSizing(AirLoopNum).HeatSupHumRat = SysSizInput(SysSizNum).HeatSupHumRat; FinalSysSizing(AirLoopNum).SizingOption = SysSizInput(SysSizNum).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { FinalSysSizing(AirLoopNum).CoolOAOption = AllOA; FinalSysSizing(AirLoopNum).HeatOAOption = AllOA; } else { @@ -4309,7 +4253,7 @@ namespace EnergyPlus::SimAirServingZones { CalcSysSizing(AirLoopNum).CoolSupHumRat = SysSizInput(SysSizNum).CoolSupHumRat; CalcSysSizing(AirLoopNum).HeatSupHumRat = SysSizInput(SysSizNum).HeatSupHumRat; CalcSysSizing(AirLoopNum).SizingOption = SysSizInput(SysSizNum).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { CalcSysSizing(AirLoopNum).CoolOAOption = AllOA; CalcSysSizing(AirLoopNum).HeatOAOption = AllOA; } else { @@ -4355,7 +4299,7 @@ namespace EnergyPlus::SimAirServingZones { FinalSysSizing(AirLoopNum).CoolSupHumRat = SysSizInput(1).CoolSupHumRat; FinalSysSizing(AirLoopNum).HeatSupHumRat = SysSizInput(1).HeatSupHumRat; FinalSysSizing(AirLoopNum).SizingOption = SysSizInput(1).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { FinalSysSizing(AirLoopNum).CoolOAOption = AllOA; FinalSysSizing(AirLoopNum).HeatOAOption = AllOA; } else { @@ -4399,7 +4343,7 @@ namespace EnergyPlus::SimAirServingZones { CalcSysSizing(AirLoopNum).CoolSupHumRat = SysSizInput(1).CoolSupHumRat; CalcSysSizing(AirLoopNum).HeatSupHumRat = SysSizInput(1).HeatSupHumRat; CalcSysSizing(AirLoopNum).SizingOption = SysSizInput(1).SizingOption; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).isAllOA) { + if (PrimaryAirSystems(AirLoopNum).isAllOA) { CalcSysSizing(AirLoopNum).CoolOAOption = AllOA; CalcSysSizing(AirLoopNum).HeatOAOption = AllOA; } else { @@ -4691,6 +4635,13 @@ namespace EnergyPlus::SimAirServingZones { Real64 SysOAUnc; // uncorrected system OA summing up people and area based OA for all zones for VRP Real64 ZoneOAUnc; // uncorrected zone OA summing up people and area based OA for each zone + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &TermUnitFinalZoneSizing(state.dataSize->TermUnitFinalZoneSizing); + auto &SysSizInput(state.dataSize->SysSizInput); + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + // begin system OA calcs, this is the first pass, std 62.1 calcs are redone after adjustments and zone units are set up // call refactored routine for Pz, Ps and D @@ -4707,15 +4658,15 @@ namespace EnergyPlus::SimAirServingZones { UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum == 0) SysSizNum = 1; // use first when none applicable if (FinalSysSizing(AirLoopNum).OAAutoSized) { - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; // people related code removed, see SizingManager::DetermineSystemPopulationDiversity for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); if (TermUnitSizingIndex == 0) { - ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName + - ", Zone =" + state.dataHeatBal->Zone(state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum)).Name); + ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + AirToZoneNodeInfo(AirLoopNum).AirLoopName + + ", Zone =" + state.dataHeatBal->Zone(AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum)).Name); ShowFatalError(state, "This is a defect. Please report this issue."); } if (SysSizNum > 0) { @@ -4725,14 +4676,14 @@ namespace EnergyPlus::SimAirServingZones { if (SysSizInput(SysSizNum).SystemOAMethod == SOAM_ZoneSum) { // ZoneSum Method SysOAUnc += ZoneOAUnc; } else if (SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP) { // Ventilation Rate Procedure - SysOAUnc += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople * DataSizing::DBySys(AirLoopNum) + + SysOAUnc += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople * state.dataSize->DBySys(AirLoopNum) + TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; // apply D to people term } - SumRpxPzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople; - SumRaxAzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; + state.dataSize->SumRpxPzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople; + state.dataSize->SumRaxAzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; // save for Standard 62 tabular report - DataSizing::VbzByZone(TermUnitSizingIndex) = ZoneOAUnc; // fixed now, previously RHS already had Ez factored in. + state.dataSize->VbzByZone(TermUnitSizingIndex) = ZoneOAUnc; // fixed now, previously RHS already had Ez factored in. // Save Std 62.1 cooling ventilation required by zone if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling > 0.0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone = @@ -4830,7 +4781,7 @@ namespace EnergyPlus::SimAirServingZones { // Std 62.1-2010, section 6.2.5.1: "Vpz (used to determin Zpz) is the primary airflow rate // rate to the ventilation zone from the air handler, including outdoor air and recirculated air. // MJW - Not sure this is correct, seems like it should be ZonePA - above comments contradict each other - DataSizing::VpzMinClgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VpzMinClgByZone(TermUnitSizingIndex) = ZoneSA; } else { // single path system // Vdz: "Discharge" supply air delivered to zone by terminal unit @@ -4841,26 +4792,26 @@ namespace EnergyPlus::SimAirServingZones { // Save VpzMin in case this is a single path VAV system. // Std 62.1-2010, section 6.2.5.1: "For VAV-system design purposes, Vpz is the lowest zone primary // airflow value expected at the design condition analyzed." - DataSizing::VpzMinClgByZone(TermUnitSizingIndex) = + state.dataSize->VpzMinClgByZone(TermUnitSizingIndex) = TermUnitFinalZoneSizing(TermUnitSizingIndex).DesCoolVolFlowMin; // this may be getting used before it gets filled ?? // In case for some reason the VAV minimum has not been defined, use the design primary airflow if (TermUnitFinalZoneSizing(TermUnitSizingIndex).DesCoolVolFlowMin <= 0) - DataSizing::VpzMinClgByZone(TermUnitSizingIndex) = ZonePA; + state.dataSize->VpzMinClgByZone(TermUnitSizingIndex) = ZonePA; } // save zone discharge supply airflow - DataSizing::VdzClgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VdzClgByZone(TermUnitSizingIndex) = ZoneSA; // save Vpz zone primary airflow for standard 62.1 report - DataSizing::VpzClgByZone(TermUnitSizingIndex) = ZonePA; - DataSizing::VpzClgSumBySys(AirLoopNum) += ZonePA; + state.dataSize->VpzClgByZone(TermUnitSizingIndex) = ZonePA; + state.dataSize->VpzClgSumBySys(AirLoopNum) += ZonePA; // Fraction of required zone ventilation to minimum primary airflow expected at condition analyzed TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzClgByZone = 0.0; - if (DataSizing::VpzMinClgByZone(TermUnitSizingIndex) > 0) { + if (state.dataSize->VpzMinClgByZone(TermUnitSizingIndex) > 0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzClgByZone = - min(1.0, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone / DataSizing::VpzMinClgByZone(TermUnitSizingIndex)); + min(1.0, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone / state.dataSize->VpzMinClgByZone(TermUnitSizingIndex)); } // calc zone primary air fraction @@ -4875,17 +4826,17 @@ namespace EnergyPlus::SimAirServingZones { TermUnitFinalZoneSizing(TermUnitSizingIndex).SupplyAirAdjustFactor = max(ClgSupplyAirAdjustFactor, HtgSupplyAirAdjustFactor); } - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; if (NumZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); if (TermUnitSizingIndex == 0) { - ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName + - ", Zone =" + state.dataHeatBal->Zone(state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum)).Name); + ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + AirToZoneNodeInfo(AirLoopNum).AirLoopName + + ", Zone =" + state.dataHeatBal->Zone(AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum)).Name); ShowFatalError(state, "This is a defect. Please report this issue."); } int MatchingCooledZoneNum = - General::FindNumberInList(TermUnitSizingIndex, state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); + General::FindNumberInList(TermUnitSizingIndex, AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); if (MatchingCooledZoneNum == 0) { if (SysSizNum > 0) { ZoneOAUnc = TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople + @@ -4893,13 +4844,13 @@ namespace EnergyPlus::SimAirServingZones { if (SysSizInput(SysSizNum).SystemOAMethod == SOAM_ZoneSum) { // ZoneSum Method SysOAUnc += ZoneOAUnc; } else if (SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP) { // Ventilation Rate Procedure - SysOAUnc += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople * DataSizing::DBySys(AirLoopNum) + + SysOAUnc += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople * state.dataSize->DBySys(AirLoopNum) + TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; // apply D to people term } - SumRpxPzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople; - SumRaxAzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; + state.dataSize->SumRpxPzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromPeople; + state.dataSize->SumRaxAzBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).TotalOAFromArea; // save for Standard 62 tabular report - DataSizing::VbzByZone(TermUnitSizingIndex) = ZoneOAUnc; // fixed now, previously RHS already had Ez factored in. + state.dataSize->VbzByZone(TermUnitSizingIndex) = ZoneOAUnc; // fixed now, previously RHS already had Ez factored in. // Save Std 62.1 heating ventilation required by zone if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating > 0.0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone = @@ -4994,7 +4945,7 @@ namespace EnergyPlus::SimAirServingZones { // For re-circulation systems, Vpz used to determine Zpz is the design terminal airflow // Std 62.1-2010, section 6.2.5.1: "Vpz (used to determin Zpz) is the primary airflow rate // rate to the ventilation zone from the air handler, including outdoor air and recirculated air. - DataSizing::VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; } else { // single path system @@ -5002,21 +4953,21 @@ namespace EnergyPlus::SimAirServingZones { ZoneSA = TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow; // We do not use the cooling VAV min for heating because the VAV-box heating maximum may be larger. - DataSizing::VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; } // save Vdz zone discharge supply airflow for standard 62.1 report - DataSizing::VdzHtgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VdzHtgByZone(TermUnitSizingIndex) = ZoneSA; // save Vpz zone primary airflow for standard 62.1 report - DataSizing::VpzHtgByZone(TermUnitSizingIndex) = ZonePA; - DataSizing::VpzHtgSumBySys(AirLoopNum) += ZonePA; + state.dataSize->VpzHtgByZone(TermUnitSizingIndex) = ZonePA; + state.dataSize->VpzHtgSumBySys(AirLoopNum) += ZonePA; // Fraction of required zone ventilation to minimum primary airflow expected at condition analyzed TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzHtgByZone = 0.0; - if (DataSizing::VpzMinHtgByZone(TermUnitSizingIndex) > 0) { + if (state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex) > 0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzHtgByZone = min( - 1.0, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone / DataSizing::VpzMinHtgByZone(TermUnitSizingIndex)); + 1.0, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone / state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex)); } // calc zone primary air fraction @@ -5035,19 +4986,19 @@ namespace EnergyPlus::SimAirServingZones { } else { // getting heating flow based values for Std 62.1 report for single path systems ZoneOAFracHeating = 0.0; for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); if (TermUnitSizingIndex == 0) { - ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName + - ", Zone =" + state.dataHeatBal->Zone(state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesHeatedNum)).Name); + ShowSevereError(state, "SetUpSysSizingArray: TermUnitSizingIndex = 0 for AirLoop=" + AirToZoneNodeInfo(AirLoopNum).AirLoopName + + ", Zone =" + state.dataHeatBal->Zone(AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesHeatedNum)).Name); ShowFatalError(state, "This is a defect. Please report this issue."); } // Save Std 62.1 heating ventilation required by zone if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating > 0.0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone = - DataSizing::VbzByZone(TermUnitSizingIndex) / TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; + state.dataSize->VbzByZone(TermUnitSizingIndex) / TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; } else { - TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone = DataSizing::VbzByZone(TermUnitSizingIndex); + TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone = state.dataSize->VbzByZone(TermUnitSizingIndex); } if (TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow > 0.0) { @@ -5088,19 +5039,19 @@ namespace EnergyPlus::SimAirServingZones { ZonePA = TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow; ZoneSA = TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow; // save Vdz zone discharge airflow for standard 62.1 report - DataSizing::VdzHtgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VdzHtgByZone(TermUnitSizingIndex) = ZoneSA; // save Vpz zone primary airflow for standard 62.1 report - DataSizing::VpzHtgByZone(TermUnitSizingIndex) = ZonePA; - DataSizing::VpzHtgSumBySys(AirLoopNum) += ZonePA; + state.dataSize->VpzHtgByZone(TermUnitSizingIndex) = ZonePA; + state.dataSize->VpzHtgSumBySys(AirLoopNum) += ZonePA; // We do not use the cooling VAV min for heating because the VAV-box heating maximum may be larger. - DataSizing::VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; + state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex) = ZoneSA; // Fraction of required zone ventilation to minimum primary airflow expected at condition analyzed TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzHtgByZone = 0.0; - if (DataSizing::VpzMinHtgByZone(TermUnitSizingIndex) > 0) { + if (state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex) > 0) { TermUnitFinalZoneSizing(TermUnitSizingIndex).ZpzHtgByZone = - TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone / DataSizing::VpzMinHtgByZone(TermUnitSizingIndex); + TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone / state.dataSize->VpzMinHtgByZone(TermUnitSizingIndex); } // calc zone primary air fraction @@ -5119,13 +5070,13 @@ namespace EnergyPlus::SimAirServingZones { FinalSysSizing(AirLoopNum).SysUncOA = SysOAUnc; CalcSysSizing(AirLoopNum).SysUncOA = SysOAUnc; - DataSizing::VouBySys(AirLoopNum) = SysOAUnc; + state.dataSize->VouBySys(AirLoopNum) = SysOAUnc; FinalSysSizing(AirLoopNum).DesOutAirVolFlow = MinOAFlow; CalcSysSizing(AirLoopNum).DesOutAirVolFlow = MinOAFlow; for (int DesDayEnvrnNum = 1; DesDayEnvrnNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DesDayEnvrnNum) { - SysSizing(DesDayEnvrnNum, AirLoopNum).DesOutAirVolFlow = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; + state.dataSize->SysSizing(DesDayEnvrnNum, AirLoopNum).DesOutAirVolFlow = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; } } } @@ -5153,9 +5104,6 @@ namespace EnergyPlus::SimAirServingZones { // CallIndicator = 3 (EndDay) calculate daily maxima // CallIndicator = 5 (EndSysSizingCalc) write out results - // REFERENCES: - // na - // Using/Aliasing using EMSManager::ManageEMS; using General::FindNumberInList; @@ -5168,23 +5116,12 @@ namespace EnergyPlus::SimAirServingZones { // Locals int numOfTimeStepInDay; // number of zone time steps in a day - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int AirLoopNum; // primary air system index int TimeStepInDay; // zone time step in day int TimeStepIndex; // zone time step index int I; // write statement index int J; // write statement index - // REAL(r64) :: HourFrac ! fractional hour Real64 SysCoolRetTemp; // system cooling return temperature for a time step [C] Real64 SysHeatRetTemp; // system heating return temperature for a time step [C] Real64 RhoAir; // density of air kg/m3 @@ -5243,36 +5180,49 @@ namespace EnergyPlus::SimAirServingZones { Real64 termunitsizingtemp; // (1.0+termunitsizing(ctrlzone)%inducrat) Real64 VozClg(0.0); // corrected (for ventilation efficiency) zone outside air flow rate [m3/s] + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &TermUnitFinalZoneSizing(state.dataSize->TermUnitFinalZoneSizing); + auto &NumAirTerminalUnits(state.dataSize->NumAirTerminalUnits); + auto &ZoneSizing(state.dataSize->ZoneSizing); + auto &CurOverallSimDay(state.dataSize->CurOverallSimDay); + auto &SysSizing(state.dataSize->SysSizing); + auto &SizingFileColSep(state.dataSize->SizingFileColSep); + auto &CalcZoneSizing(state.dataSize->CalcZoneSizing); + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + numOfTimeStepInDay = state.dataGlobal->NumOfTimeStepInHour * 24; // allocate scratch arrays - if (!allocated(SensCoolCapTemp)) { - SensCoolCapTemp.dimension(NumPrimaryAirSys, 0.0); - TotCoolCapTemp.dimension(NumPrimaryAirSys, 0.0); + if (!allocated(state.dataSize->SensCoolCapTemp)) { + state.dataSize->SensCoolCapTemp.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->TotCoolCapTemp.dimension(NumPrimaryAirSys, 0.0); } // allocate arrays used to store values for standard 62.1 tabular report - if (!allocated(FaByZoneCool)) { - FaByZoneCool.dimension(NumAirTerminalUnits, 0.0); - FaByZoneHeat.dimension(NumAirTerminalUnits, 0.0); - FbByZoneCool.dimension(NumAirTerminalUnits, 0.0); - FbByZoneHeat.dimension(NumAirTerminalUnits, 0.0); - FcByZoneCool.dimension(NumAirTerminalUnits, 0.0); - FcByZoneHeat.dimension(NumAirTerminalUnits, 0.0); + if (!allocated(state.dataSize->FaByZoneCool)) { + state.dataSize->FaByZoneCool.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->FaByZoneHeat.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->FbByZoneCool.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->FbByZoneHeat.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->FcByZoneCool.dimension(NumAirTerminalUnits, 0.0); + state.dataSize->FcByZoneHeat.dimension(NumAirTerminalUnits, 0.0); EvBySysCool.dimension(NumPrimaryAirSys, 1.0); EvBySysHeat.dimension(NumPrimaryAirSys, 1.0); - XsBySysCool.dimension(NumPrimaryAirSys, 1.0); - XsBySysHeat.dimension(NumPrimaryAirSys, 1.0); - EvzByZoneCool.dimension(NumAirTerminalUnits, 1.0); - EvzByZoneCoolPrev.dimension(NumAirTerminalUnits, 1.0); - EvzByZoneHeat.dimension(NumAirTerminalUnits, 1.0); - EvzByZoneHeatPrev.dimension(NumAirTerminalUnits, 1.0); - EvzMinBySysCool.dimension(NumPrimaryAirSys, 1.0); - EvzMinBySysHeat.dimension(NumPrimaryAirSys, 1.0); - VotClgBySys.dimension(NumPrimaryAirSys, 0.0); - VotHtgBySys.dimension(NumPrimaryAirSys, 0.0); - VozSumClgBySys.dimension(NumPrimaryAirSys, 0.0); - VozSumHtgBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->XsBySysCool.dimension(NumPrimaryAirSys, 1.0); + state.dataSize->XsBySysHeat.dimension(NumPrimaryAirSys, 1.0); + state.dataSize->EvzByZoneCool.dimension(NumAirTerminalUnits, 1.0); + state.dataSize->EvzByZoneCoolPrev.dimension(NumAirTerminalUnits, 1.0); + state.dataSize->EvzByZoneHeat.dimension(NumAirTerminalUnits, 1.0); + state.dataSize->EvzByZoneHeatPrev.dimension(NumAirTerminalUnits, 1.0); + state.dataSize->EvzMinBySysCool.dimension(NumPrimaryAirSys, 1.0); + state.dataSize->EvzMinBySysHeat.dimension(NumPrimaryAirSys, 1.0); + state.dataSize->VotClgBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VotHtgBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VozSumClgBySys.dimension(NumPrimaryAirSys, 0.0); + state.dataSize->VozSumHtgBySys.dimension(NumPrimaryAirSys, 0.0); } { @@ -5318,16 +5268,16 @@ namespace EnergyPlus::SimAirServingZones { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { // start of begin day loop over primary air systems - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; SysSizing(CurOverallSimDay, AirLoopNum).CoolDesDay = state.dataEnvrn->EnvironmentName; SysSizing(CurOverallSimDay, AirLoopNum).HeatDesDay = state.dataEnvrn->EnvironmentName; - SensCoolCapTemp(AirLoopNum) = 0.0; - TotCoolCapTemp(AirLoopNum) = 0.0; + state.dataSize->SensCoolCapTemp(AirLoopNum) = 0.0; + state.dataSize->TotCoolCapTemp(AirLoopNum) = 0.0; for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over cooled zones - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); Real64 adjCoolMassFlow = TermUnitSizing(TermUnitSizingIndex) .applyTermUnitSizingCoolFlow(ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow, ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlowNoOA); @@ -5337,8 +5287,8 @@ namespace EnergyPlus::SimAirServingZones { if (NumZonesHeated > 0) { // if there are zones supplied with central hot air for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { // loop over heated zones - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); Real64 adjHeatMassFlow = TermUnitSizing(TermUnitSizingIndex) .applyTermUnitSizingHeatFlow(ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow, ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlowNoOA); @@ -5347,8 +5297,8 @@ namespace EnergyPlus::SimAirServingZones { } // end of loop over heated zones } else { // otherwise use cool supply zones for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over cooled zones - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); Real64 adjHeatMassFlow = TermUnitSizing(TermUnitSizingIndex) .applyTermUnitSizingHeatFlow(ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow, ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlowNoOA); @@ -5398,8 +5348,8 @@ namespace EnergyPlus::SimAirServingZones { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { // start of zone time step loop over primary air systems - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; SysCoolRetTemp = 0.0; OutAirFrac = 0.0; @@ -5414,8 +5364,8 @@ namespace EnergyPlus::SimAirServingZones { SysDOASLatAdd = 0.0; for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over zones cooled by central system - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // sum up the system mass flow rate for this time step Real64 adjCoolFlowSeq = TermUnitSizing(TermUnitSizingIndex) @@ -5487,9 +5437,9 @@ namespace EnergyPlus::SimAirServingZones { } // end of system mass flow check // get the maximum system sensible cooling capacity - if (SysSensCoolCap > SensCoolCapTemp(AirLoopNum)) { + if (SysSensCoolCap > state.dataSize->SensCoolCapTemp(AirLoopNum)) { SysSizPeakDDNum(AirLoopNum).TimeStepAtSensCoolPk(CurOverallSimDay) = TimeStepInDay; - SensCoolCapTemp(AirLoopNum) = SysSensCoolCap; + state.dataSize->SensCoolCapTemp(AirLoopNum) = SysSensCoolCap; if (SysSizing(CurOverallSimDay, AirLoopNum).CoolingPeakLoadType == SensibleCoolingLoad) { SysSizing(CurOverallSimDay, AirLoopNum).SensCoolCap = SysSensCoolCap; SysSizing(CurOverallSimDay, AirLoopNum).TotCoolCap = SysTotCoolCap; @@ -5504,9 +5454,9 @@ namespace EnergyPlus::SimAirServingZones { } } // get the maximum system total cooling capacity - if (SysTotCoolCap > TotCoolCapTemp(AirLoopNum)) { + if (SysTotCoolCap > state.dataSize->TotCoolCapTemp(AirLoopNum)) { SysSizPeakDDNum(AirLoopNum).TimeStepAtTotCoolPk(CurOverallSimDay) = TimeStepInDay; - TotCoolCapTemp(AirLoopNum) = SysTotCoolCap; + state.dataSize->TotCoolCapTemp(AirLoopNum) = SysTotCoolCap; if (SysSizing(CurOverallSimDay, AirLoopNum).CoolingPeakLoadType == TotalCoolingLoad) { SysSizing(CurOverallSimDay, AirLoopNum).SensCoolCap = SysSensCoolCap; SysSizing(CurOverallSimDay, AirLoopNum).TotCoolCap = SysTotCoolCap; @@ -5520,8 +5470,8 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(CurOverallSimDay, AirLoopNum).CoolFlowSeq(TimeStepInDay); } SysSizing(CurOverallSimDay, AirLoopNum).SysCoolCoinSpaceSens = 0.0; - for (int zonesCoolLoop = 1; zonesCoolLoop <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zonesCoolLoop) { - int zoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(zonesCoolLoop); + for (int zonesCoolLoop = 1; zonesCoolLoop <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zonesCoolLoop) { + int zoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(zonesCoolLoop); SysSizing(CurOverallSimDay, AirLoopNum).SysCoolCoinSpaceSens += CalcZoneSizing(CurOverallSimDay, zoneNum).CoolLoadSeq(TimeStepInDay); } @@ -5542,8 +5492,8 @@ namespace EnergyPlus::SimAirServingZones { if (NumZonesHeated > 0) { // IF there are centrally heated zones for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { // loop over the heated zones - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); // sum up the heating mass flow rate for this time step Real64 adjHeatFlowSeq = TermUnitSizing(TermUnitSizingIndex) @@ -5610,9 +5560,9 @@ namespace EnergyPlus::SimAirServingZones { // save time of system coincident heating coil peak SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoilTimeStepPk = TimeStepInDay; SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoinSpaceSens = 0.0; - if (state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated > 0) { - for (int zonesHeatLoop = 1; zonesHeatLoop <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zonesHeatLoop) { - int zoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(zonesHeatLoop); + if (AirToZoneNodeInfo(AirLoopNum).NumZonesHeated > 0) { + for (int zonesHeatLoop = 1; zonesHeatLoop <= AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zonesHeatLoop) { + int zoneNum = AirToZoneNodeInfo(AirLoopNum).HeatCtrlZoneNums(zonesHeatLoop); SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoinSpaceSens += CalcZoneSizing(CurOverallSimDay, zoneNum).HeatLoadSeq(TimeStepInDay); } @@ -5632,8 +5582,8 @@ namespace EnergyPlus::SimAirServingZones { } else { // No centrally heated zones: use cooled zones for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over the cooled zones - int CtrlZoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int CtrlZoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // sum up the heating mass flow rate for this time step Real64 adjHeatFlowSeq = TermUnitSizing(TermUnitSizingIndex) @@ -5701,8 +5651,8 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoilTimeStepPk = TimeStepInDay; SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoinSpaceSens = 0.0; - for (int zonesCoolLoop = 1; zonesCoolLoop <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zonesCoolLoop) { - int zoneNum = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(zonesCoolLoop); + for (int zonesCoolLoop = 1; zonesCoolLoop <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zonesCoolLoop) { + int zoneNum = AirToZoneNodeInfo(AirLoopNum).CoolCtrlZoneNums(zonesCoolLoop); SysSizing(CurOverallSimDay, AirLoopNum).SysHeatCoinSpaceSens += CalcZoneSizing(CurOverallSimDay, zoneNum).HeatLoadSeq(TimeStepInDay); } @@ -5728,8 +5678,8 @@ namespace EnergyPlus::SimAirServingZones { SysHeatingEv = 1.0; for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; { auto const SELECT_CASE_var1(SysSizing(CurOverallSimDay, AirLoopNum).SizingOption); @@ -5739,33 +5689,33 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(CurOverallSimDay, AirLoopNum).CoinCoolMassFlow / state.dataEnvrn->StdRhoAir; SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow = SysSizing(CurOverallSimDay, AirLoopNum).CoinHeatMassFlow / state.dataEnvrn->StdRhoAir; - VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; - VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; + state.dataSize->VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; + state.dataSize->VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < EvzMinBySysCool(AirLoopNum)) - EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < EvzMinBySysHeat(AirLoopNum)) - EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < state.dataSize->EvzMinBySysCool(AirLoopNum)) + state.dataSize->EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < state.dataSize->EvzMinBySysHeat(AirLoopNum)) + state.dataSize->EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; } for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < EvzMinBySysCool(AirLoopNum)) - EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < EvzMinBySysHeat(AirLoopNum)) - EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < state.dataSize->EvzMinBySysCool(AirLoopNum)) + state.dataSize->EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < state.dataSize->EvzMinBySysHeat(AirLoopNum)) + state.dataSize->EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; } if (SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow > 0) { - XsBySysCool(AirLoopNum) = + state.dataSize->XsBySysCool(AirLoopNum) = min(1.0, FinalSysSizing(AirLoopNum).SysUncOA / SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow); } else { - XsBySysCool(AirLoopNum) = 0.0; + state.dataSize->XsBySysCool(AirLoopNum) = 0.0; } if (SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow > 0) { - XsBySysHeat(AirLoopNum) = + state.dataSize->XsBySysHeat(AirLoopNum) = min(1.0, FinalSysSizing(AirLoopNum).SysUncOA / SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow); } else { - XsBySysHeat(AirLoopNum) = 0.0; + state.dataSize->XsBySysHeat(AirLoopNum) = 0.0; } } else if (FinalSysSizing(AirLoopNum).SystemOAMethod == SOAM_VRP) { // Ventilation Rate Procedure // cooling @@ -5784,11 +5734,11 @@ namespace EnergyPlus::SimAirServingZones { Xs = 0.0; } if (FinalSysSizing(AirLoopNum).OAAutoSized && SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow > 0) { - int numZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int numZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; MinCoolingEvz = 1.0; - VozSumClgBySys(AirLoopNum) = 0.0; + state.dataSize->VozSumClgBySys(AirLoopNum) = 0.0; for (int ZonesCooledNum = 1; ZonesCooledNum <= numZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; @@ -5802,9 +5752,9 @@ namespace EnergyPlus::SimAirServingZones { Fb = Ep; Fc = 1.0 - (1.0 - ZoneEz) * (1.0 - Er) * (1.0 - Ep); // save Fa Fb and Fc for standard 62.1 report - FaByZoneCool(TermUnitSizingIndex) = Fa; - FbByZoneCool(TermUnitSizingIndex) = Fb; - FcByZoneCool(TermUnitSizingIndex) = Fc; + state.dataSize->FaByZoneCool(TermUnitSizingIndex) = Fa; + state.dataSize->FbByZoneCool(TermUnitSizingIndex) = Fb; + state.dataSize->FcByZoneCool(TermUnitSizingIndex) = Fc; // Calc zone ventilation efficiency if (Fa > 0.0) { @@ -5820,9 +5770,9 @@ namespace EnergyPlus::SimAirServingZones { LimitZoneVentEff(state, Xs, VozClg, TermUnitSizingIndex, SysCoolingEv); } if (SysCoolingEv < MinCoolingEvz) MinCoolingEvz = SysCoolingEv; - EvzByZoneCoolPrev(TermUnitSizingIndex) = EvzByZoneCool(TermUnitSizingIndex); // Save previous EvzByZoneCool - EvzByZoneCool(TermUnitSizingIndex) = SysCoolingEv; - VozSumClgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone; + state.dataSize->EvzByZoneCoolPrev(TermUnitSizingIndex) = state.dataSize->EvzByZoneCool(TermUnitSizingIndex); // Save previous EvzByZoneCool + state.dataSize->EvzByZoneCool(TermUnitSizingIndex) = SysCoolingEv; + state.dataSize->VozSumClgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone; } if (MinCoolingEvz > 0) { @@ -5831,16 +5781,16 @@ namespace EnergyPlus::SimAirServingZones { // Vou = Diversity*(Rp*Pz) + Ra*Az Vou = FinalSysSizing(AirLoopNum).SysUncOA; Vot = Vou / MinCoolingEvz; - if (Vot > VotClgBySys(AirLoopNum)) { + if (Vot > state.dataSize->VotClgBySys(AirLoopNum)) { // This might be the cooling design day so only update if Vot is larger than the previous - VotClgBySys(AirLoopNum) = Vot; - XsBySysCool(AirLoopNum) = Xs; - EvzMinBySysCool(AirLoopNum) = MinCoolingEvz; + state.dataSize->VotClgBySys(AirLoopNum) = Vot; + state.dataSize->XsBySysCool(AirLoopNum) = Xs; + state.dataSize->EvzMinBySysCool(AirLoopNum) = MinCoolingEvz; } else { // Restore EvzByZoneCool() since it was reset by the current (but not highest Vot) design day for (int ZonesCooledNum = 1; ZonesCooledNum <= numZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); - EvzByZoneCool(TermUnitSizingIndex) = EvzByZoneCoolPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + state.dataSize->EvzByZoneCool(TermUnitSizingIndex) = state.dataSize->EvzByZoneCoolPrev(TermUnitSizingIndex); } } } @@ -5864,12 +5814,12 @@ namespace EnergyPlus::SimAirServingZones { SysHtgPeakAirflow = 0.0; if (NumZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); SysHtgPeakAirflow += TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow; } } else { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); SysHtgPeakAirflow += TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatVolFlow; } } @@ -5888,14 +5838,14 @@ namespace EnergyPlus::SimAirServingZones { } if (FinalSysSizing(AirLoopNum).OAAutoSized && SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow > 0) { - int numZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int numZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; MinHeatingEvz = 1.0; - VozSumHtgBySys(AirLoopNum) = 0.0; + state.dataSize->VozSumHtgBySys(AirLoopNum) = 0.0; if (numZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= numZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); MatchingCooledZoneNum = FindNumberInList( - TermUnitSizingIndex, state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); + TermUnitSizingIndex, AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); if (MatchingCooledZoneNum == 0) { // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; @@ -5908,9 +5858,9 @@ namespace EnergyPlus::SimAirServingZones { Fb = Ep; Fc = 1.0 - (1.0 - ZoneEz) * (1.0 - Er) * (1.0 - Ep); // save Fa Fb and Fc for standard 62.1 report - FaByZoneHeat(TermUnitSizingIndex) = Fa; - FbByZoneHeat(TermUnitSizingIndex) = Fb; - FcByZoneHeat(TermUnitSizingIndex) = Fc; + state.dataSize->FaByZoneHeat(TermUnitSizingIndex) = Fa; + state.dataSize->FbByZoneHeat(TermUnitSizingIndex) = Fb; + state.dataSize->FcByZoneHeat(TermUnitSizingIndex) = Fc; // Calc zone ventilation efficiency if (Fa > 0.0) { @@ -5923,15 +5873,15 @@ namespace EnergyPlus::SimAirServingZones { SysHeatingEv = 1.0 + Xs - ZoneOAFrac; } if (SysHeatingEv < MinHeatingEvz) MinHeatingEvz = SysHeatingEv; - EvzByZoneHeatPrev(TermUnitSizingIndex) = - EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat - EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; - VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; + state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex) = + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; + state.dataSize->VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; } } } else { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; Ep = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZonePrimaryAirFractionHtg; @@ -5943,9 +5893,9 @@ namespace EnergyPlus::SimAirServingZones { Fb = Ep; Fc = 1.0 - (1.0 - ZoneEz) * (1.0 - Er) * (1.0 - Ep); // save Fa Fb and Fc for standard 62.1 report - FaByZoneHeat(TermUnitSizingIndex) = Fa; - FbByZoneHeat(TermUnitSizingIndex) = Fb; - FcByZoneHeat(TermUnitSizingIndex) = Fc; + state.dataSize->FaByZoneHeat(TermUnitSizingIndex) = Fa; + state.dataSize->FbByZoneHeat(TermUnitSizingIndex) = Fb; + state.dataSize->FcByZoneHeat(TermUnitSizingIndex) = Fc; // Calc zone ventilation efficiency if (Fa > 0.0) { @@ -5958,10 +5908,10 @@ namespace EnergyPlus::SimAirServingZones { SysHeatingEv = 1.0 + Xs - ZoneOAFrac; } if (SysHeatingEv < MinHeatingEvz) MinHeatingEvz = SysHeatingEv; - EvzByZoneHeatPrev(TermUnitSizingIndex) = - EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat - EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; - VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; + state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex) = + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; + state.dataSize->VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; } } @@ -5972,23 +5922,23 @@ namespace EnergyPlus::SimAirServingZones { // Vou = Diversity*(Rp*Pz) + Ra*Az Vou = FinalSysSizing(AirLoopNum).SysUncOA; Vot = Vou / MinHeatingEvz; - if (Vot > VotHtgBySys(AirLoopNum)) { + if (Vot > state.dataSize->VotHtgBySys(AirLoopNum)) { // This might be the cooling design day so only update if Vot is larger than the previous - VotHtgBySys(AirLoopNum) = Vot; - XsBySysHeat(AirLoopNum) = Xs; - EvzMinBySysHeat(AirLoopNum) = MinHeatingEvz; + state.dataSize->VotHtgBySys(AirLoopNum) = Vot; + state.dataSize->XsBySysHeat(AirLoopNum) = Xs; + state.dataSize->EvzMinBySysHeat(AirLoopNum) = MinHeatingEvz; } else { // Restore EvzByZoneHeat() since it was reset by the current (but not highest Vot) design day // This kludge is probably because inside EndDay block and code gets called for each design day. if (numZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= numZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); - EvzByZoneHeat(TermUnitSizingIndex) = EvzByZoneHeatPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex); } } else { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); - EvzByZoneHeat(TermUnitSizingIndex) = EvzByZoneHeatPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex); } } } @@ -6005,33 +5955,33 @@ namespace EnergyPlus::SimAirServingZones { SysSizing(CurOverallSimDay, AirLoopNum).NonCoinCoolMassFlow / state.dataEnvrn->StdRhoAir; SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow = SysSizing(CurOverallSimDay, AirLoopNum).NonCoinHeatMassFlow / state.dataEnvrn->StdRhoAir; - VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; - VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; + state.dataSize->VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; + state.dataSize->VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).SysUncOA; for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < EvzMinBySysCool(AirLoopNum)) - EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < EvzMinBySysHeat(AirLoopNum)) - EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < state.dataSize->EvzMinBySysCool(AirLoopNum)) + state.dataSize->EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < state.dataSize->EvzMinBySysHeat(AirLoopNum)) + state.dataSize->EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; } for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < EvzMinBySysCool(AirLoopNum)) - EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; - if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < EvzMinBySysHeat(AirLoopNum)) - EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling < state.dataSize->EvzMinBySysCool(AirLoopNum)) + state.dataSize->EvzMinBySysCool(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffCooling; + if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating < state.dataSize->EvzMinBySysHeat(AirLoopNum)) + state.dataSize->EvzMinBySysHeat(AirLoopNum) = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneADEffHeating; } if (SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow > 0) { - XsBySysCool(AirLoopNum) = + state.dataSize->XsBySysCool(AirLoopNum) = min(1.0, FinalSysSizing(AirLoopNum).SysUncOA / SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow); } else { - XsBySysCool(AirLoopNum) = 0.0; + state.dataSize->XsBySysCool(AirLoopNum) = 0.0; } if (SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow > 0) { - XsBySysHeat(AirLoopNum) = + state.dataSize->XsBySysHeat(AirLoopNum) = min(1.0, FinalSysSizing(AirLoopNum).SysUncOA / SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow); } else { - XsBySysHeat(AirLoopNum) = 0.0; + state.dataSize->XsBySysHeat(AirLoopNum) = 0.0; } } else if (FinalSysSizing(AirLoopNum).SystemOAMethod == SOAM_VRP) { // Ventilation Rate Procedure // cooling @@ -6051,11 +6001,11 @@ namespace EnergyPlus::SimAirServingZones { Xs = 0.0; } if (FinalSysSizing(AirLoopNum).OAAutoSized && SysSizing(CurOverallSimDay, AirLoopNum).DesCoolVolFlow > 0) { - int numZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int numZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; MinCoolingEvz = 1.0; - VozSumClgBySys(AirLoopNum) = 0.0; + state.dataSize->VozSumClgBySys(AirLoopNum) = 0.0; for (int ZonesCooledNum = 1; ZonesCooledNum <= numZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; @@ -6069,9 +6019,9 @@ namespace EnergyPlus::SimAirServingZones { Fb = Ep; Fc = 1.0 - (1.0 - ZoneEz) * (1.0 - Er) * (1.0 - Ep); // save Fa Fb and Fc for standard 62.1 report - FaByZoneCool(TermUnitSizingIndex) = Fa; - FbByZoneCool(TermUnitSizingIndex) = Fb; - FcByZoneCool(TermUnitSizingIndex) = Fc; + state.dataSize->FaByZoneCool(TermUnitSizingIndex) = Fa; + state.dataSize->FbByZoneCool(TermUnitSizingIndex) = Fb; + state.dataSize->FcByZoneCool(TermUnitSizingIndex) = Fc; // Calc zone ventilation efficiency if (Fa > 0.0) { @@ -6086,9 +6036,9 @@ namespace EnergyPlus::SimAirServingZones { LimitZoneVentEff(state, Xs, VozClg, TermUnitSizingIndex, SysCoolingEv); } if (SysCoolingEv < MinCoolingEvz) MinCoolingEvz = SysCoolingEv; - EvzByZoneCoolPrev(TermUnitSizingIndex) = EvzByZoneCool(TermUnitSizingIndex); - EvzByZoneCool(TermUnitSizingIndex) = SysCoolingEv; - VozSumClgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone; + state.dataSize->EvzByZoneCoolPrev(TermUnitSizingIndex) = state.dataSize->EvzByZoneCool(TermUnitSizingIndex); + state.dataSize->EvzByZoneCool(TermUnitSizingIndex) = SysCoolingEv; + state.dataSize->VozSumClgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone; } if (MinCoolingEvz > 0) { @@ -6098,16 +6048,16 @@ namespace EnergyPlus::SimAirServingZones { // Vou = Diversity*(Rp*Pz) + Ra*Az Vou = FinalSysSizing(AirLoopNum).SysUncOA; Vot = Vou / MinCoolingEvz; - if (Vot > VotClgBySys(AirLoopNum)) { + if (Vot > state.dataSize->VotClgBySys(AirLoopNum)) { // This might be the cooling design day so only update if Vot is larger than the previous - VotClgBySys(AirLoopNum) = Vot; - XsBySysCool(AirLoopNum) = Xs; - EvzMinBySysCool(AirLoopNum) = MinCoolingEvz; + state.dataSize->VotClgBySys(AirLoopNum) = Vot; + state.dataSize->XsBySysCool(AirLoopNum) = Xs; + state.dataSize->EvzMinBySysCool(AirLoopNum) = MinCoolingEvz; } else { // Restore EvzByZoneCool() since it was reset by the current (but not highest Vot) design day for (int ZonesCooledNum = 1; ZonesCooledNum <= numZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); - EvzByZoneCool(TermUnitSizingIndex) = EvzByZoneCoolPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + state.dataSize->EvzByZoneCool(TermUnitSizingIndex) = state.dataSize->EvzByZoneCoolPrev(TermUnitSizingIndex); } } } @@ -6130,14 +6080,14 @@ namespace EnergyPlus::SimAirServingZones { Xs = 0.0; } if (FinalSysSizing(AirLoopNum).OAAutoSized && SysSizing(CurOverallSimDay, AirLoopNum).DesHeatVolFlow > 0) { - int numZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int numZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; MinHeatingEvz = 1.0; - VozSumHtgBySys(AirLoopNum) = 0.0; + state.dataSize->VozSumHtgBySys(AirLoopNum) = 0.0; if (numZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= numZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); MatchingCooledZoneNum = FindNumberInList( - TermUnitSizingIndex, state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); + TermUnitSizingIndex, AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, NumZonesCooled); if (MatchingCooledZoneNum == 0) { // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; @@ -6162,15 +6112,15 @@ namespace EnergyPlus::SimAirServingZones { } } if (SysHeatingEv < MinHeatingEvz) MinHeatingEvz = SysHeatingEv; - EvzByZoneHeatPrev(TermUnitSizingIndex) = - EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat - EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; - VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; + state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex) = + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; + state.dataSize->VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; } } else { - int numZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int numZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; for (int ZonesHeatedNum = 1; ZonesHeatedNum <= numZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); // Zone air secondary recirculation fraction Er = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation; Ep = TermUnitFinalZoneSizing(TermUnitSizingIndex).ZonePrimaryAirFractionHtg; @@ -6193,10 +6143,10 @@ namespace EnergyPlus::SimAirServingZones { SysHeatingEv = 1.0 + Xs - ZoneOAFrac; } if (SysHeatingEv < MinHeatingEvz) MinHeatingEvz = SysHeatingEv; - EvzByZoneHeatPrev(TermUnitSizingIndex) = - EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat - EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; - VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; + state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex) = + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex); // Save previous EvzByZoneHeat + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = SysHeatingEv; + state.dataSize->VozSumHtgBySys(AirLoopNum) += TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone; } } @@ -6207,23 +6157,23 @@ namespace EnergyPlus::SimAirServingZones { // Vou = Diversity*(Rp*Pz) + Ra*Az Vou = FinalSysSizing(AirLoopNum).SysUncOA; Vot = Vou / MinHeatingEvz; - if (Vot > VotHtgBySys(AirLoopNum)) { + if (Vot > state.dataSize->VotHtgBySys(AirLoopNum)) { // This might be the cooling design day so only update if Vot is larger than the previous - VotHtgBySys(AirLoopNum) = Vot; - XsBySysHeat(AirLoopNum) = Xs; - EvzMinBySysHeat(AirLoopNum) = MinHeatingEvz; + state.dataSize->VotHtgBySys(AirLoopNum) = Vot; + state.dataSize->XsBySysHeat(AirLoopNum) = Xs; + state.dataSize->EvzMinBySysHeat(AirLoopNum) = MinHeatingEvz; } else { // Restore EvzByZoneHeat() since it was just reset by the current (but not highest Vot) design day // This kludge is probably because inside EndDay block and code gets called for each design day. if (numZonesHeated > 0) { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= numZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); - EvzByZoneHeat(TermUnitSizingIndex) = EvzByZoneHeatPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex); } } else { for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesCooled; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); - EvzByZoneHeat(TermUnitSizingIndex) = EvzByZoneHeatPrev(TermUnitSizingIndex); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesHeatedNum); + state.dataSize->EvzByZoneHeat(TermUnitSizingIndex) = state.dataSize->EvzByZoneHeatPrev(TermUnitSizingIndex); } } } @@ -6241,7 +6191,7 @@ namespace EnergyPlus::SimAirServingZones { // If the ventilation was autosized using the ASHRAE VRP method, then the design zone and system ventilation values // must be based on the larger of the cooling or heating OA if (FinalSysSizing(AirLoopNum).OAAutoSized && FinalSysSizing(AirLoopNum).SystemOAMethod == SOAM_VRP) { - Real64 VotMax = max(VotClgBySys(AirLoopNum), VotHtgBySys(AirLoopNum)); + Real64 VotMax = max(state.dataSize->VotClgBySys(AirLoopNum), state.dataSize->VotHtgBySys(AirLoopNum)); // Reset the system level ventilation to the larger of the system-level cooling or heating Vot FinalSysSizing(AirLoopNum).DesOutAirVolFlow = VotMax; @@ -6250,13 +6200,13 @@ namespace EnergyPlus::SimAirServingZones { // Reset the zone level ventilation to the larger of the zone-level cooling or heating Voz // Loop through cooled zones and heated zones - ok if there's overlap for (int zoneNum = 1; zoneNum <= NumZonesCooled; ++zoneNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); Real64 VozMax = max(TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone); TermUnitFinalZoneSizing(TermUnitSizingIndex).MinOA = VozMax; } for (int zoneNum = 1; zoneNum <= NumZonesHeated; ++zoneNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); Real64 VozMax = max(TermUnitFinalZoneSizing(TermUnitSizingIndex).VozClgByZone, TermUnitFinalZoneSizing(TermUnitSizingIndex).VozHtgByZone); TermUnitFinalZoneSizing(TermUnitSizingIndex).MinOA = VozMax; @@ -6327,18 +6277,18 @@ namespace EnergyPlus::SimAirServingZones { // Get final design flows for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - SensCoolCapTemp(AirLoopNum) = 0.0; - TotCoolCapTemp(AirLoopNum) = 0.0; + state.dataSize->SensCoolCapTemp(AirLoopNum) = 0.0; + state.dataSize->TotCoolCapTemp(AirLoopNum) = 0.0; // For coincident sizing, loop over design days and pick out the largest central heating amd // cooling flow rates and associated data for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - if (SysSizing(DDNum, AirLoopNum).SensCoolCap > SensCoolCapTemp(AirLoopNum)) { + if (SysSizing(DDNum, AirLoopNum).SensCoolCap > state.dataSize->SensCoolCapTemp(AirLoopNum)) { SysSizPeakDDNum(AirLoopNum).SensCoolPeakDD = DDNum; - SysSizPeakDDNum(AirLoopNum).cSensCoolPeakDDDate = DesDayWeath(DDNum).DateString; - SensCoolCapTemp(AirLoopNum) = SysSizing(DDNum, AirLoopNum).SensCoolCap; + SysSizPeakDDNum(AirLoopNum).cSensCoolPeakDDDate = state.dataSize->DesDayWeath(DDNum).DateString; + state.dataSize->SensCoolCapTemp(AirLoopNum) = SysSizing(DDNum, AirLoopNum).SensCoolCap; if (SysSizing(DDNum, AirLoopNum).CoolingPeakLoadType == SensibleCoolingLoad) { CalcSysSizing(AirLoopNum).DesCoolVolFlow = SysSizing(DDNum, AirLoopNum).DesCoolVolFlow; CalcSysSizing(AirLoopNum).CoolDesDay = SysSizing(DDNum, AirLoopNum).CoolDesDay; @@ -6367,10 +6317,10 @@ namespace EnergyPlus::SimAirServingZones { } } - if (SysSizing(DDNum, AirLoopNum).TotCoolCap > TotCoolCapTemp(AirLoopNum)) { + if (SysSizing(DDNum, AirLoopNum).TotCoolCap > state.dataSize->TotCoolCapTemp(AirLoopNum)) { SysSizPeakDDNum(AirLoopNum).TotCoolPeakDD = DDNum; - SysSizPeakDDNum(AirLoopNum).cTotCoolPeakDDDate = DesDayWeath(DDNum).DateString; - TotCoolCapTemp(AirLoopNum) = SysSizing(DDNum, AirLoopNum).TotCoolCap; + SysSizPeakDDNum(AirLoopNum).cTotCoolPeakDDDate = state.dataSize->DesDayWeath(DDNum).DateString; + state.dataSize->TotCoolCapTemp(AirLoopNum) = SysSizing(DDNum, AirLoopNum).TotCoolCap; if (SysSizing(DDNum, AirLoopNum).CoolingPeakLoadType == TotalCoolingLoad) { CalcSysSizing(AirLoopNum).DesCoolVolFlow = SysSizing(DDNum, AirLoopNum).DesCoolVolFlow; CalcSysSizing(AirLoopNum).CoolDesDay = SysSizing(DDNum, AirLoopNum).CoolDesDay; @@ -6402,12 +6352,12 @@ namespace EnergyPlus::SimAirServingZones { if (SysSizing(DDNum, AirLoopNum).CoinCoolMassFlow > CalcSysSizing(AirLoopNum).CoinCoolMassFlow) { CalcSysSizing(AirLoopNum).CoinCoolMassFlow = SysSizing(DDNum, AirLoopNum).CoinCoolMassFlow; SysSizPeakDDNum(AirLoopNum).CoolFlowPeakDD = DDNum; - SysSizPeakDDNum(AirLoopNum).cCoolFlowPeakDDDate = DesDayWeath(DDNum).DateString; + SysSizPeakDDNum(AirLoopNum).cCoolFlowPeakDDDate = state.dataSize->DesDayWeath(DDNum).DateString; } if (SysSizing(DDNum, AirLoopNum).HeatCap > CalcSysSizing(AirLoopNum).HeatCap) { SysSizPeakDDNum(AirLoopNum).HeatPeakDD = DDNum; - SysSizPeakDDNum(AirLoopNum).cHeatPeakDDDate = DesDayWeath(DDNum).DateString; + SysSizPeakDDNum(AirLoopNum).cHeatPeakDDDate = state.dataSize->DesDayWeath(DDNum).DateString; CalcSysSizing(AirLoopNum).DesHeatVolFlow = SysSizing(DDNum, AirLoopNum).DesHeatVolFlow; CalcSysSizing(AirLoopNum).HeatDesDay = SysSizing(DDNum, AirLoopNum).HeatDesDay; CalcSysSizing(AirLoopNum).CoinHeatMassFlow = SysSizing(DDNum, AirLoopNum).CoinHeatMassFlow; @@ -6443,8 +6393,8 @@ namespace EnergyPlus::SimAirServingZones { // For noncoincident sizing, find the max heat and cool mass flow for each zone over all the // design days. Then calculate the associated heating and cooling capacities. - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; SysCoolRetTemp = 0.0; OutAirFrac = 0.0; SysCoolMixTemp = 0.0; @@ -6460,7 +6410,7 @@ namespace EnergyPlus::SimAirServingZones { SysCoolOutHumRat = 0.0; for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over cooled zones - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // save the system cooling supply air temp TermUnitFinalZoneSizing(TermUnitSizingIndex).DesCoolCoilInTempTU = CalcSysSizing(AirLoopNum).CoolSupTemp; // save the system cooling supply air hum rat @@ -6476,9 +6426,9 @@ namespace EnergyPlus::SimAirServingZones { CoolDDNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).CoolDDNum; CoolTimeStepNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).TimeStepNumAtCoolMax; OutAirTemp += - DesDayWeath(CoolDDNum).Temp(CoolTimeStepNum) * coolMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(CoolDDNum).Temp(CoolTimeStepNum) * coolMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); OutAirHumRat += - DesDayWeath(CoolDDNum).HumRat(CoolTimeStepNum) * coolMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(CoolDDNum).HumRat(CoolTimeStepNum) * coolMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); } if (CalcSysSizing(AirLoopNum).NonCoinCoolMassFlow > 0.0) { SysCoolRetTemp /= CalcSysSizing(AirLoopNum).NonCoinCoolMassFlow; @@ -6521,7 +6471,7 @@ namespace EnergyPlus::SimAirServingZones { if (NumZonesHeated > 0) { // IF there are centrally heated zones for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { // loop over the heated zones - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); // save the system heating supply air temp TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatCoilInTempTU = CalcSysSizing(AirLoopNum).HeatSupTemp; // save the system heating supply air hum rat @@ -6537,9 +6487,9 @@ namespace EnergyPlus::SimAirServingZones { HeatDDNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).HeatDDNum; HeatTimeStepNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).TimeStepNumAtHeatMax; OutAirTemp += - DesDayWeath(HeatDDNum).Temp(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(HeatDDNum).Temp(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); OutAirHumRat += - DesDayWeath(HeatDDNum).HumRat(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(HeatDDNum).HumRat(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); } if (CalcSysSizing(AirLoopNum).NonCoinHeatMassFlow > 0.0) { SysHeatRetTemp /= CalcSysSizing(AirLoopNum).NonCoinHeatMassFlow; @@ -6565,7 +6515,7 @@ namespace EnergyPlus::SimAirServingZones { } else { // No centrally heated zones: use cooled zones for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over the cooled zones - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); // save the system heating supply air temp TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatCoilInTempTU = CalcSysSizing(AirLoopNum).HeatSupTemp; // save the system heating supply air hum rat @@ -6581,9 +6531,9 @@ namespace EnergyPlus::SimAirServingZones { HeatDDNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).HeatDDNum; HeatTimeStepNum = TermUnitFinalZoneSizing(TermUnitSizingIndex).TimeStepNumAtHeatMax; OutAirTemp += - DesDayWeath(HeatDDNum).Temp(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(HeatDDNum).Temp(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); OutAirHumRat += - DesDayWeath(HeatDDNum).HumRat(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); + state.dataSize->DesDayWeath(HeatDDNum).HumRat(HeatTimeStepNum) * heatMassFlow / (1.0 + TermUnitSizing(TermUnitSizingIndex).InducRat); } if (CalcSysSizing(AirLoopNum).NonCoinHeatMassFlow > 0.0) { SysHeatRetTemp /= CalcSysSizing(AirLoopNum).NonCoinHeatMassFlow; @@ -6706,8 +6656,8 @@ namespace EnergyPlus::SimAirServingZones { // adjust system sizing flow rates for scalable flows UpdateSysSizingForScalableInputs(state, AirLoopNum); - int NumZonesCooled = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesCooled = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; RhoAir = state.dataEnvrn->StdRhoAir; SysCoolSizingRat = 0.0; if (CalcSysSizing(AirLoopNum).InpDesCoolAirFlow > 0.0 && CalcSysSizing(AirLoopNum).DesCoolVolFlow > 0.0 && @@ -6735,7 +6685,7 @@ namespace EnergyPlus::SimAirServingZones { if (CalcSysSizing(AirLoopNum).LoadSizeType == Ventilation && SysCoolSizingRat == 1.0) { if (CalcSysSizing(AirLoopNum).DesCoolVolFlow > 0.0) { SysCoolSizingRat = CalcSysSizing(AirLoopNum).DesOutAirVolFlow / CalcSysSizing(AirLoopNum).DesCoolVolFlow; - VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; + state.dataSize->VotClgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; } else { SysCoolSizingRat = 1.0; } @@ -6743,7 +6693,7 @@ namespace EnergyPlus::SimAirServingZones { if (CalcSysSizing(AirLoopNum).LoadSizeType == Ventilation && SysHeatSizingRat == 1.0) { if (CalcSysSizing(AirLoopNum).DesHeatVolFlow > 0.0) { SysHeatSizingRat = CalcSysSizing(AirLoopNum).DesOutAirVolFlow / CalcSysSizing(AirLoopNum).DesHeatVolFlow; - VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; + state.dataSize->VotHtgBySys(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow; } else { SysHeatSizingRat = 1.0; } @@ -6811,7 +6761,7 @@ namespace EnergyPlus::SimAirServingZones { // take account of the user input system flow rates and alter the zone flow rates to match for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); if ((SysCoolSizingRat != 1.0) && (FinalSysSizing(AirLoopNum).LoadSizeType == Ventilation) && (TermUnitFinalZoneSizing(TermUnitSizingIndex).MinOA > 0.0)) { // size on ventilation load @@ -6881,7 +6831,7 @@ namespace EnergyPlus::SimAirServingZones { // take account of the user input system flow rates and alter the zone flow rates to match (for terminal unit sizing) if (NumZonesHeated > 0) { // IF there are centrally heated zones for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { // loop over the heated zones - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); if ((SysHeatSizingRat != 1.0) && (FinalSysSizing(AirLoopNum).LoadSizeType == Ventilation) && (TermUnitFinalZoneSizing(TermUnitSizingIndex).MinOA > 0.0)) { // size on ventilation load @@ -6902,10 +6852,10 @@ namespace EnergyPlus::SimAirServingZones { } } else { // No centrally heated zones: use cooled zones for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { // loop over the cooled zones - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); if ((SysHeatSizingRat != 1.0) && (FinalSysSizing(AirLoopNum).LoadSizeType == Ventilation) && (TermUnitFinalZoneSizing(TermUnitSizingIndex).MinOA <= 0.0)) { - ShowWarningError(state, "FinalSystemSizing: AirLoop=\"" + state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName + + ShowWarningError(state, "FinalSystemSizing: AirLoop=\"" + AirToZoneNodeInfo(AirLoopNum).AirLoopName + "\", Requested sizing on Ventilation,"); ShowContinueError(state, "but Zone has no design OA Flow. Zone=\"" + TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneName + "\"."); @@ -6937,7 +6887,7 @@ namespace EnergyPlus::SimAirServingZones { // loop over the zones cooled by this system and sum up the min cooling flow rates to get the // min system cooling flow rate for (int ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(ZonesCooledNum); FinalSysSizing(AirLoopNum).DesCoolVolFlowMin += TermUnitFinalZoneSizing(TermUnitSizingIndex).DesCoolVolFlowMin; } if (FinalSysSizing(AirLoopNum).DesCoolVolFlowMin <= 0.0) { @@ -6948,11 +6898,11 @@ namespace EnergyPlus::SimAirServingZones { // Specify the heating supply air Temp/HumRat for different system configurations for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - int NumZonesHeated = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + int NumZonesHeated = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; if (NumZonesHeated > 0) { // IF there are centrally heated zones for (int ZonesHeatedNum = 1; ZonesHeatedNum <= NumZonesHeated; ++ZonesHeatedNum) { - int TermUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); + int TermUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(ZonesHeatedNum); TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatCoilInTempTU = GetHeatingSATempForSizing(state, AirLoopNum); TermUnitFinalZoneSizing(TermUnitSizingIndex).DesHeatCoilInHumRatTU = GetHeatingSATempHumRatForSizing(state, AirLoopNum); @@ -7123,8 +7073,6 @@ namespace EnergyPlus::SimAirServingZones { // Modifies the design sizing flow rates for system scalable sizing method // Using/Aliasing - using DataSizing::CalcSysSizing; - using DataSizing::FinalSysSizing; using Psychrometrics::PsyCpAirFnW; using Psychrometrics::PsyHFnTdbW; @@ -7144,8 +7092,12 @@ namespace EnergyPlus::SimAirServingZones { Real64 FractionOfAutosize; // user specified autosized fraction for capacity and supply air flow Real64 AutosizedCapacity; // autosized heating and cooling capacity - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; if (AirLoopNum > 0) { @@ -7166,7 +7118,7 @@ namespace EnergyPlus::SimAirServingZones { } else if (SELECT_CASE_var == FlowPerCoolingCapacity) { if (FinalSysSizing(AirLoopNum).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { FractionOfAutosize = FinalSysSizing(AirLoopNum).ScaledCoolingCapacity; - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + if (PrimaryAirSystems(AirLoopNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream CoilInTemp = FinalSysSizing(AirLoopNum).MixTempAtCoolPeak; CoilInHumRat = FinalSysSizing(AirLoopNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream @@ -7189,7 +7141,7 @@ namespace EnergyPlus::SimAirServingZones { TempSize = FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity * AutosizedCapacity * FractionOfAutosize; } else if (FinalSysSizing(AirLoopNum).CoolingCapMethod == CoolingDesignCapacity) { if (FinalSysSizing(AirLoopNum).ScaledCoolingCapacity == DataSizing::AutoSize) { - if (state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + if (PrimaryAirSystems(AirLoopNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream CoilInTemp = FinalSysSizing(AirLoopNum).MixTempAtCoolPeak; CoilInHumRat = FinalSysSizing(AirLoopNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream @@ -7250,7 +7202,7 @@ namespace EnergyPlus::SimAirServingZones { } else { OutAirFrac = 1.0; } - if (CurOASysNum == 0 && state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumOAHeatCoils > 0) { + if (state.dataSize->CurOASysNum == 0 && PrimaryAirSystems(AirLoopNum).NumOAHeatCoils > 0) { CoilInTemp = OutAirFrac * FinalSysSizing(AirLoopNum).PreheatTemp + (1.0 - OutAirFrac) * FinalSysSizing(AirLoopNum).HeatRetTemp; } else { @@ -7273,7 +7225,7 @@ namespace EnergyPlus::SimAirServingZones { } else { OutAirFrac = 1.0; } - if (CurOASysNum == 0 && state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).NumOAHeatCoils > 0) { + if (state.dataSize->CurOASysNum == 0 && PrimaryAirSystems(AirLoopNum).NumOAHeatCoils > 0) { CoilInTemp = OutAirFrac * FinalSysSizing(AirLoopNum).PreheatTemp + (1.0 - OutAirFrac) * FinalSysSizing(AirLoopNum).HeatRetTemp; } else { @@ -7352,44 +7304,29 @@ namespace EnergyPlus::SimAirServingZones { // (2) No central heating coils, but preheating coils or OA heat-exchangers exist // (3) No central heating coils; No preheating coils or OA heat-exchangers - // METHODOLOGY EMPLOYED: - // na - - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; using Psychrometrics::PsyHFnTdbW; using Psychrometrics::PsyTdbFnHW; - // USE ZoneAirLoopEquipmentManager, ONLY: GetZoneAirLoopEquipment - // Locals Real64 ReheatCoilInTempForSizing; // Dry bulb temperature of the reheat coil inlet air [C] Real64 ReheatCoilInHumRatForSizing; // Humidity ratio of the reheat coil inlet air [kg/kg] Real64 ReheatCoilInEnthalpyForSizing; // Enthalpy of the reheat coil inlet air [J/kg] Real64 OutAirFrac; - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - if (state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).CentralHeatCoilExists) { + if (PrimaryAirSystems(IndexAirLoop).CentralHeatCoilExists) { // Case: Central heating coils exist ReheatCoilInTempForSizing = CalcSysSizing(IndexAirLoop).HeatSupTemp; - } else if ((state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).NumOAHeatCoils > 0) || (state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).NumOAHXs)) { + } else if ((PrimaryAirSystems(IndexAirLoop).NumOAHeatCoils > 0) || (PrimaryAirSystems(IndexAirLoop).NumOAHXs)) { // Case: No central heating coils, but preheating coils or OA heat-exchangers exist if (FinalSysSizing(IndexAirLoop).DesHeatVolFlow > 0) { @@ -7435,39 +7372,24 @@ namespace EnergyPlus::SimAirServingZones { // (2) No central heating coils, but preheating coils or OA heat-exchangers exist // (3) No central heating coils; No preheating coils or OA heat-exchangers - // METHODOLOGY EMPLOYED: - // na - - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; - // USE ZoneAirLoopEquipmentManager, ONLY: GetZoneAirLoopEquipment // Locals Real64 ReheatCoilInHumRatForSizing; Real64 OutAirFrac; - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - // na - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - if (state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).CentralHeatCoilExists) { + if (PrimaryAirSystems(IndexAirLoop).CentralHeatCoilExists) { // Case: Central heating coils exist - ReheatCoilInHumRatForSizing = CalcSysSizing(IndexAirLoop).HeatSupHumRat; + ReheatCoilInHumRatForSizing = state.dataSize->CalcSysSizing(IndexAirLoop).HeatSupHumRat; - } else if ((state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).NumOAHeatCoils > 0) || (state.dataAirSystemsData->PrimaryAirSystems(IndexAirLoop).NumOAHXs)) { + } else if ((PrimaryAirSystems(IndexAirLoop).NumOAHeatCoils > 0) || (PrimaryAirSystems(IndexAirLoop).NumOAHXs)) { // Case: No central heating coils, but preheating coils or OA heat-exchangers exist if (FinalSysSizing(IndexAirLoop).DesHeatVolFlow > 0) { @@ -7523,6 +7445,8 @@ namespace EnergyPlus::SimAirServingZones { // primary air loop branch. Searches for water coil name and type that match // components list in primary air systems. + auto &PrimaryAirSystems(state.dataAirSystemsData->PrimaryAirSystems); + if (state.dataSimAirServingZones->GetAirLoopInputFlag) { // First time subroutine has been entered GetAirPathData(state); // Get air loop descriptions from input file state.dataSimAirServingZones->GetAirLoopInputFlag = false; @@ -7530,10 +7454,10 @@ namespace EnergyPlus::SimAirServingZones { if (DataHVACGlobals::NumPrimaryAirSys > 0) { for (int AirSysNum = 1; AirSysNum <= DataHVACGlobals::NumPrimaryAirSys; ++AirSysNum) { - for (int BranchNum = 1; BranchNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { - for (int CompNum = 1; CompNum <= state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { - if ((CompTypeNum == state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num) && - UtilityRoutines::SameString(CompName, state.dataAirSystemsData->PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)) { + for (int BranchNum = 1; BranchNum <= PrimaryAirSystems(AirSysNum).NumBranches; ++BranchNum) { + for (int CompNum = 1; CompNum <= PrimaryAirSystems(AirSysNum).Branch(BranchNum).TotalComponents; ++CompNum) { + if ((CompTypeNum == PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num) && + UtilityRoutines::SameString(CompName, PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name)) { return true; } } @@ -7554,6 +7478,8 @@ namespace EnergyPlus::SimAirServingZones { using MixedAir::GetNumOASystems; using MixedAir::GetOutsideAirSysInputs; + auto &OutsideAirSys(state.dataAirLoop->OutsideAirSys); + if (state.dataMixedAir->GetOASysInputFlag) { GetOutsideAirSysInputs(state); state.dataMixedAir->GetOASysInputFlag = false; @@ -7561,9 +7487,9 @@ namespace EnergyPlus::SimAirServingZones { int NumOASys = GetNumOASystems(state); if (NumOASys > 0) { for (int OASysNum = 1; OASysNum <= NumOASys; ++OASysNum) { - for (int OACompNum = 1; OACompNum <= state.dataAirLoop->OutsideAirSys(OASysNum).NumComponents; ++OACompNum) { - if ((CompTypeNum == state.dataAirLoop->OutsideAirSys(OASysNum).ComponentType_Num(OACompNum)) && - (UtilityRoutines::SameString(CompName, state.dataAirLoop->OutsideAirSys(OASysNum).ComponentName(OACompNum)))) { + for (int OACompNum = 1; OACompNum <= OutsideAirSys(OASysNum).NumComponents; ++OACompNum) { + if ((CompTypeNum == OutsideAirSys(OASysNum).ComponentType_Num(OACompNum)) && + (UtilityRoutines::SameString(CompName, OutsideAirSys(OASysNum).ComponentName(OACompNum)))) { return true; } } @@ -7661,6 +7587,8 @@ namespace EnergyPlus::SimAirServingZones { // Using/Aliasing using namespace OutputReportPredefined; + auto &TermUnitFinalZoneSizing(state.dataSize->TermUnitFinalZoneSizing); + // FUNCTION LOCAL VARIABLE DECLARATIONS: Real64 ZoneOAFrac(0.0); // ratio of Voz to available zone supply air flow Real64 AvailSAFlow(0.0); // available zone supply air flow [m3/s] @@ -7687,7 +7615,7 @@ namespace EnergyPlus::SimAirServingZones { Real64 VdzClgByZone = 0.0; // Taken from similar section in SetUpSysSizingArrays if (TermUnitFinalZoneSizing(TermUnitSizingIndex).ZoneSecondaryRecirculation > 0.0) { // multi-path system - VdzClgByZone = max(TermUnitSizing(TermUnitSizingIndex).AirVolFlow, VpzClgByZone); + VdzClgByZone = max(state.dataSize->TermUnitSizing(TermUnitSizingIndex).AirVolFlow, VpzClgByZone); } else { // single path system VdzClgByZone = TermUnitFinalZoneSizing(TermUnitSizingIndex).DesCoolVolFlow; } diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index 35baf28a6de..6edaa4827d9 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -189,8 +189,8 @@ namespace EnergyPlus::SingleDuct { auto &thisATU(state.dataSingleDuct->sd_airterminal(SysNum)); - TermUnitSingDuct = true; - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(thisATU.ADUNum).TermUnitSizingNum; + state.dataSize->TermUnitSingDuct = true; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(thisATU.ADUNum).TermUnitSizingNum; // With the correct SysNum Initialize the system thisATU.InitSys(state, FirstHVACIteration); // Initialize all Sys related parameters @@ -223,7 +223,7 @@ namespace EnergyPlus::SingleDuct { // Report the current Sys thisATU.ReportSys(state); - TermUnitSingDuct = false; + state.dataSize->TermUnitSingDuct = false; } // Get Input Section of the Module @@ -259,7 +259,6 @@ namespace EnergyPlus::SingleDuct { using namespace DataHeatBalance; using DataPlant::TypeOf_CoilSteamAirHeating; using DataPlant::TypeOf_CoilWaterSimpleHeating; - using DataSizing::OARequirements; // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("GetSysInput: "); // include trailing blank @@ -604,12 +603,12 @@ namespace EnergyPlus::SingleDuct { state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = true; } else { // user does not specify maximum supply air temperature - // state.dataSingleDuct->sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C + // sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = false; } if (!lAlphaBlanks(11)) { - state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(11), OARequirements); + state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(11), state.dataSize->OARequirements); if (state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr == 0) { ShowSevereError(state, cAlphaFields(11) + " = " + Alphas(11) + " not found."); ShowContinueError(state, "Occurs in " + state.dataSingleDuct->sd_airterminal(SysNum).SysType + " = " + state.dataSingleDuct->sd_airterminal(SysNum).SysName); @@ -750,13 +749,13 @@ namespace EnergyPlus::SingleDuct { // electric or gas reheat. if (state.dataSingleDuct->sd_airterminal(SysNum).ReheatComp_Num == HeatingCoilType::Gas || state.dataSingleDuct->sd_airterminal(SysNum).ReheatComp_Num == HeatingCoilType::Electric) { // IF(.NOT. lAlphaBlanks(5)) THEN - // CALL ShowWarningError(state, 'In '//TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysType)//' = ' //TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysName) & + // CALL ShowWarningError(state, 'In '//TRIM(sd_airterminal(SysNum)%SysType)//' = ' //TRIM(sd_airterminal(SysNum)%SysName) & // // ' the '//TRIM(cAlphaFields(5))//' is not needed and will be ignored.') // CALL ShowContinueError(state, ' It is used for hot water and steam reheat coils only.') // END IF } else { // IF(lAlphaBlanks(5)) THEN - // CALL ShowSevereError(state, 'In '//TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysType)//' = ' //TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysName) & + // CALL ShowSevereError(state, 'In '//TRIM(sd_airterminal(SysNum)%SysType)//' = ' //TRIM(sd_airterminal(SysNum)%SysName) & // // ' the '//TRIM(cAlphaFields(5))//' is undefined.') // ErrorsFound=.TRUE. // ELSE @@ -862,7 +861,7 @@ namespace EnergyPlus::SingleDuct { state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = true; } else { // user does not specify maximum supply air temperature - // state.dataSingleDuct->sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C + // sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = false; } @@ -1031,7 +1030,7 @@ namespace EnergyPlus::SingleDuct { state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = true; } else { // user does not specify maximum supply air temperature - // state.dataSingleDuct->sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C + // sd_airterminal(SysNum)%MaxReheatTemp = 35.0D0 !C state.dataSingleDuct->sd_airterminal(SysNum).MaxReheatTempSetByUser = false; } // Register component set data @@ -1224,7 +1223,7 @@ namespace EnergyPlus::SingleDuct { if (lAlphaBlanks(5)) { state.dataSingleDuct->sd_airterminal(SysNum).NoOAFlowInputFromUser = true; } else { - state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(5), DataSizing::OARequirements); + state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(5), state.dataSize->OARequirements); if (state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr == 0) { ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + Alphas(1) + "\", invalid data."); ShowContinueError(state, "..invalid " + cAlphaFields(5) + "=\"" + Alphas(5) + "\"."); @@ -1437,7 +1436,7 @@ namespace EnergyPlus::SingleDuct { } } if (!lAlphaBlanks(7)) { - state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(7), OARequirements); + state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr = UtilityRoutines::FindItemInList(Alphas(7), state.dataSize->OARequirements); if (state.dataSingleDuct->sd_airterminal(SysNum).OARequirementsPtr == 0) { ShowSevereError(state, cAlphaFields(7) + " = " + Alphas(7) + " not found."); ShowContinueError(state, "Occurs in " + state.dataSingleDuct->sd_airterminal(SysNum).SysType + " = " + state.dataSingleDuct->sd_airterminal(SysNum).SysName); @@ -1753,13 +1752,13 @@ namespace EnergyPlus::SingleDuct { // electric or gas reheat. if (state.dataSingleDuct->sd_airterminal(SysNum).ReheatComp_Num == HeatingCoilType::Gas || state.dataSingleDuct->sd_airterminal(SysNum).ReheatComp_Num == HeatingCoilType::Electric) { // IF(.NOT. lAlphaBlanks(6)) THEN - // CALL ShowWarningError(state, 'In '//TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysType)//' = ' // TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysName) & + // CALL ShowWarningError(state, 'In '//TRIM(sd_airterminal(SysNum)%SysType)//' = ' // TRIM(sd_airterminal(SysNum)%SysName) & // // ' the '//TRIM(cAlphaFields(6))//' is not needed and will be ignored.') // CALL ShowContinueError(state, ' It is used for hot water reheat coils only.') // END IF } else { // IF(lAlphaBlanks(6)) THEN - // CALL ShowSevereError(state, 'In '//TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysType)//' = ' // TRIM(state.dataSingleDuct->sd_airterminal(SysNum)%SysName) & + // CALL ShowSevereError(state, 'In '//TRIM(sd_airterminal(SysNum)%SysType)//' = ' // TRIM(sd_airterminal(SysNum)%SysName) & // // ' the '//TRIM(cAlphaFields(6))//' is undefined') // ErrorsFound=.TRUE. // END IF @@ -1812,7 +1811,7 @@ namespace EnergyPlus::SingleDuct { // \note same as heating coil air outlet node // \note same as zone inlet node // \type alpha - // state.dataSingleDuct->sd_airterminal(SysNum)%ReheatAirOutletNode = & + // sd_airterminal(SysNum)%ReheatAirOutletNode = & // GetOnlySingleNode(state, Alphas(4),ErrorsFound,sd_airterminal(SysNum)%SysType,Alphas(1), & // NodeType_Air,NodeConnectionType_Outlet,1,ObjectIsParent) AirTermSysOutletNodeName = NodeID(state.dataSingleDuct->sd_airterminal(SysNum).ReheatAirOutletNode); @@ -1952,13 +1951,13 @@ namespace EnergyPlus::SingleDuct { for (SysIndex = 1; SysIndex <= state.dataSingleDuct->NumSDAirTerminal; ++SysIndex) { for (ZoneSizIndex = 1; ZoneSizIndex <= NumZoneSiz; ++ZoneSizIndex) { if (state.dataGlobal->DoZoneSizing) { - if (FinalZoneSizing(ZoneSizIndex).ActualZoneNum == state.dataSingleDuct->sd_airterminal(SysIndex).ActualZoneNum) { - if (FinalZoneSizing(ZoneSizIndex).ZoneSecondaryRecirculation > 0.0) { + if (state.dataSize->FinalZoneSizing(ZoneSizIndex).ActualZoneNum == state.dataSingleDuct->sd_airterminal(SysIndex).ActualZoneNum) { + if (state.dataSize->FinalZoneSizing(ZoneSizIndex).ZoneSecondaryRecirculation > 0.0) { ShowWarningError(state, RoutineName + "A zone secondary recirculation fraction is specified for zone served by "); ShowContinueError(state, "...terminal unit \"" + state.dataSingleDuct->sd_airterminal(SysIndex).SysName + "\" , that indicates a single path system"); ShowContinueError(state, "...The zone secondary recirculation for that zone was set to 0.0"); - FinalZoneSizing(ZoneSizIndex).ZoneSecondaryRecirculation = 0.0; + state.dataSize->FinalZoneSizing(ZoneSizIndex).ZoneSecondaryRecirculation = 0.0; goto SizLoop_exit; } } @@ -2358,9 +2357,7 @@ namespace EnergyPlus::SingleDuct { // Using/Aliasing using FluidProperties::GetDensityGlycol; using FluidProperties::GetSpecificHeatGlycol; - using General::SafeDivide; - using PlantUtilities::MyPlantSizingIndex; using SteamCoils::GetCoilSteamInletNode; using SteamCoils::GetCoilSteamOutletNode; @@ -2440,12 +2437,14 @@ namespace EnergyPlus::SingleDuct { ZoneNum = this->ActualZoneNum; + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + if (this->MaxAirVolFlowRate == AutoSize) { IsAutoSize = true; } - if (CurTermUnitSizingNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation continue + if (state.dataSize->CurTermUnitSizingNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue if (this->MaxAirVolFlowRate > 0.0) { BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "User-Specified Maximum Air Flow Rate [m3/s]", this->MaxAirVolFlowRate); @@ -2455,7 +2454,7 @@ namespace EnergyPlus::SingleDuct { CheckZoneSizing(state, this->SysType, this->SysName); MaxAirVolFlowRateDes = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow); + max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow); if (MaxAirVolFlowRateDes < SmallAirVolFlow) { MaxAirVolFlowRateDes = 0.0; @@ -2473,7 +2472,7 @@ namespace EnergyPlus::SingleDuct { "User-Specified Maximum Air Flow Rate [m3/s]", MaxAirVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxAirVolFlowRateDes - MaxAirVolFlowRateUser) / MaxAirVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxAirVolFlowRateDes - MaxAirVolFlowRateUser) / MaxAirVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, format("User-Specified Maximum Air Flow Rate of {:.5R} [m3/s]", MaxAirVolFlowRateUser)); @@ -2492,8 +2491,8 @@ namespace EnergyPlus::SingleDuct { if (this->MaxHeatAirVolFlowRate == AutoSize) { IsAutoSize = true; } - if (CurTermUnitSizingNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // simulation should continue + if (state.dataSize->CurTermUnitSizingNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation should continue UserInputMaxHeatAirVolFlowRate = this->MaxHeatAirVolFlowRate; if (this->MaxHeatAirVolFlowRate > 0.0) { BaseSizer::reportSizerOutput(state, @@ -2501,7 +2500,7 @@ namespace EnergyPlus::SingleDuct { } } else { CheckZoneSizing(state, this->SysType, this->SysName); - MaxHeatAirVolFlowRateDes = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow; + MaxHeatAirVolFlowRateDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow; if (MaxHeatAirVolFlowRateDes < SmallAirVolFlow) { MaxHeatAirVolFlowRateDes = 0.0; } @@ -2522,7 +2521,7 @@ namespace EnergyPlus::SingleDuct { MaxHeatAirVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxHeatAirVolFlowRateDes - MaxHeatAirVolFlowRateUser) / MaxHeatAirVolFlowRateUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, @@ -2551,11 +2550,11 @@ namespace EnergyPlus::SingleDuct { IsAutoSize = true; } if (this->ZoneMinAirFracMethod == MinFlowFraction::Constant) { - if (ZoneSizingRunDone) { - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { // use the combined defaults or other user inputs stored in DesCoolVolFlowMin if (this->MaxAirVolFlowRate > 0.0) { - MinAirFlowFracDes = min(1.0, TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlowMin / this->MaxAirVolFlowRate); + MinAirFlowFracDes = min(1.0, state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlowMin / this->MaxAirVolFlowRate); } else { MinAirFlowFracDes = 0.0; } @@ -2585,7 +2584,7 @@ namespace EnergyPlus::SingleDuct { "User-Specified Constant Minimum Air Flow Fraction", MinAirFlowFracUser * this->ZoneTurndownMinAirFrac); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MinAirFlowFracDes - MinAirFlowFracUser) / MinAirFlowFracUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MinAirFlowFracDes - MinAirFlowFracUser) / MinAirFlowFracUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, format("User-Specified Minimum Cooling Air Flow Fraction of {:.5R} [m3/s]", MinAirFlowFracUser)); @@ -2612,11 +2611,11 @@ namespace EnergyPlus::SingleDuct { IsAutoSize = true; } if (this->ZoneMinAirFracMethod == MinFlowFraction::Fixed) { - if (ZoneSizingRunDone) { - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { // use the combined defaults or other user inputs stored in DesCoolVolFlowMin if (this->MaxAirVolFlowRate > 0.0) { - FixedMinAirDes = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlowMin; + FixedMinAirDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlowMin; } else { MinAirFlowFracDes = 0.0; } @@ -2645,7 +2644,7 @@ namespace EnergyPlus::SingleDuct { "User-Specified Fixed Minimum Air Flow Rate [m3/s]", FixedMinAirUser * this->ZoneTurndownMinAirFrac); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(FixedMinAirDes - FixedMinAirUser) / FixedMinAirUser) > AutoVsHardSizingThreshold) { + if ((std::abs(FixedMinAirDes - FixedMinAirUser) / FixedMinAirUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, format("User-Specified Minimum Cooling Air Flow Rate of {:.5R} [m3/s]", FixedMinAirUser)); @@ -2691,10 +2690,10 @@ namespace EnergyPlus::SingleDuct { } if (this->DamperHeatingAction == Action::ReverseActionWithLimits) { - if (ZoneSizingRunDone) { - if (CurTermUnitSizingNum > 0) { + if (state.dataSize->ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { // if zone sizing run done, set the design max reheat air flow to the value from the design calcs - MaxAirVolFlowRateDuringReheatDes = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlowMax; + MaxAirVolFlowRateDuringReheatDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax; } } else { // if no design calc use 0.002032 [m3/s-m2] times floor area. That's .40 cfm/ft2 @@ -2740,7 +2739,7 @@ namespace EnergyPlus::SingleDuct { this->MaxAirVolFlowRateDuringReheat = MaxAirVolFlowRateDuringReheatDes; if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxAirVolFractionDuringReheatDes - MaxAirVolFractionDuringReheatUser) / MaxAirVolFractionDuringReheatUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError( @@ -2774,7 +2773,7 @@ namespace EnergyPlus::SingleDuct { this->MaxAirVolFractionDuringReheat = MaxAirVolFractionDuringReheatDes; if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxAirVolFlowRateDuringReheatDes - MaxAirVolFlowRateDuringReheatUser) / MaxAirVolFlowRateDuringReheatUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, @@ -2788,7 +2787,7 @@ namespace EnergyPlus::SingleDuct { } } } else { - // both fields have user input. Report both out, use the larger of the 2 values. Note that only state.dataSingleDuct->sd_airterminal( SysNum + // both fields have user input. Report both out, use the larger of the 2 values. Note that only sd_airterminal( SysNum // ).MaxAirVolFlowRateDuringReheat is used subsequently. Check both inputs for optional caution message that user input value is not // within 10% of the design value. MaxAirVolFlowRateDuringReheatUser = this->MaxAirVolFlowRateDuringReheat; @@ -2811,7 +2810,7 @@ namespace EnergyPlus::SingleDuct { max(this->MaxAirVolFlowRateDuringReheat, this->MaxAirVolFractionDuringReheat * this->MaxAirVolFlowRate); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxAirVolFractionDuringReheatDes - MaxAirVolFractionDuringReheatUser) / MaxAirVolFractionDuringReheatUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError( @@ -2825,7 +2824,7 @@ namespace EnergyPlus::SingleDuct { } if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxAirVolFlowRateDuringReheatDes - MaxAirVolFlowRateDuringReheatUser) / MaxAirVolFlowRateDuringReheatUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError(state, @@ -2868,72 +2867,72 @@ namespace EnergyPlus::SingleDuct { this->MaxAirVolFractionDuringReheat = max(this->MaxAirVolFractionDuringReheat, 0.0); } - if (CurTermUnitSizingNum > 0) { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = 1.0; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = 1.0; - if (ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = 1.0; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = 1.0; + if (state.dataSize->ZoneSizingRunDone) { if (this->SysType_Num == SysType::SingleDuctVAVReheatVSFan) { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = max(UserInputMaxHeatAirVolFlowRate, - TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesHeatVolFlow, + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesHeatVolFlow, this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac); } else { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = - max(TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesHeatVolFlow, + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = + max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesHeatVolFlow, this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac); } } else { if (this->SysType_Num == SysType::SingleDuctVAVReheatVSFan) { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = max(this->MaxHeatAirVolFlowRate, this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac); } else if (this->SysType_Num == SysType::SingleDuctConstVolReheat || this->SysType_Num == SysType::SingleDuctConstVolNoReheat) { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = this->MaxAirVolFlowRate; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = this->MaxAirVolFlowRate; } else { if (this->DamperHeatingAction == Action::ReverseAction) { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = this->MaxAirVolFlowRate; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = this->MaxAirVolFlowRate; } else if (this->DamperHeatingAction == Action::ReverseActionWithLimits) { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = max( + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = max( this->MaxAirVolFlowRateDuringReheat, (this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac)); } else { - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow = this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac; } } } - if (TermUnitSizing(CurTermUnitSizingNum).AirVolFlow > SmallAirVolFlow) { + if (TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow > SmallAirVolFlow) { if (this->DamperHeatingAction == Action::ReverseActionWithLimits) { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = - min(this->MaxAirVolFlowRateDuringReheat, this->MaxAirVolFlowRate) / TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = + min(this->MaxAirVolFlowRateDuringReheat, this->MaxAirVolFlowRate) / TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult; } else if (this->DamperHeatingAction == Action::ReverseAction) { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = - this->MaxAirVolFlowRate / TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = + this->MaxAirVolFlowRate / TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult; } else if (this->DamperHeatingAction == Action::Normal && this->MaxAirVolFlowRateDuringReheat > 0.0) { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = min(this->MaxAirVolFlowRateDuringReheat, (this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac)) / - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = 1.0; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = 1.0; } else if (this->DamperHeatingAction == Action::Normal && this->MaxAirVolFlowRateDuringReheat == 0.0) { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = (this->MaxAirVolFlowRate * this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac) / - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = 1.0; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = 1.0; } else { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = - this->MaxAirVolFlowRate / TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = + this->MaxAirVolFlowRate / TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult; } - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = max(1.0, TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult); - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = max(1.0, TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult); + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = max(1.0, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult); + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = max(1.0, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult); } else { - TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult = 1.0; - TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult = 1.0; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult = 1.0; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult = 1.0; } if (this->ReheatComp_Index > 0) { coilSelectionReportObj->setCoilReheatMultiplier(state, - this->ReheatName, this->ReheatComp, TermUnitSizing(CurTermUnitSizingNum).ReheatLoadMult); + this->ReheatName, this->ReheatComp, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatLoadMult); } } @@ -2941,8 +2940,8 @@ namespace EnergyPlus::SingleDuct { if (this->MaxReheatWaterVolFlow == AutoSize) { IsAutoSize = true; } - if (CurTermUnitSizingNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (this->MaxReheatWaterVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "User-Specified Maximum Reheat Water Flow Rate [m3/s]", this->MaxReheatWaterVolFlow); @@ -2961,11 +2960,11 @@ namespace EnergyPlus::SingleDuct { ErrorsFound = true; } if (PltSizHeatNum > 0) { - CoilInTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU; - DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - DesZoneHeatLoad = TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesHeatLoad; - ZoneDesTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak; - ZoneDesHumRat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneHumRatAtHeatPeak; + CoilInTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU; + DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + DesZoneHeatLoad = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesHeatLoad; + ZoneDesTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak; + ZoneDesHumRat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtHeatPeak; // the coil load is the zone design heating load plus (or minus!) the reheat load DesCoilLoad = DesZoneHeatLoad + PsyCpAirFnW(ZoneDesHumRat) * DesMassFlow * (ZoneDesTemp - CoilInTemp); if (DesCoilLoad >= SmallLoad) { @@ -2980,7 +2979,7 @@ namespace EnergyPlus::SingleDuct { state.dataPlnt->PlantLoop(this->HWLoopNum).FluidIndex, RoutineName); - MaxReheatWaterVolFlowDes = DesCoilLoad / (PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); + MaxReheatWaterVolFlowDes = DesCoilLoad / (state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho); } else { MaxReheatWaterVolFlowDes = 0.0; } @@ -2997,15 +2996,15 @@ namespace EnergyPlus::SingleDuct { BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "Design Size Reheat Coil Sizing Air Volume Flow Rate [m3/s]", - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow); + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow); BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "Design Size Reheat Coil Sizing Inlet Air Temperature [C]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU); + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU); BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "Design Size Reheat Coil Sizing Inlet Air Humidity Ratio [kgWater/kgDryAir]", - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInHumRatTU); + state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU); } else { // Hard-size with sizing data if (this->MaxReheatWaterVolFlow > 0.0 && MaxReheatWaterVolFlowDes > 0.0) { MaxReheatWaterVolFlowUser = this->MaxReheatWaterVolFlow; @@ -3017,7 +3016,7 @@ namespace EnergyPlus::SingleDuct { MaxReheatWaterVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxReheatWaterVolFlowDes - MaxReheatWaterVolFlowUser) / MaxReheatWaterVolFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError( @@ -3041,8 +3040,8 @@ namespace EnergyPlus::SingleDuct { if (this->MaxReheatSteamVolFlow == AutoSize) { IsAutoSize = true; } - if (CurTermUnitSizingNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (state.dataSize->CurTermUnitSizingNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (this->MaxReheatSteamVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, this->SysType, this->SysName, "User-Specified Maximum Reheat Steam Flow Rate [m3/s]", this->MaxReheatSteamVolFlow); @@ -3061,11 +3060,11 @@ namespace EnergyPlus::SingleDuct { ErrorsFound = true; } if (PltSizHeatNum > 0) { - CoilInTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatCoilInTempTU; - DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(CurTermUnitSizingNum).AirVolFlow; - DesZoneHeatLoad = TermUnitFinalZoneSizing(CurTermUnitSizingNum).NonAirSysDesHeatLoad; - ZoneDesTemp = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneTempAtHeatPeak; - ZoneDesHumRat = TermUnitFinalZoneSizing(CurTermUnitSizingNum).ZoneHumRatAtHeatPeak; + CoilInTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU; + DesMassFlow = state.dataEnvrn->StdRhoAir * TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow; + DesZoneHeatLoad = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).NonAirSysDesHeatLoad; + ZoneDesTemp = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneTempAtHeatPeak; + ZoneDesHumRat = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneHumRatAtHeatPeak; // the coil load is the zone design heating load plus (or minus!) the reheat load DesCoilLoad = DesZoneHeatLoad + PsyCpAirFnW(ZoneDesHumRat) * DesMassFlow * (ZoneDesTemp - CoilInTemp); if (DesCoilLoad >= SmallLoad) { @@ -3075,8 +3074,8 @@ namespace EnergyPlus::SingleDuct { LatentHeatSteam = EnthSteamInDry - EnthSteamOutWet; SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, TempSteamIn, 1.0, this->FluidIndex, RoutineNameFull); - Cp = GetSpecificHeatGlycol(state, fluidNameWater, PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); - MaxReheatSteamVolFlowDes = DesCoilLoad / (SteamDensity * (LatentHeatSteam + PlantSizData(PltSizHeatNum).DeltaT * Cp)); + Cp = GetSpecificHeatGlycol(state, fluidNameWater, state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); + MaxReheatSteamVolFlowDes = DesCoilLoad / (SteamDensity * (LatentHeatSteam + state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp)); } else { MaxReheatSteamVolFlowDes = 0.0; } @@ -3101,7 +3100,7 @@ namespace EnergyPlus::SingleDuct { MaxReheatSteamVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxReheatSteamVolFlowDes - MaxReheatSteamVolFlowUser) / MaxReheatSteamVolFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACSingleDuct: Potential issue with equipment sizing for " + this->SysType + " = \"" + this->SysName + "\"."); ShowContinueError( @@ -3121,17 +3120,17 @@ namespace EnergyPlus::SingleDuct { this->MaxReheatSteamVolFlow = 0.0; } - if (CurTermUnitSizingNum > 0) { - TermUnitSizing(CurTermUnitSizingNum).MinFlowFrac = this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac; - TermUnitSizing(CurTermUnitSizingNum).MaxHWVolFlow = this->MaxReheatWaterVolFlow; - TermUnitSizing(CurTermUnitSizingNum).MaxSTVolFlow = this->MaxReheatSteamVolFlow; - TermUnitSizing(CurTermUnitSizingNum).DesHeatingLoad = DesCoilLoad; // Coil Summary report + if (state.dataSize->CurTermUnitSizingNum > 0) { + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MinFlowFrac = this->ZoneMinAirFracDes * this->ZoneTurndownMinAirFrac; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MaxHWVolFlow = this->MaxReheatWaterVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MaxSTVolFlow = this->MaxReheatSteamVolFlow; + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).DesHeatingLoad = DesCoilLoad; // Coil Summary report if (this->ReheatComp_Num == HeatingCoilType::SimpleHeating) { if (this->DamperHeatingAction == Action::Normal) { SetCoilDesFlow(state, this->ReheatComp, this->ReheatName, this->ZoneMinAirFracDes * this->MaxAirVolFlowRate, ErrorsFound); } else { - SetCoilDesFlow(state, this->ReheatComp, this->ReheatName, TermUnitSizing(CurTermUnitSizingNum).AirVolFlow, ErrorsFound); + SetCoilDesFlow(state, this->ReheatComp, this->ReheatName, TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow, ErrorsFound); } } } @@ -3247,9 +3246,9 @@ namespace EnergyPlus::SingleDuct { // The SINGLE DUCT:VAV:REHEAT terminal unit originally contained 2 components: a damper // and a reheat coil. The damper has become a virtual component - it consists only of // an air inlet node and an air outlet node. The damper is upstream of the heating coil. - // state.dataSingleDuct->sd_airterminal(SysNum)%InletNodeNum is the inlet node to the terminal unit and the damper - // state.dataSingleDuct->sd_airterminal(SysNum)%OutletNodeNum is the outlet node of the damper and the inlet node of the heating coil - // state.dataSingleDuct->sd_airterminal(SysNum)%ReheatAirOutletNode is the outlet node of the terminal unit and the heating coil + // sd_airterminal(SysNum)%InletNodeNum is the inlet node to the terminal unit and the damper + // sd_airterminal(SysNum)%OutletNodeNum is the outlet node of the damper and the inlet node of the heating coil + // sd_airterminal(SysNum)%ReheatAirOutletNode is the outlet node of the terminal unit and the heating coil // The calculated load from the Heat Balance LeakLoadMult = state.dataDefineEquipment->AirDistUnit(this->ADUNum).LeakLoadMult; @@ -3309,7 +3308,7 @@ namespace EnergyPlus::SingleDuct { } else if ((this->sd_airterminalInlet.AirMassFlowRateMaxAvail > 0.0) && (QTotLoad >= 0.0 || TempControlType(ZoneNum) == SingleHeatingSetPoint) && (GetCurrentScheduleValue(state, this->SchedPtr) > 0.0)) { - // IF (state.dataSingleDuct->sd_airterminal(SysNum)%DamperHeatingAction .EQ. ReverseAction .AND. this->sd_airterminalInlet%AirMassFlowRateMinAvail <= + // IF (sd_airterminal(SysNum)%DamperHeatingAction .EQ. ReverseAction .AND. this->sd_airterminalInlet%AirMassFlowRateMinAvail <= // SmallMassFlow) THEN // special case for heating: reverse action and damper allowed to close - set the minimum flow rate to a small but nonzero value // MassFlow = 0.01d0*this->sd_airterminalInlet%AirMassFlowRateMaxAvail @@ -3366,14 +3365,14 @@ namespace EnergyPlus::SingleDuct { // ! Calculate the Damper Position when there is a Max air flow specified. // If (MassFlow == 0.0D0) THEN - // state.dataSingleDuct->sd_airterminal(SysNum)%DamperPosition = 0.0D0 + // sd_airterminal(SysNum)%DamperPosition = 0.0D0 // ELSE IF (this->sd_airterminalInlet%AirMassFlowRateMaxAvail > this->sd_airterminalInlet%AirMassFlowRateMinAvail) THEN - // state.dataSingleDuct->sd_airterminal(SysNum)%DamperPosition = ((MassFlow-this->sd_airterminalInlet%AirMassFlowRateMinAvail) / & + // sd_airterminal(SysNum)%DamperPosition = ((MassFlow-this->sd_airterminalInlet%AirMassFlowRateMinAvail) / & // (this->sd_airterminalInlet%AirMassFlowRateMaxAvail-this->sd_airterminalInlet%AirMassFlowRateMinAvail)) * // & // (1.0d0-MinFlowFrac) + MinFlowFrac // ELSE - // state.dataSingleDuct->sd_airterminal(SysNum)%DamperPosition = 1.0D0 + // sd_airterminal(SysNum)%DamperPosition = 1.0D0 // END IF if (MassFlow == 0.0) { @@ -3577,8 +3576,8 @@ namespace EnergyPlus::SingleDuct { this->sd_airterminalOutlet.AirMassFlowRate = MassFlow; // reset OA report variable this->UpdateSys(state); - } // IF (Node(state.dataSingleDuct->sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate .EQ. MaxFlowWater) THEN - } // IF (state.dataSingleDuct->sd_airterminal(SysNum)%DamperHeatingAction .EQ. ReverseAction) THEN + } // IF (Node(sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate .EQ. MaxFlowWater) THEN + } // IF (sd_airterminal(SysNum)%DamperHeatingAction .EQ. ReverseAction) THEN // Recalculate the Damper Position. if (MassFlow == 0.0) { @@ -3795,9 +3794,9 @@ namespace EnergyPlus::SingleDuct { static Real64 QZoneMax2(0.0); // temporary variable static Real64 QZoneMax3(0.0); // temporary variable - // state.dataSingleDuct->sd_airterminal(SysNum)%InletNodeNum is the inlet node to the terminal unit and the damper - // state.dataSingleDuct->sd_airterminal(SysNum)%OutletNodeNum is the outlet node of the damper and the inlet node of the heating coil - // state.dataSingleDuct->sd_airterminal(SysNum)%ReheatAirOutletNode is the outlet node of the terminal unit and the heating coil + // sd_airterminal(SysNum)%InletNodeNum is the inlet node to the terminal unit and the damper + // sd_airterminal(SysNum)%OutletNodeNum is the outlet node of the damper and the inlet node of the heating coil + // sd_airterminal(SysNum)%ReheatAirOutletNode is the outlet node of the terminal unit and the heating coil // The calculated load from the Heat Balance LeakLoadMult = state.dataDefineEquipment->AirDistUnit(this->ADUNum).LeakLoadMult; @@ -3908,7 +3907,7 @@ namespace EnergyPlus::SingleDuct { MassFlow = MassFlowActual; - } // IF (state.dataSingleDuct->sd_airterminal(SysNum)%MaxReheatTempSetByUser) THEN + } // IF (sd_airterminal(SysNum)%MaxReheatTempSetByUser) THEN this->sd_airterminalOutlet.AirMassFlowRate = MassFlow; @@ -3926,7 +3925,7 @@ namespace EnergyPlus::SingleDuct { if (QZnReq < SmallLoad) QZnReq = 0.0; // Initialize hot water flow rate to zero. - // Node(state.dataSingleDuct->sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 + // Node(sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 DummyMdot = 0.0; SetActuatedBranchFlowRate(state, DummyMdot, this->ReheatControlNode, this->HWLoopNum, this->HWLoopSide, this->HWBranchIndex, true); // On the first HVAC iteration the system values are given to the controller, but after that @@ -4065,7 +4064,7 @@ namespace EnergyPlus::SingleDuct { if (SELECT_CASE_var == HeatingCoilType::SimpleHeating) { // COIL:WATER:SIMPLEHEATING // Simulate reheat coil for the Const Volume system - // Node(state.dataSingleDuct->sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 + // Node(sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 // Initialize hot water flow rate to zero. DummyMdot = 0.0; SetActuatedBranchFlowRate(state, DummyMdot, this->ReheatControlNode, this->HWLoopNum, this->HWLoopSide, this->HWBranchIndex, true); @@ -4622,7 +4621,7 @@ namespace EnergyPlus::SingleDuct { // Before Iterating through the Reheat Coil and Controller set the flags for the // Do Loop to initialized conditions. - // Node(state.dataSingleDuct->sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 + // Node(sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 // Initialize hot water flow rate to zero. DummyMdot = 0.0; SetActuatedBranchFlowRate(state, DummyMdot, this->ReheatControlNode, this->HWLoopNum, this->HWLoopSide, this->HWBranchIndex, true); @@ -4692,7 +4691,7 @@ namespace EnergyPlus::SingleDuct { if (SELECT_CASE_var == HeatingCoilType::SimpleHeating) { // COIL:WATER:SIMPLEHEATING // Simulate reheat coil for the Const Volume system - // Node(state.dataSingleDuct->sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 + // Node(sd_airterminal(SysNum)%ReheatControlNode)%MassFlowRate = 0.0D0 // Initialize hot water flow rate to zero. DummyMdot = 0.0; SetActuatedBranchFlowRate(state, DummyMdot, this->ReheatControlNode, this->HWLoopNum, this->HWLoopSide, this->HWBranchIndex, true); @@ -5374,8 +5373,6 @@ namespace EnergyPlus::SingleDuct { using BranchNodeConnections::TestCompSet; using DataHVACGlobals::ATMixer_InletSide; using DataHVACGlobals::ATMixer_SupplySide; - using DataSizing::NumZoneSizingInput; - using DataSizing::ZoneSizingInput; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int NumNums; // Number of REAL(r64) numbers returned by GetObjectItem @@ -5473,7 +5470,7 @@ namespace EnergyPlus::SingleDuct { if (lAlphaFieldBlanks(8)) { state.dataSingleDuct->SysATMixer(ATMixerNum).NoOAFlowInputFromUser = true; } else { - state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr = UtilityRoutines::FindItemInList(cAlphaArgs(8), DataSizing::OARequirements); + state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr = UtilityRoutines::FindItemInList(cAlphaArgs(8), state.dataSize->OARequirements); if (state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr == 0) { ShowSevereError(state, RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "..invalid " + cAlphaFieldNames(8) + "=\"" + cAlphaArgs(8) + "\"."); @@ -5599,16 +5596,16 @@ namespace EnergyPlus::SingleDuct { TestCompSet(state, cCurrentModuleObject, state.dataSingleDuct->SysATMixer(ATMixerNum).Name, cAlphaArgs(5), cAlphaArgs(4), "Air Nodes"); if (state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr == 0) { - if (ZoneSizingInput.allocated()) { - for (int SizingInputNum = 1; SizingInputNum <= NumZoneSizingInput; ++SizingInputNum) { - if (ZoneSizingInput(SizingInputNum).ZoneNum == state.dataSingleDuct->SysATMixer(ATMixerNum).ZoneNum) { - if (ZoneSizingInput(SizingInputNum).ZoneDesignSpecOAIndex == 0) { + if (state.dataSize->ZoneSizingInput.allocated()) { + for (int SizingInputNum = 1; SizingInputNum <= state.dataSize->NumZoneSizingInput; ++SizingInputNum) { + if (state.dataSize->ZoneSizingInput(SizingInputNum).ZoneNum == state.dataSingleDuct->SysATMixer(ATMixerNum).ZoneNum) { + if (state.dataSize->ZoneSizingInput(SizingInputNum).ZoneDesignSpecOAIndex == 0) { ShowWarningError(state, RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, cAlphaFieldNames(8) + " is blank in both the mixer and the Sizing:Zone object for the same zone."); ShowContinueError(state, "The mixer outdoor airflow rate is set to zero."); state.dataSingleDuct->SysATMixer(ATMixerNum).DesignPrimaryAirVolRate = 0.0; } else { - state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr = ZoneSizingInput(SizingInputNum).ZoneDesignSpecOAIndex; + state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr = state.dataSize->ZoneSizingInput(SizingInputNum).ZoneDesignSpecOAIndex; state.dataSingleDuct->SysATMixer(ATMixerNum).DesignPrimaryAirVolRate = DataZoneEquipment::CalcDesignSpecificationOutdoorAir(state, state.dataSingleDuct->SysATMixer(ATMixerNum).OARequirementsPtr, state.dataSingleDuct->SysATMixer(ATMixerNum).ZoneNum, false, false); state.dataSingleDuct->SysATMixer(ATMixerNum).NoOAFlowInputFromUser = false; @@ -5646,13 +5643,13 @@ namespace EnergyPlus::SingleDuct { thisADU.TermUnitSizingNum = thisZoneEqConfig.AirDistUnitCool(SupAirIn).TermUnitSizingIndex; this->CtrlZoneInNodeIndex = SupAirIn; { - auto &thisTermUnitSizingData(DataSizing::TermUnitSizing(thisADU.TermUnitSizingNum)); + auto &thisTermUnitSizingData(state.dataSize->TermUnitSizing(thisADU.TermUnitSizingNum)); thisTermUnitSizingData.ADUName = thisADU.Name; // Fill TermUnitSizing with specs from DesignSpecification:AirTerminal:Sizing if there is one attached to this // terminal unit if (thisADU.AirTerminalSizingSpecIndex > 0) { { - auto const &thisAirTermSizingSpec(DataSizing::AirTerminalSizingSpec(thisADU.AirTerminalSizingSpecIndex)); + auto const &thisAirTermSizingSpec(state.dataSize->AirTerminalSizingSpec(thisADU.AirTerminalSizingSpecIndex)); thisTermUnitSizingData.SpecDesCoolSATRatio = thisAirTermSizingSpec.DesCoolSATRatio; thisTermUnitSizingData.SpecDesHeatSATRatio = thisAirTermSizingSpec.DesHeatSATRatio; thisTermUnitSizingData.SpecDesSensCoolingFrac = thisAirTermSizingSpec.DesSensCoolingFrac; @@ -5876,7 +5873,7 @@ namespace EnergyPlus::SingleDuct { // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: - // This subroutine gets: 1) the index of the named AT Mixer in the state.dataSingleDuct->SysATMixer data array + // This subroutine gets: 1) the index of the named AT Mixer in the SysATMixer data array // 2) the node number of the primary air inlet node of the AT Mixer // 3) set the AT Mixer ultimate zone inlet node @@ -5959,6 +5956,10 @@ namespace EnergyPlus::SingleDuct { int const &curZoneEqNum // current zone equipment being simulated ) { + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &FinalZoneSizing(state.dataSize->FinalZoneSizing); + if (inletATMixerIndex == 0) return; // protect this function from bad inputs if (controlledZoneNum == 0) return; if (curZoneEqNum == 0) return; @@ -5997,7 +5998,7 @@ namespace EnergyPlus::SingleDuct { // must be a system sizing run or calculations are not possible bool SizingDesRunThisAirSys = false; // Sizing:System object found flag - CheckThisAirSystemForSizing(airLoopIndex, SizingDesRunThisAirSys); // check for Sizing:System object + CheckThisAirSystemForSizing(state, airLoopIndex, SizingDesRunThisAirSys); // check for Sizing:System object if (SizingDesRunThisAirSys) { diff --git a/src/EnergyPlus/SizingAnalysisObjects.cc b/src/EnergyPlus/SizingAnalysisObjects.cc index 4033ed25452..2e3425af19a 100644 --- a/src/EnergyPlus/SizingAnalysisObjects.cc +++ b/src/EnergyPlus/SizingAnalysisObjects.cc @@ -438,12 +438,9 @@ PlantCoinicidentAnalysis::PlantCoinicidentAnalysis( void PlantCoinicidentAnalysis::ResolveDesignFlowRate(EnergyPlusData& state, int const HVACSizingIterCount) { using DataSizing::GlobalCoolingSizingFactorMode; - using DataSizing::GlobalCoolSizingFactor; using DataSizing::GlobalHeatingSizingFactorMode; - using DataSizing::GlobalHeatSizingFactor; using DataSizing::LoopComponentSizingFactorMode; using DataSizing::NoSizingFactorMode; - using DataSizing::PlantSizData; using namespace DataPlant; using namespace OutputReportPredefined; @@ -467,7 +464,7 @@ void PlantCoinicidentAnalysis::ResolveDesignFlowRate(EnergyPlusData& state, int nullStampProblem = false; } - previousVolDesignFlowRate = PlantSizData(plantSizingIndex).DesVolFlowRate; + previousVolDesignFlowRate = state.dataSize->PlantSizData(plantSizingIndex).DesVolFlowRate; if (!CheckTimeStampForNull(newFoundMassFlowRateTimeStamp) && (newFoundMassFlowRateTimeStamp.runningAvgDataValue > 0.0)) { // issue 5665, was || newFoundMassFlowRate = newFoundMassFlowRateTimeStamp.runningAvgDataValue; @@ -477,8 +474,8 @@ void PlantCoinicidentAnalysis::ResolveDesignFlowRate(EnergyPlusData& state, int // step 3 calculate mdot from max load and delta T if ((!CheckTimeStampForNull(NewFoundMaxDemandTimeStamp) && (NewFoundMaxDemandTimeStamp.runningAvgDataValue > 0.0)) && - ((specificHeatForSizing * PlantSizData(plantSizingIndex).DeltaT) > 0.0)) { - peakLoadCalculatedMassFlow = NewFoundMaxDemandTimeStamp.runningAvgDataValue / (specificHeatForSizing * PlantSizData(plantSizingIndex).DeltaT); + ((specificHeatForSizing * state.dataSize->PlantSizData(plantSizingIndex).DeltaT) > 0.0)) { + peakLoadCalculatedMassFlow = NewFoundMaxDemandTimeStamp.runningAvgDataValue / (specificHeatForSizing * state.dataSize->PlantSizData(plantSizingIndex).DeltaT); } else { peakLoadCalculatedMassFlow = 0.0; } @@ -494,13 +491,13 @@ void PlantCoinicidentAnalysis::ResolveDesignFlowRate(EnergyPlusData& state, int // now apply the correct sizing factor depending on input option sizingFac = 1.0; - if (PlantSizData(plantSizingIndex).SizingFactorOption == NoSizingFactorMode) { + if (state.dataSize->PlantSizData(plantSizingIndex).SizingFactorOption == NoSizingFactorMode) { sizingFac = 1.0; - } else if (PlantSizData(plantSizingIndex).SizingFactorOption == GlobalHeatingSizingFactorMode) { - sizingFac = GlobalHeatSizingFactor; - } else if (PlantSizData(plantSizingIndex).SizingFactorOption == GlobalCoolingSizingFactorMode) { - sizingFac = GlobalCoolSizingFactor; - } else if (PlantSizData(plantSizingIndex).SizingFactorOption == LoopComponentSizingFactorMode) { + } else if (state.dataSize->PlantSizData(plantSizingIndex).SizingFactorOption == GlobalHeatingSizingFactorMode) { + sizingFac = state.dataSize->GlobalHeatSizingFactor; + } else if (state.dataSize->PlantSizData(plantSizingIndex).SizingFactorOption == GlobalCoolingSizingFactorMode) { + sizingFac = state.dataSize->GlobalCoolSizingFactor; + } else if (state.dataSize->PlantSizData(plantSizingIndex).SizingFactorOption == LoopComponentSizingFactorMode) { // multiplier used for pumps, often 1.0, from component level sizing fractions sizingFac = state.dataPlnt->PlantLoop(plantLoopIndex).LoopSide(SupplySide).Branch(1).PumpSizFac; } @@ -525,7 +522,7 @@ void PlantCoinicidentAnalysis::ResolveDesignFlowRate(EnergyPlusData& state, int if (setNewSizes) { // set new size values for rest of simulation - PlantSizData(plantSizingIndex).DesVolFlowRate = newVolDesignFlowRate; + state.dataSize->PlantSizData(plantSizingIndex).DesVolFlowRate = newVolDesignFlowRate; if (state.dataPlnt->PlantLoop(plantLoopIndex).MaxVolFlowRateWasAutoSized) { state.dataPlnt->PlantLoop(plantLoopIndex).MaxVolFlowRate = newVolDesignFlowRate; diff --git a/src/EnergyPlus/SizingManager.cc b/src/EnergyPlus/SizingManager.cc index 2909300eae6..15971ab3d32 100644 --- a/src/EnergyPlus/SizingManager.cc +++ b/src/EnergyPlus/SizingManager.cc @@ -121,6 +121,9 @@ namespace EnergyPlus::SizingManager { // Design day simulations are run again with central air systems supplied by // purchased hot and cold water, yielding central heating and cooling capacities. + auto &CalcSysSizing(state.dataSize->CalcSysSizing); + auto &SysSizPeakDDNum(state.dataSize->SysSizPeakDDNum); + // Using/Aliasing using SimAirServingZones::ManageAirLoops; using SimAirServingZones::UpdateSysSizing; @@ -164,11 +167,11 @@ namespace EnergyPlus::SizingManager { Real64 DOASHeatGainRateAtClPk(0.0); // zone heat gain rate from the DOAS at the cooling peak [W] Real64 TStatSetPtAtPk(0.0); // thermostat set point at peak - + auto &FinalSysSizing(state.dataSize->FinalSysSizing); TimeStepInDay = 0; - SysSizingRunDone = false; - ZoneSizingRunDone = false; + state.dataSize->SysSizingRunDone = false; + state.dataSize->ZoneSizingRunDone = false; curName = "Unknown"; GetOARequirements(state); // get the OA requirements object GetZoneAirDistribution(state); // get zone air distribution objects @@ -181,7 +184,7 @@ namespace EnergyPlus::SizingManager { // okay, check sizing inputs vs desires vs requirements if (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing) { - if ((NumSysSizInput > 0 && NumZoneSizingInput == 0) || (!state.dataGlobal->DoZoneSizing && state.dataGlobal->DoSystemSizing && NumSysSizInput > 0)) { + if ((state.dataSize->NumSysSizInput > 0 && state.dataSize->NumZoneSizingInput == 0) || (!state.dataGlobal->DoZoneSizing && state.dataGlobal->DoSystemSizing && state.dataSize->NumSysSizInput > 0)) { ShowSevereError(state, RoutineName + "Requested System Sizing but did not request Zone Sizing."); ShowContinueError(state, "System Sizing cannot be done without Zone Sizing"); ShowFatalError(state, "Program terminates for preceding conditions."); @@ -193,7 +196,7 @@ namespace EnergyPlus::SizingManager { isUserReqCompLoadReport = isCompLoadRepReq(state); // check getinput structure if load component report is requested bool fileHasSizingPeriodDays = hasSizingPeriodsDays(state); // check getinput if SizingPeriod:DesignDays or SizingPeriod:WeatherFileDays are present - if (state.dataGlobal->DoZoneSizing && (NumZoneSizingInput > 0) && fileHasSizingPeriodDays) { + if (state.dataGlobal->DoZoneSizing && (state.dataSize->NumZoneSizingInput > 0) && fileHasSizingPeriodDays) { state.dataGlobal->CompLoadReportIsReq = isUserReqCompLoadReport; } else { // produce a warning if the user asked for the report but it will not be generated because sizing is not done if (isUserReqCompLoadReport) { @@ -213,13 +216,13 @@ namespace EnergyPlus::SizingManager { numZoneSizeIter = 1; } - if ((state.dataGlobal->DoZoneSizing) && (NumZoneSizingInput == 0)) { + if ((state.dataGlobal->DoZoneSizing) && (state.dataSize->NumZoneSizingInput == 0)) { ShowWarningError(state, RoutineName + "For a zone sizing run, there must be at least 1 Sizing:Zone input object. SimulationControl Zone Sizing option ignored."); } - if ((NumZoneSizingInput > 0) && (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing)) { + if ((state.dataSize->NumZoneSizingInput > 0) && (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing)) { if (state.dataGlobal->DoDesDaySim || state.dataGlobal->DoWeathSim) { state.dataGlobal->DoOutputReporting = false; @@ -228,9 +231,9 @@ namespace EnergyPlus::SizingManager { state.dataGlobal->ZoneSizingCalc = true; Available = true; - if (SizingFileColSep == CharComma) { + if (state.dataSize->SizingFileColSep == CharComma) { state.files.zsz.fileName = state.files.outputZszCsvFileName; - } else if (SizingFileColSep == CharTab) { + } else if (state.dataSize->SizingFileColSep == CharTab) { state.files.zsz.fileName = state.files.outputZszTabFileName; } else { state.files.zsz.fileName = state.files.outputZszTxtFileName; @@ -258,7 +261,7 @@ namespace EnergyPlus::SizingManager { Available = true; ResetEnvironmentCounter(state); - CurOverallSimDay = 0; + state.dataSize->CurOverallSimDay = 0; NumSizingPeriodsPerformed = 0; while (Available) { // loop over environments @@ -288,13 +291,13 @@ namespace EnergyPlus::SizingManager { state.dataGlobal->WarmupFlag = true; state.dataGlobal->DayOfSim = 0; state.dataGlobal->DayOfSimChr = "0"; - CurEnvirNumSimDay = 1; - ++CurOverallSimDay; + state.dataSize->CurEnvirNumSimDay = 1; + ++state.dataSize->CurOverallSimDay; while ((state.dataGlobal->DayOfSim < state.dataGlobal->NumOfDayInEnvrn) || (state.dataGlobal->WarmupFlag)) { // Begin day loop ... ++state.dataGlobal->DayOfSim; if (!state.dataGlobal->WarmupFlag && state.dataGlobal->DayOfSim > 1) { - ++CurEnvirNumSimDay; + ++state.dataSize->CurEnvirNumSimDay; } state.dataGlobal->DayOfSimChr = fmt::to_string(state.dataGlobal->DayOfSim); @@ -351,11 +354,11 @@ namespace EnergyPlus::SizingManager { if (!state.dataGlobal->WarmupFlag) { TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; if (state.dataGlobal->HourOfDay == 1 && state.dataGlobal->TimeStep == 1) { - DesDayWeath(CurOverallSimDay).DateString = fmt::format("{}/{}", state.dataEnvrn->Month, state.dataEnvrn->DayOfMonth); + state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).DateString = fmt::format("{}/{}", state.dataEnvrn->Month, state.dataEnvrn->DayOfMonth); } - DesDayWeath(CurOverallSimDay).Temp(TimeStepInDay) = state.dataEnvrn->OutDryBulbTemp; - DesDayWeath(CurOverallSimDay).HumRat(TimeStepInDay) = state.dataEnvrn->OutHumRat; - DesDayWeath(CurOverallSimDay).Press(TimeStepInDay) = state.dataEnvrn->OutBaroPress; + state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).Temp(TimeStepInDay) = state.dataEnvrn->OutDryBulbTemp; + state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).HumRat(TimeStepInDay) = state.dataEnvrn->OutHumRat; + state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).Press(TimeStepInDay) = state.dataEnvrn->OutBaroPress; } ManageHeatBalance(state); @@ -377,7 +380,7 @@ namespace EnergyPlus::SizingManager { } if (!state.dataGlobal->WarmupFlag && (state.dataGlobal->DayOfSim > 0) && (state.dataGlobal->DayOfSim < state.dataGlobal->NumOfDayInEnvrn)) { - ++CurOverallSimDay; + ++state.dataSize->CurOverallSimDay; } } // ... End day loop. @@ -390,7 +393,7 @@ namespace EnergyPlus::SizingManager { if (NumSizingPeriodsPerformed > 0) { UpdateZoneSizing(state, DataGlobalConstants::CallIndicator::EndZoneSizingCalc); UpdateFacilitySizing(state, DataGlobalConstants::CallIndicator::EndZoneSizingCalc); - ZoneSizingRunDone = true; + state.dataSize->ZoneSizingRunDone = true; } else { ShowSevereError(state, RoutineName + "No Sizing periods were performed for Zone Sizing. No Zone Sizing calculations saved."); ErrorsFound = true; @@ -416,21 +419,21 @@ namespace EnergyPlus::SizingManager { state.dataEnvrn->Month = LastMonth; state.dataEnvrn->DayOfMonth = LastDayOfMonth; - if ((state.dataGlobal->DoSystemSizing) && (NumSysSizInput == 0) && (state.dataSizingManager->NumAirLoops > 0)) { + if ((state.dataGlobal->DoSystemSizing) && (state.dataSize->NumSysSizInput == 0) && (state.dataSizingManager->NumAirLoops > 0)) { ShowWarningError(state, RoutineName + "For a system sizing run, there must be at least 1 Sizing:System object input. SimulationControl System Sizing option ignored."); } - if ((NumSysSizInput > 0) && (state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing) && !ErrorsFound) { + if ((state.dataSize->NumSysSizInput > 0) && (state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing) && !ErrorsFound) { ShowMessage(state, "Beginning System Sizing Calculations"); state.dataGlobal->SysSizingCalc = true; Available = true; - if (SizingFileColSep == CharComma) { + if (state.dataSize->SizingFileColSep == CharComma) { state.files.ssz.fileName = state.files.outputSszCsvFileName; - } else if (SizingFileColSep == CharTab) { + } else if (state.dataSize->SizingFileColSep == CharTab) { state.files.ssz.fileName = state.files.outputSszTabFileName; } else { state.files.ssz.fileName = state.files.outputSszTxtFileName; @@ -445,8 +448,8 @@ namespace EnergyPlus::SizingManager { SizingManager::UpdateTermUnitFinalZoneSizing(state); // AirDistUnits have been loaded now so TermUnitSizing values are all in place SimAirServingZones::SizeSysOutdoorAir(state); // System OA can be sized now that TermUnitFinalZoneSizing is initialized ResetEnvironmentCounter(state); - CurEnvirNumSimDay = 0; - CurOverallSimDay = 0; + state.dataSize->CurEnvirNumSimDay = 0; + state.dataSize->CurOverallSimDay = 0; NumSizingPeriodsPerformed = 0; while (Available) { // loop over environments @@ -475,14 +478,14 @@ namespace EnergyPlus::SizingManager { state.dataGlobal->WarmupFlag = false; state.dataGlobal->DayOfSim = 0; state.dataGlobal->DayOfSimChr = "0"; - CurEnvirNumSimDay = 1; - ++CurOverallSimDay; + state.dataSize->CurEnvirNumSimDay = 1; + ++state.dataSize->CurOverallSimDay; while ((state.dataGlobal->DayOfSim < state.dataGlobal->NumOfDayInEnvrn) || (state.dataGlobal->WarmupFlag)) { // Begin day loop ... ++state.dataGlobal->DayOfSim; if (!state.dataGlobal->WarmupFlag && state.dataGlobal->DayOfSim > 1) { - ++CurEnvirNumSimDay; + ++state.dataSize->CurEnvirNumSimDay; } state.dataGlobal->DayOfSimChr = fmt::to_string(state.dataGlobal->DayOfSim); state.dataGlobal->BeginDayFlag = true; @@ -539,7 +542,7 @@ namespace EnergyPlus::SizingManager { if (state.dataGlobal->EndDayFlag) UpdateSysSizing(state, DataGlobalConstants::CallIndicator::EndDay); if (!state.dataGlobal->WarmupFlag && (state.dataGlobal->DayOfSim > 0) && (state.dataGlobal->DayOfSim < state.dataGlobal->NumOfDayInEnvrn)) { - ++CurOverallSimDay; + ++state.dataSize->CurOverallSimDay; } } // ... End day loop. @@ -548,12 +551,12 @@ namespace EnergyPlus::SizingManager { if (NumSizingPeriodsPerformed > 0) { UpdateSysSizing(state, DataGlobalConstants::CallIndicator::EndSysSizingCalc); - SysSizingRunDone = true; + state.dataSize->SysSizingRunDone = true; } else { ShowSevereError(state, RoutineName + "No Sizing periods were performed for System Sizing. No System Sizing calculations saved."); ErrorsFound = true; } - } else if ((NumZoneSizingInput > 0) && (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing)) { + } else if ((state.dataSize->NumZoneSizingInput > 0) && (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing || state.dataGlobal->DoPlantSizing)) { // If zone sizing but no system sizing - still need to set up system zone equipment and transfer zone sizing data to // TermUnitFinalZoneSizing state.dataGlobal->SysSizingCalc = true; // set true here so equipment does not try to size yet @@ -566,18 +569,18 @@ namespace EnergyPlus::SizingManager { state.dataGlobal->SysSizingCalc = false; // report sizing results to eio file - if (ZoneSizingRunDone) { + if (state.dataSize->ZoneSizingRunDone) { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - ZoneNum = FinalZoneSizing(CtrlZoneNum).ActualZoneNum; - if (FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { - TimeStepAtPeak = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CtrlZoneNum).CoolDDNum; + ZoneNum = state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum; if (DDNum > 0 && TimeStepAtPeak > 0) { - TempAtPeak = DesDayWeath(DDNum).Temp(TimeStepAtPeak); - HumRatAtPeak = DesDayWeath(DDNum).HumRat(TimeStepAtPeak); - DOASHeatGainRateAtClPk = CalcZoneSizing(DDNum, CtrlZoneNum).DOASHeatAddSeq(TimeStepAtPeak); - TStatSetPtAtPk = ZoneSizing(DDNum, CtrlZoneNum).CoolTstatTempSeq(TimeStepAtPeak); + TempAtPeak = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak); + HumRatAtPeak = state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak); + DOASHeatGainRateAtClPk = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DOASHeatAddSeq(TimeStepAtPeak); + TStatSetPtAtPk = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolTstatTempSeq(TimeStepAtPeak); } else { TempAtPeak = 0.0; HumRatAtPeak = 0.0; @@ -585,39 +588,39 @@ namespace EnergyPlus::SizingManager { TStatSetPtAtPk = 0.0; } ReportZoneSizing(state, - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "Cooling", - CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad, - FinalZoneSizing(CtrlZoneNum).DesCoolLoad, - CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, - FinalZoneSizing(CtrlZoneNum).CoolDesDay, - CoolPeakDateHrMin(CtrlZoneNum), + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolLoad, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesDay, + state.dataSize->CoolPeakDateHrMin(CtrlZoneNum), TempAtPeak, HumRatAtPeak, state.dataHeatBal->Zone(ZoneNum).FloorArea, state.dataHeatBal->Zone(ZoneNum).TotOccupants, - FinalZoneSizing(CtrlZoneNum).MinOA, + state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA, DOASHeatGainRateAtClPk); - curName = FinalZoneSizing(CtrlZoneNum).ZoneName; - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClCalcDesLd, curName, CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLd, curName, FinalZoneSizing(CtrlZoneNum).DesCoolLoad); + curName = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName; + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClCalcDesLd, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLd, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolLoad); if (state.dataHeatBal->Zone(ZoneNum).FloorArea != 0.0) { - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLdPerArea, curName, FinalZoneSizing(CtrlZoneNum).DesCoolLoad / state.dataHeatBal->Zone(ZoneNum).FloorArea); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLdPerArea, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolLoad / state.dataHeatBal->Zone(ZoneNum).FloorArea); } - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClCalcDesAirFlow, curName, CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 3); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesAirFlow, curName, FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 3); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClDesDay, curName, FinalZoneSizing(CtrlZoneNum).CoolDesDay); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkTime, curName, CoolPeakDateHrMin(CtrlZoneNum)); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClCalcDesAirFlow, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesAirFlow, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClDesDay, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesDay); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkTime, curName, state.dataSize->CoolPeakDateHrMin(CtrlZoneNum)); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkTstatTemp, curName, TStatSetPtAtPk); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkIndTemp, curName, CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkIndHum, curName, CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak, 5); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkIndTemp, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkIndHum, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak, 5); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkOATemp, curName, TempAtPeak); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkOAHum, curName, HumRatAtPeak, 5); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkOAMinFlow, curName, FinalZoneSizing(CtrlZoneNum).MinOA, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkOAMinFlow, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA, 3); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkDOASHeatGain, curName, DOASHeatGainRateAtClPk); } else { - curName = FinalZoneSizing(CtrlZoneNum).ZoneName; + curName = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName; PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClCalcDesLd, curName, 0.0, 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLd, curName, 0.0, 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClUserDesLdPerArea, curName, 0.0, 1); @@ -633,14 +636,14 @@ namespace EnergyPlus::SizingManager { PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkOAMinFlow, curName, 0.0, 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnClPkDOASHeatGain, curName, 0.0, 1); } - if (FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { - TimeStepAtPeak = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; - DDNum = FinalZoneSizing(CtrlZoneNum).HeatDDNum; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; + DDNum = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum; if (DDNum > 0 && TimeStepAtPeak > 0) { - TempAtPeak = DesDayWeath(DDNum).Temp(TimeStepAtPeak); - HumRatAtPeak = DesDayWeath(DDNum).HumRat(TimeStepAtPeak); - DOASHeatGainRateAtHtPk = CalcZoneSizing(DDNum, CtrlZoneNum).DOASHeatAddSeq(TimeStepAtPeak); - TStatSetPtAtPk = ZoneSizing(DDNum, CtrlZoneNum).HeatTstatTempSeq(TimeStepAtPeak); + TempAtPeak = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak); + HumRatAtPeak = state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak); + DOASHeatGainRateAtHtPk = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DOASHeatAddSeq(TimeStepAtPeak); + TStatSetPtAtPk = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatTstatTempSeq(TimeStepAtPeak); } else { TempAtPeak = 0.0; HumRatAtPeak = 0.0; @@ -648,39 +651,39 @@ namespace EnergyPlus::SizingManager { TStatSetPtAtPk = 0.0; } ReportZoneSizing(state, - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "Heating", - CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad, - FinalZoneSizing(CtrlZoneNum).DesHeatLoad, - CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, - FinalZoneSizing(CtrlZoneNum).HeatDesDay, - HeatPeakDateHrMin(CtrlZoneNum), + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesDay, + state.dataSize->HeatPeakDateHrMin(CtrlZoneNum), TempAtPeak, HumRatAtPeak, state.dataHeatBal->Zone(ZoneNum).FloorArea, state.dataHeatBal->Zone(ZoneNum).TotOccupants, - FinalZoneSizing(CtrlZoneNum).MinOA, + state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA, DOASHeatGainRateAtHtPk); - curName = FinalZoneSizing(CtrlZoneNum).ZoneName; - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtCalcDesLd, curName, CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLd, curName, FinalZoneSizing(CtrlZoneNum).DesHeatLoad); + curName = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName; + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtCalcDesLd, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLd, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad); if (state.dataHeatBal->Zone(ZoneNum).FloorArea != 0.0) { - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLdPerArea, curName, FinalZoneSizing(CtrlZoneNum).DesHeatLoad / state.dataHeatBal->Zone(ZoneNum).FloorArea); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLdPerArea, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad / state.dataHeatBal->Zone(ZoneNum).FloorArea); } - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtCalcDesAirFlow, curName, CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 3); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesAirFlow, curName, FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 3); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtDesDay, curName, FinalZoneSizing(CtrlZoneNum).HeatDesDay); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkTime, curName, HeatPeakDateHrMin(CtrlZoneNum)); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtCalcDesAirFlow, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesAirFlow, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtDesDay, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesDay); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkTime, curName, state.dataSize->HeatPeakDateHrMin(CtrlZoneNum)); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkTstatTemp, curName, TStatSetPtAtPk); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkIndTemp, curName, CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkIndHum, curName, CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak, 5); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkIndTemp, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkIndHum, curName, state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak, 5); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkOATemp, curName, TempAtPeak); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkOAHum, curName, HumRatAtPeak, 5); - PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkOAMinFlow, curName, FinalZoneSizing(CtrlZoneNum).MinOA, 3); + PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkOAMinFlow, curName, state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA, 3); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtPkDOASHeatGain, curName, DOASHeatGainRateAtHtPk); } else { - curName = FinalZoneSizing(CtrlZoneNum).ZoneName; + curName = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName; PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtCalcDesLd, curName, 0.0, 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLd, curName, 0.0, 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchZnHtUserDesLdPerArea, curName, 0.0, 1); @@ -698,10 +701,10 @@ namespace EnergyPlus::SizingManager { } } // Deallocate arrays no longer needed - ZoneSizing.deallocate(); + state.dataSize->ZoneSizing.deallocate(); // CalcZoneSizing.deallocate(); } - if (SysSizingRunDone) { + if (state.dataSize->SysSizingRunDone) { for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { curName = FinalSysSizing(AirLoopNum).AirPriLoopName; PreDefTableEntry(state, state.dataOutRptPredefined->pdchSysSizCalcClAir, curName, CalcSysSizing(AirLoopNum).DesCoolVolFlow); @@ -782,16 +785,16 @@ namespace EnergyPlus::SizingManager { PreDefTableEntry(state, state.dataOutRptPredefined->pdchSysSizUserHtAir, curName, FinalSysSizing(AirLoopNum).DesHeatVolFlow); } // Deallocate arrays no longer needed - SysSizing.deallocate(); + state.dataSize->SysSizing.deallocate(); } - if ((state.dataGlobal->DoPlantSizing) && (NumPltSizInput == 0)) { + if ((state.dataGlobal->DoPlantSizing) && (state.dataSize->NumPltSizInput == 0)) { ShowWarningError(state, RoutineName + "For a plant sizing run, there must be at least 1 Sizing:Plant object input. SimulationControl Plant Sizing option ignored."); } - if ((NumPltSizInput > 0) && (state.dataGlobal->DoPlantSizing) && !ErrorsFound) { + if ((state.dataSize->NumPltSizInput > 0) && (state.dataGlobal->DoPlantSizing) && !ErrorsFound) { ShowMessage(state, "Beginning Plant Sizing Calculations"); } @@ -836,7 +839,11 @@ namespace EnergyPlus::SizingManager { // Also store zone level flow information for Standard 62.1 calculations, Vpz, Vpz_min, Vdz, and Vdz_min for both cooling and heating - if ((NumSysSizInput > 0) && (state.dataGlobal->DoSystemSizing)) { // only if there is system sizing + auto &AirDistUnit(state.dataDefineEquipment->AirDistUnit); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &sd_airterminal(state.dataSingleDuct->sd_airterminal); + + if ((state.dataSize->NumSysSizInput > 0) && (state.dataGlobal->DoSystemSizing)) { // only if there is system sizing // call zone component models to execute their component sizing routines bool t_SimZoneEquip(true); @@ -852,73 +859,73 @@ namespace EnergyPlus::SizingManager { Real64 airLoopHeatingMaximumFlowRateSum(0.0); // sum up heating and max flows for any single duct systems, store 62.1 values by zone - if (allocated(state.dataSingleDuct->sd_airterminal) && state.dataSingleDuct->NumSDAirTerminal > 0) { + if (allocated(sd_airterminal) && state.dataSingleDuct->NumSDAirTerminal > 0) { for (int singleDuctATUNum = 1; singleDuctATUNum <= state.dataSingleDuct->NumSDAirTerminal; ++singleDuctATUNum) { - if (AirLoopNum == state.dataSingleDuct->sd_airterminal(singleDuctATUNum).AirLoopNum) { + if (AirLoopNum == sd_airterminal(singleDuctATUNum).AirLoopNum) { int termUnitSizingIndex = - state.dataDefineEquipment->AirDistUnit(state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ADUNum).TermUnitSizingNum; - airLoopMaxFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; + AirDistUnit(sd_airterminal(singleDuctATUNum).ADUNum).TermUnitSizingNum; + airLoopMaxFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; - DataSizing::VpzClgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values + state.dataSize->VpzClgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values - if (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).SysType_Num == SingleDuct::SysType::SingleDuctConstVolReheat || - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).SysType_Num == SingleDuct::SysType::SingleDuctConstVolNoReheat) { - airLoopHeatingMinimumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; - airLoopHeatingMaximumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; + if (sd_airterminal(singleDuctATUNum).SysType_Num == SingleDuct::SysType::SingleDuctConstVolReheat || + sd_airterminal(singleDuctATUNum).SysType_Num == SingleDuct::SysType::SingleDuctConstVolNoReheat) { + airLoopHeatingMinimumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; + airLoopHeatingMaximumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values } else { - airLoopHeatingMinimumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values - if (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate > + airLoopHeatingMinimumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values + if (sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate > 0.0) { // VS fan ATU has this non zero, so use it - airLoopHeatingMaximumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate; // store std 62.1 values + airLoopHeatingMaximumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxHeatAirVolFlowRate; // store std 62.1 values } else { - if (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).DamperHeatingAction == SingleDuct::Action::ReverseAction) { - airLoopHeatingMaximumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values - } else if (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).DamperHeatingAction == + if (sd_airterminal(singleDuctATUNum).DamperHeatingAction == SingleDuct::Action::ReverseAction) { + airLoopHeatingMaximumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate; // store std 62.1 values + } else if (sd_airterminal(singleDuctATUNum).DamperHeatingAction == SingleDuct::Action::ReverseActionWithLimits) { airLoopHeatingMaximumFlowRateSum += - max(state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRateDuringReheat, - (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac)); - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - max(state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRateDuringReheat, - (state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac)); // store std 62.1 values + max(sd_airterminal(singleDuctATUNum).MaxAirVolFlowRateDuringReheat, + (sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac)); + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + max(sd_airterminal(singleDuctATUNum).MaxAirVolFlowRateDuringReheat, + (sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac)); // store std 62.1 values } else { - airLoopHeatingMaximumFlowRateSum += state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * - state.dataSingleDuct->sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values + airLoopHeatingMaximumFlowRateSum += sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + sd_airterminal(singleDuctATUNum).MaxAirVolFlowRate * + sd_airterminal(singleDuctATUNum).ZoneMinAirFrac; // store std 62.1 values } } } // single-path air terminal so Vdz = Vpz - DataSizing::VdzClgByZone(termUnitSizingIndex) = DataSizing::VpzClgByZone(termUnitSizingIndex); // store std 62.1 values - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = - DataSizing::VpzMinClgByZone(termUnitSizingIndex); // store std 62.1 values - DataSizing::VdzHtgByZone(termUnitSizingIndex) = DataSizing::VpzHtgByZone(termUnitSizingIndex); // store std 62.1 values - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = - DataSizing::VpzMinHtgByZone(termUnitSizingIndex); // store std 62.1 values + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataSize->VpzClgByZone(termUnitSizingIndex); // store std 62.1 values + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex); // store std 62.1 values + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataSize->VpzHtgByZone(termUnitSizingIndex); // store std 62.1 values + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); // store std 62.1 values } } } @@ -927,41 +934,41 @@ namespace EnergyPlus::SizingManager { if (allocated(DualDuct::dd_airterminal) && DualDuct::NumDDAirTerminal > 0) { for (int dualDuctATUNum = 1; dualDuctATUNum <= DualDuct::NumDDAirTerminal; ++dualDuctATUNum) { if (AirLoopNum == DualDuct::dd_airterminal(dualDuctATUNum).AirLoopNum) { - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(DualDuct::dd_airterminal(dualDuctATUNum).ADUNum).TermUnitSizingNum; + int termUnitSizingIndex = AirDistUnit(DualDuct::dd_airterminal(dualDuctATUNum).ADUNum).TermUnitSizingNum; airLoopMaxFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; - DataSizing::VpzClgByZone(termUnitSizingIndex) = + state.dataSize->VpzClgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // store std 62.1 value if (DualDuct::dd_airterminal(dualDuctATUNum).DamperType == DualDuct::DualDuct_ConstantVolume) { airLoopHeatingMaximumFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; airLoopHeatingMinimumFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // store std 62.1 value - DataSizing::VpzHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // store std 62.1 value - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // store std 62.1 value - DataSizing::VdzClgByZone(termUnitSizingIndex) = DataSizing::VpzClgByZone(termUnitSizingIndex); - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = DataSizing::VpzMinClgByZone(termUnitSizingIndex); - DataSizing::VdzHtgByZone(termUnitSizingIndex) = DataSizing::VpzHtgByZone(termUnitSizingIndex); - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = DataSizing::VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataSize->VpzClgByZone(termUnitSizingIndex); + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = state.dataSize->VpzMinClgByZone(termUnitSizingIndex); + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataSize->VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); } else if (DualDuct::dd_airterminal(dualDuctATUNum).DamperType == DualDuct::DualDuct_VariableVolume) { airLoopHeatingMaximumFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; airLoopHeatingMinimumFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate * DualDuct::dd_airterminal(dualDuctATUNum).ZoneMinAirFrac; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate * DualDuct::dd_airterminal(dualDuctATUNum).ZoneMinAirFrac; // store std 62.1 value - DataSizing::VpzHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // store std 62.1 value - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate * DualDuct::dd_airterminal(dualDuctATUNum).ZoneMinAirFrac; // store std 62.1 value - DataSizing::VdzClgByZone(termUnitSizingIndex) = DataSizing::VpzClgByZone(termUnitSizingIndex); - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = DataSizing::VpzMinClgByZone(termUnitSizingIndex); - DataSizing::VdzHtgByZone(termUnitSizingIndex) = DataSizing::VpzHtgByZone(termUnitSizingIndex); - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = DataSizing::VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataSize->VpzClgByZone(termUnitSizingIndex); + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = state.dataSize->VpzMinClgByZone(termUnitSizingIndex); + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataSize->VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); } else if (DualDuct::dd_airterminal(dualDuctATUNum).DamperType == DualDuct::DualDuct_OutdoorAir) { airLoopHeatingMaximumFlowRateSum += DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; // Calculate the design OA flow rate for this zone @@ -977,13 +984,13 @@ namespace EnergyPlus::SizingManager { airLoopHeatingMinimumFlowRateSum += designOAductFlow; // is this a dual duct is dual path for Std 62.1 ?? not sure, assume not because Vpz = Vdz // anyDualPathAirTerminals = true; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = designOAductFlow; // not sure about this - DataSizing::VpzHtgByZone(termUnitSizingIndex) = designOAductFlow; // no heating for this terminal - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = designOAductFlow; - DataSizing::VdzClgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = designOAductFlow; - DataSizing::VdzHtgByZone(termUnitSizingIndex) = designOAductFlow; - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = designOAductFlow; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = designOAductFlow; // not sure about this + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = designOAductFlow; // no heating for this terminal + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = designOAductFlow; + state.dataSize->VdzClgByZone(termUnitSizingIndex) = DualDuct::dd_airterminal(dualDuctATUNum).MaxAirVolFlowRate; + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = designOAductFlow; + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = designOAductFlow; + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = designOAductFlow; } } } @@ -993,7 +1000,7 @@ namespace EnergyPlus::SizingManager { if (allocated(state.dataPowerInductionUnits->PIU) && state.dataPowerInductionUnits->NumPIUs > 0) { for (int pIUATUNum = 1; pIUATUNum <= state.dataPowerInductionUnits->NumPIUs; ++pIUATUNum) { if (AirLoopNum == state.dataPowerInductionUnits->PIU(pIUATUNum).AirLoopNum) { - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(state.dataPowerInductionUnits->PIU(pIUATUNum).ADUNum).TermUnitSizingNum; + int termUnitSizingIndex = AirDistUnit(state.dataPowerInductionUnits->PIU(pIUATUNum).ADUNum).TermUnitSizingNum; airLoopMaxFlowRateSum += state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; if (state.dataPowerInductionUnits->PIU(pIUATUNum).UnitType_Num == DataDefineEquip::iZnAirLoopEquipType::SingleDuct_SeriesPIU_Reheat) { airLoopHeatingMaximumFlowRateSum += @@ -1002,32 +1009,32 @@ namespace EnergyPlus::SizingManager { state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // dual path for std 62.1 - DataSizing::VpzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; - DataSizing::VdzClgByZone(termUnitSizingIndex) = + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxTotAirVolFlow; // which is constant for series PIU - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum) .MaxTotAirVolFlow; // min dz is the same as max because series PIU has constant discharge volume - DataSizing::VpzHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // runs at minimum primary for heating always - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // runs at minimum primary for heating always - DataSizing::VdzHtgByZone(termUnitSizingIndex) = + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxTotAirVolFlow; // which is constant for series PIU - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxTotAirVolFlow; // which is constant for series PIU // store Ep for 62.1 calculations - DataSizing::TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFraction = - DataSizing::VpzMinClgByZone(termUnitSizingIndex) / - DataSizing::VdzClgByZone(termUnitSizingIndex); // min primary divided by max total - DataSizing::TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFractionHtg = - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) / DataSizing::VdzHtgByZone(termUnitSizingIndex); + state.dataSize->TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFraction = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) / + state.dataSize->VdzClgByZone(termUnitSizingIndex); // min primary divided by max total + state.dataSize->TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFractionHtg = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) / state.dataSize->VdzHtgByZone(termUnitSizingIndex); } else if (state.dataPowerInductionUnits->PIU(pIUATUNum).UnitType_Num == DataDefineEquip::iZnAirLoopEquipType::SingleDuct_ParallelPIU_Reheat) { airLoopHeatingMaximumFlowRateSum += @@ -1036,35 +1043,35 @@ namespace EnergyPlus::SizingManager { state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // dual path for std 62.1 - DataSizing::VpzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; - DataSizing::VdzClgByZone(termUnitSizingIndex) = + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum) .MaxPriAirVolFlow; // for Parallel PIU expect Fan off durign max cooling, so discharge is all primary - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow + state.dataPowerInductionUnits->PIU(pIUATUNum) .MaxSecAirVolFlow; // expect secondary fan to be running at min cooling, for reheat - DataSizing::VpzHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // primary at minimum - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow; // primary at minimum - DataSizing::VdzHtgByZone(termUnitSizingIndex) = + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow + state.dataPowerInductionUnits->PIU(pIUATUNum).MaxSecAirVolFlow; // expect min primary and CV fan running - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = state.dataPowerInductionUnits->PIU(pIUATUNum).MinPriAirFlowFrac * state.dataPowerInductionUnits->PIU(pIUATUNum).MaxPriAirVolFlow + state.dataPowerInductionUnits->PIU(pIUATUNum).MaxSecAirVolFlow; // expect min primary and CV fan running - DataSizing::TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFraction = - DataSizing::VpzMinClgByZone(termUnitSizingIndex) / - DataSizing::VdzClgByZone(termUnitSizingIndex); // min primary divided by max total - DataSizing::TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFractionHtg = - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) / DataSizing::VdzHtgByZone(termUnitSizingIndex); + state.dataSize->TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFraction = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) / + state.dataSize->VdzClgByZone(termUnitSizingIndex); // min primary divided by max total + state.dataSize->TermUnitFinalZoneSizing(termUnitSizingIndex).ZonePrimaryAirFractionHtg = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) / state.dataSize->VdzHtgByZone(termUnitSizingIndex); } } } @@ -1075,7 +1082,7 @@ namespace EnergyPlus::SizingManager { if (allocated(HVACSingleDuctInduc::IndUnit) && (HVACSingleDuctInduc::NumIndUnits > 0)) { for (int indUnitNum = 1; indUnitNum <= HVACSingleDuctInduc::NumIndUnits; ++indUnitNum) { if (AirLoopNum == HVACSingleDuctInduc::IndUnit(indUnitNum).AirLoopNum) { - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(HVACSingleDuctInduc::IndUnit(indUnitNum).ADUNum).TermUnitSizingNum; + int termUnitSizingIndex = AirDistUnit(HVACSingleDuctInduc::IndUnit(indUnitNum).ADUNum).TermUnitSizingNum; airLoopHeatingMaximumFlowRateSum += HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; @@ -1083,18 +1090,18 @@ namespace EnergyPlus::SizingManager { HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; airLoopMaxFlowRateSum += HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; // store Std 62.1 values, CV system - DataSizing::VpzClgByZone(termUnitSizingIndex) = + state.dataSize->VpzClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; - DataSizing::VdzClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = + state.dataSize->VdzClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxPriAirMassFlow / state.dataEnvrn->StdRhoAir; - DataSizing::VdzHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = HVACSingleDuctInduc::IndUnit(indUnitNum).MaxTotAirVolFlow; } } } @@ -1103,51 +1110,51 @@ namespace EnergyPlus::SizingManager { if (allocated(HVACCooledBeam::CoolBeam) && (HVACCooledBeam::NumCB > 0)) { for (int coolBeamNum = 1; coolBeamNum <= HVACCooledBeam::NumCB; ++coolBeamNum) { if (AirLoopNum == HVACCooledBeam::CoolBeam(coolBeamNum).AirLoopNum) { - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(HVACCooledBeam::CoolBeam(coolBeamNum).ADUNum).TermUnitSizingNum; + int termUnitSizingIndex = AirDistUnit(HVACCooledBeam::CoolBeam(coolBeamNum).ADUNum).TermUnitSizingNum; airLoopHeatingMaximumFlowRateSum += HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; airLoopHeatingMinimumFlowRateSum += HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; airLoopMaxFlowRateSum += HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; // store std 62.1 values, beam will actually have secondary flow but that is not part of the model since it uses non air // system term, we have no secondary flow rate information to work with - DataSizing::VpzClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VdzClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VdzHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VpzClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VdzClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = HVACCooledBeam::CoolBeam(coolBeamNum).MaxAirVolFlow; } } } // sum up heating and max flows for any four pipe cooled beam terminal units (the only one using the airTerminalPtr at this point) - if (allocated(state.dataDefineEquipment->AirDistUnit) && state.dataDefineEquipment->NumAirDistUnits > 0) { + if (allocated(AirDistUnit) && state.dataDefineEquipment->NumAirDistUnits > 0) { for (int aDUNum = 1; aDUNum <= state.dataDefineEquipment->NumAirDistUnits; ++aDUNum) { - if (state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr.get() != nullptr) { - if (AirLoopNum == state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getAirLoopNum()) { - airLoopHeatingMaximumFlowRateSum += state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - airLoopHeatingMinimumFlowRateSum += state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - airLoopMaxFlowRateSum += state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + if (AirDistUnit(aDUNum).airTerminalPtr.get() != nullptr) { + if (AirLoopNum == AirDistUnit(aDUNum).airTerminalPtr->getAirLoopNum()) { + airLoopHeatingMaximumFlowRateSum += AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + airLoopHeatingMinimumFlowRateSum += AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + airLoopMaxFlowRateSum += AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); // store Std 62.1 values, have no modeling of secondary flow rates for induced flow from beam - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getTermUnitSizingIndex(); - DataSizing::VpzClgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VpzHtgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VdzClgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VdzHtgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = - state.dataDefineEquipment->AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + int termUnitSizingIndex = AirDistUnit(aDUNum).airTerminalPtr->getTermUnitSizingIndex(); + state.dataSize->VpzClgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VdzClgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = + AirDistUnit(aDUNum).airTerminalPtr->getPrimAirDesignVolFlow(); } } } @@ -1157,20 +1164,20 @@ namespace EnergyPlus::SizingManager { if (allocated(state.dataSingleDuct->SysATMixer) && (state.dataSingleDuct->NumATMixers > 0)) { for (int aTMixerNum = 1; aTMixerNum <= state.dataSingleDuct->NumATMixers; ++aTMixerNum) { if (AirLoopNum == state.dataSingleDuct->SysATMixer(aTMixerNum).AirLoopNum) { - int termUnitSizingIndex = state.dataDefineEquipment->AirDistUnit(state.dataSingleDuct->SysATMixer(aTMixerNum).ADUNum).TermUnitSizingNum; + int termUnitSizingIndex = AirDistUnit(state.dataSingleDuct->SysATMixer(aTMixerNum).ADUNum).TermUnitSizingNum; airLoopHeatingMaximumFlowRateSum += state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; airLoopHeatingMinimumFlowRateSum += state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; airLoopMaxFlowRateSum += state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VpzClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VpzMinClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VpzHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VpzMinHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VpzClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VpzMinClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VpzHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; // the ZoneHVAC devices will have secondary flow but how to get it, future work - DataSizing::VdzClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VdzMinClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VdzHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; - DataSizing::VdzMinHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VdzClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VdzMinClgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VdzHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; + state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) = state.dataSingleDuct->SysATMixer(aTMixerNum).DesignPrimaryAirVolRate; } } } @@ -1271,112 +1278,118 @@ namespace EnergyPlus::SizingManager { void ManageSystemVentilationAdjustments(EnergyPlusData &state) { + auto &AirDistUnit(state.dataDefineEquipment->AirDistUnit); + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + auto &TermUnitFinalZoneSizing(state.dataSize->TermUnitFinalZoneSizing); + auto &VbzByZone(state.dataSize->VbzByZone); + auto &AirToZoneNodeInfo(state.dataAirLoop->AirToZoneNodeInfo); + // redo std 62.1 calculations using latest information on zone flows and report to tables // redo 62.1 zone calculations with final (or user) zone terminal flow sizes, only redo calculations that might change with final flows for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { int SysSizNum = - UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); + UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum == 0) SysSizNum = 1; // use first when none applicable - if (FinalSysSizing(AirLoopNum).OAAutoSized && SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP && + if (FinalSysSizing(AirLoopNum).OAAutoSized && state.dataSize->SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP && state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).NumZones > 1 && FinalSysSizing(AirLoopNum).LoadSizeType != Ventilation) { // Loop over all zones connected to air loop, redo both cooling and heating calcs for Zdz minimum discharge outdoor air fraction for // each zone - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); - if (DataSizing::VdzMinClgByZone(termUnitSizingIndex) > 0.0) { - DataSizing::ZdzClgByZone(termUnitSizingIndex) = - min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozClgByZone / DataSizing::VdzMinClgByZone(termUnitSizingIndex)); + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + if (state.dataSize->VdzMinClgByZone(termUnitSizingIndex) > 0.0) { + state.dataSize->ZdzClgByZone(termUnitSizingIndex) = + min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozClgByZone / state.dataSize->VdzMinClgByZone(termUnitSizingIndex)); } else { // would divide by zero, so set to max ?? - DataSizing::ZdzClgByZone(termUnitSizingIndex) = 1.0; + state.dataSize->ZdzClgByZone(termUnitSizingIndex) = 1.0; } - if (DataSizing::VdzMinHtgByZone(termUnitSizingIndex) > 0.0) { - DataSizing::ZdzHtgByZone(termUnitSizingIndex) = - min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozHtgByZone / DataSizing::VdzMinHtgByZone(termUnitSizingIndex)); + if (state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) > 0.0) { + state.dataSize->ZdzHtgByZone(termUnitSizingIndex) = + min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozHtgByZone / state.dataSize->VdzMinHtgByZone(termUnitSizingIndex)); } else { // would divide by zero, so set to max - DataSizing::ZdzHtgByZone(termUnitSizingIndex) = 1.0; + state.dataSize->ZdzHtgByZone(termUnitSizingIndex) = 1.0; } } - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); - if (DataSizing::VdzMinClgByZone(termUnitSizingIndex) > 0.0) { - DataSizing::ZdzClgByZone(termUnitSizingIndex) = - min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozClgByZone / DataSizing::VdzMinClgByZone(termUnitSizingIndex)); + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + if (state.dataSize->VdzMinClgByZone(termUnitSizingIndex) > 0.0) { + state.dataSize->ZdzClgByZone(termUnitSizingIndex) = + min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozClgByZone / state.dataSize->VdzMinClgByZone(termUnitSizingIndex)); } else { // would divide by zero, so set to max ?? - DataSizing::ZdzClgByZone(termUnitSizingIndex) = 1.0; + state.dataSize->ZdzClgByZone(termUnitSizingIndex) = 1.0; } - if (DataSizing::VdzMinHtgByZone(termUnitSizingIndex) > 0.0) { - DataSizing::ZdzHtgByZone(termUnitSizingIndex) = - min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozHtgByZone / DataSizing::VdzMinHtgByZone(termUnitSizingIndex)); + if (state.dataSize->VdzMinHtgByZone(termUnitSizingIndex) > 0.0) { + state.dataSize->ZdzHtgByZone(termUnitSizingIndex) = + min(1.0, TermUnitFinalZoneSizing(termUnitSizingIndex).VozHtgByZone / state.dataSize->VdzMinHtgByZone(termUnitSizingIndex)); } else { // would divide by zero, so set to max - DataSizing::ZdzHtgByZone(termUnitSizingIndex) = 1.0; + state.dataSize->ZdzHtgByZone(termUnitSizingIndex) = 1.0; } } // end loop over zones on air loop to calculate Zdz values // Sum Voz values for System Vou, in E+ the Vbz value has now been corrected to remove population Diversity, so we add the term back // in here directly to get Vou, now corrected again to only apply D to the people part - DataSizing::VouBySys(AirLoopNum) = DataSizing::DBySys(AirLoopNum) * SumRpxPzBySys(AirLoopNum) + SumRaxAzBySys(AirLoopNum); + state.dataSize->VouBySys(AirLoopNum) = state.dataSize->DBySys(AirLoopNum) * state.dataSize->SumRpxPzBySys(AirLoopNum) + state.dataSize->SumRaxAzBySys(AirLoopNum); // redo VpzClgSumBySys( AirLoopNum ) with latest values, for reporting - DataSizing::VpzClgSumBySys(AirLoopNum) = 0.0; - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); - DataSizing::VpzClgSumBySys(AirLoopNum) += DataSizing::VdzClgByZone(termUnitSizingIndex); + state.dataSize->VpzClgSumBySys(AirLoopNum) = 0.0; + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + state.dataSize->VpzClgSumBySys(AirLoopNum) += state.dataSize->VdzClgByZone(termUnitSizingIndex); } - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); int MatchingCooledZoneNum = General::FindNumberInList(termUnitSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); if (MatchingCooledZoneNum == 0) { - DataSizing::VpzClgSumBySys(AirLoopNum) += DataSizing::VdzClgByZone(termUnitSizingIndex); + state.dataSize->VpzClgSumBySys(AirLoopNum) += state.dataSize->VdzClgByZone(termUnitSizingIndex); } } // Fill Vps for cooling VRP calculation, use cooling design flow rate as adjusted in ManageSystemSizingAdjustments ( to use // conincident sizing result if available for block air flow - DataSizing::VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; + state.dataSize->VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; // Fill Vps for heating VRP calculation, use heating min by zone from air terminal scan in ManageSystemSizingAdjustments - DataSizing::VpsHtgBySys(AirLoopNum) = 0.0; - DataSizing::VpzHtgSumBySys(AirLoopNum) = 0.0; // for reporting only - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); - DataSizing::VpsHtgBySys(AirLoopNum) += DataSizing::VpzMinHtgByZone(termUnitSizingIndex); - DataSizing::VpzHtgSumBySys(AirLoopNum) += DataSizing::VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) = 0.0; + state.dataSize->VpzHtgSumBySys(AirLoopNum) = 0.0; // for reporting only + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + state.dataSize->VpsHtgBySys(AirLoopNum) += state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VpzHtgSumBySys(AirLoopNum) += state.dataSize->VpzHtgByZone(termUnitSizingIndex); } - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); int MatchingCooledZoneNum = General::FindNumberInList(termUnitSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); if (MatchingCooledZoneNum == 0) { - DataSizing::VpsHtgBySys(AirLoopNum) += DataSizing::VpzMinHtgByZone(termUnitSizingIndex); - DataSizing::VpzHtgSumBySys(AirLoopNum) += DataSizing::VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) += state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VpzHtgSumBySys(AirLoopNum) += state.dataSize->VpzHtgByZone(termUnitSizingIndex); } } // Fill Xs values - DataSizing::XsBySysCool(AirLoopNum) = DataSizing::VouBySys(AirLoopNum) / DataSizing::VpsClgBySys(AirLoopNum); - DataSizing::XsBySysHeat(AirLoopNum) = DataSizing::VouBySys(AirLoopNum) / DataSizing::VpsHtgBySys(AirLoopNum); + state.dataSize->XsBySysCool(AirLoopNum) = state.dataSize->VouBySys(AirLoopNum) / state.dataSize->VpsClgBySys(AirLoopNum); + state.dataSize->XsBySysHeat(AirLoopNum) = state.dataSize->VouBySys(AirLoopNum) / state.dataSize->VpsHtgBySys(AirLoopNum); // Loop over zones and calculate Evz for each for both cooling and heating, and find mins - DataSizing::EvzMinBySysCool(AirLoopNum) = 1.0; - DataSizing::EvzMinBySysHeat(AirLoopNum) = 1.0; + state.dataSize->EvzMinBySysCool(AirLoopNum) = 1.0; + state.dataSize->EvzMinBySysHeat(AirLoopNum) = 1.0; // make two passes, one for cooled zone and one for heated zones, if some zones are duplicate, it's OK, it'll just redo the same calcs for (int coolHeatPass = 1; coolHeatPass <= 2; ++coolHeatPass) { int numZones = 0; if (coolHeatPass == 1) { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; } else { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; } for (int zoneNum = 1; zoneNum <= numZones; ++zoneNum) { int termUnitSizingIndex = 0; if (coolHeatPass == 1) { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); } else { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); } Real64 Er = TermUnitFinalZoneSizing(termUnitSizingIndex) .ZoneSecondaryRecirculation; // user input in Zone Air Distribution design spec object @@ -1386,15 +1399,15 @@ namespace EnergyPlus::SizingManager { Real64 Ep_Clg = TermUnitFinalZoneSizing(termUnitSizingIndex) .ZonePrimaryAirFraction; // as adjusted in ManageSystemSizingAdjustments(); Real64 Fa_Clg = Ep_Clg + (1.0 - Ep_Clg) * Er; - FaByZoneCool(termUnitSizingIndex) = Fa_Clg; + state.dataSize->FaByZoneCool(termUnitSizingIndex) = Fa_Clg; Real64 Fb_Clg = Ep_Clg; - FbByZoneCool(termUnitSizingIndex) = Fb_Clg; + state.dataSize->FbByZoneCool(termUnitSizingIndex) = Fb_Clg; Real64 Ez_Clg = TermUnitFinalZoneSizing(termUnitSizingIndex) .ZoneADEffCooling; // user input in Zone Air Distribution design spec object Real64 Fc_Clg = 1.0 - (1.0 - Ez_Clg) * (1.0 - Er) * (1 - Ep_Clg); - FcByZoneCool(termUnitSizingIndex) = Fc_Clg; - DataSizing::EvzByZoneCool(termUnitSizingIndex) = - (Fa_Clg + DataSizing::XsBySysCool(AirLoopNum) * Fb_Clg - DataSizing::ZdzClgByZone(termUnitSizingIndex) * Fc_Clg) / + state.dataSize->FcByZoneCool(termUnitSizingIndex) = Fc_Clg; + state.dataSize->EvzByZoneCool(termUnitSizingIndex) = + (Fa_Clg + state.dataSize->XsBySysCool(AirLoopNum) * Fb_Clg - state.dataSize->ZdzClgByZone(termUnitSizingIndex) * Fc_Clg) / Fa_Clg; // note that SimAirServingZones::LimitZoneVentEff is intended only for single path per I/O ref @@ -1402,97 +1415,97 @@ namespace EnergyPlus::SizingManager { Real64 Ep_Htg = TermUnitFinalZoneSizing(termUnitSizingIndex) .ZonePrimaryAirFractionHtg; // as adjusted in ManageSystemSizingAdjustments(); Real64 Fa_Htg = Ep_Htg + (1.0 - Ep_Htg) * Er; - FaByZoneHeat(termUnitSizingIndex) = Fa_Htg; + state.dataSize->FaByZoneHeat(termUnitSizingIndex) = Fa_Htg; Real64 Fb_Htg = Ep_Htg; - FbByZoneCool(termUnitSizingIndex) = Fb_Htg; + state.dataSize->FbByZoneCool(termUnitSizingIndex) = Fb_Htg; Real64 Ez_Htg = TermUnitFinalZoneSizing(termUnitSizingIndex) .ZoneADEffHeating; // user input in Zone Air Distribution design spec object Real64 Fc_Htg = 1.0 - (1.0 - Ez_Htg) * (1.0 - Er) * (1 - Ep_Htg); - FcByZoneHeat(termUnitSizingIndex) = Fc_Htg; - DataSizing::EvzByZoneHeat(termUnitSizingIndex) = - (Fa_Htg + DataSizing::XsBySysHeat(AirLoopNum) * Fb_Htg - DataSizing::ZdzHtgByZone(termUnitSizingIndex) * Fc_Htg) / + state.dataSize->FcByZoneHeat(termUnitSizingIndex) = Fc_Htg; + state.dataSize->EvzByZoneHeat(termUnitSizingIndex) = + (Fa_Htg + state.dataSize->XsBySysHeat(AirLoopNum) * Fb_Htg - state.dataSize->ZdzHtgByZone(termUnitSizingIndex) * Fc_Htg) / Fa_Htg; } else { // single path zone - DataSizing::EvzByZoneCool(termUnitSizingIndex) = - 1.0 + DataSizing::XsBySysCool(AirLoopNum) - DataSizing::ZdzClgByZone(termUnitSizingIndex); - SimAirServingZones::LimitZoneVentEff(state, DataSizing::XsBySysCool(AirLoopNum), - VbzByZone(termUnitSizingIndex) / DataSizing::EvzByZoneCool(termUnitSizingIndex), + state.dataSize->EvzByZoneCool(termUnitSizingIndex) = + 1.0 + state.dataSize->XsBySysCool(AirLoopNum) - state.dataSize->ZdzClgByZone(termUnitSizingIndex); + SimAirServingZones::LimitZoneVentEff(state, state.dataSize->XsBySysCool(AirLoopNum), + VbzByZone(termUnitSizingIndex) / state.dataSize->EvzByZoneCool(termUnitSizingIndex), termUnitSizingIndex, - DataSizing::EvzByZoneCool(termUnitSizingIndex)); - DataSizing::EvzByZoneHeat(termUnitSizingIndex) = - 1.0 + DataSizing::XsBySysHeat(AirLoopNum) - DataSizing::ZdzHtgByZone(termUnitSizingIndex); - SimAirServingZones::LimitZoneVentEff(state, DataSizing::XsBySysHeat(AirLoopNum), - VbzByZone(termUnitSizingIndex) / DataSizing::EvzByZoneHeat(termUnitSizingIndex), + state.dataSize->EvzByZoneCool(termUnitSizingIndex)); + state.dataSize->EvzByZoneHeat(termUnitSizingIndex) = + 1.0 + state.dataSize->XsBySysHeat(AirLoopNum) - state.dataSize->ZdzHtgByZone(termUnitSizingIndex); + SimAirServingZones::LimitZoneVentEff(state, state.dataSize->XsBySysHeat(AirLoopNum), + VbzByZone(termUnitSizingIndex) / state.dataSize->EvzByZoneHeat(termUnitSizingIndex), termUnitSizingIndex, - DataSizing::EvzByZoneHeat(termUnitSizingIndex)); + state.dataSize->EvzByZoneHeat(termUnitSizingIndex)); } - if (DataSizing::EvzByZoneCool(termUnitSizingIndex) < DataSizing::EvzMinBySysCool(AirLoopNum)) { - DataSizing::EvzMinBySysCool(AirLoopNum) = DataSizing::EvzByZoneCool(termUnitSizingIndex); + if (state.dataSize->EvzByZoneCool(termUnitSizingIndex) < state.dataSize->EvzMinBySysCool(AirLoopNum)) { + state.dataSize->EvzMinBySysCool(AirLoopNum) = state.dataSize->EvzByZoneCool(termUnitSizingIndex); } - if (DataSizing::EvzByZoneHeat(termUnitSizingIndex) < DataSizing::EvzMinBySysHeat(AirLoopNum)) { - DataSizing::EvzMinBySysHeat(AirLoopNum) = DataSizing::EvzByZoneHeat(termUnitSizingIndex); + if (state.dataSize->EvzByZoneHeat(termUnitSizingIndex) < state.dataSize->EvzMinBySysHeat(AirLoopNum)) { + state.dataSize->EvzMinBySysHeat(AirLoopNum) = state.dataSize->EvzByZoneHeat(termUnitSizingIndex); } } // end loop over zones on air loop to calculate Evz by zone and find mins // calculate Vot for both cooling and heating - DataSizing::VotClgBySys(AirLoopNum) = DataSizing::VouBySys(AirLoopNum) / DataSizing::EvzMinBySysCool(AirLoopNum); - DataSizing::VotHtgBySys(AirLoopNum) = DataSizing::VouBySys(AirLoopNum) / DataSizing::EvzMinBySysHeat(AirLoopNum); + state.dataSize->VotClgBySys(AirLoopNum) = state.dataSize->VouBySys(AirLoopNum) / state.dataSize->EvzMinBySysCool(AirLoopNum); + state.dataSize->VotHtgBySys(AirLoopNum) = state.dataSize->VouBySys(AirLoopNum) / state.dataSize->EvzMinBySysHeat(AirLoopNum); // the design zone ventilation value is based on the larger of the system-level cooling Vot and/or heating Vot - FinalSysSizing(AirLoopNum).DesOutAirVolFlow = max(VotClgBySys(AirLoopNum), VotHtgBySys(AirLoopNum)); + FinalSysSizing(AirLoopNum).DesOutAirVolFlow = max(state.dataSize->VotClgBySys(AirLoopNum), state.dataSize->VotHtgBySys(AirLoopNum)); } } // system OA is autosized and VRP - else if ((FinalSysSizing(AirLoopNum).OAAutoSized && SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP && + else if ((FinalSysSizing(AirLoopNum).OAAutoSized && state.dataSize->SysSizInput(SysSizNum).SystemOAMethod == SOAM_VRP && state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).NumZones == 1)) { // single zone VRP int termUnitSizingIndex = 0; - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(1); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(1); if (termUnitSizingIndex == 0) { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(1); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(1); } // single zone cooling - DataSizing::VotClgBySys(AirLoopNum) = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling; - DataSizing::EvzByZoneCool(termUnitSizingIndex) = TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling; - DataSizing::EvzMinBySysCool(AirLoopNum) = DataSizing::EvzByZoneCool(termUnitSizingIndex); - DataSizing::VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; - DataSizing::VpzClgSumBySys(AirLoopNum) = DataSizing::VdzClgByZone(termUnitSizingIndex); + state.dataSize->VotClgBySys(AirLoopNum) = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling; + state.dataSize->EvzByZoneCool(termUnitSizingIndex) = TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling; + state.dataSize->EvzMinBySysCool(AirLoopNum) = state.dataSize->EvzByZoneCool(termUnitSizingIndex); + state.dataSize->VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; + state.dataSize->VpzClgSumBySys(AirLoopNum) = state.dataSize->VdzClgByZone(termUnitSizingIndex); // single zone heating - DataSizing::VotHtgBySys(AirLoopNum) = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating; - DataSizing::EvzByZoneHeat(termUnitSizingIndex) = TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating; - DataSizing::EvzMinBySysHeat(AirLoopNum) = DataSizing::EvzByZoneHeat(termUnitSizingIndex); - DataSizing::VpsHtgBySys(AirLoopNum) = DataSizing::VpzMinHtgByZone(termUnitSizingIndex); - DataSizing::VpzHtgSumBySys(AirLoopNum) = DataSizing::VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VotHtgBySys(AirLoopNum) = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating; + state.dataSize->EvzByZoneHeat(termUnitSizingIndex) = TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating; + state.dataSize->EvzMinBySysHeat(AirLoopNum) = state.dataSize->EvzByZoneHeat(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) = state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VpzHtgSumBySys(AirLoopNum) = state.dataSize->VpzHtgByZone(termUnitSizingIndex); // the design zone ventilation value is based on the larger of the system-level cooling Vot and/or heating Vot - FinalSysSizing(AirLoopNum).DesOutAirVolFlow = max(VotClgBySys(AirLoopNum), VotHtgBySys(AirLoopNum)); + FinalSysSizing(AirLoopNum).DesOutAirVolFlow = max(state.dataSize->VotClgBySys(AirLoopNum), state.dataSize->VotHtgBySys(AirLoopNum)); // Fill Xs values for reporting - DataSizing::XsBySysCool(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow / DataSizing::VpsClgBySys(AirLoopNum); - DataSizing::XsBySysHeat(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow / DataSizing::VpsHtgBySys(AirLoopNum); + state.dataSize->XsBySysCool(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow / state.dataSize->VpsClgBySys(AirLoopNum); + state.dataSize->XsBySysHeat(AirLoopNum) = FinalSysSizing(AirLoopNum).DesOutAirVolFlow / state.dataSize->VpsHtgBySys(AirLoopNum); } else { // not vrp, zone sum, fill out values that still apply // redo VpzClgSumBySys( AirLoopNum ) with latest values, for reporting - DataSizing::VpzClgSumBySys(AirLoopNum) = 0.0; + state.dataSize->VpzClgSumBySys(AirLoopNum) = 0.0; // Fill Vps for cooling VRP calculation, use cooling design flow rate as adjusted in ManageSystemSizingAdjustments ( to use // conincident sizing result if available for block air flow - DataSizing::VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; + state.dataSize->VpsClgBySys(AirLoopNum) = FinalSysSizing(SysSizNum).DesCoolVolFlow; // Fill Vps for heating VRP calculation, use heating min by zone from air terminal scan in ManageSystemSizingAdjustments - DataSizing::VpsHtgBySys(AirLoopNum) = 0.0; - DataSizing::VpzHtgSumBySys(AirLoopNum) = 0.0; // for reporting only - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); - DataSizing::VpzClgSumBySys(AirLoopNum) += DataSizing::VdzClgByZone(termUnitSizingIndex); - DataSizing::VpsHtgBySys(AirLoopNum) += DataSizing::VpzMinHtgByZone(termUnitSizingIndex); - DataSizing::VpzHtgSumBySys(AirLoopNum) += DataSizing::VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) = 0.0; + state.dataSize->VpzHtgSumBySys(AirLoopNum) = 0.0; // for reporting only + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + state.dataSize->VpzClgSumBySys(AirLoopNum) += state.dataSize->VdzClgByZone(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) += state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VpzHtgSumBySys(AirLoopNum) += state.dataSize->VpzHtgByZone(termUnitSizingIndex); } - for (int zoneNum = 1; zoneNum <= state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { - int termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + for (int zoneNum = 1; zoneNum <= AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; ++zoneNum) { + int termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); int MatchingCooledZoneNum = General::FindNumberInList(termUnitSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); if (MatchingCooledZoneNum == 0) { - DataSizing::VpzClgSumBySys(AirLoopNum) += DataSizing::VdzClgByZone(termUnitSizingIndex); - DataSizing::VpsHtgBySys(AirLoopNum) += DataSizing::VpzMinHtgByZone(termUnitSizingIndex); - DataSizing::VpzHtgSumBySys(AirLoopNum) += DataSizing::VpzHtgByZone(termUnitSizingIndex); + state.dataSize->VpzClgSumBySys(AirLoopNum) += state.dataSize->VdzClgByZone(termUnitSizingIndex); + state.dataSize->VpsHtgBySys(AirLoopNum) += state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + state.dataSize->VpzHtgSumBySys(AirLoopNum) += state.dataSize->VpzHtgByZone(termUnitSizingIndex); } } } @@ -1503,88 +1516,88 @@ namespace EnergyPlus::SizingManager { // System Ventilation Requirements for Cooling (table 1) OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClSumVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, VpzClgSumBySys(AirLoopNum), 4); // Vpz-sum + state.dataOutRptPredefined->pdchS62svrClSumVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpzClgSumBySys(AirLoopNum), 4); // Vpz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClPs, FinalSysSizing(AirLoopNum).AirPriLoopName, PsBySys(AirLoopNum), 4); // Ps + state.dataOutRptPredefined->pdchS62svrClPs, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->PsBySys(AirLoopNum), 4); // Ps OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClSumPz, FinalSysSizing(AirLoopNum).AirPriLoopName, PzSumBySys(AirLoopNum), 4); // Pz-sum + state.dataOutRptPredefined->pdchS62svrClSumPz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->PzSumBySys(AirLoopNum), 4); // Pz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClD, FinalSysSizing(AirLoopNum).AirPriLoopName, DBySys(AirLoopNum), 4); // D + state.dataOutRptPredefined->pdchS62svrClD, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->DBySys(AirLoopNum), 4); // D OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClVou, FinalSysSizing(AirLoopNum).AirPriLoopName, VouBySys(AirLoopNum), 4); // Vou + state.dataOutRptPredefined->pdchS62svrClVou, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VouBySys(AirLoopNum), 4); // Vou OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClVps, FinalSysSizing(AirLoopNum).AirPriLoopName, DataSizing::VpsClgBySys(AirLoopNum), 4); // Vps + state.dataOutRptPredefined->pdchS62svrClVps, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpsClgBySys(AirLoopNum), 4); // Vps OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClXs, FinalSysSizing(AirLoopNum).AirPriLoopName, XsBySysCool(AirLoopNum), 4); // Xs + state.dataOutRptPredefined->pdchS62svrClXs, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->XsBySysCool(AirLoopNum), 4); // Xs OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClEv, FinalSysSizing(AirLoopNum).AirPriLoopName, EvzMinBySysCool(AirLoopNum), 4); // Ev + state.dataOutRptPredefined->pdchS62svrClEv, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->EvzMinBySysCool(AirLoopNum), 4); // Ev OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrClVot, FinalSysSizing(AirLoopNum).AirPriLoopName, VotClgBySys(AirLoopNum), 4); // Vot - if (DataSizing::VpsClgBySys(AirLoopNum) != 0.0) { // Move here + state.dataOutRptPredefined->pdchS62svrClVot, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VotClgBySys(AirLoopNum), 4); // Vot + if (state.dataSize->VpsClgBySys(AirLoopNum) != 0.0) { // Move here OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrClPercOA, FinalSysSizing(AirLoopNum).AirPriLoopName, - VotClgBySys(AirLoopNum) / DataSizing::VpsClgBySys(AirLoopNum), + state.dataSize->VotClgBySys(AirLoopNum) / state.dataSize->VpsClgBySys(AirLoopNum), 4); //%OA } OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrClEnvironmentOfPs, FinalSysSizing(AirLoopNum).AirPriLoopName, - DataSizing::PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum)); + state.dataSize->PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum)); OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrClTimeOfPs, FinalSysSizing(AirLoopNum).AirPriLoopName, - DataSizing::PeakPsOccurrenceDateTimeStringBySys(AirLoopNum)); + state.dataSize->PeakPsOccurrenceDateTimeStringBySys(AirLoopNum)); // system ventilation requirements for heating ( table 2 ) OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtSumVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, VpzHtgSumBySys(AirLoopNum), 4); // Vpz-sum + state.dataOutRptPredefined->pdchS62svrHtSumVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpzHtgSumBySys(AirLoopNum), 4); // Vpz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtPs, FinalSysSizing(AirLoopNum).AirPriLoopName, PsBySys(AirLoopNum), 4); // Ps + state.dataOutRptPredefined->pdchS62svrHtPs, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->PsBySys(AirLoopNum), 4); // Ps OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtSumPz, FinalSysSizing(AirLoopNum).AirPriLoopName, PzSumBySys(AirLoopNum), 4); // Pz-sum + state.dataOutRptPredefined->pdchS62svrHtSumPz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->PzSumBySys(AirLoopNum), 4); // Pz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtD, FinalSysSizing(AirLoopNum).AirPriLoopName, DBySys(AirLoopNum), 4); // D + state.dataOutRptPredefined->pdchS62svrHtD, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->DBySys(AirLoopNum), 4); // D OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtVou, FinalSysSizing(AirLoopNum).AirPriLoopName, DataSizing::VouBySys(AirLoopNum), 4); // Vou + state.dataOutRptPredefined->pdchS62svrHtVou, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VouBySys(AirLoopNum), 4); // Vou OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtVps, FinalSysSizing(AirLoopNum).AirPriLoopName, DataSizing::VpsHtgBySys(AirLoopNum), 4); // Vps + state.dataOutRptPredefined->pdchS62svrHtVps, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpsHtgBySys(AirLoopNum), 4); // Vps OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtXs, FinalSysSizing(AirLoopNum).AirPriLoopName, XsBySysHeat(AirLoopNum), 4); // Xs + state.dataOutRptPredefined->pdchS62svrHtXs, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->XsBySysHeat(AirLoopNum), 4); // Xs OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtEv, FinalSysSizing(AirLoopNum).AirPriLoopName, EvzMinBySysHeat(AirLoopNum), 4); // Ev + state.dataOutRptPredefined->pdchS62svrHtEv, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->EvzMinBySysHeat(AirLoopNum), 4); // Ev OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svrHtVot, FinalSysSizing(AirLoopNum).AirPriLoopName, VotHtgBySys(AirLoopNum), 4); // Vot - if (DataSizing::VpsHtgBySys(AirLoopNum) != 0.0) { + state.dataOutRptPredefined->pdchS62svrHtVot, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VotHtgBySys(AirLoopNum), 4); // Vot + if (state.dataSize->VpsHtgBySys(AirLoopNum) != 0.0) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrHtPercOA, FinalSysSizing(AirLoopNum).AirPriLoopName, - VotHtgBySys(AirLoopNum) / DataSizing::VpsHtgBySys(AirLoopNum), + state.dataSize->VotHtgBySys(AirLoopNum) / state.dataSize->VpsHtgBySys(AirLoopNum), 4); //%OA } // heating time of peak Ps is the same as for cooling (for now) OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrHtEnvironmentOfPs, FinalSysSizing(AirLoopNum).AirPriLoopName, - DataSizing::PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum)); + state.dataSize->PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum)); OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svrHtTimeOfPs, FinalSysSizing(AirLoopNum).AirPriLoopName, - DataSizing::PeakPsOccurrenceDateTimeStringBySys(AirLoopNum)); + state.dataSize->PeakPsOccurrenceDateTimeStringBySys(AirLoopNum)); // Zone ventilation parameters, (table 3) // make two passes, one for cooled zones and one for heated zones, if a zone is the same on the second pass, skip it for (int coolHeatPass = 1; coolHeatPass <= 2; ++coolHeatPass) { int numZones = 0; if (coolHeatPass == 1) { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; } else { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; } for (int zoneNum = 1; zoneNum <= numZones; ++zoneNum) { int termUnitSizingIndex = 0; int MatchingCooledZoneNum = 0; if (coolHeatPass == 1) { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); } else { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); MatchingCooledZoneNum = General::FindNumberInList(termUnitSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); } if (MatchingCooledZoneNum == 0) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zvpAlN, @@ -1654,20 +1667,20 @@ namespace EnergyPlus::SizingManager { for (int coolHeatPass = 1; coolHeatPass <= 2; ++coolHeatPass) { int numZones = 0; if (coolHeatPass == 1) { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesCooled; } else { - numZones = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; + numZones = AirToZoneNodeInfo(AirLoopNum).NumZonesHeated; } for (int zoneNum = 1; zoneNum <= numZones; ++zoneNum) { int termUnitSizingIndex = 0; int MatchingCooledZoneNum = 0; if (coolHeatPass == 1) { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex(zoneNum); } else { - termUnitSizingIndex = state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); + termUnitSizingIndex = AirToZoneNodeInfo(AirLoopNum).TermUnitHeatSizingIndex(zoneNum); MatchingCooledZoneNum = General::FindNumberInList(termUnitSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); + AirToZoneNodeInfo(AirLoopNum).TermUnitCoolSizingIndex, + AirToZoneNodeInfo(AirLoopNum).NumZonesCooled); } if (MatchingCooledZoneNum == 0) { @@ -1685,35 +1698,35 @@ namespace EnergyPlus::SizingManager { VozHtgSum += VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating; } - VpzMinClgSum += VpzMinClgByZone(termUnitSizingIndex); - VdzClgSum += VdzClgByZone(termUnitSizingIndex); - VpzMinHtgSum += VpzMinHtgByZone(termUnitSizingIndex); - VdzHtgSum += VdzMinHtgByZone(termUnitSizingIndex); + VpzMinClgSum += state.dataSize->VpzMinClgByZone(termUnitSizingIndex); + VdzClgSum += state.dataSize->VdzClgByZone(termUnitSizingIndex); + VpzMinHtgSum += state.dataSize->VpzMinHtgByZone(termUnitSizingIndex); + VdzHtgSum += state.dataSize->VdzMinHtgByZone(termUnitSizingIndex); // Zone Ventilation Calculations for Cooling Design, (Table 5) OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdAlN, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName); // Air loop name + AirToZoneNodeInfo(AirLoopNum).AirLoopName); // Air loop name for (int iAirDistUnit = 1; iAirDistUnit <= state.dataDefineEquipment->NumAirDistUnits; ++iAirDistUnit) { - if (state.dataDefineEquipment->AirDistUnit(iAirDistUnit).TermUnitSizingNum == termUnitSizingIndex) { + if (AirDistUnit(iAirDistUnit).TermUnitSizingNum == termUnitSizingIndex) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdBox, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - state.dataDefineEquipment->AirDistUnit(iAirDistUnit).EquipType(1)); // use first type of equipment listed + AirDistUnit(iAirDistUnit).EquipType(1)); // use first type of equipment listed break; // if it has been found no more searching is needed } } OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdVpz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VpzClgByZone(termUnitSizingIndex), + state.dataSize->VpzClgByZone(termUnitSizingIndex), 4); // Vpz LS: OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdVdz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VdzClgByZone(termUnitSizingIndex), + state.dataSize->VdzClgByZone(termUnitSizingIndex), 4); // Vdz OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdVpzmin, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VpzMinClgByZone(termUnitSizingIndex), + state.dataSize->VpzMinClgByZone(termUnitSizingIndex), 4); // Vpz-min Real64 VozClg = 0.0; if (TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling > 0.0) { @@ -1725,7 +1738,7 @@ namespace EnergyPlus::SizingManager { } OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdZpz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - DataSizing::ZdzClgByZone(termUnitSizingIndex), + state.dataSize->ZdzClgByZone(termUnitSizingIndex), 4); // Zpz = Voz/Vpz (see eq 6-5 in 62.1-2010) OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdEp, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, @@ -1737,45 +1750,45 @@ namespace EnergyPlus::SizingManager { 4); // Er OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdFa, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FaByZoneCool(termUnitSizingIndex), + state.dataSize->FaByZoneCool(termUnitSizingIndex), 4); // Fa OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdFb, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FbByZoneCool(termUnitSizingIndex), + state.dataSize->FbByZoneCool(termUnitSizingIndex), 4); // Fb OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdFc, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FcByZoneCool(termUnitSizingIndex), + state.dataSize->FcByZoneCool(termUnitSizingIndex), 4); // Fc OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdEvz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - EvzByZoneCool(termUnitSizingIndex), + state.dataSize->EvzByZoneCool(termUnitSizingIndex), 4); // Evz // Zone Ventilation Calculations for Heating Design (Table 7) OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdAlN, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - state.dataAirLoop->AirToZoneNodeInfo(AirLoopNum).AirLoopName); // Air loop name + AirToZoneNodeInfo(AirLoopNum).AirLoopName); // Air loop name for (int iAirDistUnit = 1; iAirDistUnit <= state.dataDefineEquipment->NumAirDistUnits; ++iAirDistUnit) { - if (state.dataDefineEquipment->AirDistUnit(iAirDistUnit).TermUnitSizingNum == termUnitSizingIndex) { + if (AirDistUnit(iAirDistUnit).TermUnitSizingNum == termUnitSizingIndex) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdBox, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - state.dataDefineEquipment->AirDistUnit(iAirDistUnit).EquipType(1)); // use first type of equipment listed + AirDistUnit(iAirDistUnit).EquipType(1)); // use first type of equipment listed break; // if it has been found no more searching is needed } } OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdVpz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VpzHtgByZone(termUnitSizingIndex), + state.dataSize->VpzHtgByZone(termUnitSizingIndex), 4); // Vpz OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdVdz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VdzHtgByZone(termUnitSizingIndex), + state.dataSize->VdzHtgByZone(termUnitSizingIndex), 4); // Vdz OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdVpzmin, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - VpzMinHtgByZone(termUnitSizingIndex), + state.dataSize->VpzMinHtgByZone(termUnitSizingIndex), 4); // Vpz-min Real64 VozHtg = 0.0; if (TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating != 0.0) { @@ -1806,33 +1819,33 @@ namespace EnergyPlus::SizingManager { 4); // Er OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdFa, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FaByZoneHeat(termUnitSizingIndex), + state.dataSize->FaByZoneHeat(termUnitSizingIndex), 4); // Fa OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdFb, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FbByZoneHeat(termUnitSizingIndex), + state.dataSize->FbByZoneHeat(termUnitSizingIndex), 4); // Fb OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdFc, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - FcByZoneHeat(termUnitSizingIndex), + state.dataSize->FcByZoneHeat(termUnitSizingIndex), 4); // Fc OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdEvz, TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName, - EvzByZoneHeat(termUnitSizingIndex), + state.dataSize->EvzByZoneHeat(termUnitSizingIndex), 4); // Evz } } } // System Ventilation Parameters, (Table 4) - if (PzSumBySys(AirLoopNum) != 0.0) { + if (state.dataSize->PzSumBySys(AirLoopNum) != 0.0) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svpRp, FinalSysSizing(AirLoopNum).AirPriLoopName, - RpPzSum / PzSumBySys(AirLoopNum), + RpPzSum / state.dataSize->PzSumBySys(AirLoopNum), 6); // Average Rp for system } OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62svpPz, FinalSysSizing(AirLoopNum).AirPriLoopName, PzSumBySys(AirLoopNum)); + state.dataOutRptPredefined->pdchS62svpPz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->PzSumBySys(AirLoopNum)); if (AzSum != 0.0) { OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62svpRa, FinalSysSizing(AirLoopNum).AirPriLoopName, RaAzSum / AzSum, 6); // average Ra for system @@ -1853,9 +1866,9 @@ namespace EnergyPlus::SizingManager { // System Ventilation Calculations for Cooling Design (Table 6) OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62scdVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, VpzClgSumBySys(AirLoopNum), 4); // Vpz-sum + state.dataOutRptPredefined->pdchS62scdVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpzClgSumBySys(AirLoopNum), 4); // Vpz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62scdVps, FinalSysSizing(AirLoopNum).AirPriLoopName, DataSizing::VpsClgBySys(AirLoopNum), 4); // Vps + state.dataOutRptPredefined->pdchS62scdVps, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpsClgBySys(AirLoopNum), 4); // Vps OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62scdVpzmin, FinalSysSizing(AirLoopNum).AirPriLoopName, VpzMinClgSum, 4); // Vpz-min OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62scdVdz, @@ -1867,13 +1880,13 @@ namespace EnergyPlus::SizingManager { VozClgSum, 4); // Voz-clg OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62scdEvz, FinalSysSizing(AirLoopNum).AirPriLoopName, EvzMinBySysCool(AirLoopNum), 4); // Evz-min + state.dataOutRptPredefined->pdchS62scdEvz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->EvzMinBySysCool(AirLoopNum), 4); // Evz-min // System Ventilation Calculations for Heating Design (Table 8) OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62shdVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, VpzHtgSumBySys(AirLoopNum), 4); // Vpz-sum + state.dataOutRptPredefined->pdchS62shdVpz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpzHtgSumBySys(AirLoopNum), 4); // Vpz-sum OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62shdVps, FinalSysSizing(AirLoopNum).AirPriLoopName, DataSizing::VpsHtgBySys(AirLoopNum), 4); // Vps + state.dataOutRptPredefined->pdchS62shdVps, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->VpsHtgBySys(AirLoopNum), 4); // Vps OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62shdVdz, FinalSysSizing(AirLoopNum).AirPriLoopName, VdzHtgSum, @@ -1885,7 +1898,7 @@ namespace EnergyPlus::SizingManager { VozHtgSum, 4); // Voz-htg OutputReportPredefined::PreDefTableEntry(state, - state.dataOutRptPredefined->pdchS62shdEvz, FinalSysSizing(AirLoopNum).AirPriLoopName, EvzMinBySysHeat(AirLoopNum), 4); // Evz-min + state.dataOutRptPredefined->pdchS62shdEvz, FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->EvzMinBySysHeat(AirLoopNum), 4); // Evz-min } // loop over air loops for table writing @@ -1893,6 +1906,9 @@ namespace EnergyPlus::SizingManager { void DetermineSystemPopulationDiversity(EnergyPlusData &state) { + + auto &FinalSysSizing(state.dataSize->FinalSysSizing); + // determine Pz sum, Ps, and D for each air system for standard 62.1 // first determine if any airloops use VRP, if not then don't need to march thru year of schedules for performance @@ -1906,18 +1922,18 @@ namespace EnergyPlus::SizingManager { // First get the design (max) level of people in all zones connected to air loop for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { int SysSizNum = - UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); + UtilityRoutines::FindItemInList(FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum == 0) SysSizNum = 1; // use first when none applicable if (FinalSysSizing(AirLoopNum).OAAutoSized) { - PzSumBySys(AirLoopNum) = 0.0; - PsBySys(AirLoopNum) = 0.0; + state.dataSize->PzSumBySys(AirLoopNum) = 0.0; + state.dataSize->PsBySys(AirLoopNum) = 0.0; for (int zoneNumOnLoop = 1; zoneNumOnLoop <= state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).NumZones; ++zoneNumOnLoop) { int CtrlZoneNum = state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).ActualZoneNumber(zoneNumOnLoop); for (int PeopleNum = 1; PeopleNum <= state.dataHeatBal->TotPeople; ++PeopleNum) { - if (state.dataHeatBal->People(PeopleNum).ZonePtr == FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { - PzSumBySys(AirLoopNum) += (state.dataHeatBal->People(PeopleNum).NumberOfPeople * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); + if (state.dataHeatBal->People(PeopleNum).ZonePtr == state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { + state.dataSize->PzSumBySys(AirLoopNum) += (state.dataHeatBal->People(PeopleNum).NumberOfPeople * + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); } } } @@ -1926,7 +1942,7 @@ namespace EnergyPlus::SizingManager { if (!anyVRPinModel) { for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - DBySys(AirLoopNum) = 1.0; + state.dataSize->DBySys(AirLoopNum) = 1.0; } return; // early return to not march through schedules } @@ -1950,7 +1966,7 @@ namespace EnergyPlus::SizingManager { if (state.dataGlobal->NumOfTimeStepInHour > 0.0) TSfraction = 1.0 / double(state.dataGlobal->NumOfTimeStepInHour); for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { // loop over all the air systems int SysSizNum = UtilityRoutines::FindItemInList( - FinalSysSizing(AirLoopNum).AirPriLoopName, SysSizInput, &SystemSizingInputData::AirPriLoopName); + FinalSysSizing(AirLoopNum).AirPriLoopName, state.dataSize->SysSizInput, &SystemSizingInputData::AirPriLoopName); if (SysSizNum == 0) SysSizNum = 1; // use first when none applicable if (FinalSysSizing(AirLoopNum).OAAutoSized) { @@ -1960,10 +1976,10 @@ namespace EnergyPlus::SizingManager { int CtrlZoneNum = state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).ActualZoneNumber(zoneNumOnLoop); for (int PeopleNum = 1; PeopleNum <= state.dataHeatBal->TotPeople; ++PeopleNum) { - if (state.dataHeatBal->People(PeopleNum).ZonePtr == FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { + if (state.dataHeatBal->People(PeopleNum).ZonePtr == state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { Real64 PeopleInZone = (state.dataHeatBal->People(PeopleNum).NumberOfPeople * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); Real64 schMultiplier = ScheduleManager::LookUpScheduleValue(state, state.dataHeatBal->People(PeopleNum).NumberOfPeoplePtr, hrOfDay, TS); PeopleInZone = PeopleInZone * schMultiplier; @@ -1971,8 +1987,8 @@ namespace EnergyPlus::SizingManager { } } } - if (TotConcurrentPeopleOnSys >= DataSizing::PsBySys(AirLoopNum)) { - DataSizing::PsBySys(AirLoopNum) = TotConcurrentPeopleOnSys; // store max concurrent occupancy on system + if (TotConcurrentPeopleOnSys >= state.dataSize->PsBySys(AirLoopNum)) { + state.dataSize->PsBySys(AirLoopNum) = TotConcurrentPeopleOnSys; // store max concurrent occupancy on system // store timing description of Last occurrence of max int Month(0); int DayOfMonth(0); @@ -1984,9 +2000,9 @@ namespace EnergyPlus::SizingManager { ++TimeHrsInt; TimeMinsInt = 0; } - DataSizing::PeakPsOccurrenceDateTimeStringBySys(AirLoopNum) = + state.dataSize->PeakPsOccurrenceDateTimeStringBySys(AirLoopNum) = format("{:02}/{:02} {:02}:{:02}", Month, DayOfMonth, TimeHrsInt, TimeMinsInt); - DataSizing::PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum) = "Full Year Schedule"; + state.dataSize->PeakPsOccurrenceEnvironmentStringBySys(AirLoopNum) = "Full Year Schedule"; } } // if autosizied and VRP } // air loops @@ -1996,16 +2012,16 @@ namespace EnergyPlus::SizingManager { // compute D for standard 62.1 by system for (int AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - if (PzSumBySys(AirLoopNum) > 0.0) { - DBySys(AirLoopNum) = PsBySys(AirLoopNum) / PzSumBySys(AirLoopNum); + if (state.dataSize->PzSumBySys(AirLoopNum) > 0.0) { + state.dataSize->DBySys(AirLoopNum) = state.dataSize->PsBySys(AirLoopNum) / state.dataSize->PzSumBySys(AirLoopNum); } else { - DBySys(AirLoopNum) = 1.0; + state.dataSize->DBySys(AirLoopNum) = 1.0; } - DBySys(AirLoopNum) = min(1.0, DBySys(AirLoopNum)); + state.dataSize->DBySys(AirLoopNum) = min(1.0, state.dataSize->DBySys(AirLoopNum)); // For single zone systems, D should be 1.0. if (state.dataAirLoop->AirLoopZoneInfo(AirLoopNum).NumZones == 1) { - DBySys(AirLoopNum) = 1.0; + state.dataSize->DBySys(AirLoopNum) = 1.0; } } } @@ -2055,7 +2071,7 @@ namespace EnergyPlus::SizingManager { Array1D_bool lNumericBlanks; // Logical array, numeric field input BLANK = .TRUE. CurrentModuleObject = "DesignSpecification:OutdoorAir"; - NumOARequirements = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); + state.dataSize->NumOARequirements = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); inputProcessor->getObjectDefMaxArgs(state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); Alphas.allocate(NumAlphas); @@ -2065,11 +2081,11 @@ namespace EnergyPlus::SizingManager { lAlphaBlanks.dimension(NumAlphas, true); lNumericBlanks.dimension(NumNumbers, true); - if (NumOARequirements > 0) { - OARequirements.allocate(NumOARequirements); + if (state.dataSize->NumOARequirements > 0) { + state.dataSize->OARequirements.allocate(state.dataSize->NumOARequirements); // Start Loading the System Input - for (OAIndex = 1; OAIndex <= NumOARequirements; ++OAIndex) { + for (OAIndex = 1; OAIndex <= state.dataSize->NumOARequirements; ++OAIndex) { inputProcessor->getObjectItem(state, CurrentModuleObject, @@ -2085,7 +2101,7 @@ namespace EnergyPlus::SizingManager { cNumericFields); UtilityRoutines::IsNameEmpty(state, Alphas(1), CurrentModuleObject, ErrorsFound); - OARequirements(OAIndex).Name = Alphas(1); + state.dataSize->OARequirements(OAIndex).Name = Alphas(1); ProcessInputOARequirements(state, CurrentModuleObject, @@ -2167,28 +2183,28 @@ namespace EnergyPlus::SizingManager { if (NumAlphas > 1) { if (UtilityRoutines::SameString(Alphas(2), "Flow/Person")) { - OARequirements(OAIndex).OAFlowMethod = OAFlowPPer; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowPPer; } else if (UtilityRoutines::SameString(Alphas(2), "Flow/Zone")) { - OARequirements(OAIndex).OAFlowMethod = OAFlow; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlow; } else if (UtilityRoutines::SameString(Alphas(2), "Flow/Area")) { - OARequirements(OAIndex).OAFlowMethod = OAFlowPerArea; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowPerArea; } else if (UtilityRoutines::SameString(Alphas(2), "AirChanges/Hour")) { - OARequirements(OAIndex).OAFlowMethod = OAFlowACH; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowACH; } else if (UtilityRoutines::SameString(Alphas(2), "Sum")) { - OARequirements(OAIndex).OAFlowMethod = OAFlowSum; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowSum; } else if (UtilityRoutines::SameString(Alphas(2), "Maximum")) { - OARequirements(OAIndex).OAFlowMethod = OAFlowMax; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowMax; } else if (UtilityRoutines::SameString(Alphas(2), "INDOORAIRQUALITYPROCEDURE")) { // Indoor Air Quality Procedure based on ASHRAE Standard 62.1-2007 - OARequirements(OAIndex).OAFlowMethod = ZOAM_IAQP; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = ZOAM_IAQP; } else if (UtilityRoutines::SameString( Alphas(2), "PROPORTIONALCONTROLBASEDONOCCUPANCYSCHEDULE")) { // Proportional Control based on ASHRAE Standard 62.1-2004 - OARequirements(OAIndex).OAFlowMethod = ZOAM_ProportionalControlSchOcc; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = ZOAM_ProportionalControlSchOcc; } else if (UtilityRoutines::SameString( Alphas(2), "PROPORTIONALCONTROLBASEDONDESIGNOCCUPANCY")) { // Proportional Control based on ASHRAE Standard 62.1-2004 - OARequirements(OAIndex).OAFlowMethod = ZOAM_ProportionalControlDesOcc; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = ZOAM_ProportionalControlDesOcc; } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + OARequirements(OAIndex).Name + "\","); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->OARequirements(OAIndex).Name + "\","); ShowContinueError(state, "...Invalid " + cAlphaFields(2) + "=\"" + Alphas(2) + "\","); ShowContinueError(state, "...Valid choices are Flow/Person, Flow/Zone, Flow/Area, AirChanges/Hour, Sum, Maximum, IndoorAirQualityProcedure, " "ProportionalControlBasedOnDesignOccupancy, and ProportionalControlBasedOnOccupancySchedule."); @@ -2196,65 +2212,65 @@ namespace EnergyPlus::SizingManager { } } else { // default value for Outdoor Air Method - OARequirements(OAIndex).OAFlowMethod = OAFlowPPer; + state.dataSize->OARequirements(OAIndex).OAFlowMethod = OAFlowPPer; } if (NumNumbers > 0) { - OARequirements(OAIndex).OAFlowPerPerson = Numbers(1); + state.dataSize->OARequirements(OAIndex).OAFlowPerPerson = Numbers(1); } else { // default value for Outdoor Air Flow per Person when per person flow is counted - OARequirements(OAIndex).OAFlowPerPerson = 0.00944; + state.dataSize->OARequirements(OAIndex).OAFlowPerPerson = 0.00944; } // if one of the methods that should not use the flow per person field is chosen then zero out the flow per person to avoid it // being counted later #4378 - if (OARequirements(OAIndex).OAFlowMethod != OAFlowPPer && OARequirements(OAIndex).OAFlowMethod != OAFlowSum && - OARequirements(OAIndex).OAFlowMethod != OAFlowMax && OARequirements(OAIndex).OAFlowMethod != ZOAM_ProportionalControlSchOcc && - OARequirements(OAIndex).OAFlowMethod != ZOAM_ProportionalControlDesOcc && OARequirements(OAIndex).OAFlowMethod != ZOAM_IAQP) { - OARequirements(OAIndex).OAFlowPerPerson = 0.0; + if (state.dataSize->OARequirements(OAIndex).OAFlowMethod != OAFlowPPer && state.dataSize->OARequirements(OAIndex).OAFlowMethod != OAFlowSum && + state.dataSize->OARequirements(OAIndex).OAFlowMethod != OAFlowMax && state.dataSize->OARequirements(OAIndex).OAFlowMethod != ZOAM_ProportionalControlSchOcc && + state.dataSize->OARequirements(OAIndex).OAFlowMethod != ZOAM_ProportionalControlDesOcc && state.dataSize->OARequirements(OAIndex).OAFlowMethod != ZOAM_IAQP) { + state.dataSize->OARequirements(OAIndex).OAFlowPerPerson = 0.0; } // remaining fields default to 0 if (NumNumbers > 1) { - if (OARequirements(OAIndex).OAFlowMethod == OAFlowPerArea || OARequirements(OAIndex).OAFlowMethod == OAFlowSum || - OARequirements(OAIndex).OAFlowMethod == OAFlowMax) { - OARequirements(OAIndex).OAFlowPerArea = Numbers(2); - } else if (OARequirements(OAIndex).OAFlowMethod == ZOAM_ProportionalControlSchOcc || - OARequirements(OAIndex).OAFlowMethod == ZOAM_ProportionalControlDesOcc || OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { - OARequirements(OAIndex).OAFlowPerArea = Numbers(2); + if (state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowPerArea || state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowSum || + state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowMax) { + state.dataSize->OARequirements(OAIndex).OAFlowPerArea = Numbers(2); + } else if (state.dataSize->OARequirements(OAIndex).OAFlowMethod == ZOAM_ProportionalControlSchOcc || + state.dataSize->OARequirements(OAIndex).OAFlowMethod == ZOAM_ProportionalControlDesOcc || state.dataSize->OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { + state.dataSize->OARequirements(OAIndex).OAFlowPerArea = Numbers(2); } else { - OARequirements(OAIndex).OAFlowPerArea = 0.0; + state.dataSize->OARequirements(OAIndex).OAFlowPerArea = 0.0; } } if (NumNumbers > 2) { - if (OARequirements(OAIndex).OAFlowMethod == OAFlow || OARequirements(OAIndex).OAFlowMethod == OAFlowSum || - OARequirements(OAIndex).OAFlowMethod == OAFlowMax || OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { - OARequirements(OAIndex).OAFlowPerZone = Numbers(3); + if (state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlow || state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowSum || + state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowMax || state.dataSize->OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { + state.dataSize->OARequirements(OAIndex).OAFlowPerZone = Numbers(3); } else { - OARequirements(OAIndex).OAFlowPerZone = 0.0; + state.dataSize->OARequirements(OAIndex).OAFlowPerZone = 0.0; } } if (NumNumbers > 3) { - if (OARequirements(OAIndex).OAFlowMethod == OAFlowACH || OARequirements(OAIndex).OAFlowMethod == OAFlowSum || - OARequirements(OAIndex).OAFlowMethod == OAFlowMax || OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { - OARequirements(OAIndex).OAFlowACH = Numbers(4); + if (state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowACH || state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowSum || + state.dataSize->OARequirements(OAIndex).OAFlowMethod == OAFlowMax || state.dataSize->OARequirements(OAIndex).OAFlowMethod == ZOAM_IAQP) { + state.dataSize->OARequirements(OAIndex).OAFlowACH = Numbers(4); } else { - OARequirements(OAIndex).OAFlowACH = 0.0; + state.dataSize->OARequirements(OAIndex).OAFlowACH = 0.0; } } // Set default schedule - OARequirements(OAIndex).OAFlowFracSchPtr = DataGlobalConstants::ScheduleAlwaysOn; + state.dataSize->OARequirements(OAIndex).OAFlowFracSchPtr = DataGlobalConstants::ScheduleAlwaysOn; if (NumAlphas > 2) { if (!lAlphaBlanks(3)) { - OARequirements(OAIndex).OAFlowFracSchPtr = GetScheduleIndex(state, Alphas(3)); - if (OARequirements(OAIndex).OAFlowFracSchPtr > 0) { - if (!CheckScheduleValueMinMax(state, OARequirements(OAIndex).OAFlowFracSchPtr, ">=", 0.0, "<=", 1.0)) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + OARequirements(OAIndex).Name + "\","); + state.dataSize->OARequirements(OAIndex).OAFlowFracSchPtr = GetScheduleIndex(state, Alphas(3)); + if (state.dataSize->OARequirements(OAIndex).OAFlowFracSchPtr > 0) { + if (!CheckScheduleValueMinMax(state, state.dataSize->OARequirements(OAIndex).OAFlowFracSchPtr, ">=", 0.0, "<=", 1.0)) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->OARequirements(OAIndex).Name + "\","); ShowContinueError(state, "Error found in " + cAlphaFields(3) + " = " + Alphas(3)); ShowContinueError(state, "Schedule values must be (>=0., <=1.)"); ErrorsFound = true; } } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + OARequirements(OAIndex).Name + "\","); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->OARequirements(OAIndex).Name + "\","); ShowContinueError(state, "...Not Found " + cAlphaFields(3) + "=\"" + Alphas(3) + "\"."); ErrorsFound = true; } @@ -2263,16 +2279,16 @@ namespace EnergyPlus::SizingManager { if (NumAlphas > 3) { if (!lAlphaBlanks(4)) { - OARequirements(OAIndex).OAPropCtlMinRateSchPtr = GetScheduleIndex(state, Alphas(4)); - if (OARequirements(OAIndex).OAPropCtlMinRateSchPtr > 0) { - if (!CheckScheduleValueMinMax(state, OARequirements(OAIndex).OAPropCtlMinRateSchPtr, ">=", 0.0, "<=", 1.0)) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + OARequirements(OAIndex).Name + "\","); + state.dataSize->OARequirements(OAIndex).OAPropCtlMinRateSchPtr = GetScheduleIndex(state, Alphas(4)); + if (state.dataSize->OARequirements(OAIndex).OAPropCtlMinRateSchPtr > 0) { + if (!CheckScheduleValueMinMax(state, state.dataSize->OARequirements(OAIndex).OAPropCtlMinRateSchPtr, ">=", 0.0, "<=", 1.0)) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->OARequirements(OAIndex).Name + "\","); ShowContinueError(state, "Error found in " + cAlphaFields(4) + " = " + Alphas(4)); ShowContinueError(state, "Schedule values must be (>=0., <=1.)"); ErrorsFound = true; } } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + OARequirements(OAIndex).Name + "\","); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->OARequirements(OAIndex).Name + "\","); ShowContinueError(state, "...Not Found " + cAlphaFields(4) + "=\"" + Alphas(4) + "\"."); ErrorsFound = true; } @@ -2323,7 +2339,7 @@ namespace EnergyPlus::SizingManager { Array1D_bool lNumericBlanks; // Logical array, numeric field input BLANK = .TRUE. CurrentModuleObject = "DesignSpecification:ZoneAirDistribution"; - NumZoneAirDistribution = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); + state.dataSize->NumZoneAirDistribution = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); inputProcessor->getObjectDefMaxArgs(state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); Alphas.allocate(NumAlphas); @@ -2333,11 +2349,11 @@ namespace EnergyPlus::SizingManager { lAlphaBlanks.dimension(NumAlphas, true); lNumericBlanks.dimension(NumNumbers, true); - if (NumZoneAirDistribution > 0) { - ZoneAirDistribution.allocate(NumZoneAirDistribution); + if (state.dataSize->NumZoneAirDistribution > 0) { + state.dataSize->ZoneAirDistribution.allocate(state.dataSize->NumZoneAirDistribution); // Start Loading the zone air distribution input - for (ZADIndex = 1; ZADIndex <= NumZoneAirDistribution; ++ZADIndex) { + for (ZADIndex = 1; ZADIndex <= state.dataSize->NumZoneAirDistribution; ++ZADIndex) { inputProcessor->getObjectItem(state, CurrentModuleObject, ZADIndex, @@ -2352,53 +2368,53 @@ namespace EnergyPlus::SizingManager { cNumericFields); UtilityRoutines::IsNameEmpty(state, Alphas(1), CurrentModuleObject, ErrorsFound); - ZoneAirDistribution(ZADIndex).Name = Alphas(1); + state.dataSize->ZoneAirDistribution(ZADIndex).Name = Alphas(1); // Zone Air Distribution Effectiveness in Cooling Mode if (NumNumbers > 0) { - ZoneAirDistribution(ZADIndex).ZoneADEffCooling = Numbers(1); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffCooling = Numbers(1); } else { // default value - ZoneAirDistribution(ZADIndex).ZoneADEffCooling = 1.0; + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffCooling = 1.0; } // Zone Air Distribution Effectiveness in Heating Mode if (NumNumbers > 1) { - ZoneAirDistribution(ZADIndex).ZoneADEffHeating = Numbers(2); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffHeating = Numbers(2); } else { // default value - ZoneAirDistribution(ZADIndex).ZoneADEffHeating = 1.0; + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffHeating = 1.0; } // Zone Secondary Recirculation Fraction if (NumNumbers > 2) { - ZoneAirDistribution(ZADIndex).ZoneSecondaryRecirculation = Numbers(3); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneSecondaryRecirculation = Numbers(3); } else { // default value - ZoneAirDistribution(ZADIndex).ZoneSecondaryRecirculation = 0.0; + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneSecondaryRecirculation = 0.0; } // Zone Ventilation Efficiency if (NumNumbers > 3) { - ZoneAirDistribution(ZADIndex).ZoneVentilationEff = Numbers(4); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneVentilationEff = Numbers(4); } else { // default value - ZoneAirDistribution(ZADIndex).ZoneVentilationEff = 0.0; + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneVentilationEff = 0.0; } if (NumAlphas > 1) { if (!lAlphaBlanks(2)) { - ZoneAirDistribution(ZADIndex).ZoneADEffSchName = Alphas(2); - ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr = GetScheduleIndex(state, Alphas(2)); - if (ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr > 0) { - if (!CheckScheduleValueMinMax(state, ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr, ">", 0.0)) { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + ZoneAirDistribution(ZADIndex).Name + "\","); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffSchName = Alphas(2); + state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr = GetScheduleIndex(state, Alphas(2)); + if (state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr > 0) { + if (!CheckScheduleValueMinMax(state, state.dataSize->ZoneAirDistribution(ZADIndex).ZoneADEffSchPtr, ">", 0.0)) { + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->ZoneAirDistribution(ZADIndex).Name + "\","); ShowContinueError(state, "Error found in " + cAlphaFields(2) + " = " + Alphas(2)); ShowContinueError(state, "Schedule values must be >0.0)"); ErrorsFound = true; } } else { - ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + ZoneAirDistribution(ZADIndex).Name + "\","); + ShowSevereError(state, RoutineName + CurrentModuleObject + "=\"" + state.dataSize->ZoneAirDistribution(ZADIndex).Name + "\","); ShowContinueError(state, "...Not Found " + cAlphaFields(2) + "=\"" + Alphas(2) + "\"."); ErrorsFound = true; } @@ -2462,34 +2478,34 @@ namespace EnergyPlus::SizingManager { cAlphaFieldNames, cNumericFieldNames); if (lNumericFieldBlanks(1) || rNumericArgs(1) < 0.0) { - GlobalHeatSizingFactor = 1.0; + state.dataSize->GlobalHeatSizingFactor = 1.0; } else { - GlobalHeatSizingFactor = rNumericArgs(1); + state.dataSize->GlobalHeatSizingFactor = rNumericArgs(1); } if (lNumericFieldBlanks(2) || rNumericArgs(2) < 0.0) { - GlobalCoolSizingFactor = 1.0; + state.dataSize->GlobalCoolSizingFactor = 1.0; } else { - GlobalCoolSizingFactor = rNumericArgs(2); + state.dataSize->GlobalCoolSizingFactor = rNumericArgs(2); } if (lNumericFieldBlanks(3) || rNumericArgs(3) <= 0.0) { - NumTimeStepsInAvg = state.dataGlobal->NumOfTimeStepInHour; + state.dataSize->NumTimeStepsInAvg = state.dataGlobal->NumOfTimeStepInHour; } else { - NumTimeStepsInAvg = int(rNumericArgs(3)); + state.dataSize->NumTimeStepsInAvg = int(rNumericArgs(3)); } } else if (NumSizParams == 0) { - GlobalHeatSizingFactor = 1.0; - GlobalCoolSizingFactor = 1.0; - NumTimeStepsInAvg = state.dataGlobal->NumOfTimeStepInHour; + state.dataSize->GlobalHeatSizingFactor = 1.0; + state.dataSize->GlobalCoolSizingFactor = 1.0; + state.dataSize->NumTimeStepsInAvg = state.dataGlobal->NumOfTimeStepInHour; } else { ShowFatalError(state, cCurrentModuleObject + ": More than 1 occurrence of this object; only 1 allowed"); } - if (NumTimeStepsInAvg < state.dataGlobal->NumOfTimeStepInHour) { + if (state.dataSize->NumTimeStepsInAvg < state.dataGlobal->NumOfTimeStepInHour) { ShowWarningError(state, format("{}: note {} entered value=[{}] is less than 1 hour (i.e., {} timesteps).", cCurrentModuleObject, cNumericFieldNames(3), - NumTimeStepsInAvg, + state.dataSize->NumTimeStepsInAvg, state.dataGlobal->NumOfTimeStepInHour)); } @@ -2498,7 +2514,7 @@ namespace EnergyPlus::SizingManager { if (Temp == 0) { cAlphaArgs(1) = "Comma"; - SizingFileColSep = CharComma; // comma + state.dataSize->SizingFileColSep = CharComma; // comma } else if (Temp == 1) { inputProcessor->getObjectItem(state, cCurrentModuleObject, @@ -2513,16 +2529,16 @@ namespace EnergyPlus::SizingManager { cAlphaFieldNames, cNumericFieldNames); if (cAlphaArgs(1) == "COMMA") { - SizingFileColSep = CharComma; // comma + state.dataSize->SizingFileColSep = CharComma; // comma cAlphaArgs(1) = "Comma"; } else if (cAlphaArgs(1) == "TAB") { - SizingFileColSep = CharTab; // tab + state.dataSize->SizingFileColSep = CharTab; // tab cAlphaArgs(1) = "Tab"; } else if (cAlphaArgs(1) == "FIXED" || cAlphaArgs(1) == "SPACE") { - SizingFileColSep = CharSpace; // space + state.dataSize->SizingFileColSep = CharSpace; // space cAlphaArgs(1) = "Space"; } else { - SizingFileColSep = CharComma; // comma + state.dataSize->SizingFileColSep = CharComma; // comma ShowWarningError(state, cCurrentModuleObject + ": invalid " + cAlphaFieldNames(1) + " entered value=\"" + cAlphaArgs(1) + "\", Commas will be used to separate fields."); cAlphaArgs(1) = "Comma"; @@ -2601,7 +2617,7 @@ namespace EnergyPlus::SizingManager { } cCurrentModuleObject = "Sizing:Zone"; - NumZoneSizingInput = 0; + state.dataSize->NumZoneSizingInput = 0; errFlag = false; for (Item = 1; Item <= NumSizingZoneStatements; ++Item) { inputProcessor->getObjectItem(state, @@ -2624,14 +2640,14 @@ namespace EnergyPlus::SizingManager { ZLItem = 0; if (Item1 == 0 && NumZoneLists > 0) ZLItem = UtilityRoutines::FindItemInList(cAlphaArgs(1), ZoneListNames); if (Item1 > 0) { - SizingZoneObjects(Item).StartPtr = NumZoneSizingInput + 1; - ++NumZoneSizingInput; + SizingZoneObjects(Item).StartPtr = state.dataSize->NumZoneSizingInput + 1; + ++state.dataSize->NumZoneSizingInput; SizingZoneObjects(Item).NumOfZones = 1; SizingZoneObjects(Item).ZoneListActive = false; SizingZoneObjects(Item).ZoneOrZoneListPtr = Item1; } else if (ZLItem > 0) { - SizingZoneObjects(Item).StartPtr = NumZoneSizingInput + 1; - NumZoneSizingInput += ZoneListNames(ZLItem).NumOfZones; + SizingZoneObjects(Item).StartPtr = state.dataSize->NumZoneSizingInput + 1; + state.dataSize->NumZoneSizingInput += ZoneListNames(ZLItem).NumOfZones; SizingZoneObjects(Item).NumOfZones = ZoneListNames(ZLItem).NumOfZones; SizingZoneObjects(Item).ZoneListActive = true; SizingZoneObjects(Item).ZoneOrZoneListPtr = ZLItem; @@ -2645,10 +2661,10 @@ namespace EnergyPlus::SizingManager { if (errFlag) { ShowSevereError(state, "GetZoneSizingInput: Errors with invalid names in " + cCurrentModuleObject + " objects."); ShowContinueError(state, "...These will not be read in. Other errors may occur."); - NumZoneSizingInput = 0; + state.dataSize->NumZoneSizingInput = 0; } - if (NumZoneSizingInput > 0) { + if (state.dataSize->NumZoneSizingInput > 0) { NumDesDays = inputProcessor->getNumObjectsFound(state, "SizingPeriod:DesignDay") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileDays") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileConditionType"); @@ -2656,7 +2672,7 @@ namespace EnergyPlus::SizingManager { ShowSevereError(state, "Zone Sizing calculations need SizingPeriod:* input. None found."); ErrorsFound = true; } - ZoneSizingInput.allocate(NumZoneSizingInput); + state.dataSize->ZoneSizingInput.allocate(state.dataSize->NumZoneSizingInput); ZoneSizIndex = 0; for (Item = 1; Item <= NumSizingZoneStatements; ++Item) { @@ -2678,18 +2694,18 @@ namespace EnergyPlus::SizingManager { ++ZoneSizIndex; if (!SizingZoneObjects(Item).ZoneListActive) { if (SizingZoneObjects(Item).ZoneOrZoneListPtr > 0) { - ZoneSizingInput(ZoneSizIndex).ZoneName = ZoneNames(SizingZoneObjects(Item).ZoneOrZoneListPtr); + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName = ZoneNames(SizingZoneObjects(Item).ZoneOrZoneListPtr); } else { // Invalid zone, will be caught later - ZoneSizingInput(ZoneSizIndex).ZoneName = "Invalid Zone Name"; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName = "Invalid Zone Name"; } } else { // Zone list active if (SizingZoneObjects(Item).ZoneOrZoneListPtr > 0 && ZoneListNames(SizingZoneObjects(Item).ZoneOrZoneListPtr).Zones(Item1) > 0) { - ZoneSizingInput(ZoneSizIndex).ZoneName = ZoneNames(ZoneListNames(SizingZoneObjects(Item).ZoneOrZoneListPtr).Zones(Item1)); + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName = ZoneNames(ZoneListNames(SizingZoneObjects(Item).ZoneOrZoneListPtr).Zones(Item1)); } else { // Invalid zone, will be caught later - ZoneSizingInput(ZoneSizIndex).ZoneName = "Invalid Zone Name"; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName = "Invalid Zone Name"; } } bool const nameEmpty = UtilityRoutines::IsNameEmpty(state, cAlphaArgs(1), cCurrentModuleObject, ErrorsFound); @@ -2706,9 +2722,9 @@ namespace EnergyPlus::SizingManager { { auto const coolingSATMethod(cAlphaArgs(2)); if (coolingSATMethod == "SUPPLYAIRTEMPERATURE") { - ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod = SupplyAirTemperature; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod = SupplyAirTemperature; } else if (coolingSATMethod == "TEMPERATUREDIFFERENCE") { - ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod = TemperatureDifference; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod = TemperatureDifference; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(2) + "=\"" + cAlphaArgs(2) + "\""); @@ -2722,16 +2738,16 @@ namespace EnergyPlus::SizingManager { // \note Zone Cooling Design Supply Air Temperature is only used when Zone Cooling Design // \note Supply Air Temperature Input Method = SupplyAirTemperature if (lNumericFieldBlanks(1)) { - ZoneSizingInput(ZoneSizIndex).CoolDesTemp = 0.0; - } else if (rNumericArgs(1) < 0.0 && ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == SupplyAirTemperature) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTemp = 0.0; + } else if (rNumericArgs(1) < 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == SupplyAirTemperature) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(1), rNumericArgs(1))); ErrorsFound = true; - } else if (rNumericArgs(1) >= 0.0 && ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == SupplyAirTemperature) { - ZoneSizingInput(ZoneSizIndex).CoolDesTemp = rNumericArgs(1); + } else if (rNumericArgs(1) >= 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == SupplyAirTemperature) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTemp = rNumericArgs(1); } else { - ZoneSizingInput(ZoneSizIndex).CoolDesTemp = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTemp = 0.0; } // N2, \field Zone Cooling Design Supply Air Temperature Difference // \type real @@ -2741,11 +2757,11 @@ namespace EnergyPlus::SizingManager { // \note The absolute of this value is value will be subtracted from room temperature // \note at peak load to calculate Zone Cooling Design Supply Air Temperature. if (lNumericFieldBlanks(2)) { - ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = 0.0; - } else if (ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == TemperatureDifference) { - ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = rNumericArgs(2); + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = 0.0; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnCoolDgnSAMethod == TemperatureDifference) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = rNumericArgs(2); } else { - ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesTempDiff = 0.0; } // A3, \field Zone Heating Design Supply Air Temperature Input Method // \required-field @@ -2756,9 +2772,9 @@ namespace EnergyPlus::SizingManager { { auto const heatingSATMethod(cAlphaArgs(3)); if (heatingSATMethod == "SUPPLYAIRTEMPERATURE") { - ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod = SupplyAirTemperature; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod = SupplyAirTemperature; } else if (heatingSATMethod == "TEMPERATUREDIFFERENCE") { - ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod = TemperatureDifference; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod = TemperatureDifference; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) + "\""); @@ -2772,16 +2788,16 @@ namespace EnergyPlus::SizingManager { // \note Zone Heating Design Supply Air Temperature is only used when Zone Heating Design // \note Supply Air Temperature Input Method = SupplyAirTemperature if (lNumericFieldBlanks(3)) { - ZoneSizingInput(ZoneSizIndex).HeatDesTemp = 0.0; - } else if (rNumericArgs(3) < 0.0 && ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == SupplyAirTemperature) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTemp = 0.0; + } else if (rNumericArgs(3) < 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == SupplyAirTemperature) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(3), rNumericArgs(3))); ErrorsFound = true; - } else if (rNumericArgs(3) >= 0.0 && ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == SupplyAirTemperature) { - ZoneSizingInput(ZoneSizIndex).HeatDesTemp = rNumericArgs(3); + } else if (rNumericArgs(3) >= 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == SupplyAirTemperature) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTemp = rNumericArgs(3); } else { - ZoneSizingInput(ZoneSizIndex).HeatDesTemp = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTemp = 0.0; } // N4, \field Zone Heating Design Supply Air Temperature Difference // \type real @@ -2791,11 +2807,11 @@ namespace EnergyPlus::SizingManager { // \note The absolute of this value is value will be added to room temperature // \note at peak load to calculate Zone Heating Design Supply Air Temperature. if (lNumericFieldBlanks(4)) { - ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = 0.0; - } else if (ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == TemperatureDifference) { - ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = rNumericArgs(4); + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = 0.0; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).ZnHeatDgnSAMethod == TemperatureDifference) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = rNumericArgs(4); } else { - ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesTempDiff = 0.0; } // N5, \field Zone Cooling Design Supply Air Humidity Ratio // \required-field @@ -2803,13 +2819,13 @@ namespace EnergyPlus::SizingManager { // \type real // \units kgWater/kgDryAir if (lNumericFieldBlanks(5)) { - ZoneSizingInput(ZoneSizIndex).CoolDesHumRat = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesHumRat = 0.0; } else if (rNumericArgs(5) < 0.0) { ShowSevereError(state, format("{}: incorrect {}: {:.2R}", cCurrentModuleObject, cNumericFieldNames(5), rNumericArgs(5))); ShowContinueError(state, ".. value should not be negative. Occurs in Sizing Object=" + cAlphaArgs(1)); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).CoolDesHumRat = rNumericArgs(5); + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolDesHumRat = rNumericArgs(5); } // N6, \field Zone Heating Design Supply Air Humidity Ratio // \required-field @@ -2817,65 +2833,65 @@ namespace EnergyPlus::SizingManager { // \type real // \units kgWater/kgDryAir if (lNumericFieldBlanks(6)) { - ZoneSizingInput(ZoneSizIndex).HeatDesHumRat = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesHumRat = 0.0; } else if (rNumericArgs(6) < 0.0) { ShowSevereError(state, format("{}: incorrect {}: {:.2R}", cCurrentModuleObject, cNumericFieldNames(6), rNumericArgs(6))); ShowContinueError(state, ".. value should not be negative. Occurs in Sizing Object=" + cAlphaArgs(1)); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).HeatDesHumRat = rNumericArgs(6); + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatDesHumRat = rNumericArgs(6); } // A4, \field Design Specification Outdoor Air Object Name // \type object-list // \object-list DesignSpecificationOutdoorAirNames - ZoneSizingInput(ZoneSizIndex).DesignSpecOAObjName = cAlphaArgs(4); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesignSpecOAObjName = cAlphaArgs(4); // Getting zone OA parameters from Design Specification object if (!lAlphaFieldBlanks(4)) { - OAIndex = UtilityRoutines::FindItemInList(ZoneSizingInput(ZoneSizIndex).DesignSpecOAObjName, OARequirements); + OAIndex = UtilityRoutines::FindItemInList(state.dataSize->ZoneSizingInput(ZoneSizIndex).DesignSpecOAObjName, state.dataSize->OARequirements); if (OAIndex > 0) { - ZoneSizingInput(ZoneSizIndex).OADesMethod = OARequirements(OAIndex).OAFlowMethod; - ZoneSizingInput(ZoneSizIndex).DesOAFlowPPer = OARequirements(OAIndex).OAFlowPerPerson; - ZoneSizingInput(ZoneSizIndex).DesOAFlowPerArea = OARequirements(OAIndex).OAFlowPerArea; - ZoneSizingInput(ZoneSizIndex).DesOAFlow = OARequirements(OAIndex).OAFlowPerZone; - ZoneSizingInput(ZoneSizIndex).ZoneDesignSpecOAIndex = OAIndex; + state.dataSize->ZoneSizingInput(ZoneSizIndex).OADesMethod = state.dataSize->OARequirements(OAIndex).OAFlowMethod; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlowPPer = state.dataSize->OARequirements(OAIndex).OAFlowPerPerson; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlowPerArea = state.dataSize->OARequirements(OAIndex).OAFlowPerArea; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlow = state.dataSize->OARequirements(OAIndex).OAFlowPerZone; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneDesignSpecOAIndex = OAIndex; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(4) + "=\"" + cAlphaArgs(4) + "\"."); ErrorsFound = true; } } else { // If no design spec object specified, i.e. no OA, then set OA method to None as default but flows to 0 - ZoneSizingInput(ZoneSizIndex).OADesMethod = 0; - ZoneSizingInput(ZoneSizIndex).DesOAFlowPPer = 0.0; - ZoneSizingInput(ZoneSizIndex).DesOAFlowPerArea = 0.0; - ZoneSizingInput(ZoneSizIndex).DesOAFlow = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).OADesMethod = 0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlowPPer = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlowPerArea = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesOAFlow = 0.0; } // N7, \field Zone Heating Sizing Factor // \note if blank, global heating sizing factor from Sizing:Parameters is used. // \minimum> 0 if (lNumericFieldBlanks(7) || rNumericArgs(7) == 0.0) { - ZoneSizingInput(ZoneSizIndex).HeatSizingFactor = GlobalHeatSizingFactor; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatSizingFactor = state.dataSize->GlobalHeatSizingFactor; } else if (rNumericArgs(7) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(7), rNumericArgs(7))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).HeatSizingFactor = rNumericArgs(7); + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatSizingFactor = rNumericArgs(7); } // N8, \field Zone Cooling Sizing Factor // \note if blank, global cooling sizing factor from Sizing:Parameters is used. // \minimum> 0 if (lNumericFieldBlanks(8) || rNumericArgs(8) == 0.0) { - ZoneSizingInput(ZoneSizIndex).CoolSizingFactor = GlobalCoolSizingFactor; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolSizingFactor = state.dataSize->GlobalCoolSizingFactor; } else if (rNumericArgs(8) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(8), rNumericArgs(8))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).CoolSizingFactor = rNumericArgs(8); + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolSizingFactor = rNumericArgs(8); } // N9, \field Cooling Design Air Flow Rate // \type real @@ -2886,14 +2902,14 @@ namespace EnergyPlus::SizingManager { // \note This value will be multiplied by the global or zone sizing factor and // \note by zone multipliers. if (lNumericFieldBlanks(9)) { - ZoneSizingInput(ZoneSizIndex).DesCoolAirFlow = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolAirFlow = 0.0; } else if (rNumericArgs(9) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(9), rNumericArgs(9))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesCoolAirFlow = rNumericArgs(9); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolAirFlow = rNumericArgs(9); } // N10,\field Cooling Minimum Air Flow per Zone Floor Area // \type real @@ -2904,9 +2920,9 @@ namespace EnergyPlus::SizingManager { // \note This input is used if Cooling Design Air Flow Method is design day with limit if (lNumericFieldBlanks(10)) { if (rNumericArgs(10) <= 0.0) { // in case someone changes the default in the IDD - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = 0.000762; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = 0.000762; } else { - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = rNumericArgs(10); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = rNumericArgs(10); } } else if (rNumericArgs(10) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); @@ -2914,7 +2930,7 @@ namespace EnergyPlus::SizingManager { state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(108), rNumericArgs(10))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = rNumericArgs(10); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowPerArea = rNumericArgs(10); } // N11,\field Cooling Minimum Air Flow // \type real @@ -2923,14 +2939,14 @@ namespace EnergyPlus::SizingManager { // \default 0 // \note This input is used if Cooling Design Air Flow Method is design day with limit if (lNumericFieldBlanks(11)) { - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlow = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlow = 0.0; } else if (rNumericArgs(11) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(11), rNumericArgs(11))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlow = rNumericArgs(11); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlow = rNumericArgs(11); } // N12,\field Cooling Minimum Air Flow Fraction if (rNumericArgs(12) < 0.0) { @@ -2939,7 +2955,7 @@ namespace EnergyPlus::SizingManager { state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(12), rNumericArgs(12))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowFrac = rNumericArgs(12); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesCoolMinAirFlowFrac = rNumericArgs(12); } // N13,\field Heating Design Air Flow Rate @@ -2951,14 +2967,14 @@ namespace EnergyPlus::SizingManager { // \note This value will be multiplied by the global or zone sizing factor and // \note by zone multipliers. if (lNumericFieldBlanks(13)) { - ZoneSizingInput(ZoneSizIndex).DesHeatAirFlow = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatAirFlow = 0.0; } else if (rNumericArgs(13) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError( state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(13), rNumericArgs(13))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatAirFlow = rNumericArgs(13); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatAirFlow = rNumericArgs(13); } // N14,\field Heating Maximum Air Flow per Zone Floor Area // \type real @@ -2970,9 +2986,9 @@ namespace EnergyPlus::SizingManager { DesHeatMaxAirFlowPerAreaUsrInp = false; if (lNumericFieldBlanks(14)) { if (rNumericArgs(14) <= 0.0) { // in case someone changes the default in the IDD - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = 0.002032; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = 0.002032; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = rNumericArgs(14); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = rNumericArgs(14); } } else if (rNumericArgs(14) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); @@ -2980,7 +2996,7 @@ namespace EnergyPlus::SizingManager { state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(14), rNumericArgs(14))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = rNumericArgs(14); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = rNumericArgs(14); DesHeatMaxAirFlowPerAreaUsrInp = true; } // N15,\field Heating Maximum Air Flow @@ -2993,9 +3009,9 @@ namespace EnergyPlus::SizingManager { DesHeatMaxAirFlowUsrInp = false; if (lNumericFieldBlanks(15)) { if (rNumericArgs(15) <= 0.0) { // in case someone changes the default in the IDD - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = 0.1415762; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = 0.1415762; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = rNumericArgs(15); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = rNumericArgs(15); } } else if (rNumericArgs(15) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); @@ -3003,7 +3019,7 @@ namespace EnergyPlus::SizingManager { state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(15), rNumericArgs(15))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = rNumericArgs(15); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = rNumericArgs(15); DesHeatMaxAirFlowUsrInp = true; } // N16;\field Heating Maximum Air Flow Fraction @@ -3015,9 +3031,9 @@ namespace EnergyPlus::SizingManager { DesHeatMaxAirFlowFracUsrInp = false; if (lNumericFieldBlanks(16)) { if (rNumericArgs(16) <= 0.0) { // in case someone changes the default in the IDD - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = 0.3; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = 0.3; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = rNumericArgs(16); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = rNumericArgs(16); } } else if (rNumericArgs(16) < 0.0) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); @@ -3025,32 +3041,32 @@ namespace EnergyPlus::SizingManager { state, format("... incorrect {}=[{:.2R}], value should not be negative.", cNumericFieldNames(16), rNumericArgs(16))); ErrorsFound = true; } else { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = rNumericArgs(16); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = rNumericArgs(16); DesHeatMaxAirFlowFracUsrInp = true; } // make sure the user specified inputs of the previous 3 inputs override the defaults if (DesHeatMaxAirFlowPerAreaUsrInp || DesHeatMaxAirFlowUsrInp || DesHeatMaxAirFlowFracUsrInp) { if (!DesHeatMaxAirFlowPerAreaUsrInp) { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowPerArea = 0.0; } if (!DesHeatMaxAirFlowUsrInp) { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlow = 0.0; } if (!DesHeatMaxAirFlowFracUsrInp) { - ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DesHeatMaxAirFlowFrac = 0.0; } } // A7, \field Zone Air Distribution Object Name and add its inputs if (!lAlphaFieldBlanks(7)) { - ZoneSizingInput(ZoneSizIndex).ZoneAirDistEffObjName = cAlphaArgs(7); - ObjIndex = UtilityRoutines::FindItemInList(ZoneSizingInput(ZoneSizIndex).ZoneAirDistEffObjName, ZoneAirDistribution); + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneAirDistEffObjName = cAlphaArgs(7); + ObjIndex = UtilityRoutines::FindItemInList(state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneAirDistEffObjName, state.dataSize->ZoneAirDistribution); if (ObjIndex > 0) { - ZoneSizingInput(ZoneSizIndex).ZoneADEffCooling = ZoneAirDistribution(ObjIndex).ZoneADEffCooling; - ZoneSizingInput(ZoneSizIndex).ZoneADEffHeating = ZoneAirDistribution(ObjIndex).ZoneADEffHeating; - ZoneSizingInput(ZoneSizIndex).ZoneSecondaryRecirculation = ZoneAirDistribution(ObjIndex).ZoneSecondaryRecirculation; - ZoneSizingInput(ZoneSizIndex).ZoneAirDistributionIndex = ObjIndex; - ZoneSizingInput(ZoneSizIndex).ZoneVentilationEff = ZoneAirDistribution(ObjIndex).ZoneVentilationEff; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneADEffCooling = state.dataSize->ZoneAirDistribution(ObjIndex).ZoneADEffCooling; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneADEffHeating = state.dataSize->ZoneAirDistribution(ObjIndex).ZoneADEffHeating; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneSecondaryRecirculation = state.dataSize->ZoneAirDistribution(ObjIndex).ZoneSecondaryRecirculation; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneAirDistributionIndex = ObjIndex; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneVentilationEff = state.dataSize->ZoneAirDistribution(ObjIndex).ZoneVentilationEff; } else { // generate a warning message ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); @@ -3059,19 +3075,19 @@ namespace EnergyPlus::SizingManager { } } else { // assume defaults - ZoneSizingInput(ZoneSizIndex).ZoneADEffCooling = 1.0; - ZoneSizingInput(ZoneSizIndex).ZoneADEffHeating = 1.0; - ZoneSizingInput(ZoneSizIndex).ZoneSecondaryRecirculation = 0.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneADEffCooling = 1.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneADEffHeating = 1.0; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneSecondaryRecirculation = 0.0; } { auto const coolAirDesMethod(cAlphaArgs(5)); if (coolAirDesMethod == "DESIGNDAY") { - ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = FromDDCalc; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = FromDDCalc; } else if (coolAirDesMethod == "FLOW/ZONE") { - ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = InpDesAirFlow; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = InpDesAirFlow; } else if (coolAirDesMethod == "DESIGNDAYWITHLIMIT") { - ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = DesAirFlowWithLim; + state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod = DesAirFlowWithLim; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(5) + "=\"" + cAlphaArgs(5) + "\"."); @@ -3082,11 +3098,11 @@ namespace EnergyPlus::SizingManager { { auto const heatAirDesMethod(cAlphaArgs(6)); if (heatAirDesMethod == "DESIGNDAY") { - ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = FromDDCalc; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = FromDDCalc; } else if (heatAirDesMethod == "FLOW/ZONE") { - ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = InpDesAirFlow; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = InpDesAirFlow; } else if (heatAirDesMethod == "DESIGNDAYWITHLIMIT") { - ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = DesAirFlowWithLim; + state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod = DesAirFlowWithLim; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(6) + "=\"" + cAlphaArgs(6) + "\"."); @@ -3095,19 +3111,19 @@ namespace EnergyPlus::SizingManager { } } if (cAlphaArgs(8) == "YES") { - ZoneSizingInput(ZoneSizIndex).AccountForDOAS = true; + state.dataSize->ZoneSizingInput(ZoneSizIndex).AccountForDOAS = true; } else { - ZoneSizingInput(ZoneSizIndex).AccountForDOAS = false; + state.dataSize->ZoneSizingInput(ZoneSizIndex).AccountForDOAS = false; } - if (ZoneSizingInput(ZoneSizIndex).AccountForDOAS) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).AccountForDOAS) { { auto const DOASControlMethod(cAlphaArgs(9)); if (DOASControlMethod == "NEUTRALSUPPLYAIR") { - ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOANeutralSup; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOANeutralSup; } else if (DOASControlMethod == "NEUTRALDEHUMIDIFIEDSUPPLYAIR") { - ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOANeutralDehumSup; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOANeutralDehumSup; } else if (DOASControlMethod == "COLDSUPPLYAIR") { - ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOACoolSup; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy = DOACoolSup; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... incorrect " + cAlphaFieldNames(9) + "=\"" + cAlphaArgs(9) + "\"."); @@ -3115,8 +3131,8 @@ namespace EnergyPlus::SizingManager { ErrorsFound = true; } } - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = rNumericArgs(17); - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = rNumericArgs(18); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = rNumericArgs(17); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = rNumericArgs(18); if (rNumericArgs(17) > 0.0 && rNumericArgs(18) > 0.0 && rNumericArgs(17) >= rNumericArgs(18)) { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "... Dedicated Outside Air Low Setpoint for Design must be less than the High Setpoint"); @@ -3238,43 +3254,43 @@ namespace EnergyPlus::SizingManager { using namespace DataIPShortCuts; // Sizing:System; - int const iNameAlphaNum = 1; // A1, \field AirLoop Name - int const iLoadTypeSizeAlphaNum = 2; // A2, \field Type of Load to Size On - int const iCoolCapControlAlphaNum = 11; // A11 \field Central Cooling Capacity Control Method - int const iDesignOAVolFlowNumericNum = 1; // N1, \field Design Outdoor Air Flow Rate - int const iMinSysAirFlowRatioNumericNum = 2; // N2, \field Minimum System Air Flow Ratio - int const iPreheatDesignTempNumericNum = 3; // N3, \field Preheat Design Temperature - int const iPreheatDesignHumRatNumericNum = 4; // N4, \field Preheat Design Humidity Ratio - int const iPrecoolDesignTempNumericNum = 5; // N5, \field Precool Design Temperature - int const iPrecoolDesignHumRatNumericNum = 6; // N6, \field Precool Design Humidity Ratio - int const iCentralCoolDesignSATempNumericNum = 7; // N7, \field Central Cooling Design Supply Air Temperature - int const iCentralHeatDesignSATempNumericNum = 8; // N8, \field Central Heating Design Supply Air Temperature - int const iSizingOptionAlphaNum = 3; // A3, \field Sizing Option - int const i100PercentOACoolingAlphaNum = 4; // A4, \field 100% Outdoor Air in Cooling - int const i100PercentOAHeatingAlphaNum = 5; // A5, \field 100% Outdoor Air in Heating - int const iCentralCoolDesignSAHumRatNumericNum = 9; // N9, \field Central Cooling Design Supply Air Humidity Ratio - int const iCentralHeatDesignSAHumRatNumericNum = 10; // N10, \field Central Heating Design Supply Air Humidity Ratio - int const iCoolSAFMAlphaNum = 6; // A6, \field Cooling Design Air Flow Method - int const iMaxCoolAirVolFlowNumericNum = 11; // N11, \field Cooling Design Air Flow Rate {m3/s} - int const iCoolFlowPerFloorAreaNumericNum = 12; // N12, \field Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} - int const iCoolFlowPerFracCoolNumericNum = 13; // N13, \field Fraction of Autosized Design Cooling Supply Air Flow Rate {-} - int const iCoolFlowPerCoolCapNumericNum = 14; // N14, \field Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} - int const iHeatSAFMAlphaNum = 7; // A7, \field Heating Design Air Flow Method - int const iMaxHeatAirVolFlowNumericNum = 15; // N15, \field Heating Design Air Flow Rate {m3/s} - int const iHeatFlowPerFloorAreaNumericNum = 16; // N16, \field Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} - int const iHeatFlowPerFracHeatNumericNum = 17; // N17, \field Fraction of Autosized Design Heating Supply Air Flow Rate {-} - int const iHeatFlowPerFracCoolNumericNum = 18; // N18, \field Fraction of Autosized Design Cooling Supply Air Flow Rate {-} - int const iHeatFlowPerHeatCapNumericNum = 19; // N19, \field Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - int const iSystemOASMethodAlphaNum = 8; // A8, \field System Outdoor Air Method - int const iZoneMaxOAFractionNumericNum = 20; // N20, \field Zone Maximum Outdoor Air Fraction - int const iCoolCAPMAlphaNum(9); // A9, \field Cooling Design Capacity Method - int const iCoolDesignCapacityNumericNum(21); // N21, \field Cooling Design Capacity {W} - int const iCoolCapacityPerFloorAreaNumericNum(22); // N22, \field Cooling Design Capacity Per Floor Area {W/m2} - int const iCoolFracOfAutosizedCapacityNumericNum(23); // N23, \field Fraction of Autosized Cooling Design Capacity {-} - int const iHeatCAPMAlphaNum(10); // A10, \field Heating Design Capacity Method - int const iHeatDesignCapacityNumericNum(24); // N24, \field Heating Design Capacity {W} - int const iHeatCapacityPerFloorAreaNumericNum(25); // N25, \field Heating Design Capacity Per Floor Area {W/m2} - int const iHeatFracOfAutosizedCapacityNumericNum(26); // N26, \field Fraction of Autosized Cooling Design Capacity {-} + constexpr int iNameAlphaNum = 1; // A1, \field AirLoop Name + constexpr int iLoadTypeSizeAlphaNum = 2; // A2, \field Type of Load to Size On + constexpr int iCoolCapControlAlphaNum = 11; // A11 \field Central Cooling Capacity Control Method + constexpr int iDesignOAVolFlowNumericNum = 1; // N1, \field Design Outdoor Air Flow Rate + constexpr int iMinSysAirFlowRatioNumericNum = 2; // N2, \field Minimum System Air Flow Ratio + constexpr int iPreheatDesignTempNumericNum = 3; // N3, \field Preheat Design Temperature + constexpr int iPreheatDesignHumRatNumericNum = 4; // N4, \field Preheat Design Humidity Ratio + constexpr int iPrecoolDesignTempNumericNum = 5; // N5, \field Precool Design Temperature + constexpr int iPrecoolDesignHumRatNumericNum = 6; // N6, \field Precool Design Humidity Ratio + constexpr int iCentralCoolDesignSATempNumericNum = 7; // N7, \field Central Cooling Design Supply Air Temperature + constexpr int iCentralHeatDesignSATempNumericNum = 8; // N8, \field Central Heating Design Supply Air Temperature + constexpr int iSizingOptionAlphaNum = 3; // A3, \field Sizing Option + constexpr int i100PercentOACoolingAlphaNum = 4; // A4, \field 100% Outdoor Air in Cooling + constexpr int i100PercentOAHeatingAlphaNum = 5; // A5, \field 100% Outdoor Air in Heating + constexpr int iCentralCoolDesignSAHumRatNumericNum = 9; // N9, \field Central Cooling Design Supply Air Humidity Ratio + constexpr int iCentralHeatDesignSAHumRatNumericNum = 10; // N10, \field Central Heating Design Supply Air Humidity Ratio + constexpr int iCoolSAFMAlphaNum = 6; // A6, \field Cooling Design Air Flow Method + constexpr int iMaxCoolAirVolFlowNumericNum = 11; // N11, \field Cooling Design Air Flow Rate {m3/s} + constexpr int iCoolFlowPerFloorAreaNumericNum = 12; // N12, \field Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + constexpr int iCoolFlowPerFracCoolNumericNum = 13; // N13, \field Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + constexpr int iCoolFlowPerCoolCapNumericNum = 14; // N14, \field Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + constexpr int iHeatSAFMAlphaNum = 7; // A7, \field Heating Design Air Flow Method + constexpr int iMaxHeatAirVolFlowNumericNum = 15; // N15, \field Heating Design Air Flow Rate {m3/s} + constexpr int iHeatFlowPerFloorAreaNumericNum = 16; // N16, \field Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + constexpr int iHeatFlowPerFracHeatNumericNum = 17; // N17, \field Fraction of Autosized Design Heating Supply Air Flow Rate {-} + constexpr int iHeatFlowPerFracCoolNumericNum = 18; // N18, \field Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + constexpr int iHeatFlowPerHeatCapNumericNum = 19; // N19, \field Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + constexpr int iSystemOASMethodAlphaNum = 8; // A8, \field System Outdoor Air Method + constexpr int iZoneMaxOAFractionNumericNum = 20; // N20, \field Zone Maximum Outdoor Air Fraction + constexpr int iCoolCAPMAlphaNum(9); // A9, \field Cooling Design Capacity Method + constexpr int iCoolDesignCapacityNumericNum(21); // N21, \field Cooling Design Capacity {W} + constexpr int iCoolCapacityPerFloorAreaNumericNum(22); // N22, \field Cooling Design Capacity Per Floor Area {W/m2} + constexpr int iCoolFracOfAutosizedCapacityNumericNum(23); // N23, \field Fraction of Autosized Cooling Design Capacity {-} + constexpr int iHeatCAPMAlphaNum(10); // A10, \field Heating Design Capacity Method + constexpr int iHeatDesignCapacityNumericNum(24); // N24, \field Heating Design Capacity {W} + constexpr int iHeatCapacityPerFloorAreaNumericNum(25); // N25, \field Heating Design Capacity Per Floor Area {W/m2} + constexpr int iHeatFracOfAutosizedCapacityNumericNum(26); // N26, \field Fraction of Autosized Cooling Design Capacity {-} // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int SysSizIndex; // loop index @@ -3284,11 +3300,13 @@ namespace EnergyPlus::SizingManager { static bool ErrorsFound(false); // Set to true if errors in input, fatal at end of routine int NumDesDays; // Number of design days in input + auto &SysSizInput(state.dataSize->SysSizInput); + state.dataSizingManager->NumAirLoops = inputProcessor->getNumObjectsFound(state, "AirLoopHVAC"); cCurrentModuleObject = "Sizing:System"; - NumSysSizInput = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); + state.dataSize->NumSysSizInput = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); - if (NumSysSizInput > 0) { + if (state.dataSize->NumSysSizInput > 0) { NumDesDays = inputProcessor->getNumObjectsFound(state, "SizingPeriod:DesignDay") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileDays") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileConditionType"); @@ -3296,10 +3314,10 @@ namespace EnergyPlus::SizingManager { ShowSevereError(state, "System Sizing calculations need SizingPeriod:* input. None found."); ErrorsFound = true; } - SysSizInput.allocate(NumSysSizInput); + SysSizInput.allocate(state.dataSize->NumSysSizInput); } - for (SysSizIndex = 1; SysSizIndex <= NumSysSizInput; ++SysSizIndex) { + for (SysSizIndex = 1; SysSizIndex <= state.dataSize->NumSysSizInput; ++SysSizIndex) { inputProcessor->getObjectItem(state, cCurrentModuleObject, SysSizIndex, @@ -3782,9 +3800,9 @@ namespace EnergyPlus::SizingManager { int NumDesDays; // Number of design days in input cCurrentModuleObject = "Sizing:Plant"; - NumPltSizInput = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); + state.dataSize->NumPltSizInput = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); - if (NumPltSizInput > 0) { + if (state.dataSize->NumPltSizInput > 0) { NumDesDays = inputProcessor->getNumObjectsFound(state, "SizingPeriod:DesignDay") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileDays") + inputProcessor->getNumObjectsFound(state, "SizingPeriod:WeatherFileConditionType"); @@ -3792,21 +3810,21 @@ namespace EnergyPlus::SizingManager { ShowSevereError(state, "Plant Sizing calculations need SizingPeriod:* input"); ErrorsFound = true; } - PlantSizData.allocate(NumPltSizInput); - for (auto &e : PlantSizData) { + state.dataSize->PlantSizData.allocate(state.dataSize->NumPltSizInput); + for (auto &e : state.dataSize->PlantSizData) { e.PlantLoopName.clear(); e.ExitTemp = 0.0; e.DeltaT = 0.0; e.LoopType = 0; e.DesVolFlowRate = 0.0; } - for (int i = 1; i <= NumPltSizInput; ++i) { - PlantSizData(i).ConcurrenceOption = NonCoincident; - PlantSizData(i).NumTimeStepsInAvg = 1; + for (int i = 1; i <= state.dataSize->NumPltSizInput; ++i) { + state.dataSize->PlantSizData(i).ConcurrenceOption = NonCoincident; + state.dataSize->PlantSizData(i).NumTimeStepsInAvg = 1; } } - for (PltSizIndex = 1; PltSizIndex <= NumPltSizInput; ++PltSizIndex) { + for (PltSizIndex = 1; PltSizIndex <= state.dataSize->NumPltSizInput; ++PltSizIndex) { inputProcessor->getObjectItem(state, cCurrentModuleObject, PltSizIndex, @@ -3821,25 +3839,25 @@ namespace EnergyPlus::SizingManager { cNumericFieldNames); UtilityRoutines::IsNameEmpty(state, cAlphaArgs(1), cCurrentModuleObject, ErrorsFound); - PlantSizData(PltSizIndex).PlantLoopName = cAlphaArgs(1); - PlantSizData(PltSizIndex).ExitTemp = rNumericArgs(1); - PlantSizData(PltSizIndex).DeltaT = rNumericArgs(2); + state.dataSize->PlantSizData(PltSizIndex).PlantLoopName = cAlphaArgs(1); + state.dataSize->PlantSizData(PltSizIndex).ExitTemp = rNumericArgs(1); + state.dataSize->PlantSizData(PltSizIndex).DeltaT = rNumericArgs(2); if (NumNumbers > 2) { - PlantSizData(PltSizIndex).NumTimeStepsInAvg = rNumericArgs(3); + state.dataSize->PlantSizData(PltSizIndex).NumTimeStepsInAvg = rNumericArgs(3); } else { - PlantSizData(PltSizIndex).NumTimeStepsInAvg = 1.0; + state.dataSize->PlantSizData(PltSizIndex).NumTimeStepsInAvg = 1.0; } { auto const loopType(cAlphaArgs(2)); if (loopType == "HEATING") { - PlantSizData(PltSizIndex).LoopType = HeatingLoop; + state.dataSize->PlantSizData(PltSizIndex).LoopType = HeatingLoop; } else if (loopType == "COOLING") { - PlantSizData(PltSizIndex).LoopType = CoolingLoop; + state.dataSize->PlantSizData(PltSizIndex).LoopType = CoolingLoop; } else if (loopType == "CONDENSER") { - PlantSizData(PltSizIndex).LoopType = CondenserLoop; + state.dataSize->PlantSizData(PltSizIndex).LoopType = CondenserLoop; } else if (loopType == "STEAM") { - PlantSizData(PltSizIndex).LoopType = SteamLoop; + state.dataSize->PlantSizData(PltSizIndex).LoopType = SteamLoop; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "...incorrect " + cAlphaFieldNames(2) + "=\"" + cAlphaArgs(2) + "\"."); @@ -3852,9 +3870,9 @@ namespace EnergyPlus::SizingManager { { auto const concurrenceOption(cAlphaArgs(3)); if (concurrenceOption == "NONCOINCIDENT") { - PlantSizData(PltSizIndex).ConcurrenceOption = NonCoincident; + state.dataSize->PlantSizData(PltSizIndex).ConcurrenceOption = NonCoincident; } else if (concurrenceOption == "COINCIDENT") { - PlantSizData(PltSizIndex).ConcurrenceOption = Coincident; + state.dataSize->PlantSizData(PltSizIndex).ConcurrenceOption = Coincident; } else { ShowSevereError(state, cCurrentModuleObject + "=\"" + cAlphaArgs(1) + "\", invalid data."); ShowContinueError(state, "...incorrect " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) + "\"."); @@ -3867,18 +3885,18 @@ namespace EnergyPlus::SizingManager { { auto const sizingFactorOption(cAlphaArgs(4)); if (sizingFactorOption == "NONE") { - PlantSizData(PltSizIndex).SizingFactorOption = NoSizingFactorMode; + state.dataSize->PlantSizData(PltSizIndex).SizingFactorOption = NoSizingFactorMode; } else if (sizingFactorOption == "GLOBALHEATINGSIZINGFACTOR") { - PlantSizData(PltSizIndex).SizingFactorOption = GlobalHeatingSizingFactorMode; + state.dataSize->PlantSizData(PltSizIndex).SizingFactorOption = GlobalHeatingSizingFactorMode; } else if (sizingFactorOption == "GLOBALCOOLINGSIZINGFACTOR") { - PlantSizData(PltSizIndex).SizingFactorOption = GlobalCoolingSizingFactorMode; + state.dataSize->PlantSizData(PltSizIndex).SizingFactorOption = GlobalCoolingSizingFactorMode; } else if (sizingFactorOption == "LOOPCOMPONENTSIZINGFACTOR") { - PlantSizData(PltSizIndex).SizingFactorOption = LoopComponentSizingFactorMode; + state.dataSize->PlantSizData(PltSizIndex).SizingFactorOption = LoopComponentSizingFactorMode; } } } SetupEMSInternalVariable(state, - "Plant Design Volume Flow Rate", PlantSizData(PltSizIndex).PlantLoopName, "[m3/s]", PlantSizData(PltSizIndex).DesVolFlowRate); + "Plant Design Volume Flow Rate", state.dataSize->PlantSizData(PltSizIndex).PlantLoopName, "[m3/s]", state.dataSize->PlantSizData(PltSizIndex).DesVolFlowRate); } if (ErrorsFound) { @@ -3906,7 +3924,7 @@ namespace EnergyPlus::SizingManager { bool Available = true; - CurOverallSimDay = 0; + state.dataSize->CurOverallSimDay = 0; while (Available) { // do for each environment GetNextEnvironment(state, Available, ErrorsFound); @@ -3925,8 +3943,8 @@ namespace EnergyPlus::SizingManager { state.dataGlobal->WarmupFlag = true; state.dataGlobal->DayOfSim = 0; - CurEnvirNumSimDay = 1; - ++CurOverallSimDay; + state.dataSize->CurEnvirNumSimDay = 1; + ++state.dataSize->CurOverallSimDay; ++state.dataGlobal->DayOfSim; state.dataGlobal->BeginDayFlag = true; @@ -3996,26 +4014,9 @@ namespace EnergyPlus::SizingManager { // PURPOSE OF THIS SUBROUTINE: // This subroutine writes one item of zone sizing data to the "eio" file.. - // METHODOLOGY EMPLOYED: - // na - - // REFERENCES: - // na - // Using/Aliasing using DataStringGlobals::VerString; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - - // SUBROUTINE PARAMETER DEFINITIONS: - - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: if (state.dataSizingManager->ReportZoneSizingMyOneTimeFlag) { @@ -4132,8 +4133,6 @@ namespace EnergyPlus::SizingManager { // Using/Aliasing using namespace DataIPShortCuts; - using DataSizing::NumZoneHVACSizing; - using DataSizing::ZoneHVACSizing; // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("GetZoneHVACSizing: "); // include trailing blank space @@ -4211,7 +4210,7 @@ namespace EnergyPlus::SizingManager { Array1D_bool lNumericBlanks; // Logical array, numeric field input BLANK = .TRUE. CurrentModuleObject = "DesignSpecification:ZoneHVAC:Sizing"; - NumZoneHVACSizing = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); + state.dataSize->NumZoneHVACSizing = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); inputProcessor->getObjectDefMaxArgs(state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); Alphas.allocate(NumAlphas); @@ -4221,11 +4220,11 @@ namespace EnergyPlus::SizingManager { lAlphaBlanks.dimension(NumAlphas, true); lNumericBlanks.dimension(NumNumbers, true); - if (NumZoneHVACSizing > 0) { - ZoneHVACSizing.allocate(NumZoneHVACSizing); + if (state.dataSize->NumZoneHVACSizing > 0) { + state.dataSize->ZoneHVACSizing.allocate(state.dataSize->NumZoneHVACSizing); // Start Loading the System Input - for (zSIndex = 1; zSIndex <= NumZoneHVACSizing; ++zSIndex) { + for (zSIndex = 1; zSIndex <= state.dataSize->NumZoneHVACSizing; ++zSIndex) { Alphas = ""; cAlphaFields = ""; @@ -4248,34 +4247,34 @@ namespace EnergyPlus::SizingManager { cNumericFields); UtilityRoutines::IsNameEmpty(state, Alphas(1), CurrentModuleObject, ErrorsFound); - ZoneHVACSizing(zSIndex).Name = Alphas(1); + state.dataSize->ZoneHVACSizing(zSIndex).Name = Alphas(1); // Determine supply air flow rate sizing method for cooling mode if (UtilityRoutines::SameString(Alphas(iCoolSAFMAlphaNum), "SupplyAirFlowRate")) { - ZoneHVACSizing(zSIndex).CoolingSAFMethod = SupplyAirFlowRate; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingSAFMethod = SupplyAirFlowRate; if (!lNumericBlanks(iMaxCoolAirVolFlowNumericNum)) { - ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iMaxCoolAirVolFlowNumericNum); - if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iMaxCoolAirVolFlowNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iMaxCoolAirVolFlowNumericNum), Numbers(iMaxCoolAirVolFlowNumericNum))); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iMaxCoolAirVolFlowNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolSAFMAlphaNum), "FlowPerFloorArea")) { - ZoneHVACSizing(zSIndex).CoolingSAFMethod = FlowPerFloorArea; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingSAFMethod = FlowPerFloorArea; if (!lNumericBlanks(iCoolFlowPerFloorAreaNumericNum)) { - ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerFloorAreaNumericNum); - if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerFloorAreaNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4283,27 +4282,27 @@ namespace EnergyPlus::SizingManager { Numbers(iCoolFlowPerFloorAreaNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iCoolFlowPerFloorAreaNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input cooling supply air flow per unit conditioned area is saved in ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolFlowPerFloorAreaNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolSAFMAlphaNum), "FractionOfAutosizedCoolingAirflow")) { - ZoneHVACSizing(zSIndex).CoolingSAFMethod = FractionOfAutosizedCoolingAirflow; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingSAFMethod = FractionOfAutosizedCoolingAirflow; if (!lNumericBlanks(iCoolFlowPerFracCoolNumericNum)) { - ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerFracCoolNumericNum); - if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerFracCoolNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4311,84 +4310,84 @@ namespace EnergyPlus::SizingManager { Numbers(iCoolFlowPerFracCoolNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iCoolFlowPerFracCoolNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input fraction of cooling supply air flow rate is saved in ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolFlowPerFracCoolNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolSAFMAlphaNum), "FlowPerCoolingCapacity")) { - ZoneHVACSizing(zSIndex).CoolingSAFMethod = FlowPerCoolingCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingSAFMethod = FlowPerCoolingCapacity; if (!lNumericBlanks(iCoolFlowPerCoolCapNumericNum)) { - ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerCoolCapNumericNum); - if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = Numbers(iCoolFlowPerCoolCapNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iCoolFlowPerCoolCapNumericNum), Numbers(iCoolFlowPerCoolCapNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iCoolFlowPerCoolCapNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input cooling supply air flow per unit cooling capacity is saved in ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolFlowPerCoolCapNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolSAFMAlphaNum), "None") || lAlphaBlanks(iCoolSAFMAlphaNum)) { - ZoneHVACSizing(zSIndex).CoolingSAFMethod = None; - ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = 0.0; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingSAFMethod = None; + state.dataSize->ZoneHVACSizing(zSIndex).MaxCoolAirVolFlow = 0.0; // cooling supply air flow rate will not be sized, may be cooling coil does not exist } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Illegal " + cAlphaFields(iCoolSAFMAlphaNum) + " = " + Alphas(iCoolSAFMAlphaNum)); ErrorsFound = true; } // Determine supply air flow rate sizing method for heating mode if (UtilityRoutines::SameString(Alphas(iHeatSAFMAlphaNum), "SupplyAirFlowRate")) { - ZoneHVACSizing(zSIndex).HeatingSAFMethod = SupplyAirFlowRate; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingSAFMethod = SupplyAirFlowRate; if (!lNumericBlanks(iMaxHeatAirVolFlowNumericNum)) { - ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iMaxHeatAirVolFlowNumericNum); - if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iMaxHeatAirVolFlowNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iMaxHeatAirVolFlowNumericNum), Numbers(iMaxHeatAirVolFlowNumericNum))); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iMaxHeatAirVolFlowNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatSAFMAlphaNum), "FlowPerFloorArea")) { - ZoneHVACSizing(zSIndex).HeatingSAFMethod = FlowPerFloorArea; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingSAFMethod = FlowPerFloorArea; if (!lNumericBlanks(iHeatFlowPerFloorAreaNumericNum)) { - ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerFloorAreaNumericNum); - if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerFloorAreaNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4396,27 +4395,27 @@ namespace EnergyPlus::SizingManager { Numbers(iHeatFlowPerFloorAreaNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iHeatFlowPerFloorAreaNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input heating supply air flow per unit conditioned area is saved in ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatFlowPerFloorAreaNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatSAFMAlphaNum), "FractionOfAutosizedHeatingAirflow")) { - ZoneHVACSizing(zSIndex).HeatingSAFMethod = FractionOfAutosizedHeatingAirflow; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingSAFMethod = FractionOfAutosizedHeatingAirflow; if (!lNumericBlanks(iHeatFlowPerFracCoolNumericNum)) { - ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerFracCoolNumericNum); - if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerFracCoolNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4424,65 +4423,65 @@ namespace EnergyPlus::SizingManager { Numbers(iHeatFlowPerFracCoolNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iHeatFlowPerFracCoolNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input fraction of heating supply air flow rate is saved in ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatFlowPerFracCoolNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatSAFMAlphaNum), "FlowPerHeatingCapacity")) { - ZoneHVACSizing(zSIndex).HeatingSAFMethod = FlowPerHeatingCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingSAFMethod = FlowPerHeatingCapacity; if (!lNumericBlanks(iHeatFlowPerHeatCapNumericNum)) { - ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerHeatCapNumericNum); - if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = Numbers(iHeatFlowPerHeatCapNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow <= 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iHeatFlowPerHeatCapNumericNum), Numbers(iHeatFlowPerHeatCapNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iHeatFlowPerHeatCapNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input heating supply air flow per unit heating capacity is saved in ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatFlowPerHeatCapNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatSAFMAlphaNum), "None") || lAlphaBlanks(iHeatSAFMAlphaNum)) { - ZoneHVACSizing(zSIndex).HeatingSAFMethod = None; - ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = 0.0; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingSAFMethod = None; + state.dataSize->ZoneHVACSizing(zSIndex).MaxHeatAirVolFlow = 0.0; } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Illegal " + cAlphaFields(iHeatSAFMAlphaNum) + " = " + Alphas(iHeatSAFMAlphaNum)); ErrorsFound = true; } // Determine supply air flow rate sizing method when cooling or heating is not needed if (UtilityRoutines::SameString(Alphas(iNoCoolHeatSAFMAlphaNum), "SupplyAirFlowRate")) { - ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = SupplyAirFlowRate; + state.dataSize->ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = SupplyAirFlowRate; if (!lNumericBlanks(iMaxNoCoolHeatAirVolFlowNumericNum)) { - ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iMaxNoCoolHeatAirVolFlowNumericNum); - if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iMaxNoCoolHeatAirVolFlowNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(iMaxNoCoolHeatAirVolFlowNumericNum), @@ -4490,17 +4489,17 @@ namespace EnergyPlus::SizingManager { ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iMaxNoCoolHeatAirVolFlowNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iNoCoolHeatSAFMAlphaNum), "FlowPerFloorArea")) { - ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FlowPerFloorArea; + state.dataSize->ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FlowPerFloorArea; if (!lNumericBlanks(iNoCoolHeatFlowPerFloorAreaNumericNum)) { - ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFloorAreaNumericNum); - if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFloorAreaNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4508,28 +4507,28 @@ namespace EnergyPlus::SizingManager { Numbers(iNoCoolHeatFlowPerFloorAreaNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iNoCoolHeatFlowPerFloorAreaNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input supply air flow per unit floor area during no cooling or heating area is saved in // ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iNoCoolHeatFlowPerFloorAreaNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iNoCoolHeatSAFMAlphaNum), "FractionOfAutosizedCoolingAirflow")) { - ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FractionOfAutosizedCoolingAirflow; + state.dataSize->ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FractionOfAutosizedCoolingAirflow; if (!lNumericBlanks(iNoCoolHeatFlowPerFracCoolNumericNum)) { - ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFracCoolNumericNum); - if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFracCoolNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4537,28 +4536,28 @@ namespace EnergyPlus::SizingManager { Numbers(iNoCoolHeatFlowPerFracCoolNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iNoCoolHeatFlowPerFracCoolNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input frcation of cooling supply air flow rate during no cooling or heating area is saved in // ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iNoCoolHeatFlowPerFracCoolNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iNoCoolHeatSAFMAlphaNum), "FractionOfAutosizedHeatingAirflow")) { - ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FractionOfAutosizedHeatingAirflow; + state.dataSize->ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = FractionOfAutosizedHeatingAirflow; if (!lNumericBlanks(iNoCoolHeatFlowPerFracHeatNumericNum)) { - ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFracHeatNumericNum); - if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = Numbers(iNoCoolHeatFlowPerFracHeatNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4566,56 +4565,56 @@ namespace EnergyPlus::SizingManager { Numbers(iNoCoolHeatFlowPerFracHeatNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iNoCoolHeatFlowPerFracHeatNumericNum) + " = Autosize"); ErrorsFound = true; } else { // user input frcation of heating supply air flow rate during no cooling or heating area is saved in // ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow - ZoneHVACSizing(zSIndex).RequestAutoSize = true; + state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iNoCoolHeatFlowPerFracHeatNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iNoCoolHeatSAFMAlphaNum), "None") || lAlphaBlanks(iNoCoolHeatSAFMAlphaNum)) { - ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = None; - ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = 0.0; + state.dataSize->ZoneHVACSizing(zSIndex).NoCoolHeatSAFMethod = None; + state.dataSize->ZoneHVACSizing(zSIndex).MaxNoCoolHeatAirVolFlow = 0.0; } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Illegal " + cAlphaFields(iNoCoolHeatSAFMAlphaNum) + " = " + Alphas(iNoCoolHeatSAFMAlphaNum)); ErrorsFound = true; } // Determine cooling design capacity of zoneHVAC equipment if (UtilityRoutines::SameString(Alphas(iCoolCAPMAlphaNum), "CoolingDesignCapacity")) { - ZoneHVACSizing(zSIndex).CoolingCapMethod = CoolingDesignCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingCapMethod = CoolingDesignCapacity; if (!lNumericBlanks(iCoolDesignCapacityNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolDesignCapacityNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity < 0.0 && ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolDesignCapacityNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iCoolDesignCapacityNumericNum), Numbers(iCoolDesignCapacityNumericNum))); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolDesignCapacityNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolCAPMAlphaNum), "CapacityPerFloorArea")) { - ZoneHVACSizing(zSIndex).CoolingCapMethod = CapacityPerFloorArea; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingCapMethod = CapacityPerFloorArea; if (!lNumericBlanks(iCoolCapacityPerFloorAreaNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolCapacityPerFloorAreaNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity <= 0.0) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolCapacityPerFloorAreaNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity <= 0.0) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4623,25 +4622,25 @@ namespace EnergyPlus::SizingManager { Numbers(iCoolCapacityPerFloorAreaNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iCoolCapacityPerFloorAreaNumericNum) + " = Autosize"); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolCapacityPerFloorAreaNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolCAPMAlphaNum), "FractionOfAutosizedCoolingCapacity")) { - ZoneHVACSizing(zSIndex).CoolingCapMethod = FractionOfAutosizedCoolingCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingCapMethod = FractionOfAutosizedCoolingCapacity; if (!lNumericBlanks(iCoolFracOfAutosizedCapacityNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolFracOfAutosizedCapacityNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).ScaledCoolingCapacity < 0.0 && ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity = Numbers(iCoolFracOfAutosizedCapacityNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(iCoolFracOfAutosizedCapacityNumericNum), @@ -4649,44 +4648,44 @@ namespace EnergyPlus::SizingManager { ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iCoolFracOfAutosizedCapacityNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iCoolCAPMAlphaNum), "None") || lAlphaBlanks(iCoolCAPMAlphaNum)) { - ZoneHVACSizing(zSIndex).CoolingCapMethod = None; + state.dataSize->ZoneHVACSizing(zSIndex).CoolingCapMethod = None; } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Illegal " + cAlphaFields(iCoolCAPMAlphaNum) + " = " + Alphas(iCoolCAPMAlphaNum)); ErrorsFound = true; } // Determine heating design capacity of zone HVAC equipment if (UtilityRoutines::SameString(Alphas(iHeatCAPMAlphaNum), "HeatingDesignCapacity")) { - ZoneHVACSizing(zSIndex).HeatingCapMethod = HeatingDesignCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingCapMethod = HeatingDesignCapacity; if (!lNumericBlanks(iHeatDesignCapacityNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatDesignCapacityNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity < 0.0 && ZoneHVACSizing(zSIndex).ScaledHeatingCapacity != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatDesignCapacityNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError( state, format("Illegal {} = {:.7T}", cNumericFields(iHeatDesignCapacityNumericNum), Numbers(iHeatDesignCapacityNumericNum))); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatDesignCapacityNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatCAPMAlphaNum), "CapacityPerFloorArea")) { - ZoneHVACSizing(zSIndex).HeatingCapMethod = CapacityPerFloorArea; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingCapMethod = CapacityPerFloorArea; if (!lNumericBlanks(iHeatCapacityPerFloorAreaNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatCapacityPerFloorAreaNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity <= 0.0) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatCapacityPerFloorAreaNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity <= 0.0) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ShowContinueError(state, format("Illegal {} = {:.7T}", @@ -4694,25 +4693,25 @@ namespace EnergyPlus::SizingManager { Numbers(iHeatCapacityPerFloorAreaNumericNum))); ErrorsFound = true; // Autosized input is not allowed - } else if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + } else if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ShowContinueError(state, "Illegal " + cNumericFields(iHeatCapacityPerFloorAreaNumericNum) + " = Autosize"); ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatCapacityPerFloorAreaNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatCAPMAlphaNum), "FractionOfAutosizedHeatingCapacity")) { - ZoneHVACSizing(zSIndex).HeatingCapMethod = FractionOfAutosizedHeatingCapacity; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingCapMethod = FractionOfAutosizedHeatingCapacity; if (!lNumericBlanks(iHeatFracOfAutosizedCapacityNumericNum)) { - ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatFracOfAutosizedCapacityNumericNum); - if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) ZoneHVACSizing(zSIndex).RequestAutoSize = true; - if (ZoneHVACSizing(zSIndex).ScaledHeatingCapacity < 0.0 && ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity = Numbers(iHeatFracOfAutosizedCapacityNumericNum); + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity == AutoSize) state.dataSize->ZoneHVACSizing(zSIndex).RequestAutoSize = true; + if (state.dataSize->ZoneHVACSizing(zSIndex).ScaledHeatingCapacity < 0.0 && state.dataSize->ZoneHVACSizing(zSIndex).ScaledCoolingCapacity != AutoSize) { + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, format("Illegal {} = {:.7T}", cNumericFields(iHeatFracOfAutosizedCapacityNumericNum), @@ -4720,15 +4719,15 @@ namespace EnergyPlus::SizingManager { ErrorsFound = true; } } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Input for " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ShowContinueError(state, "Blank field not allowed for " + cNumericFields(iHeatFracOfAutosizedCapacityNumericNum)); ErrorsFound = true; } } else if (UtilityRoutines::SameString(Alphas(iHeatCAPMAlphaNum), "None") || lAlphaBlanks(iHeatCAPMAlphaNum)) { - ZoneHVACSizing(zSIndex).HeatingCapMethod = None; + state.dataSize->ZoneHVACSizing(zSIndex).HeatingCapMethod = None; } else { - ShowSevereError(state, CurrentModuleObject + " = " + ZoneHVACSizing(zSIndex).Name); + ShowSevereError(state, CurrentModuleObject + " = " + state.dataSize->ZoneHVACSizing(zSIndex).Name); ShowContinueError(state, "Illegal " + cAlphaFields(iHeatCAPMAlphaNum) + " = " + Alphas(iHeatCAPMAlphaNum)); ErrorsFound = true; } @@ -4768,14 +4767,14 @@ namespace EnergyPlus::SizingManager { bool ErrorsFound(false); // If errors detected in input cCurrentModuleObject = "DesignSpecification:AirTerminal:Sizing"; - DataSizing::NumAirTerminalSizingSpec = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); + state.dataSize->NumAirTerminalSizingSpec = inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); inputProcessor->getObjectDefMaxArgs(state, cCurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); - if (DataSizing::NumAirTerminalSizingSpec > 0) { - AirTerminalSizingSpec.allocate(DataSizing::NumAirTerminalSizingSpec); + if (state.dataSize->NumAirTerminalSizingSpec > 0) { + state.dataSize->AirTerminalSizingSpec.allocate(state.dataSize->NumAirTerminalSizingSpec); // Start Loading the System Input - for (int zSIndex = 1; zSIndex <= DataSizing::NumAirTerminalSizingSpec; ++zSIndex) { + for (int zSIndex = 1; zSIndex <= state.dataSize->NumAirTerminalSizingSpec; ++zSIndex) { inputProcessor->getObjectItem(state, cCurrentModuleObject, @@ -4792,7 +4791,7 @@ namespace EnergyPlus::SizingManager { UtilityRoutines::IsNameEmpty(state, cAlphaArgs(1), cCurrentModuleObject, ErrorsFound); - auto &thisATSizing(DataSizing::AirTerminalSizingSpec(zSIndex)); + auto &thisATSizing(state.dataSize->AirTerminalSizingSpec(zSIndex)); thisATSizing.Name = cAlphaArgs(1); thisATSizing.DesSensCoolingFrac = rNumericArgs(1); thisATSizing.DesCoolSATRatio = rNumericArgs(2); @@ -4812,6 +4811,9 @@ namespace EnergyPlus::SizingManager { { int NumOfTimeStepInDay = state.dataGlobal->NumOfTimeStepInHour * 24; + auto &CalcFacilitySizing(state.dataSize->CalcFacilitySizing); + auto &CalcFinalFacilitySizing(state.dataSize->CalcFinalFacilitySizing); + // test if allocated here if (!CalcFacilitySizing.allocated()) { CalcFacilitySizing.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays); @@ -4863,8 +4865,8 @@ namespace EnergyPlus::SizingManager { CalcFinalFacilitySizing.HeatLoadSeq = 0.; } if (CallIndicator == DataGlobalConstants::CallIndicator::BeginDay) { - CalcFacilitySizing(CurOverallSimDay).HeatDDNum = CurOverallSimDay; - CalcFacilitySizing(CurOverallSimDay).CoolDDNum = CurOverallSimDay; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatDDNum = state.dataSize->CurOverallSimDay; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolDDNum = state.dataSize->CurOverallSimDay; } else if (CallIndicator == DataGlobalConstants::CallIndicator::DuringDay) { int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep; // save the results of the ideal zone component calculation in the CalcZoneSizing sequence variables @@ -4878,45 +4880,45 @@ namespace EnergyPlus::SizingManager { Real64 wghtdCoolDOASLatAdd = 0.; for (int CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - Real64 curCoolLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepInDay); + Real64 curCoolLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepInDay); if (curCoolLoad > 0.0) { sumCoolLoad += curCoolLoad; - wghtdCoolZoneTemp += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepInDay) * curCoolLoad; - wghtdCoolHumRat += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepInDay) * curCoolLoad; - wghtdCoolDOASHeatAdd += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq(TimeStepInDay) * curCoolLoad; - wghtdCoolDOASLatAdd += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq(TimeStepInDay) * curCoolLoad; + wghtdCoolZoneTemp += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepInDay) * curCoolLoad; + wghtdCoolHumRat += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepInDay) * curCoolLoad; + wghtdCoolDOASHeatAdd += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq(TimeStepInDay) * curCoolLoad; + wghtdCoolDOASLatAdd += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq(TimeStepInDay) * curCoolLoad; } - Real64 curHeatLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepInDay); + Real64 curHeatLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepInDay); if (curHeatLoad > 0.0) { sumHeatLoad += curHeatLoad; - wghtdHeatZoneTemp += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepInDay) * curHeatLoad; - wghtdHeatHumRat += CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepInDay) * curHeatLoad; + wghtdHeatZoneTemp += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepInDay) * curHeatLoad; + wghtdHeatHumRat += state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepInDay) * curHeatLoad; } } - CalcFacilitySizing(CurOverallSimDay).CoolLoadSeq(TimeStepInDay) = sumCoolLoad; - CalcFacilitySizing(CurOverallSimDay).HeatLoadSeq(TimeStepInDay) = sumHeatLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolLoadSeq(TimeStepInDay) = sumCoolLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatLoadSeq(TimeStepInDay) = sumHeatLoad; if (sumCoolLoad != 0.) { - CalcFacilitySizing(CurOverallSimDay).CoolZoneTempSeq(TimeStepInDay) = wghtdCoolZoneTemp / sumCoolLoad; - CalcFacilitySizing(CurOverallSimDay).CoolOutHumRatSeq(TimeStepInDay) = wghtdCoolHumRat / sumCoolLoad; - CalcFacilitySizing(CurOverallSimDay).DOASHeatAddSeq(TimeStepInDay) = wghtdCoolDOASHeatAdd / sumCoolLoad; - CalcFacilitySizing(CurOverallSimDay).DOASLatAddSeq(TimeStepInDay) = wghtdCoolDOASLatAdd / sumCoolLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolZoneTempSeq(TimeStepInDay) = wghtdCoolZoneTemp / sumCoolLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolOutHumRatSeq(TimeStepInDay) = wghtdCoolHumRat / sumCoolLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).DOASHeatAddSeq(TimeStepInDay) = wghtdCoolDOASHeatAdd / sumCoolLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).DOASLatAddSeq(TimeStepInDay) = wghtdCoolDOASLatAdd / sumCoolLoad; } if (sumHeatLoad != 0.) { - CalcFacilitySizing(CurOverallSimDay).HeatZoneTempSeq(TimeStepInDay) = wghtdHeatZoneTemp / sumHeatLoad; - CalcFacilitySizing(CurOverallSimDay).HeatOutHumRatSeq(TimeStepInDay) = wghtdHeatHumRat / sumHeatLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatZoneTempSeq(TimeStepInDay) = wghtdHeatZoneTemp / sumHeatLoad; + CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatOutHumRatSeq(TimeStepInDay) = wghtdHeatHumRat / sumHeatLoad; } } else if (CallIndicator == DataGlobalConstants::CallIndicator::EndDay) { for (int TimeStepIndex = 1; TimeStepIndex <= NumOfTimeStepInDay; ++TimeStepIndex) { - if (CalcFacilitySizing(CurOverallSimDay).CoolLoadSeq(TimeStepIndex) > CalcFacilitySizing(CurOverallSimDay).DesCoolLoad) { - CalcFacilitySizing(CurOverallSimDay).DesCoolLoad = CalcFacilitySizing(CurOverallSimDay).CoolLoadSeq(TimeStepIndex); - CalcFacilitySizing(CurOverallSimDay).TimeStepNumAtCoolMax = TimeStepIndex; + if (CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolLoadSeq(TimeStepIndex) > CalcFacilitySizing(state.dataSize->CurOverallSimDay).DesCoolLoad) { + CalcFacilitySizing(state.dataSize->CurOverallSimDay).DesCoolLoad = CalcFacilitySizing(state.dataSize->CurOverallSimDay).CoolLoadSeq(TimeStepIndex); + CalcFacilitySizing(state.dataSize->CurOverallSimDay).TimeStepNumAtCoolMax = TimeStepIndex; } - if (CalcFacilitySizing(CurOverallSimDay).HeatLoadSeq(TimeStepIndex) > CalcFacilitySizing(CurOverallSimDay).DesHeatLoad) { - CalcFacilitySizing(CurOverallSimDay).DesHeatLoad = CalcFacilitySizing(CurOverallSimDay).HeatLoadSeq(TimeStepIndex); - CalcFacilitySizing(CurOverallSimDay).TimeStepNumAtHeatMax = TimeStepIndex; + if (CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatLoadSeq(TimeStepIndex) > CalcFacilitySizing(state.dataSize->CurOverallSimDay).DesHeatLoad) { + CalcFacilitySizing(state.dataSize->CurOverallSimDay).DesHeatLoad = CalcFacilitySizing(state.dataSize->CurOverallSimDay).HeatLoadSeq(TimeStepIndex); + CalcFacilitySizing(state.dataSize->CurOverallSimDay).TimeStepNumAtHeatMax = TimeStepIndex; } } @@ -4954,17 +4956,17 @@ namespace EnergyPlus::SizingManager { // Called once to initialize before system sizing // M.J. Witte, July 2017 - for (int termUnitSizingIndex = 1; termUnitSizingIndex <= DataSizing::NumAirTerminalUnits; ++termUnitSizingIndex) { - auto &thisTUFZSizing(TermUnitFinalZoneSizing(termUnitSizingIndex)); - auto &thisTUSizing(TermUnitSizing(termUnitSizingIndex)); + for (int termUnitSizingIndex = 1; termUnitSizingIndex <= state.dataSize->NumAirTerminalUnits; ++termUnitSizingIndex) { + auto &thisTUFZSizing(state.dataSize->TermUnitFinalZoneSizing(termUnitSizingIndex)); + auto &thisTUSizing(state.dataSize->TermUnitSizing(termUnitSizingIndex)); int ctrlZoneNum = thisTUSizing.CtrlZoneNum; - auto const &thisFZSizing(FinalZoneSizing(ctrlZoneNum)); + auto const &thisFZSizing(state.dataSize->FinalZoneSizing(ctrlZoneNum)); // Copy everything from FinalZoneSizing to TermUnitFinalZoneSizing thisTUFZSizing = thisFZSizing; thisTUFZSizing.ADUName = thisTUSizing.ADUName; - if (DataSizing::NumAirTerminalSizingSpec > 0) { + if (state.dataSize->NumAirTerminalSizingSpec > 0) { // Apply DesignSpecification:AirTerminal:Sizing adjustments - default ratios are 1.0 Real64 minOAFrac = thisTUSizing.SpecMinOAFrac; // Outdoor air diff --git a/src/EnergyPlus/SolarCollectors.cc b/src/EnergyPlus/SolarCollectors.cc index fcc7c9eaff3..06427e8a124 100644 --- a/src/EnergyPlus/SolarCollectors.cc +++ b/src/EnergyPlus/SolarCollectors.cc @@ -794,7 +794,7 @@ namespace SolarCollectors { } if (!state.dataGlobal->SysSizingCalc && this->InitSizing) { - PlantUtilities::RegisterPlantCompDesignFlow(this->InletNode, this->VolFlowRateMax); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->InletNode, this->VolFlowRateMax); this->InitSizing = false; } diff --git a/src/EnergyPlus/SolarShading.cc b/src/EnergyPlus/SolarShading.cc index 3e738fbfe4c..9d058840b43 100644 --- a/src/EnergyPlus/SolarShading.cc +++ b/src/EnergyPlus/SolarShading.cc @@ -11156,7 +11156,7 @@ namespace EnergyPlus::SolarShading { // ZoneDifSolarDistTransmittedTotl // CALL DisplayString('Diffuse Solar Distribution Zone Totals') - } // ZoneNum = 1, state.dataGlobal->NumOfZones + } // ZoneNum = 1, NumOfZones } void CalcInteriorWinTransDifSolInitialDistribution( EnergyPlusData &state, diff --git a/src/EnergyPlus/StandardRatings.cc b/src/EnergyPlus/StandardRatings.cc index fd37558a5de..cd9957de3b1 100644 --- a/src/EnergyPlus/StandardRatings.cc +++ b/src/EnergyPlus/StandardRatings.cc @@ -2603,7 +2603,7 @@ namespace StandardRatings { // Note: If you call format("{:.1R}", NetCoolingCapRated(Num + 1)), // Then it's not the OutputReportPredefined::PreDefTableEntry prototype with Real64 that is called. // As a result, the entry isn't marked as being Real (origEntryIsReal) and unit conversion does not occur - // Bad: PreDefTableEntry(state, state.dataOutRptPredefined->pdchDXCoolCoilNetCapSIA, CompNameNew, format("{:.1R}", NetCoolingCapRated(Num + 1))); + // Bad: PreDefTableEntry(state, pdchDXCoolCoilNetCapSIA, CompNameNew, format("{:.1R}", NetCoolingCapRated(Num + 1))); PreDefTableEntry(state, state.dataOutRptPredefined->pdchDXCoolCoilNetCapSIA, CompNameNew, NetCoolingCapRated(Num + 1), 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchDXCoolCoilNetCapSIB, CompNameNew, NetCoolingCapRated(Num + 2), 1); PreDefTableEntry(state, state.dataOutRptPredefined->pdchDXCoolCoilNetCapSIC, CompNameNew, NetCoolingCapRated(Num + 3), 1); diff --git a/src/EnergyPlus/StateManagement.cc b/src/EnergyPlus/StateManagement.cc index cf84cec764b..81b1fb4acf4 100644 --- a/src/EnergyPlus/StateManagement.cc +++ b/src/EnergyPlus/StateManagement.cc @@ -65,7 +65,6 @@ #include #include #include -#include #include #include #include @@ -144,7 +143,6 @@ void EnergyPlus::clearAllStates(EnergyPlusData &state) DataOutputs::clear_state(); DataPhotovoltaics::clear_state(); DataReportingFlags::clear_state(); - DataSizing::clear_state(); DataStringGlobals::clear_state(); DataSurfaceLists::clear_state(); DataSystemVariables::clear_state(); diff --git a/src/EnergyPlus/SteamBaseboardRadiator.cc b/src/EnergyPlus/SteamBaseboardRadiator.cc index c84ce6de2c9..13010c42d4c 100644 --- a/src/EnergyPlus/SteamBaseboardRadiator.cc +++ b/src/EnergyPlus/SteamBaseboardRadiator.cc @@ -930,21 +930,11 @@ namespace SteamBaseboardRadiator { using FluidProperties::GetSatEnthalpyRefrig; using FluidProperties::GetSatSpecificHeatRefrig; using PlantUtilities::RegisterPlantCompDesignFlow; - // USE BranchInputManager, ONLY: MyPlantSizingIndex using DataHVACGlobals::HeatingCapacitySizing; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeSteamBaseboard"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PltSizSteamNum(0); // Index of plant sizing object for 1st steam loop Real64 DesCoilLoad(0.0); // Design heating load in the zone @@ -967,6 +957,9 @@ namespace SteamBaseboardRadiator { bool PrintFlag; // TRUE when sizing information is reported in the eio file int CapSizingMethod(0); // capacity sizing methods (HeatingDesignCapacity, CapacityPerFloorArea, and FractionOfAutosizedHeatingCapacity ) + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + SteamBaseboardDesignData SteamBaseboardDesignDataObject{state.dataSteamBaseboardRadiator->SteamBaseboardDesign(state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).DesignObjectPtr)}; // Contains the data for variable flow hydronic systems @@ -978,14 +971,14 @@ namespace SteamBaseboardRadiator { if (PltSizSteamNum > 0) { - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; if (CurZoneEqNum > 0) { if (state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamVolFlowRateMax == AutoSize) { IsAutoSize = true; } - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamVolFlowRateMax > 0.0) { BaseSizer::reportSizerOutput(state, state.dataSteamBaseboardRadiator->cCMO_BBRadiator_Steam, state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).EquipID, @@ -997,8 +990,8 @@ namespace SteamBaseboardRadiator { CompType = state.dataSteamBaseboardRadiator->cCMO_BBRadiator_Steam; CompName = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).EquipID; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataZoneNumber = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ZonePtr; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataZoneNumber = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ZonePtr; SizingMethod = HeatingCapacitySizing; FieldNum = 1; PrintFlag = false; @@ -1012,22 +1005,22 @@ namespace SteamBaseboardRadiator { if (state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity == AutoSize) { CheckZoneSizing(state, CompType, CompName); ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; } TempSize = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).DesHeatingLoad; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { CheckZoneSizing(state, CompType, CompName); ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - DataFracOfAutosizedHeatingCapacity = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } else { TempSize = state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).ScaledHeatingCapacity; } @@ -1036,7 +1029,7 @@ namespace SteamBaseboardRadiator { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { DesCoilLoad = 0.0; // FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; } @@ -1074,7 +1067,7 @@ namespace SteamBaseboardRadiator { if (state.dataGlobal->DisplayExtraWarnings) { // Report difference between design size and user-specified values if ((std::abs(SteamVolFlowRateMaxDes - SteamVolFlowRateMaxUser) / SteamVolFlowRateMaxUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeSteamBaseboard: Potential issue with equipment sizing for " "ZoneHVAC:Baseboard:RadiantConvective:Steam=\"" + state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).EquipID + "\"."); @@ -1100,7 +1093,7 @@ namespace SteamBaseboardRadiator { } } - RegisterPlantCompDesignFlow(state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamInletNode, state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamVolFlowRateMax); + RegisterPlantCompDesignFlow(state, state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamInletNode, state.dataSteamBaseboardRadiator->SteamBaseboard(BaseboardNum).SteamVolFlowRateMax); if (ErrorsFound) { ShowFatalError(state, "Preceding sizing errors cause program termination"); diff --git a/src/EnergyPlus/SteamCoils.cc b/src/EnergyPlus/SteamCoils.cc index 55e60d35a0f..15216d875b9 100644 --- a/src/EnergyPlus/SteamCoils.cc +++ b/src/EnergyPlus/SteamCoils.cc @@ -626,28 +626,15 @@ namespace SteamCoils { // METHODOLOGY EMPLOYED: // Obtains flow rates from the zone or system sizing arrays and plant sizing data. - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; using FluidProperties::GetSatDensityRefrig; using FluidProperties::GetSatEnthalpyRefrig; using PlantUtilities::RegisterPlantCompDesignFlow; - // USE BranchInputManager, ONLY: MyPlantSizingIndex - - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeSteamCoil"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PltSizNum; // do loop index for plant sizing int PltSizSteamNum; // index of plant sizing object for 1st steam loop @@ -691,6 +678,9 @@ namespace SteamCoils { CpAirStd = PsyCpAirFnW(0.0); bool coilWasAutosized(false); // coil report + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + auto &TermUnitSizing(state.dataSize->TermUnitSizing); + // If this is a steam coil // Find the appropriate steam Plant Sizing object if (state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate == AutoSize) { @@ -704,51 +694,51 @@ namespace SteamCoils { if (PltSizSteamNum > 0) { // If this is a central air system heating coil - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { // If the coil water volume flow rate needs autosizing, then do it if (state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate == AutoSize) { CheckSysSizing(state, "Coil:Heating:Steam", state.dataSteamCoils->SteamCoil(CoilNum).Name); if (state.dataSteamCoils->SteamCoil(CoilNum).DesiccantRegenerationCoil) { - DataDesicRegCoil = true; - DataDesicDehumNum = state.dataSteamCoils->SteamCoil(CoilNum).DesiccantDehumNum; + state.dataSize->DataDesicRegCoil = true; + state.dataSize->DataDesicDehumNum = state.dataSteamCoils->SteamCoil(CoilNum).DesiccantDehumNum; CompType = state.dataSteamCoils->SteamCoil(CoilNum).SteamCoilType; CompName = state.dataSteamCoils->SteamCoil(CoilNum).Name; bPRINT = false; HeatingCoilDesAirInletTempSizer sizerHeatingDesInletTemp; bool ErrorsFound = false; sizerHeatingDesInletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); HeatingCoilDesAirOutletTempSizer sizerHeatingDesOutletTemp; ErrorsFound = false; sizerHeatingDesOutletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); - if (CurOASysNum > 0) { - OASysEqSizing(CurOASysNum).AirFlow = true; - OASysEqSizing(CurOASysNum).AirVolFlow = FinalSysSizing(CurSysNum).DesOutAirVolFlow; + if (state.dataSize->CurOASysNum > 0) { + OASysEqSizing(state.dataSize->CurOASysNum).AirFlow = true; + OASysEqSizing(state.dataSize->CurOASysNum).AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow; } TempSize = AutoSize; // reset back } // Set the duct flow rate { - auto const SELECT_CASE_var(CurDuctType); + auto const SELECT_CASE_var(state.dataSize->CurDuctType); if (SELECT_CASE_var == Main) { - DesVolFlow = FinalSysSizing(CurSysNum).SysAirMinFlowRat * FinalSysSizing(CurSysNum).DesMainVolFlow; + DesVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).SysAirMinFlowRat * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else if (SELECT_CASE_var == Cooling) { - DesVolFlow = FinalSysSizing(CurSysNum).SysAirMinFlowRat * FinalSysSizing(CurSysNum).DesCoolVolFlow; + DesVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).SysAirMinFlowRat * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesCoolVolFlow; } else if (SELECT_CASE_var == Heating) { - DesVolFlow = FinalSysSizing(CurSysNum).DesHeatVolFlow; + DesVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesHeatVolFlow; } else if (SELECT_CASE_var == Other) { - DesVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + DesVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { - DesVolFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + DesVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } } - if (DataDesicRegCoil) { + if (state.dataSize->DataDesicRegCoil) { bPRINT = false; TempSize = AutoSize; bool errorsFound = false; @@ -760,9 +750,9 @@ namespace SteamCoils { } DesMassFlow = RhoAirStd * DesVolFlow; // get the outside air fraction - if (FinalSysSizing(CurSysNum).HeatOAOption == MinOA) { + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatOAOption == MinOA) { if (DesVolFlow > 0.0) { - OutAirFrac = FinalSysSizing(CurSysNum).DesOutAirVolFlow / DesVolFlow; + OutAirFrac = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow / DesVolFlow; } else { OutAirFrac = 1.0; } @@ -771,13 +761,13 @@ namespace SteamCoils { OutAirFrac = 1.0; } - if (DataDesicRegCoil) { - DesCoilLoad = CpAirStd * DesMassFlow * (DataDesOutletAirTemp - DataDesInletAirTemp); + if (state.dataSize->DataDesicRegCoil) { + DesCoilLoad = CpAirStd * DesMassFlow * (state.dataSize->DataDesOutletAirTemp - state.dataSize->DataDesInletAirTemp); } else { // mixed air temp - CoilInTemp = OutAirFrac * FinalSysSizing(CurSysNum).HeatOutTemp + (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).HeatRetTemp; + CoilInTemp = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatOutTemp + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatRetTemp; // coil load - DesCoilLoad = CpAirStd * DesMassFlow * (FinalSysSizing(CurSysNum).HeatSupTemp - CoilInTemp); + DesCoilLoad = CpAirStd * DesMassFlow * (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatSupTemp - CoilInTemp); } // AUTOSTEAMCOIL if (DesCoilLoad >= SmallLoad) { @@ -806,31 +796,31 @@ namespace SteamCoils { BaseSizer::reportSizerOutput(state, "Coil:Heating:Steam", state.dataSteamCoils->SteamCoil(CoilNum).Name, "Maximum Steam Flow Rate [m3/s]", state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate); } - DataDesicRegCoil = false; // reset all globals to 0 to ensure correct sizing for other child components + state.dataSize->DataDesicRegCoil = false; // reset all globals to 0 to ensure correct sizing for other child components // Coil report, set fan info for airloopnum - switch (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum) { + switch (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum) { case DataAirSystems::structArrayLegacyFanModels: { - int SupFanNum = state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum; + int SupFanNum = state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum; if (SupFanNum > 0) { coilSelectionReportObj->setCoilSupplyFanInfo(state, state.dataSteamCoils->SteamCoil(CoilNum).Name, "Coil:Heating:Steam", - Fans::Fan(state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum).FanName, + Fans::Fan(state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum).FanName, DataAirSystems::structArrayLegacyFanModels, - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum); + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum); } break; } case DataAirSystems::objectVectorOOFanSystemModel: { - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex >= 0) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex >= 0) { coilSelectionReportObj->setCoilSupplyFanInfo( state, state.dataSteamCoils->SteamCoil(CoilNum).Name, "Coil:Heating:Steam", - HVACFan::fanObjs[state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex]->name, + HVACFan::fanObjs[state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex]->name, DataAirSystems::objectVectorOOFanSystemModel, - state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex); + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex); } break; } @@ -841,26 +831,26 @@ namespace SteamCoils { } // if this is a zone coil - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { CheckZoneSizing(state, "Coil:Heating:Steam", state.dataSteamCoils->SteamCoil(CoilNum).Name); // autosize the coil steam volume flow rate if needed if (state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate == AutoSize) { // if coil is part of a terminal unit just use the terminal unit value - if (TermUnitSingDuct || TermUnitPIU || TermUnitIU) { - if (CurTermUnitSizingNum > 0) { - state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate = TermUnitSizing(CurTermUnitSizingNum).MaxSTVolFlow; + if (state.dataSize->TermUnitSingDuct || state.dataSize->TermUnitPIU || state.dataSize->TermUnitIU) { + if (state.dataSize->CurTermUnitSizingNum > 0) { + state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).MaxSTVolFlow; } else { state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate = 0.0; } // if coil is part of a zonal unit, calc coil load to get hot Steam flow rate - DesCoilLoad = TermUnitSizing(CurTermUnitSizingNum).DesHeatingLoad; // coil report + DesCoilLoad = TermUnitSizing(state.dataSize->CurTermUnitSizingNum).DesHeatingLoad; // coil report DesVolFlow = - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow * TermUnitSizing(CurTermUnitSizingNum).ReheatAirFlowMult; // coil report + TermUnitSizing(state.dataSize->CurTermUnitSizingNum).AirVolFlow * TermUnitSizing(state.dataSize->CurTermUnitSizingNum).ReheatAirFlowMult; // coil report } else { - CoilInTemp = FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp; - CoilOutTemp = FinalZoneSizing(CurZoneEqNum).HeatDesTemp; - CoilOutHumRat = FinalZoneSizing(CurZoneEqNum).HeatDesHumRat; - DesMassFlow = FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow; + CoilInTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatCoilInTemp; + CoilOutTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).HeatDesTemp; + CoilOutHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).HeatDesHumRat; + DesMassFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatMassFlow; DesVolFlow = DesMassFlow / RhoAirStd; DesCoilLoad = PsyCpAirFnW(CoilOutHumRat) * DesMassFlow * (CoilOutTemp - CoilInTemp); if (DesCoilLoad >= SmallLoad) { @@ -904,16 +894,16 @@ namespace SteamCoils { } // end of heating Plant Sizing existence IF - ELSE // save the design Steam volumetric flow rate for use by the Steam loop sizing algorithms - RegisterPlantCompDesignFlow(state.dataSteamCoils->SteamCoil(CoilNum).SteamInletNodeNum, state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataSteamCoils->SteamCoil(CoilNum).SteamInletNodeNum, state.dataSteamCoils->SteamCoil(CoilNum).MaxSteamVolFlowRate); coilSelectionReportObj->setCoilHeatingCapacity(state, state.dataSteamCoils->SteamCoil(CoilNum).Name, "Coil:Heating:Steam", DesCoilLoad, coilWasAutosized, - CurSysNum, - CurZoneEqNum, - CurOASysNum, + state.dataSize->CurSysNum, + state.dataSize->CurZoneEqNum, + state.dataSize->CurOASysNum, 0.0, 1.0, -999.0, diff --git a/src/EnergyPlus/SurfaceGeometry.cc b/src/EnergyPlus/SurfaceGeometry.cc index 50315097ad0..ee630386668 100644 --- a/src/EnergyPlus/SurfaceGeometry.cc +++ b/src/EnergyPlus/SurfaceGeometry.cc @@ -4721,7 +4721,7 @@ namespace SurfaceGeometry { state.dataSurfaceGeometry->SurfaceTmp(SurfNum).ExtBoundCond = ExternalEnvironment; } - // state.dataSurfaceGeometry->SurfaceTmp(SurfNum)%ViewFactorGround = AutoCalculate + // SurfaceTmp(SurfNum)%ViewFactorGround = AutoCalculate state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Sides = 4; state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Vertex.allocate(state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Sides); @@ -8073,7 +8073,7 @@ namespace SurfaceGeometry { NVert = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Sides; state.dataSurfaceGeometry->SurfaceTmp(SurfNum + 1).Vertex.allocate(NVert); - // doesn't work when Vertex are pointers state.dataSurfaceGeometry->SurfaceTmp(SurfNum+1)=state.dataSurfaceGeometry->SurfaceTmp(SurfNum) + // doesn't work when Vertex are pointers SurfaceTmp(SurfNum+1)=SurfaceTmp(SurfNum) state.dataSurfaceGeometry->SurfaceTmp(SurfNum + 1).Name = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Name; state.dataSurfaceGeometry->SurfaceTmp(SurfNum + 1).Construction = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Construction; state.dataSurfaceGeometry->SurfaceTmp(SurfNum + 1).ConstructionStoredInputValue = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).ConstructionStoredInputValue; diff --git a/src/EnergyPlus/SurfaceGroundHeatExchanger.cc b/src/EnergyPlus/SurfaceGroundHeatExchanger.cc index 20b91f56e13..1907167114b 100644 --- a/src/EnergyPlus/SurfaceGroundHeatExchanger.cc +++ b/src/EnergyPlus/SurfaceGroundHeatExchanger.cc @@ -456,7 +456,7 @@ namespace SurfaceGroundHeatExchanger { this->LoopSideNum, this->BranchNum, this->CompNum); - RegisterPlantCompDesignFlow(this->InletNodeNum, this->DesignMassFlowRate / rho); + RegisterPlantCompDesignFlow(state, this->InletNodeNum, this->DesignMassFlowRate / rho); this->MyFlag = false; } diff --git a/src/EnergyPlus/SwimmingPool.cc b/src/EnergyPlus/SwimmingPool.cc index 600a7b8082b..117f0aee56f 100644 --- a/src/EnergyPlus/SwimmingPool.cc +++ b/src/EnergyPlus/SwimmingPool.cc @@ -511,7 +511,7 @@ namespace EnergyPlus::SwimmingPool { Real64 Density = FluidProperties::GetDensityGlycol(state, "WATER", this->PoolWaterTemp, this->GlycolIndex, RoutineName); this->WaterMass = state.dataSurface->Surface(this->SurfacePtr).Area * this->AvgDepth * Density; this->WaterMassFlowRateMax = this->WaterVolFlowMax * Density; - this->initSwimmingPoolPlantNodeFlow(); + this->initSwimmingPoolPlantNodeFlow(state); } if (state.dataGlobal->BeginTimeStepFlag && FirstHVACIteration) { // This is the first pass through in a particular time step @@ -722,7 +722,7 @@ namespace EnergyPlus::SwimmingPool { } } - void SwimmingPoolData::initSwimmingPoolPlantNodeFlow() const + void SwimmingPoolData::initSwimmingPoolPlantNodeFlow(EnergyPlusData &state) const { if (!this->MyPlantScanFlagPool) { @@ -735,7 +735,7 @@ namespace EnergyPlus::SwimmingPool { this->HWLoopSide, this->HWBranchNum, this->HWCompNum); - PlantUtilities::RegisterPlantCompDesignFlow(this->WaterInletNode, this->WaterVolFlowMax); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->WaterInletNode, this->WaterVolFlowMax); } } } diff --git a/src/EnergyPlus/SwimmingPool.hh b/src/EnergyPlus/SwimmingPool.hh index 1be6ef0cee0..b857c9aa7f1 100644 --- a/src/EnergyPlus/SwimmingPool.hh +++ b/src/EnergyPlus/SwimmingPool.hh @@ -173,7 +173,7 @@ namespace SwimmingPool { void initSwimmingPoolPlantLoopIndex(EnergyPlusData &state); - void initSwimmingPoolPlantNodeFlow() const; + void initSwimmingPoolPlantNodeFlow(EnergyPlusData &state) const; void calculate(EnergyPlusData &state); diff --git a/src/EnergyPlus/SystemReports.cc b/src/EnergyPlus/SystemReports.cc index 0e3278805b0..5bcefdc5a21 100644 --- a/src/EnergyPlus/SystemReports.cc +++ b/src/EnergyPlus/SystemReports.cc @@ -775,7 +775,7 @@ namespace EnergyPlus::SystemReports { } // Controlled Zone Loop // 4. Now Load all of the plant supply/demand side connections in a single array with pointers from the - // connection arrays (state.dataAirSystemsData->ZoneCompToPlant, state.dataAirSystemsData->ZoneSubCompToPlant, state.dataAirSystemsData->ZoneSubSubCompToPlant, state.dataAirSystemsData->AirSysCompToPlant, etc.) + // connection arrays (ZoneCompToPlant, ZoneSubCompToPlant, ZoneSubSubCompToPlant, AirSysCompToPlant, etc.) if (allocated(state.dataAirSystemsData->ZoneCompToPlant)) { NumZoneConnectComps = isize(state.dataAirSystemsData->ZoneCompToPlant); } else { @@ -4333,7 +4333,7 @@ namespace EnergyPlus::SystemReports { if (state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex > 0) { state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) = state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) / - DataSizing::ZoneAirDistribution(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex).calculateEz(state, ActualZoneNum); + state.dataSize->ZoneAirDistribution(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex).calculateEz(state, ActualZoneNum); } @@ -4605,7 +4605,7 @@ namespace EnergyPlus::SystemReports { if (ADUNum > 0) { int termUnitSizingNum = state.dataDefineEquipment->AirDistUnit(ADUNum).TermUnitSizingNum; if (termUnitSizingNum > 0) { - termUnitOAFrac = DataSizing::TermUnitSizing(termUnitSizingNum).SpecMinOAFrac; + termUnitOAFrac = state.dataSize->TermUnitSizing(termUnitSizingNum).SpecMinOAFrac; } } state.dataSysRpts->SysTargetVentilationFlowVoz(AirLoopNum) += diff --git a/src/EnergyPlus/UnitHeater.cc b/src/EnergyPlus/UnitHeater.cc index 0dcd9a985bb..5fabb44a635 100644 --- a/src/EnergyPlus/UnitHeater.cc +++ b/src/EnergyPlus/UnitHeater.cc @@ -148,17 +148,9 @@ namespace UnitHeater { // PURPOSE OF THIS SUBROUTINE: // This is the main driver subroutine for the Unit Heater simulation. - // METHODOLOGY EMPLOYED: - // Standard EnergyPlus methodology. - - // Using/Aliasing - using DataSizing::ZoneEqUnitHeater; - using DataSizing::ZoneHeatingOnlyFan; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int UnitHeatNum; // index of unit heater being simulated - if (state.dataUnitHeaters->GetUnitHeaterInputFlag) { GetUnitHeaterInput(state); state.dataUnitHeaters->GetUnitHeaterInputFlag = false; @@ -192,21 +184,21 @@ namespace UnitHeater { } } - ZoneEqUnitHeater = true; + state.dataSize->ZoneEqUnitHeater = true; InitUnitHeater(state, UnitHeatNum, ZoneNum, FirstHVACIteration); - ZoneHeatingOnlyFan = true; + state.dataSize->ZoneHeatingOnlyFan = true; CalcUnitHeater(state, UnitHeatNum, ZoneNum, FirstHVACIteration, PowerMet, LatOutputProvided); - ZoneHeatingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; // CALL UpdateUnitHeater ReportUnitHeater(state, UnitHeatNum); - ZoneEqUnitHeater = false; + state.dataSize->ZoneEqUnitHeater = false; } void GetUnitHeaterInput(EnergyPlusData &state) @@ -237,13 +229,11 @@ namespace UnitHeater { using DataPlant::TypeOf_CoilSteamAirHeating; using DataPlant::TypeOf_CoilWaterSimpleHeating; using DataSizing::AutoSize; - using DataSizing::ZoneHVACSizing; using Fans::GetFanAvailSchPtr; using Fans::GetFanIndex; using Fans::GetFanOutletNode; using Fans::GetFanType; using Fans::GetFanVolFlow; - using NodeInputManager::GetOnlySingleNode; using SteamCoils::GetCoilSteamInletNode; using SteamCoils::GetSteamCoilIndex; @@ -533,7 +523,7 @@ namespace UnitHeater { state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex = 0; if (!lAlphaBlanks(12)) { - state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(12), ZoneHVACSizing); + state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(12), state.dataSize->ZoneHVACSizing); if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(12) + " = " + Alphas(12) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name); @@ -927,7 +917,6 @@ namespace UnitHeater { using namespace DataSizing; using DataHVACGlobals::HeatingAirflowSizing; using DataHVACGlobals::HeatingCapacitySizing; - using PlantUtilities::MyPlantSizingIndex; using Psychrometrics::CPHW; using SteamCoils::GetCoilSteamInletNode; @@ -976,6 +965,9 @@ namespace UnitHeater { Real64 WaterCoilSizDeltaT; // water coil deltaT for design water flow rate autosizing int CoilNum; // index of water coil object + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + PltSizHeatNum = 0; ErrorsFound = false; IsAutoSize = false; @@ -986,20 +978,20 @@ namespace UnitHeater { MaxVolHotSteamFlowDes = 0.0; MaxVolHotSteamFlowUser = 0.0; - DataScalableSizingON = false; - DataScalableCapSizingON = false; - ZoneHeatingOnlyFan = true; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; + state.dataSize->ZoneHeatingOnlyFan = true; CompType = "ZoneHVAC:UnitHeater"; CompName = state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name; - DataZoneNumber = state.dataUnitHeaters->UnitHeat(UnitHeatNum).ZonePtr; + state.dataSize->DataZoneNumber = state.dataUnitHeaters->UnitHeat(UnitHeatNum).ZonePtr; if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataFanIndex = state.dataUnitHeaters->UnitHeat(UnitHeatNum).Fan_Index; + state.dataSize->DataFanIndex = state.dataUnitHeaters->UnitHeat(UnitHeatNum).Fan_Index; // unit heater is always blow thru - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; if (CurZoneEqNum > 0) { if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex > 0) { @@ -1008,27 +1000,27 @@ namespace UnitHeater { FieldNum = 1; // N1 , \field Maximum Supply Air Flow Rate PrintFlag = true; SizingString = state.dataUnitHeaters->UnitHeatNumericFields(UnitHeatNum).FieldNames(FieldNum) + " [m3/s]"; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -1041,18 +1033,18 @@ namespace UnitHeater { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod == FractionOfAutosizedHeatingCapacity) { + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } - DataAutosizedHeatingCapacity = TempSize; - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = TempSize; + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1063,7 +1055,7 @@ namespace UnitHeater { sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); state.dataUnitHeaters->UnitHeat(UnitHeatNum).MaxAirVolFlow = sizingHeatingAirFlow.size(state, TempSize, errorsFound); } - DataScalableSizingON = false; + state.dataSize->DataScalableSizingON = false; } else { // no scalble sizing method has been specified. Sizing proceeds using the method // specified in the zoneHVAC object @@ -1089,7 +1081,7 @@ namespace UnitHeater { if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HCoilType == state.dataUnitHeaters->WaterHeatingCoil) { if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, "ZoneHVAC:UnitHeater", state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name, @@ -1110,7 +1102,7 @@ namespace UnitHeater { DoWaterCoilSizing = true; } else { if (PltSizHeatNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizHeatNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizHeatNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -1125,26 +1117,26 @@ namespace UnitHeater { SizingMethod = HeatingCapacitySizing; if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity == AutoSize) { - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).DesHeatLoad; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity == AutoSize) { + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatLoad; } else { - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; TempSize = AutoSize; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataScalableCapSizingON = true; TempSize = AutoSize; } } @@ -1154,13 +1146,13 @@ namespace UnitHeater { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; TempSize = AutoSize; ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).DesHeatLoad; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatLoad; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); @@ -1197,7 +1189,7 @@ namespace UnitHeater { "User-Specified Maximum Hot Water Flow [m3/s]", MaxVolHotWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitHeater: Potential issue with equipment sizing for ZoneHVAC:UnitHeater " + state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name); ShowContinueError(state, @@ -1224,7 +1216,7 @@ namespace UnitHeater { if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HCoilType == state.dataUnitHeaters->SteamCoil) { if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).MaxVolHotSteamFlow > 0.0) { BaseSizer::reportSizerOutput(state, "ZoneHVAC:UnitHeater", state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name, @@ -1243,27 +1235,27 @@ namespace UnitHeater { if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataUnitHeaters->UnitHeat(UnitHeatNum).HVACSizingIndex; SizingMethod = HeatingCapacitySizing; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity == AutoSize) { - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FinalZoneSizing(CurZoneEqNum).DesHeatLoad; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity == AutoSize) { + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatLoad; } else { - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; TempSize = AutoSize; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingMethod = HeatingCapacitySizing; @@ -1273,9 +1265,9 @@ namespace UnitHeater { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { - DesCoilLoad = FinalZoneSizing(CurZoneEqNum).DesHeatLoad; + DesCoilLoad = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatLoad; } if (DesCoilLoad >= SmallLoad) { TempSteamIn = 100.00; @@ -1285,7 +1277,7 @@ namespace UnitHeater { SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, TempSteamIn, 1.0, RefrigIndex, RoutineName); MaxVolHotSteamFlowDes = DesCoilLoad / (SteamDensity * (LatentHeatSteam + - PlantSizData(PltSizHeatNum).DeltaT * CPHW(PlantSizData(PltSizHeatNum).ExitTemp))); + state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * CPHW(state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp))); } else { MaxVolHotSteamFlowDes = 0.0; } @@ -1309,7 +1301,7 @@ namespace UnitHeater { "User-Specified Maximum Steam Flow [m3/s]", MaxVolHotSteamFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitHeater: Potential issue with equipment sizing for ZoneHVAC:UnitHeater " + state.dataUnitHeaters->UnitHeat(UnitHeatNum).Name); ShowContinueError(state, format("User-Specified Maximum Steam Flow of {:.5R} [m3/s]", MaxVolHotSteamFlowUser)); @@ -1897,7 +1889,7 @@ namespace UnitHeater { if (state.dataUnitHeaters->UnitHeat(UnitHeatNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataUnitHeaters->UnitHeat(UnitHeatNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataUnitHeaters->UnitHeat(UnitHeatNum).FirstPass); } } } diff --git a/src/EnergyPlus/UnitVentilator.cc b/src/EnergyPlus/UnitVentilator.cc index 00bd79fa015..92ef3f0a1c4 100644 --- a/src/EnergyPlus/UnitVentilator.cc +++ b/src/EnergyPlus/UnitVentilator.cc @@ -155,16 +155,9 @@ namespace UnitVentilator { // PURPOSE OF THIS SUBROUTINE: // This is the main driver subroutine for the Unit Ventilator simulation. - // METHODOLOGY EMPLOYED: - // Standard EnergyPlus methodology. - - // Using/Aliasing - using DataSizing::ZoneEqUnitVent; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int UnitVentNum; // index of unit ventilator being simulated - if (state.dataUnitVentilators->GetUnitVentilatorInputFlag) { GetUnitVentilatorInput(state); state.dataUnitVentilators->GetUnitVentilatorInputFlag = false; @@ -198,7 +191,7 @@ namespace UnitVentilator { } } - ZoneEqUnitVent = true; + state.dataSize->ZoneEqUnitVent = true; InitUnitVentilator(state, UnitVentNum, FirstHVACIteration, ZoneNum); @@ -208,7 +201,7 @@ namespace UnitVentilator { ReportUnitVentilator(state, UnitVentNum); - ZoneEqUnitVent = false; + state.dataSize->ZoneEqUnitVent = false; } void GetUnitVentilatorInput(EnergyPlusData &state) @@ -258,8 +251,6 @@ namespace UnitVentilator { using DataPlant::TypeOf_CoilWaterDetailedFlatCooling; using DataPlant::TypeOf_CoilWaterSimpleHeating; using DataSizing::AutoSize; - using DataSizing::ZoneHVACSizing; - using SingleDuct::GetATMixer; // SUBROUTINE PARAMETER DEFINITIONS: @@ -641,7 +632,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex = 0; if (!lAlphaBlanks(20)) { - state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(20), ZoneHVACSizing); + state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(20), state.dataSize->ZoneHVACSizing); if (state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(20) + " = " + Alphas(20) + " not found."); ShowContinueError(state, "Occurs in " + state.dataUnitVentilators->cMO_UnitVentilator + " = " + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); @@ -1426,7 +1417,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).HWBranchNum, state.dataUnitVentilators->UnitVent(UnitVentNum).HWCompNum); } - } //(state.dataUnitVentilators->UnitVent(UnitVentNum)%HCoilPresent) + } //(UnitVent(UnitVentNum)%HCoilPresent) if (state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilPresent) { // Only initialize these if a cooling coil is actually present rho = GetDensityGlycol( @@ -1553,6 +1544,8 @@ namespace UnitVentilator { // METHODOLOGY EMPLOYED: // Obtains flow rates from the zone sizing arrays and plant sizing data. + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + using namespace DataSizing; using DataHVACGlobals::CoolingAirflowSizing; using DataHVACGlobals::CoolingCapacitySizing; @@ -1560,7 +1553,6 @@ namespace UnitVentilator { using DataHVACGlobals::HeatingCapacitySizing; using FluidProperties::GetDensityGlycol; using FluidProperties::GetSpecificHeatGlycol; - using HVACHXAssistedCoolingCoil::GetHXCoilType; using HVACHXAssistedCoolingCoil::GetHXDXCoilName; using PlantUtilities::MyPlantSizingIndex; @@ -1641,76 +1633,76 @@ namespace UnitVentilator { MaxVolColdWaterFlowUser = 0.0; CoolingAirVolFlowScalable = 0.0; HeatingAirVolFlowScalable = 0.0; - DataScalableSizingON = false; - DataScalableCapSizingON = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; CompType = state.dataUnitVentilators->cMO_UnitVentilator; CompName = state.dataUnitVentilators->UnitVent(UnitVentNum).Name; - DataZoneNumber = state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr; - ZoneCoolingOnlyFan = false; - ZoneHeatingOnlyFan = false; + state.dataSize->DataZoneNumber = state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr; + state.dataSize->ZoneCoolingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; DoWaterCoilSizing = false; CoilNum = 0; if (state.dataUnitVentilators->UnitVent(UnitVentNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).Fan_Index; + state.dataSize->DataFanIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).Fan_Index; // unit ventilator is always blow thru - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption == state.dataUnitVentilators->BothOption) { - ZoneCoolingOnlyFan = true; - ZoneHeatingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; + state.dataSize->ZoneHeatingOnlyFan = true; } else if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption == state.dataUnitVentilators->HeatingOption) { - ZoneHeatingOnlyFan = true; + state.dataSize->ZoneHeatingOnlyFan = true; } else if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption == state.dataUnitVentilators->CoolingOption) { - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneCoolingOnlyFan = true; } else if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption == state.dataUnitVentilators->NoneOption) { } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex > 0) { // initialize OA flow for sizing other inputs (e.g., inlet temp, capacity, etc.) if (state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow == AutoSize) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = FinalZoneSizing(CurZoneEqNum).MinOA; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow; } if (state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerExists) { // set up ATMixer conditions for scalable capacity sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerIndex, state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerIndex, state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr, state.dataSize->CurZoneEqNum); } zoneHVACIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex; // N1 , \field Maximum Supply Air Flow Rate PrintFlag = true; - if (ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0 && ZoneCoolingOnlyFan && !ZoneHeatingOnlyFan) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0 && state.dataSize->ZoneCoolingOnlyFan && !state.dataSize->ZoneHeatingOnlyFan) { - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; SizingMethod = CoolingAirflowSizing; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1725,13 +1717,13 @@ namespace UnitVentilator { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; bool errorsFound = false; @@ -1745,29 +1737,29 @@ namespace UnitVentilator { } // DataScalableSizingON = false; - } else if (ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0 && ZoneHeatingOnlyFan && !ZoneCoolingOnlyFan) { + } else if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0 && state.dataSize->ZoneHeatingOnlyFan && !state.dataSize->ZoneCoolingOnlyFan) { SizingMethod = HeatingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -1780,14 +1772,14 @@ namespace UnitVentilator { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1802,30 +1794,30 @@ namespace UnitVentilator { } else { if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption != state.dataUnitVentilators->NoneOption) { - if (ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; SizingMethod = CoolingAirflowSizing; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = - ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1840,13 +1832,13 @@ namespace UnitVentilator { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; bool errorsFound = false; @@ -1858,30 +1850,30 @@ namespace UnitVentilator { sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolingAirVolFlowScalable = sizingCoolingAirFlow.size(state, TempSize, errorsFound); } - } else if (ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { + } else if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { SizingMethod = HeatingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = - ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -1894,14 +1886,14 @@ namespace UnitVentilator { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1914,13 +1906,13 @@ namespace UnitVentilator { } } // DataScalableSizingON = false; - } else { // if ( UnitVent (UnitVentNum ).CoilOption /= state.dataUnitVentilators->NoneOption ) + } else { // if ( UnitVent (UnitVentNum ).CoilOption /= NoneOption ) PrintFlag = true; FieldNum = 1; SizingString = state.dataUnitVentilators->UnitVentNumericFields(UnitVentNum).FieldNames(FieldNum) + " [m3/s]"; if (state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow == AutoSize) { - TempSize = FinalZoneSizing(CurZoneEqNum).MinOA; + TempSize = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { TempSize = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow; } @@ -1944,7 +1936,7 @@ namespace UnitVentilator { if (state.dataUnitVentilators->UnitVent(UnitVentNum).CoilOption == state.dataUnitVentilators->NoneOption) { if (state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow == AutoSize) { - TempSize = FinalZoneSizing(CurZoneEqNum).MinOA; + TempSize = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA; } else { TempSize = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow; } @@ -1964,8 +1956,8 @@ namespace UnitVentilator { if (state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name, @@ -1989,7 +1981,7 @@ namespace UnitVentilator { "User-Specified Maximum Outdoor Air Flow Rate [m3/s]", OutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitVentilator: Potential issue with equipment sizing for " + state.dataUnitVentilators->cMO_UnitVentilator + ' ' + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); ShowContinueError(state, format("User-Specified Maximum Outdoor Air Flow Rate of {:.5R} [m3/s]", OutAirVolFlowUser)); @@ -2002,11 +1994,11 @@ namespace UnitVentilator { } } } - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).OutAirVolFlow; if (state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerExists) { // set up ATMixer conditions for use in component sizing - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used - SingleDuct::setATMixerSizingProperties(state, state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerIndex, state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr, CurZoneEqNum); + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = 0.0; // Equipment OA flow should always be 0 when ATMixer is used + SingleDuct::setATMixerSizingProperties(state, state.dataUnitVentilators->UnitVent(UnitVentNum).ATMixerIndex, state.dataUnitVentilators->UnitVent(UnitVentNum).ZonePtr, state.dataSize->CurZoneEqNum); } } @@ -2014,8 +2006,8 @@ namespace UnitVentilator { if (state.dataUnitVentilators->UnitVent(UnitVentNum).MinOutAirVolFlow == AutoSize) { IsAutoSize = true; } - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitVentilators->UnitVent(UnitVentNum).MinOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name, @@ -2024,7 +2016,7 @@ namespace UnitVentilator { } } else { CheckZoneSizing(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name); - MinOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow); + MinOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow); if (MinOutAirVolFlowDes < SmallAirVolFlow) { MinOutAirVolFlowDes = 0.0; } @@ -2042,7 +2034,7 @@ namespace UnitVentilator { "User-Specified Minimum Outdoor Air Flow Rate [m3/s]", MinOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MinOutAirVolFlowDes - MinOutAirVolFlowUser) / MinOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MinOutAirVolFlowDes - MinOutAirVolFlowUser) / MinOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitVentilator: Potential issue with equipment sizing for " + state.dataUnitVentilators->cMO_UnitVentilator + ' ' + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); ShowContinueError(state, @@ -2063,8 +2055,8 @@ namespace UnitVentilator { IsAutoSize = true; } if (state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilType == state.dataUnitVentilators->Heating_WaterCoilType) { - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name, @@ -2086,7 +2078,7 @@ namespace UnitVentilator { DoWaterCoilSizing = true; } else { if (PltSizHeatNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizHeatNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizHeatNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -2098,32 +2090,32 @@ namespace UnitVentilator { } if (DoWaterCoilSizing) { - if (FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { SizingMethod = HeatingCapacitySizing; if (state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2133,12 +2125,12 @@ namespace UnitVentilator { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); @@ -2174,7 +2166,7 @@ namespace UnitVentilator { "User-Specified Maximum Hot Water Flow [m3/s]", MaxVolHotWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitVentilator: Potential issue with equipment sizing for " + state.dataUnitVentilators->cMO_UnitVentilator + ' ' + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); ShowContinueError(state, @@ -2198,8 +2190,8 @@ namespace UnitVentilator { IsAutoSize = true; } if (state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilType == state.dataUnitVentilators->Heating_SteamCoilType) { - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolHotSteamFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name, @@ -2215,32 +2207,32 @@ namespace UnitVentilator { PltSizHeatNum = MyPlantSizingIndex(state, "Coil:Heating:Steam", state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilName, CoilSteamInletNode, CoilSteamOutletNode, ErrorsFound); if (PltSizHeatNum > 0) { - if (FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { SizingMethod = HeatingCapacitySizing; if (state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).HeatingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesHeatingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2250,12 +2242,12 @@ namespace UnitVentilator { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesHeatingLoad = sizerHeatingCapacity.size(state, TempSize, errorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow; bool errorsFound = false; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); @@ -2267,8 +2259,8 @@ namespace UnitVentilator { EnthSteamOutWet = GetSatEnthalpyRefrig(state, fluidNameSteam, TempSteamIn, 0.0, RefrigIndex, RoutineName); LatentHeatSteam = EnthSteamInDry - EnthSteamOutWet; SteamDensity = GetSatDensityRefrig(state, fluidNameSteam, TempSteamIn, 1.0, RefrigIndex, RoutineName); - Cp = GetSpecificHeatGlycol(state, fluidNameWater, PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); - MaxVolHotSteamFlowDes = DesHeatingLoad / (SteamDensity * (LatentHeatSteam + PlantSizData(PltSizHeatNum).DeltaT * Cp)); + Cp = GetSpecificHeatGlycol(state, fluidNameWater, state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp, DummyWaterIndex, RoutineName); + MaxVolHotSteamFlowDes = DesHeatingLoad / (SteamDensity * (LatentHeatSteam + state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp)); } else { MaxVolHotSteamFlowDes = 0.0; } @@ -2292,7 +2284,7 @@ namespace UnitVentilator { "User-Specified Maximum Steam Flow [m3/s]", MaxVolHotSteamFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitVentilator: Potential issue with equipment sizing for " + state.dataUnitVentilators->cMO_UnitVentilator + ' ' + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); ShowContinueError(state, format("User-Specified Maximum Steam Flow of {:.5R} [m3/s]", MaxVolHotSteamFlowUser)); @@ -2317,8 +2309,8 @@ namespace UnitVentilator { if (state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilType == state.dataUnitVentilators->Cooling_CoilWaterCooling || state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilType == state.dataUnitVentilators->Cooling_CoilDetailedCooling || state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilType == state.dataUnitVentilators->Cooling_CoilHXAssisted) { - if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { // Simulation continue + if (state.dataSize->CurZoneEqNum > 0) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // Simulation continue if (state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolColdWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataUnitVentilators->cMO_UnitVentilator, state.dataUnitVentilators->UnitVent(UnitVentNum).Name, @@ -2345,7 +2337,7 @@ namespace UnitVentilator { DoWaterCoilSizing = true; } else { if (PltSizCoolNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizCoolNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizCoolNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -2356,32 +2348,32 @@ namespace UnitVentilator { } } if (DoWaterCoilSizing) { - if (FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolMassFlow >= SmallAirVolFlow) { SizingMethod = CoolingCapacitySizing; if (state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataUnitVentilators->UnitVent(UnitVentNum).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2390,12 +2382,12 @@ namespace UnitVentilator { sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoolingLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -2442,7 +2434,7 @@ namespace UnitVentilator { MaxVolColdWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(MaxVolColdWaterFlowDes - MaxVolColdWaterFlowUser) / MaxVolColdWaterFlowUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeUnitVentilator: Potential issue with equipment sizing for " + state.dataUnitVentilators->cMO_UnitVentilator + ' ' + state.dataUnitVentilators->UnitVent(UnitVentNum).Name); ShowContinueError(state, @@ -2470,9 +2462,9 @@ namespace UnitVentilator { WaterCoils::SetCoilDesFlow(state, CoolingCoilType, CoolingCoilName, state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow, ErrorsFound); WaterCoils::SetCoilDesFlow(state, state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilTypeCh, state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilName, state.dataUnitVentilators->UnitVent(UnitVentNum).MaxAirVolFlow, ErrorsFound); - if (CurZoneEqNum > 0) { - ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolHotWaterFlow; - ZoneEqSizing(CurZoneEqNum).MaxCWVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolColdWaterFlow; + if (state.dataSize->CurZoneEqNum > 0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxHWVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolHotWaterFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxCWVolFlow = state.dataUnitVentilators->UnitVent(UnitVentNum).MaxVolColdWaterFlow; } if (ErrorsFound) { @@ -2613,7 +2605,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilSchedValue, state.dataUnitVentilators->UnitVent(UnitVentNum).HCoil_Index); } else { - // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(state.dataUnitVentilators->UnitVent(UnitVentNum)%HCoilType)) + // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(UnitVent(UnitVentNum)%HCoilType)) } } @@ -2637,7 +2629,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilSchedValue, state.dataUnitVentilators->UnitVent(UnitVentNum).CCoil_Index); } else { - // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(state.dataUnitVentilators->UnitVent(UnitVentNum)%CCoilType)) + // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(UnitVent(UnitVentNum)%CCoilType)) } } @@ -2669,7 +2661,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).HCoilSchedValue, state.dataUnitVentilators->UnitVent(UnitVentNum).HCoil_Index); } else { - // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(state.dataUnitVentilators->UnitVent(UnitVentNum)%HCoilType)) + // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(UnitVent(UnitVentNum)%HCoilType)) } } @@ -2695,7 +2687,7 @@ namespace UnitVentilator { state.dataUnitVentilators->UnitVent(UnitVentNum).CCoilSchedValue, state.dataUnitVentilators->UnitVent(UnitVentNum).CCoil_Index); } else { - // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(state.dataUnitVentilators->UnitVent(UnitVentNum)%CCoilType)) + // CALL ShowFatalError(state, 'Illegal coil type='//TRIM(UnitVent(UnitVentNum)%CCoilType)) } } @@ -3398,7 +3390,7 @@ namespace UnitVentilator { } } - } // (state.dataUnitVentilators->UnitVent(UnitVentNum)%HCoilPresent) + } // (UnitVent(UnitVentNum)%HCoilPresent) } else { // Fan is Fan:OnOff and is cycling @@ -3692,7 +3684,7 @@ namespace UnitVentilator { if (state.dataUnitVentilators->UnitVent(UnitVentNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataUnitVentilators->UnitVent(UnitVentNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataUnitVentilators->UnitVent(UnitVentNum).FirstPass); } } } diff --git a/src/EnergyPlus/UnitarySystem.cc b/src/EnergyPlus/UnitarySystem.cc index 90a730b44fb..ee246d65fb2 100644 --- a/src/EnergyPlus/UnitarySystem.cc +++ b/src/EnergyPlus/UnitarySystem.cc @@ -1409,14 +1409,16 @@ namespace UnitarySystems { // References DataSizing::ZoneEqSizingData *select_EqSizing(nullptr); + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + // sweep specific data into one pointer to avoid if statements throughout this subroutine - if (DataSizing::CurOASysNum > 0) { - select_EqSizing = &DataSizing::OASysEqSizing(DataSizing::CurOASysNum); - } else if (DataSizing::CurSysNum > 0) { - select_EqSizing = &DataSizing::UnitarySysEqSizing(DataSizing::CurSysNum); - } else if (DataSizing::CurZoneEqNum > 0) { - select_EqSizing = &DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum); - DataSizing::ZoneEqUnitarySys = true; + if (state.dataSize->CurOASysNum > 0) { + select_EqSizing = &OASysEqSizing(state.dataSize->CurOASysNum); + } else if (state.dataSize->CurSysNum > 0) { + select_EqSizing = &state.dataSize->UnitarySysEqSizing(state.dataSize->CurSysNum); + } else if (state.dataSize->CurZoneEqNum > 0) { + select_EqSizing = &state.dataSize->ZoneEqSizing(state.dataSize->CurZoneEqNum); + state.dataSize->ZoneEqUnitarySys = true; } else { assert(false); } @@ -1442,7 +1444,7 @@ namespace UnitarySystems { bool HardSizeNoDesRun; // Indicator to a hard-sized field with no design sizing data // Initiate all reporting variables - if (DataSizing::SysSizingRunDone || DataSizing::ZoneSizingRunDone) { + if (state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone) { HardSizeNoDesRun = false; } else { HardSizeNoDesRun = true; @@ -1455,62 +1457,62 @@ namespace UnitarySystems { int HeatingSAFlowMethod = this->m_HeatingSAFMethod; // can't reset this to 0 for systems where DX heating coil is in downstream unit and DX cooling coil is in upstream unit // DXCoolCap = 0.0; - DataSizing::UnitaryHeatCap = 0.0; - DataSizing::SuppHeatCap = 0.0; + state.dataSize->UnitaryHeatCap = 0.0; + state.dataSize->SuppHeatCap = 0.0; bool TempCoolingLoad = state.dataUnitarySystems->CoolingLoad; bool TempHeatingLoad = state.dataUnitarySystems->HeatingLoad; state.dataUnitarySystems->CoolingLoad = true; state.dataUnitarySystems->HeatingLoad = false; - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = false; + state.dataSize->ZoneHeatingOnlyFan = false; bool IsAutoSize = false; Real64 SysCoolingFlow = 0.0; Real64 SysHeatingFlow = 0.0; Real64 CoolCapAtPeak = 0.0; Real64 HeatCapAtPeak = 0.0; - if (DataSizing::CurSysNum > 0 && DataSizing::CurOASysNum == 0 && this->m_FanExists) { + if (state.dataSize->CurSysNum > 0 && state.dataSize->CurOASysNum == 0 && this->m_FanExists) { if (this->m_FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - state.dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).supFanVecIndex = this->m_FanIndex; - state.dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanIndex = this->m_FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanVecIndex = this->m_FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanIndex = this->m_FanIndex; } else { - state.dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).SupFanNum = this->m_FanIndex; - state.dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanIndex = this->m_FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).SupFanNum = this->m_FanIndex; + state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanIndex = this->m_FanIndex; } if (this->m_FanPlace == FanPlace::BlowThru) { state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanLocation = DataAirSystems::fanPlacement::BlowThru; } else if (this->m_FanPlace == FanPlace::DrawThru) { state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; } - } else if (DataSizing::CurZoneEqNum > 0 && this->m_FanExists) { + } else if (state.dataSize->CurZoneEqNum > 0 && this->m_FanExists) { if (this->m_FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = this->m_FanIndex; + state.dataSize->DataFanIndex = this->m_FanIndex; if (this->m_FanPlace == FanPlace::BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (this->m_FanPlace == FanPlace::DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } } - if (this->ATMixerExists && DataSizing::CurZoneEqNum > 0) { // set up ATMixer conditions for scalable capacity sizing - SingleDuct::setATMixerSizingProperties(state, this->m_ATMixerIndex, this->ControlZoneNum, DataSizing::CurZoneEqNum); + if (this->ATMixerExists && state.dataSize->CurZoneEqNum > 0) { // set up ATMixer conditions for scalable capacity sizing + SingleDuct::setATMixerSizingProperties(state, this->m_ATMixerIndex, this->ControlZoneNum, state.dataSize->CurZoneEqNum); } PrintFlag = false; // STEP 1: find the DataSizing::AutoSized cooling air flow rate and capacity if (this->m_CoolCoilExists) { - if (!this->m_HeatCoilExists) DataSizing::ZoneCoolingOnlyFan = true; + if (!this->m_HeatCoilExists) state.dataSize->ZoneCoolingOnlyFan = true; TempSize = this->m_MaxCoolAirVolFlow; - SaveCurDuctType = DataSizing::CurDuctType; - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + SaveCurDuctType = state.dataSize->CurDuctType; + state.dataSize->CurDuctType = DataHVACGlobals::Cooling; bool errorsFound = false; if ((CoolingSAFlowMethod == state.dataUnitarySystems->SupplyAirFlowRate) || (CoolingSAFlowMethod == state.dataUnitarySystems->None)) { CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1537,31 +1539,31 @@ namespace UnitarySystems { CoolingAirFlowSizer sizingCoolingAirFlow; // sizingCoolingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataSizing::DataFlowUsedForSizing = sizingCoolingAirFlow.size(state, TempSize, errorsFound); + state.dataSize->DataFlowUsedForSizing = sizingCoolingAirFlow.size(state, TempSize, errorsFound); SizingMethod = DataHVACGlobals::CoolingCapacitySizing; TempSize = DataSizing::AutoSize; if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_Cooling) { - DataSizing::DataTotCapCurveIndex = coilCoolingDXs[this->m_CoolingCoilIndex].performance.normalMode.speeds[0].indexCapFT; - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = coilCoolingDXs[this->m_CoolingCoilIndex].performance.normalMode.speeds[0].indexCapFT; + state.dataSize->DataIsDXCoil = true; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingSingleSpeed || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedCooling || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingTwoSpeed || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingTwoStageWHumControl) { - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolCapAtPeak = sizerCoolingCapacity.size(state, TempSize, errorsFound); SysCoolingFlow = CoolCapAtPeak * this->m_MaxCoolAirVolFlow; - DataSizing::DataTotCapCurveIndex = 0; + state.dataSize->DataTotCapCurveIndex = 0; EqSizing.CoolingCapacity = true; EqSizing.DesCoolingLoad = CoolCapAtPeak; } else { SysCoolingFlow = this->m_DesignCoolingCapacity * this->m_MaxCoolAirVolFlow; CoolCapAtPeak = this->m_DesignCoolingCapacity; - DataSizing::DXCoolCap = CoolCapAtPeak; + state.dataSize->DXCoolCap = CoolCapAtPeak; } this->m_MaxCoolAirVolFlow = DataSizing::AutoSize; } else { @@ -1570,74 +1572,74 @@ namespace UnitarySystems { ShowContinueError(state, "Illegal entry for Cooling Supply Air Flow Rate Method."); } - DataSizing::CurDuctType = SaveCurDuctType; + state.dataSize->CurDuctType = SaveCurDuctType; EqSizing.CoolingAirFlow = true; EqSizing.CoolingAirVolFlow = SysCoolingFlow; // Cooling airflow should be known at this point. Now find DataSizing::AutoSized design cooling capacity. if (CoolingSAFlowMethod != state.dataUnitarySystems->FlowPerCoolingCapacity && this->m_DesignCoolingCapacity < 0.0) { SizingMethod = DataHVACGlobals::CoolingCapacitySizing; - DataSizing::DataFlowUsedForSizing = EqSizing.CoolingAirVolFlow; + state.dataSize->DataFlowUsedForSizing = EqSizing.CoolingAirVolFlow; TempSize = DataSizing::AutoSize; if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_Cooling) { - DataSizing::DataTotCapCurveIndex = coilCoolingDXs[this->m_CoolingCoilIndex].performance.normalMode.speeds[0].indexCapFT; - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = coilCoolingDXs[this->m_CoolingCoilIndex].performance.normalMode.speeds[0].indexCapFT; + state.dataSize->DataIsDXCoil = true; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingSingleSpeed || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedCooling || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingTwoSpeed || this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingTwoStageWHumControl) { - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingAirToAirVariableSpeed) { - DataSizing::DataTotCapCurveIndex = VariableSpeedCoils::GetVSCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = VariableSpeedCoils::GetVSCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolCapAtPeak = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataSizing::DXCoolCap = CoolCapAtPeak; + state.dataSize->DXCoolCap = CoolCapAtPeak; EqSizing.CoolingCapacity = true; EqSizing.DesCoolingLoad = CoolCapAtPeak; } else { if (!HardSizeNoDesRun && (CoolingSAFlowMethod != state.dataUnitarySystems->FlowPerCoolingCapacity && this->m_DesignCoolingCapacity > 0.0)) { if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedCooling) { - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingAirToAirVariableSpeed) { - DataSizing::DataTotCapCurveIndex = VariableSpeedCoils::GetVSCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = VariableSpeedCoils::GetVSCoilCapFTCurveIndex(state, this->m_CoolingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } SizingMethod = DataHVACGlobals::CoolingCapacitySizing; - DataSizing::DataFlowUsedForSizing = EqSizing.CoolingAirVolFlow; + state.dataSize->DataFlowUsedForSizing = EqSizing.CoolingAirVolFlow; TempSize = DataSizing::AutoSize; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); CoolCapAtPeak = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataSizing::DXCoolCap = CoolCapAtPeak; + state.dataSize->DXCoolCap = CoolCapAtPeak; EqSizing.CoolingCapacity = true; EqSizing.DesCoolingLoad = CoolCapAtPeak; } else { CoolCapAtPeak = this->m_DesignCoolingCapacity; } } - DataSizing::DataIsDXCoil = false; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataFlowUsedForSizing = 0.0; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataFlowUsedForSizing = 0.0; } // STEP 2: find the DataSizing::AutoSized heating air flow rate and capacity if (this->m_HeatCoilExists) { - if (!this->m_CoolCoilExists) DataSizing::ZoneHeatingOnlyFan = true; + if (!this->m_CoolCoilExists) state.dataSize->ZoneHeatingOnlyFan = true; FieldNum = 7; // N7 , \field Heating Supply Air Flow Rate SizingMethod = DataHVACGlobals::HeatingAirflowSizing; // SizingString = UnitarySystemNumericFields(UnitarySysNum).FieldNames(FieldNum) + " [m3/s]"; TempSize = this->m_MaxHeatAirVolFlow; - SaveCurDuctType = DataSizing::CurDuctType; - DataSizing::CurDuctType = DataHVACGlobals::Heating; + SaveCurDuctType = state.dataSize->CurDuctType; + state.dataSize->CurDuctType = DataHVACGlobals::Heating; if ((HeatingSAFlowMethod == state.dataUnitarySystems->SupplyAirFlowRate) || (HeatingSAFlowMethod == state.dataUnitarySystems->None)) { bool errorsFound = false; HeatingAirFlowSizer sizingHeatingAirFlow; @@ -1670,24 +1672,24 @@ namespace UnitarySystems { sizingHeatingAirFlow.overrideSizingString(SizingString); // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataSizing::DataFlowUsedForSizing = sizingHeatingAirFlow.size(state, TempSize, errorsFound); + state.dataSize->DataFlowUsedForSizing = sizingHeatingAirFlow.size(state, TempSize, errorsFound); SizingMethod = DataHVACGlobals::HeatingCapacitySizing; TempSize = DataSizing::AutoSize; - DataSizing::DataFracOfAutosizedCoolingCapacity = 1.0; - DataSizing::DataHeatSizeRatio = this->m_HeatingSizingRatio; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataHeatSizeRatio = this->m_HeatingSizingRatio; if (this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedHeating || this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_HeatingEmpirical) { - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } - if (DataSizing::CurSysNum > 0) + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = false; // set to false to allow calculation of actual heating capacity HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HeatCapAtPeak = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (DataSizing::CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; SysHeatingFlow = HeatCapAtPeak * this->m_MaxHeatAirVolFlow; this->m_MaxHeatAirVolFlow = DataSizing::AutoSize; EqSizing.HeatingCapacity = true; @@ -1698,22 +1700,22 @@ namespace UnitarySystems { ShowContinueError(state, "Illegal entry for Heating Supply Air Flow Rate Method."); } - DataSizing::CurDuctType = SaveCurDuctType; + state.dataSize->CurDuctType = SaveCurDuctType; EqSizing.HeatingAirFlow = true; EqSizing.HeatingAirVolFlow = SysHeatingFlow; // Heating airflow should be known at this point. Now find DataSizing::AutoSized design heating capacity. if (HeatingSAFlowMethod != state.dataUnitarySystems->FlowPerHeatingCapacity && this->m_DesignHeatingCapacity == DataSizing::AutoSize) { SizingMethod = DataHVACGlobals::HeatingCapacitySizing; - DataSizing::DataFlowUsedForSizing = EqSizing.HeatingAirVolFlow; + state.dataSize->DataFlowUsedForSizing = EqSizing.HeatingAirVolFlow; TempSize = DataSizing::AutoSize; - DataSizing::DataHeatSizeRatio = this->m_HeatingSizingRatio; + state.dataSize->DataHeatSizeRatio = this->m_HeatingSizingRatio; if (this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_HeatingEmpirical || this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedHeating) { - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; } - if (DataSizing::CurSysNum > 0) + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = false; // set to false to allow calculation of actual heating capacity bool errorsFound = false; @@ -1721,19 +1723,19 @@ namespace UnitarySystems { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HeatCapAtPeak = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (DataSizing::CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; EqSizing.HeatingCapacity = true; EqSizing.DesHeatingLoad = HeatCapAtPeak; } else { if (!HardSizeNoDesRun && (HeatingSAFlowMethod != state.dataUnitarySystems->FlowPerHeatingCapacity && this->m_DesignHeatingCapacity != DataSizing::AutoSize)) { if (this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_MultiSpeedHeating) { SizingMethod = DataHVACGlobals::HeatingCapacitySizing; - DataSizing::DataFlowUsedForSizing = EqSizing.HeatingAirVolFlow; + state.dataSize->DataFlowUsedForSizing = EqSizing.HeatingAirVolFlow; TempSize = DataSizing::AutoSize; - DataSizing::DataHeatSizeRatio = this->m_HeatingSizingRatio; - DataSizing::DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); - DataSizing::DataIsDXCoil = true; - if (DataSizing::CurSysNum > 0) + state.dataSize->DataHeatSizeRatio = this->m_HeatingSizingRatio; + state.dataSize->DataTotCapCurveIndex = DXCoils::GetDXCoilCapFTCurveIndex(state, this->m_HeatingCoilIndex, ErrFound); + state.dataSize->DataIsDXCoil = true; + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = false; // set to false to allow calculation of actual heating capacity bool errorsFound = false; @@ -1741,7 +1743,7 @@ namespace UnitarySystems { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); HeatCapAtPeak = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (DataSizing::CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; EqSizing.HeatingCapacity = true; EqSizing.DesHeatingLoad = HeatCapAtPeak; } @@ -1750,9 +1752,9 @@ namespace UnitarySystems { } } // if ( ! UnitarySystem( UnitarySysNum ).CoolCoilExists )DXCoolCap = HeatCapAtPeak; - DataSizing::DataIsDXCoil = false; - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataFlowUsedForSizing = 0.0; + state.dataSize->DataIsDXCoil = false; + state.dataSize->DataTotCapCurveIndex = 0; + state.dataSize->DataFlowUsedForSizing = 0.0; } // STEP 3: use the greater of cooling and heating air flow rates for system flow @@ -1771,9 +1773,9 @@ namespace UnitarySystems { EqSizing.Capacity = true; EqSizing.DesCoolingLoad = max(EqSizing.DesCoolingLoad, EqSizing.DesHeatingLoad); EqSizing.DesHeatingLoad = EqSizing.DesCoolingLoad; - DataSizing::DXCoolCap = EqSizing.DesCoolingLoad; - } else if (!this->m_CoolCoilExists && DataSizing::CurZoneEqNum > 0) { - DataSizing::DXCoolCap = EqSizing.DesHeatingLoad; + state.dataSize->DXCoolCap = EqSizing.DesCoolingLoad; + } else if (!this->m_CoolCoilExists && state.dataSize->CurZoneEqNum > 0) { + state.dataSize->DXCoolCap = EqSizing.DesHeatingLoad; } if (this->m_OKToPrintSizing) PrintFlag = true; @@ -1785,8 +1787,8 @@ namespace UnitarySystems { if (this->m_DesignFanVolFlowRate <= 0.0) { // attempt to catch any missed logic in GetUnitarySystem this->m_DesignFanVolFlowRate = DataSizing::AutoSize; } - DataSizing::DataEMSOverrideON = this->m_DesignFanVolFlowRateEMSOverrideOn; - DataSizing::DataEMSOverride = this->m_DesignFanVolFlowRateEMSOverrideValue; + state.dataSize->DataEMSOverrideON = this->m_DesignFanVolFlowRateEMSOverrideOn; + state.dataSize->DataEMSOverride = this->m_DesignFanVolFlowRateEMSOverrideValue; bool errorsFound = false; SystemAirFlowSizer sizerSystemAirFlow; @@ -1795,7 +1797,7 @@ namespace UnitarySystems { sizerSystemAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_DesignFanVolFlowRate = sizerSystemAirFlow.size(state, this->m_DesignFanVolFlowRate, errorsFound); - DataSizing::DataEMSOverrideON = false; + state.dataSize->DataEMSOverrideON = false; EqSizing.SystemAirFlow = false; } @@ -1814,8 +1816,8 @@ namespace UnitarySystems { this->m_MaxHeatAirVolFlow = DataSizing::AutoSize; } FieldNum = 7; // N7 , \field Heating Supply Air Flow Rate - DataSizing::DataEMSOverrideON = this->m_MaxHeatAirVolFlowEMSOverrideOn; - DataSizing::DataEMSOverride = this->m_MaxHeatAirVolFlowEMSOverrideValue; + state.dataSize->DataEMSOverrideON = this->m_MaxHeatAirVolFlowEMSOverrideOn; + state.dataSize->DataEMSOverride = this->m_MaxHeatAirVolFlowEMSOverrideValue; TempSize = this->m_MaxHeatAirVolFlow; // SizingString = UnitarySystemNumericFields(UnitarySysNum).FieldNames(FieldNum) + " [m3/s]"; SizingString = "Heating Supply Air Flow Rate [m3/s]"; @@ -1825,8 +1827,8 @@ namespace UnitarySystems { // sizingHeatingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_MaxHeatAirVolFlow = sizingHeatingAirFlow.size(state, TempSize, errorsFound); - DataSizing::DataEMSOverrideON = false; - DataSizing::DataConstantUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; } if (this->m_CoolCoilExists) { @@ -1834,8 +1836,8 @@ namespace UnitarySystems { if (this->m_MaxCoolAirVolFlow <= 0.0) { // attempt to catch any missed logic in GetUnitarySystem this->m_MaxCoolAirVolFlow = DataSizing::AutoSize; } - DataSizing::DataEMSOverrideON = this->m_MaxCoolAirVolFlowEMSOverrideOn; - DataSizing::DataEMSOverride = this->m_MaxCoolAirVolFlowEMSOverrideValue; + state.dataSize->DataEMSOverrideON = this->m_MaxCoolAirVolFlowEMSOverrideOn; + state.dataSize->DataEMSOverride = this->m_MaxCoolAirVolFlowEMSOverrideValue; TempSize = this->m_MaxCoolAirVolFlow; bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1845,8 +1847,8 @@ namespace UnitarySystems { // sizingCoolingAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizingCoolingAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_MaxCoolAirVolFlow = sizingCoolingAirFlow.size(state, TempSize, errorsFound); - DataSizing::DataEMSOverrideON = false; - DataSizing::DataConstantUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; } // If not set, set DesignFanVolFlowRate as greater of cooling and heating to make sure this value > 0. @@ -1903,7 +1905,7 @@ namespace UnitarySystems { } if (this->m_NoCoolHeatSAFMethod <= state.dataUnitarySystems->SupplyAirFlowRate && this->m_ControlType == ControlType::CCMASHRAE) { if (this->m_MaxNoCoolHeatAirVolFlow == DataSizing::AutoSize) { - DataSizing::DataConstantUsedForSizing = max(this->m_MaxCoolAirVolFlow, this->m_MaxHeatAirVolFlow); + state.dataSize->DataConstantUsedForSizing = max(this->m_MaxCoolAirVolFlow, this->m_MaxHeatAirVolFlow); if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingSingleSpeed || this->m_HeatingCoilType_Num == DataHVACGlobals::CoilDX_HeatingEmpirical) { minNoLoadFlow = 0.6667; // TODO: Should this have a Coil:Cooling:DX block? @@ -1915,23 +1917,23 @@ namespace UnitarySystems { } } if (this->m_MaxCoolAirVolFlow >= this->m_MaxHeatAirVolFlow) { - DataSizing::DataFractionUsedForSizing = min(minNoLoadFlow, (this->m_MaxHeatAirVolFlow / this->m_MaxCoolAirVolFlow) - 0.01); + state.dataSize->DataFractionUsedForSizing = min(minNoLoadFlow, (this->m_MaxHeatAirVolFlow / this->m_MaxCoolAirVolFlow) - 0.01); } else { - DataSizing::DataFractionUsedForSizing = min(minNoLoadFlow, (this->m_MaxCoolAirVolFlow / this->m_MaxHeatAirVolFlow) - 0.01); + state.dataSize->DataFractionUsedForSizing = min(minNoLoadFlow, (this->m_MaxCoolAirVolFlow / this->m_MaxHeatAirVolFlow) - 0.01); } } else { - DataSizing::DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; } } else if (this->m_NoCoolHeatSAFMethod == state.dataUnitarySystems->FractionOfAutoSizedCoolingValue) { this->m_MaxNoCoolHeatAirVolFlow *= EqSizing.CoolingAirVolFlow; - DataSizing::DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; this->m_MaxNoCoolHeatAirVolFlow = DataSizing::AutoSize; } else if (this->m_NoCoolHeatSAFMethod == state.dataUnitarySystems->FractionOfAutoSizedHeatingValue) { this->m_MaxNoCoolHeatAirVolFlow *= EqSizing.HeatingAirVolFlow; - DataSizing::DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; this->m_MaxNoCoolHeatAirVolFlow = DataSizing::AutoSize; } else if (this->m_NoCoolHeatSAFMethod == state.dataUnitarySystems->FlowPerCoolingCapacity) { if (EqSizing.DesCoolingLoad <= 0.0) { @@ -1946,8 +1948,8 @@ namespace UnitarySystems { } } this->m_MaxNoCoolHeatAirVolFlow *= EqSizing.DesCoolingLoad; - DataSizing::DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; this->m_MaxNoCoolHeatAirVolFlow = DataSizing::AutoSize; } else if (this->m_NoCoolHeatSAFMethod == state.dataUnitarySystems->FlowPerHeatingCapacity) { if (EqSizing.DesHeatingLoad <= 0.0) { @@ -1962,16 +1964,16 @@ namespace UnitarySystems { } } this->m_MaxNoCoolHeatAirVolFlow *= EqSizing.DesHeatingLoad; - DataSizing::DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataFractionUsedForSizing = 1.0; this->m_MaxNoCoolHeatAirVolFlow = DataSizing::AutoSize; } else { - DataSizing::DataFractionUsedForSizing = this->m_NoLoadAirFlowRateRatio; + state.dataSize->DataFractionUsedForSizing = this->m_NoLoadAirFlowRateRatio; } FieldNum = 11; // N11 , \field No Load Supply Air Flow Rate - DataSizing::DataEMSOverrideON = this->m_MaxNoCoolHeatAirVolFlowEMSOverrideOn; - DataSizing::DataEMSOverride = this->m_MaxNoCoolHeatAirVolFlowEMSOverrideValue; + state.dataSize->DataEMSOverrideON = this->m_MaxNoCoolHeatAirVolFlowEMSOverrideOn; + state.dataSize->DataEMSOverride = this->m_MaxNoCoolHeatAirVolFlowEMSOverrideValue; TempSize = this->m_MaxNoCoolHeatAirVolFlow; // SizingString = UnitarySystemNumericFields(UnitarySysNum).FieldNames(FieldNum) + " [m3/s]"; SizingString = "No Load Supply Air Flow Rate [m3/s]"; @@ -1981,9 +1983,9 @@ namespace UnitarySystems { // sizerSystemAirFlow.setHVACSizingIndexData(FanCoil(FanCoilNum).HVACSizingIndex); sizerSystemAirFlow.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_MaxNoCoolHeatAirVolFlow = sizerSystemAirFlow.size(state, TempSize, errorsFound); - DataSizing::DataEMSOverrideON = false; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataEMSOverrideON = false; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; } if (this->m_MaxCoolAirVolFlow > 0.0) { @@ -1993,8 +1995,8 @@ namespace UnitarySystems { this->LowSpeedHeatFanRatio = this->m_MaxNoCoolHeatAirVolFlow / this->m_MaxHeatAirVolFlow; } - if (this->ATMixerExists && DataSizing::CurZoneEqNum > 0) { // set up ATMixer conditions for use in component sizing - SingleDuct::setATMixerSizingProperties(state, this->m_ATMixerIndex, this->ControlZoneNum, DataSizing::CurZoneEqNum); + if (this->ATMixerExists && state.dataSize->CurZoneEqNum > 0) { // set up ATMixer conditions for use in component sizing + SingleDuct::setATMixerSizingProperties(state, this->m_ATMixerIndex, this->ControlZoneNum, state.dataSize->CurZoneEqNum); } // Change the Volume Flow Rates to Mass Flow Rates @@ -2054,10 +2056,10 @@ namespace UnitarySystems { ShowFatalError(state, "Cooling coil = " + state.dataVariableSpeedCoils->VarSpeedCoil(this->m_CoolingCoilIndex).VarSpeedCoilType + ": " + state.dataVariableSpeedCoils->VarSpeedCoil(this->m_CoolingCoilIndex).Name); } - DataSizing::DXCoolCap = VariableSpeedCoils::GetCoilCapacityVariableSpeed(state, + state.dataSize->DXCoolCap = VariableSpeedCoils::GetCoilCapacityVariableSpeed(state, DataHVACGlobals::cAllCoilTypes(this->m_CoolingCoilType_Num), this->m_CoolingCoilName, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DXCoolCap; - EqSizing.DesHeatingLoad = DataSizing::DXCoolCap; + EqSizing.DesCoolingLoad = state.dataSize->DXCoolCap; + EqSizing.DesHeatingLoad = state.dataSize->DXCoolCap; for (Iter = 1; Iter <= this->m_NumOfSpeedCooling; ++Iter) { this->m_CoolVolumeFlowRate[Iter] = state.dataVariableSpeedCoils->VarSpeedCoil(this->m_CoolingCoilIndex).MSRatedAirVolFlowRate(Iter); @@ -2124,9 +2126,9 @@ namespace UnitarySystems { } } - DataSizing::DXCoolCap = newCoil.performance.normalMode.ratedGrossTotalCap; - EqSizing.DesCoolingLoad = DataSizing::DXCoolCap; - if (this->m_HeatPump) EqSizing.DesHeatingLoad = DataSizing::DXCoolCap; + state.dataSize->DXCoolCap = newCoil.performance.normalMode.ratedGrossTotalCap; + EqSizing.DesCoolingLoad = state.dataSize->DXCoolCap; + if (this->m_HeatPump) EqSizing.DesHeatingLoad = state.dataSize->DXCoolCap; if (MSHPIndex > 0) { this->m_IdleVolumeAirRate = this->m_MaxCoolAirVolFlow * state.dataUnitarySystems->designSpecMSHP[MSHPIndex].noLoadAirFlowRateRatio; @@ -2156,8 +2158,8 @@ namespace UnitarySystems { // do nothing, the vars EqSizing.DesCoolingLoad and DataSizing::DXCoolCap are already set earlier and the values could be max of the // cooling and heating austosized values. Thus reseting them here to user specified value may not be the design size used else where } else { - DataSizing::DXCoolCap = DXCoils::GetCoilCapacityByIndexType(state, this->m_CoolingCoilIndex, this->m_CoolingCoilType_Num, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DXCoolCap; + state.dataSize->DXCoolCap = DXCoils::GetCoilCapacityByIndexType(state, this->m_CoolingCoilIndex, this->m_CoolingCoilType_Num, ErrFound); + EqSizing.DesCoolingLoad = state.dataSize->DXCoolCap; } MSHPIndex = this->m_DesignSpecMSHPIndex; @@ -2398,7 +2400,7 @@ namespace UnitarySystems { // Not sure if this may be needed for special cases if (this->m_CoolCoilExists && this->m_MaxCoolAirVolFlow < 0.0) { - if (!DataSizing::SysSizingRunDone) { + if (!state.dataSize->SysSizingRunDone) { BranchNum = BranchInputManager::GetAirBranchIndex(state, "AirloopHVAC:UnitarySystem", this->Name); FanType = ""; m_FanName = ""; @@ -2439,12 +2441,12 @@ namespace UnitarySystems { this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterDetailed) { WaterCoils::SimulateWaterCoilComponents( state, this->m_CoolingCoilName, FirstHVACIteration, this->m_CoolingCoilIndex, QActual, this->m_FanOpMode, 1.0); - DataSizing::DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, + state.dataSize->DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, UtilityRoutines::MakeUPPERCase(DataHVACGlobals::cAllCoilTypes(this->m_CoolingCoilType_Num)), this->m_CoolingCoilName, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + EqSizing.DesCoolingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; this->m_DesignCoolingCapacity = DataSizing::AutoSize; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilWater_CoolingHXAssisted) { @@ -2454,12 +2456,12 @@ namespace UnitarySystems { state, DataHVACGlobals::cAllCoilTypes(this->m_CoolingCoilType_Num), this->m_CoolingCoilName, ErrFound, true); HVACHXAssistedCoolingCoil::SimHXAssistedCoolingCoil( state, blankString, true, state.dataUnitarySystems->On, 1.0, this->m_CoolingCoilIndex, 1, false, 1.0, false); - DataSizing::DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, + state.dataSize->DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, UtilityRoutines::MakeUPPERCase(DataHVACGlobals::cAllCoilTypes(ActualCoolCoilType)), HXCoilName, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + EqSizing.DesCoolingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; this->m_DesignCoolingCapacity = DataSizing::AutoSize; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple) { @@ -2476,15 +2478,15 @@ namespace UnitarySystems { 0, 0.0, FirstHVACIteration); - DataSizing::DataConstantUsedForSizing = WaterToAirHeatPumpSimple::GetCoilCapacity( + state.dataSize->DataConstantUsedForSizing = WaterToAirHeatPumpSimple::GetCoilCapacity( state, DataHVACGlobals::cAllCoilTypes(this->m_CoolingCoilType_Num), this->m_CoolingCoilName, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + EqSizing.DesCoolingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; this->m_DesignCoolingCapacity = DataSizing::AutoSize; if (this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHPSimple || this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHP) - EqSizing.DesHeatingLoad = DataSizing::DataConstantUsedForSizing; + EqSizing.DesHeatingLoad = state.dataSize->DataConstantUsedForSizing; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHP) { WaterToAirHeatPump::SimWatertoAirHP(state, blankString, @@ -2501,35 +2503,35 @@ namespace UnitarySystems { 0.0, 0, 0.0); - DataSizing::DataConstantUsedForSizing = WaterToAirHeatPump::GetCoilCapacity( + state.dataSize->DataConstantUsedForSizing = WaterToAirHeatPump::GetCoilCapacity( state, DataHVACGlobals::cAllCoilTypes(this->m_CoolingCoilType_Num), this->m_CoolingCoilName, ErrFound); - EqSizing.DesCoolingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + EqSizing.DesCoolingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; if (this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHP || this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHPSimple) - EqSizing.DesHeatingLoad = DataSizing::DataConstantUsedForSizing; + EqSizing.DesHeatingLoad = state.dataSize->DataConstantUsedForSizing; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_PackagedThermalStorageCooling) { PackagedThermalStorageCoil::SimTESCoil( state, this->m_CoolingCoilName, this->m_CoolingCoilIndex, this->m_FanOpMode, this->m_TESOpMode, 0.0); PackagedThermalStorageCoil::GetTESCoilCoolingCapacity( - state, this->m_CoolingCoilName, DataSizing::DataConstantUsedForSizing, ErrFound, CompType); - EqSizing.DesCoolingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + state, this->m_CoolingCoilName, state.dataSize->DataConstantUsedForSizing, ErrFound, CompType); + EqSizing.DesCoolingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; } TempSize = this->m_DesignCoolingCapacity; - DataSizing::DataFlowUsedForSizing = this->m_MaxCoolAirVolFlow; + state.dataSize->DataFlowUsedForSizing = this->m_MaxCoolAirVolFlow; SizingString = "Nominal Cooling Capacity [W]"; bool errorsFound = false; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_DesignCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; - DataSizing::DataFlowUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataFlowUsedForSizing = 0.0; } if (this->m_HeatCoilExists) { @@ -2540,19 +2542,19 @@ namespace UnitarySystems { if (this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWater) { WaterCoils::SimulateWaterCoilComponents( state, this->m_HeatingCoilName, FirstHVACIteration, this->m_HeatingCoilIndex, QActual, this->m_FanOpMode, 1.0); - DataSizing::DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, + state.dataSize->DataConstantUsedForSizing = WaterCoils::GetWaterCoilCapacity(state, UtilityRoutines::MakeUPPERCase(DataHVACGlobals::cAllCoilTypes(this->m_HeatingCoilType_Num)), this->m_HeatingCoilName, ErrFound); - EqSizing.DesHeatingLoad = DataSizing::DataConstantUsedForSizing; - DataSizing::DataFractionUsedForSizing = 1.0; + EqSizing.DesHeatingLoad = state.dataSize->DataConstantUsedForSizing; + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; this->m_DesignHeatingCapacity = DataSizing::AutoSize; } TempSize = this->m_DesignHeatingCapacity; SizingString = "Nominal Heating Capacity [W]"; - if (DataSizing::CurSysNum > 0) + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = false; // set to false to allow calculation of parent object heating capacity bool errorsFound = false; @@ -2560,21 +2562,21 @@ namespace UnitarySystems { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); TempSize = sizerHeatingCapacity.size(state, TempSize, errorsFound); - if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple) DataSizing::DXCoolCap = TempSize; - if (DataSizing::CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; + if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple) state.dataSize->DXCoolCap = TempSize; + if (state.dataSize->CurSysNum > 0) state.dataAirLoop->AirLoopControlInfo(AirLoopNum).UnitarySysSimulating = true; this->m_DesignHeatingCapacity = TempSize; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; - DataSizing::DataHeatSizeRatio = 1.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataHeatSizeRatio = 1.0; } if (!HardSizeNoDesRun && (EqSizing.Capacity && EqSizing.DesHeatingLoad > 0.0)) { // vars EqSizing.DesHeatingLoad is already set earlier and supplemental heating coil should // be sized to design value instead of user specified value if HardSizeNoDesRun is false - DataSizing::UnitaryHeatCap = EqSizing.DesHeatingLoad; + state.dataSize->UnitaryHeatCap = EqSizing.DesHeatingLoad; } else { - DataSizing::UnitaryHeatCap = this->m_DesignHeatingCapacity; + state.dataSize->UnitaryHeatCap = this->m_DesignHeatingCapacity; } if ((this->m_HeatCoilExists || this->m_SuppCoilExists) && this->m_ControlType != ControlType::CCMASHRAE) { @@ -2604,8 +2606,8 @@ namespace UnitarySystems { TempSize = this->m_DesignSuppHeatingCapacity; if (this->m_Humidistat && this->m_DehumidControlType_Num == DehumCtrlType::CoolReheat && IsAutoSize) { - DataSizing::DataConstantUsedForSizing = max(this->m_DesignSuppHeatingCapacity, this->m_DesignCoolingCapacity); - DataSizing::DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = max(this->m_DesignSuppHeatingCapacity, this->m_DesignCoolingCapacity); + state.dataSize->DataFractionUsedForSizing = 1.0; SizingMethod = DataHVACGlobals::AutoCalculateSizing; TempSize = DataSizing::AutoSize; } @@ -2617,19 +2619,19 @@ namespace UnitarySystems { sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->m_DesignSuppHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, errorsFound); IsAutoSize = false; - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; - DataSizing::SuppHeatCap = this->m_DesignSuppHeatingCapacity; + state.dataSize->SuppHeatCap = this->m_DesignSuppHeatingCapacity; } // register plant flow rate. Not sure this has ever been tested. if (this->m_HeatRecActive) { - PlantUtilities::RegisterPlantCompDesignFlow(this->m_HeatRecoveryInletNodeNum, this->m_DesignHRWaterVolumeFlow); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->m_HeatRecoveryInletNodeNum, this->m_DesignHRWaterVolumeFlow); } // Set flow rate for unitary system with no fan - if (DataSizing::CurOASysNum == 0 && DataSizing::CurZoneEqNum == 0 && this->m_DesignFanVolFlowRate <= 0.0) { + if (state.dataSize->CurOASysNum == 0 && state.dataSize->CurZoneEqNum == 0 && this->m_DesignFanVolFlowRate <= 0.0) { SystemFlow = 0; if (AirLoopNum > 0) SystemFlow = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).DesignVolFlowRate; if (SystemFlow > 0.0) { @@ -2696,17 +2698,17 @@ namespace UnitarySystems { if (this->m_ControlType == ControlType::CCMASHRAE) { SizingDesRunThisSys = false; - DataSizing::DataZoneUsedForSizing = this->ControlZoneNum; - CheckThisZoneForSizing(DataSizing::DataZoneUsedForSizing, SizingDesRunThisSys); + state.dataSize->DataZoneUsedForSizing = this->ControlZoneNum; + CheckThisZoneForSizing(state, state.dataSize->DataZoneUsedForSizing, SizingDesRunThisSys); capacityMultiplier = 0.5; // one-half of design zone load if (SizingDesRunThisSys) { - DataSizing::DataCapacityUsedForSizing = DataSizing::FinalZoneSizing(this->ControlZoneNum).DesCoolLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(this->ControlZoneNum).DesCoolLoad * capacityMultiplier; } else { - DataSizing::DataCapacityUsedForSizing = this->m_DesignCoolingCapacity * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = this->m_DesignCoolingCapacity * capacityMultiplier; } - DataSizing::DataCapacityUsedForSizing /= this->ControlZoneMassFlowFrac; - DataSizing::DataFlowUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataCapacityUsedForSizing /= this->ControlZoneMassFlowFrac; + state.dataSize->DataFlowUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; ASHRAEMinSATCoolingSizer sizerASHRAEMinSATCooling; std::string stringOverride = "Minimum Supply Air Temperature [C]"; if (state.dataGlobal->isEpJSON) stringOverride = "minimum_supply_air_temperature [C]"; @@ -2715,12 +2717,12 @@ namespace UnitarySystems { this->DesignMinOutletTemp = sizerASHRAEMinSATCooling.size(state, this->DesignMinOutletTemp, ErrFound); if (SizingDesRunThisSys) { - DataSizing::DataCapacityUsedForSizing = DataSizing::FinalZoneSizing(this->ControlZoneNum).DesHeatLoad * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = state.dataSize->FinalZoneSizing(this->ControlZoneNum).DesHeatLoad * capacityMultiplier; } else { - DataSizing::DataCapacityUsedForSizing = this->m_DesignHeatingCapacity * capacityMultiplier; + state.dataSize->DataCapacityUsedForSizing = this->m_DesignHeatingCapacity * capacityMultiplier; } - DataSizing::DataCapacityUsedForSizing /= this->ControlZoneMassFlowFrac; - DataSizing::DataFlowUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; + state.dataSize->DataCapacityUsedForSizing /= this->ControlZoneMassFlowFrac; + state.dataSize->DataFlowUsedForSizing = this->m_MaxNoCoolHeatAirVolFlow; ASHRAEMaxSATHeatingSizer sizerASHRAEMaxSATHeating; stringOverride = "Maximum Supply Air Temperature [C]"; if (state.dataGlobal->isEpJSON) stringOverride = "maximum_supply_air_temperature [C]"; @@ -2728,9 +2730,9 @@ namespace UnitarySystems { sizerASHRAEMaxSATHeating.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); this->DesignMaxOutletTemp = sizerASHRAEMaxSATHeating.size(state, this->DesignMaxOutletTemp, ErrFound); - DataSizing::DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently - DataSizing::DataFlowUsedForSizing = 0.0; - DataSizing::DataZoneUsedForSizing = 0; + state.dataSize->DataCapacityUsedForSizing = 0.0; // reset so other routines don't use this inadvertently + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataZoneUsedForSizing = 0; // check that MaxNoCoolHeatAirVolFlow is less than both MaxCoolAirVolFlow and MaxHeatAirVolFlow if (this->m_MaxNoCoolHeatAirVolFlow >= this->m_MaxCoolAirVolFlow || this->m_MaxNoCoolHeatAirVolFlow >= this->m_MaxHeatAirVolFlow) { @@ -3459,7 +3461,7 @@ namespace UnitarySystems { } // check if the UnitarySystem is connected to an outside air system - if (!AirLoopFound && DataSizing::CurOASysNum > 0) { + if (!AirLoopFound && state.dataSize->CurOASysNum > 0) { for (int OASysNum = 1; OASysNum <= state.dataAirLoop->NumOASystems; ++OASysNum) { for (int OACompNum = 1; OACompNum <= state.dataAirLoop->OutsideAirSys(OASysNum).NumComponents; ++OACompNum) { if (!UtilityRoutines::SameString(state.dataAirLoop->OutsideAirSys(OASysNum).ComponentName(OACompNum), thisObjectName) || @@ -7105,7 +7107,7 @@ namespace UnitarySystems { "Cooling", _, "System"); - } + } if (state.dataUnitarySystems->unitarySys[sysNum].m_HeatCoilExists || state.dataUnitarySystems->unitarySys[sysNum].m_SuppCoilExists) { SetupOutputVariable(state, "Unitary System Heating Ancillary Electricity Energy", @@ -10288,11 +10290,7 @@ namespace UnitarySystems { DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow * PartLoadRatio; // proportional to PLR when speed = 1, #5518 } } else if (this->m_DiscreteSpeedCoolingCoil && (state.dataUnitarySystems->CoolingLoad && CoolSpeedNum == 1)) { - if (this->m_FanOpMode == DataHVACGlobals::ContFanCycCoil) { - DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow; // #5737 - } else { - DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow * PartLoadRatio; // proportional to PLR when speed = 1, #5518 - } + DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow; } else { DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOffMassFlow; // these need to be set for multi-speed coils } @@ -13883,6 +13881,9 @@ namespace UnitarySystems { // PURPOSE OF THIS SUBROUTINE: // This subroutine updates the report variable for the coils. + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + auto &CurOASysNum(state.dataSize->CurOASysNum); + Real64 ReportingConstant = DataHVACGlobals::TimeStepSys * DataGlobalConstants::SecInHour; Real64 SensibleOutput = 0.0; // sensible output rate, {W} @@ -14205,19 +14206,19 @@ namespace UnitarySystems { if (!state.dataGlobal->SysSizingCalc) { - if (DataSizing::CurOASysNum > 0) { - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).AirFlow = false; - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).CoolingAirFlow = false; - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).HeatingAirFlow = false; - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).Capacity = false; - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).CoolingCapacity = false; - DataSizing::OASysEqSizing(DataSizing::CurOASysNum).HeatingCapacity = false; + if (CurOASysNum > 0) { + OASysEqSizing(CurOASysNum).AirFlow = false; + OASysEqSizing(CurOASysNum).CoolingAirFlow = false; + OASysEqSizing(CurOASysNum).HeatingAirFlow = false; + OASysEqSizing(CurOASysNum).Capacity = false; + OASysEqSizing(CurOASysNum).CoolingCapacity = false; + OASysEqSizing(CurOASysNum).HeatingCapacity = false; this->m_FirstPass = false; - } else if (DataSizing::CurSysNum > 0) { - state.dataAirLoop->AirLoopControlInfo(DataSizing::CurSysNum).UnitarySysSimulating = false; - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, DataSizing::CurSysNum, this->m_FirstPass); - } else if (DataSizing::CurZoneEqNum > 0) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, DataSizing::CurSysNum, this->m_FirstPass); + } else if (state.dataSize->CurSysNum > 0) { + state.dataAirLoop->AirLoopControlInfo(state.dataSize->CurSysNum).UnitarySysSimulating = false; + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, state.dataSize->CurSysNum, this->m_FirstPass); + } else if (state.dataSize->CurZoneEqNum > 0) { + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, state.dataSize->CurSysNum, this->m_FirstPass); } else { this->m_FirstPass = false; } @@ -14226,7 +14227,7 @@ namespace UnitarySystems { // reset to 1 in case blow through fan configuration (fan resets to 1, but for blow thru fans coil sets back down < 1) DataHVACGlobals::OnOffFanPartLoadFraction = 1.0; - DataSizing::ZoneEqUnitarySys = false; + state.dataSize->ZoneEqUnitarySys = false; } void UnitarySys::unitarySystemHeatRecovery(EnergyPlusData &state) @@ -14544,7 +14545,7 @@ namespace UnitarySystems { // Par(3) = REAL(OpMode,r64) ! Fan control, IF 1.0 then cycling fan, if 0.0 then continuous fan // Par(4) = REAL(CompOp,r64) ! Compressor control, IF 1.0 then compressor ON, if 0.0 then compressor OFF // Par(5) = SensLoad or MoistureLoad ! Sensible or Latent load to be met by unitary system - // Par(6) = state.dataUnitarySystems->HeatingLoad or CoolingLoad ! Type of load FLAG, 0.0 IF heating load, 1.0 IF cooling or moisture load + // Par(6) = HeatingLoad or CoolingLoad ! Type of load FLAG, 0.0 IF heating load, 1.0 IF cooling or moisture load // Par(7) = 1.0 ! Output calculation FLAG, 0.0 for latent capacity, 1.0 for sensible capacity // Par(8) = OnOffAirFlowRatio ! Ratio of compressor ON air mass flow to AVERAGE air mass flow over time step // Par(9) = HXUnitOn ! flag to enable HX, 1=ON and 2=OFF @@ -16136,11 +16137,7 @@ namespace UnitarySystems { if (this->m_CoolingSpeedNum <= 1) { this->m_CoolingSpeedRatio = 0.0; this->m_CoolingCycRatio = PartLoadRatio; - if (this->m_FanOpMode == DataHVACGlobals::ContFanCycCoil) { - DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow; // #5737 - } else { - DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow * PartLoadRatio; // #5518 - } + DataHVACGlobals::MSHPMassFlowRateLow = state.dataUnitarySystems->CompOnMassFlow; } else { if (this->m_SingleMode == 0) { this->m_CoolingSpeedRatio = PartLoadRatio; diff --git a/src/EnergyPlus/UserDefinedComponents.cc b/src/EnergyPlus/UserDefinedComponents.cc index c596ce9a5d6..0a30bcc1568 100644 --- a/src/EnergyPlus/UserDefinedComponents.cc +++ b/src/EnergyPlus/UserDefinedComponents.cc @@ -141,7 +141,7 @@ namespace UserDefinedComponents { this->Loop(thisLoop).BranchNum, this->Loop(thisLoop).CompNum); - PlantUtilities::RegisterPlantCompDesignFlow(this->Loop(thisLoop).InletNodeNum, this->Loop(thisLoop).DesignVolumeFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->Loop(thisLoop).InletNodeNum, this->Loop(thisLoop).DesignVolumeFlowRate); } else { // throw warning @@ -285,7 +285,7 @@ namespace UserDefinedComponents { state.dataUserDefinedComponents->UserCoil(CompNum).Loop.BranchNum, state.dataUserDefinedComponents->UserCoil(CompNum).Loop.CompNum); - PlantUtilities::RegisterPlantCompDesignFlow(state.dataUserDefinedComponents->UserCoil(CompNum).Loop.InletNodeNum, state.dataUserDefinedComponents->UserCoil(CompNum).Loop.DesignVolumeFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataUserDefinedComponents->UserCoil(CompNum).Loop.InletNodeNum, state.dataUserDefinedComponents->UserCoil(CompNum).Loop.DesignVolumeFlowRate); } } @@ -384,7 +384,7 @@ namespace UserDefinedComponents { state.dataUserDefinedComponents->UserZoneAirHVAC(CompNum).Loop(Loop).BranchNum, state.dataUserDefinedComponents->UserZoneAirHVAC(CompNum).Loop(Loop).CompNum); - PlantUtilities::RegisterPlantCompDesignFlow(state.dataUserDefinedComponents->UserZoneAirHVAC(CompNum).Loop(Loop).InletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataUserDefinedComponents->UserZoneAirHVAC(CompNum).Loop(Loop).InletNodeNum, state.dataUserDefinedComponents->UserZoneAirHVAC(CompNum).Loop(Loop).DesignVolumeFlowRate); } } @@ -491,7 +491,7 @@ namespace UserDefinedComponents { state.dataUserDefinedComponents->UserAirTerminal(CompNum).Loop(Loop).BranchNum, state.dataUserDefinedComponents->UserAirTerminal(CompNum).Loop(Loop).CompNum); - PlantUtilities::RegisterPlantCompDesignFlow(state.dataUserDefinedComponents->UserAirTerminal(CompNum).Loop(Loop).InletNodeNum, + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataUserDefinedComponents->UserAirTerminal(CompNum).Loop(Loop).InletNodeNum, state.dataUserDefinedComponents->UserAirTerminal(CompNum).Loop(Loop).DesignVolumeFlowRate); } } diff --git a/src/EnergyPlus/UtilityRoutines.cc b/src/EnergyPlus/UtilityRoutines.cc index bb18a6e99be..e0aac853cd1 100644 --- a/src/EnergyPlus/UtilityRoutines.cc +++ b/src/EnergyPlus/UtilityRoutines.cc @@ -1625,7 +1625,7 @@ namespace UtilityRoutines { print(OutUnit2(), " {}", ErrorMessage); } // std::string tmp = " " + ErrorMessage + '\n'; - // if (state.dataGlobal->errorCallback) DataGlobals::errorCallback(tmp.c_str()); + // if (errorCallback) DataGlobals::errorCallback(tmp.c_str()); } void SummarizeErrors(EnergyPlusData &state) diff --git a/src/EnergyPlus/VariableSpeedCoils.cc b/src/EnergyPlus/VariableSpeedCoils.cc index bc2f8b45c67..a108d8499ab 100644 --- a/src/EnergyPlus/VariableSpeedCoils.cc +++ b/src/EnergyPlus/VariableSpeedCoils.cc @@ -391,7 +391,7 @@ namespace VariableSpeedCoils { TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(2), AlphArray(3), "Water Nodes"); TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(4), AlphArray(5), "Air Nodes"); - // If (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%NumOfSpeeds .LT. 2) Then + // If (VarSpeedCoil(DXCoilNum)%NumOfSpeeds .LT. 2) Then if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds < 1) { ShowSevereError( state, RoutineName + CurrentModuleObject + "=\"" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name + "\", invalid"); @@ -707,24 +707,24 @@ namespace VariableSpeedCoils { "System"); // for table output, being consistent with outher water-to-air coils - // IF (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedCapCoolTotal /= AutoSize) THEN - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedCapCoolSens = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedCapCoolTotal & - // *VarSpeedCoil(DXCoilNum)%MSRatedSHR(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%NormSpedLevel) + // IF (VarSpeedCoil(DXCoilNum)%RatedCapCoolTotal /= AutoSize) THEN + // VarSpeedCoil(DXCoilNum)%RatedCapCoolSens = VarSpeedCoil(DXCoilNum)%RatedCapCoolTotal & + // *VarSpeedCoil(DXCoilNum)%MSRatedSHR(VarSpeedCoil(DXCoilNum)%NormSpedLevel) // ELSE - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedCapCoolSens = AUTOSIZE + // VarSpeedCoil(DXCoilNum)%RatedCapCoolSens = AUTOSIZE // END IF state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolSens = AutoSize; // always auto-sized, to be determined in the sizing calculation // BAN Sept 30 2103, CR9322, commented out, now it is redundant, it is reported from sizing routine // create predefined report entries - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilType, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, CurrentModuleObject ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilTotCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilSensCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolSens ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilLatCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal - state.dataVariableSpeedCoils->VarSpeedCoil( - // DXCoilNum ).RatedCapCoolSens ); PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilSHR, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum - // ).RatedCapCoolSens / state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilNomEff, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum - // ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).MSRatedCOP( state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).NormSpedLevel ) ); + // PreDefTableEntry(state, pdchCoolCoilType, VarSpeedCoil( DXCoilNum ).Name, CurrentModuleObject ); + // PreDefTableEntry(state, pdchCoolCoilTotCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); + // PreDefTableEntry(state, pdchCoolCoilSensCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolSens ); + // PreDefTableEntry(state, pdchCoolCoilLatCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal - VarSpeedCoil( + // DXCoilNum ).RatedCapCoolSens ); PreDefTableEntry(state, pdchCoolCoilSHR, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum + // ).RatedCapCoolSens / VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); PreDefTableEntry(state, pdchCoolCoilNomEff, VarSpeedCoil( DXCoilNum + // ).Name, VarSpeedCoil( DXCoilNum ).MSRatedCOP( VarSpeedCoil( DXCoilNum ).NormSpedLevel ) ); } //-------------------------AIR SOURCE, COOLING---BEGIN @@ -1121,13 +1121,13 @@ namespace VariableSpeedCoils { // BAN Sept 30 2103, CR9322, commented out, now it is redundant, it is reported from sizing routine // create predefined report entries - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilType, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, CurrentModuleObject ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilTotCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilSensCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolSens ); - // PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilLatCap, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal - state.dataVariableSpeedCoils->VarSpeedCoil( - // DXCoilNum ).RatedCapCoolSens ); PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilSHR, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum - // ).RatedCapCoolSens / state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilNomEff, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum - // ).Name, state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).MSRatedCOP( state.dataVariableSpeedCoils->VarSpeedCoil( DXCoilNum ).NormSpedLevel ) ); + // PreDefTableEntry(state, pdchCoolCoilType, VarSpeedCoil( DXCoilNum ).Name, CurrentModuleObject ); + // PreDefTableEntry(state, pdchCoolCoilTotCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); + // PreDefTableEntry(state, pdchCoolCoilSensCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolSens ); + // PreDefTableEntry(state, pdchCoolCoilLatCap, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal - VarSpeedCoil( + // DXCoilNum ).RatedCapCoolSens ); PreDefTableEntry(state, pdchCoolCoilSHR, VarSpeedCoil( DXCoilNum ).Name, VarSpeedCoil( DXCoilNum + // ).RatedCapCoolSens / VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal ); PreDefTableEntry(state, pdchCoolCoilNomEff, VarSpeedCoil( DXCoilNum + // ).Name, VarSpeedCoil( DXCoilNum ).MSRatedCOP( VarSpeedCoil( DXCoilNum ).NormSpedLevel ) ); } //-------------------------AIR SOURCE COOLING---END @@ -1179,7 +1179,7 @@ namespace VariableSpeedCoils { TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(2), AlphArray(3), "Water Nodes"); TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(4), AlphArray(5), "Air Nodes"); - // If (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%NumOfSpeeds .LT. 2) Then + // If (VarSpeedCoil(DXCoilNum)%NumOfSpeeds .LT. 2) Then if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds < 1) { ShowSevereError( state, RoutineName + CurrentModuleObject + "=\"" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name + "\", invalid"); @@ -3185,8 +3185,8 @@ namespace VariableSpeedCoils { // note: variable-speed HP can exceed the flow rate restrictions at low speed levels // IF (((MinRatedAirVolFlowPerRatedTotCap - RatedVolFlowPerRatedTotCap) > SmallDifferenceTest).OR. & // ((RatedVolFlowPerRatedTotCap - MaxRatedAirVolFlowPerRatedTotCap) > SmallDifferenceTest)) THEN - // CALL ShowSevereError(state,'Sizing: '//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%VarSpeedCoilType) & - // // ' "'//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name)// & + // CALL ShowSevereError(state,'Sizing: '//TRIM(VarSpeedCoil(DXCoilNum)%VarSpeedCoilType) & + // // ' "'//TRIM(VarSpeedCoil(DXCoilNum)%Name)// & // '": Rated air volume flow rate per watt of rated total '// & // 'cooling capacity is out of range at speed '//TRIM(TrimSigDigits(Mode))) // CALL ShowContinueError & @@ -3195,14 +3195,14 @@ namespace VariableSpeedCoils { // Max Rated Vol Flow Per Watt=['// & // TRIM(TrimSigDigits(MaxRatedAirVolFlowPerRatedTotCap,3))//']. See Input-Output Reference Manual for valid range.') // END IF - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%MSRatedAirMassFlowRate(Mode) = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)* & + // VarSpeedCoil(DXCoilNum)%MSRatedAirMassFlowRate(Mode) = VarSpeedCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)* & // PsyRhoAirFnPbTdbW(state, OutBaroPress,RatedInletAirTemp,RatedInletAirHumRat,RoutineName) // ! get high speed rated coil bypass factor - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%MSRatedCBF(Mode) = CalcCBF(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%VarSpeedCoilType, & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name,& + // VarSpeedCoil(DXCoilNum)%MSRatedCBF(Mode) = CalcCBF(VarSpeedCoil(DXCoilNum)%VarSpeedCoilType, & + // VarSpeedCoil(DXCoilNum)%Name,& // RatedInletAirTemp,RatedInletAirHumRat,VarSpeedCoil(DXCoilNum)%MSRatedTotCap(Mode),& - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%MSRatedAirMassFlowRate(Mode), & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%MSRatedSHR(Mode)) + // VarSpeedCoil(DXCoilNum)%MSRatedAirMassFlowRate(Mode), & + // VarSpeedCoil(DXCoilNum)%MSRatedSHR(Mode)) } // call coil model with everthing set at rating point state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirDBTemp = state.dataVariableSpeedCoils->RatedInletAirTemp; @@ -3298,7 +3298,7 @@ namespace VariableSpeedCoils { // note: variable-speed HP can exceed the flow rate restrictions at low speed levels // IF (((MinRatedAirVolFlowPerRatedTotCap - RatedVolFlowPerRatedTotCap) > SmallDifferenceTest).OR. & // ((RatedVolFlowperRatedTotCap - MaxRatedAirVolFlowPerRatedTotCap) > SmallDifferenceTest)) THEN - // CALL ShowSevereError(state,'Coil:Heating:DX:MultiSpeed '//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name)// & + // CALL ShowSevereError(state,'Coil:Heating:DX:MultiSpeed '//TRIM(VarSpeedCoil(DXCoilNum)%Name)// & // ': Rated air volume flow rate per watt of rated total '// & // 'heating capacity is out of range at speed '//TRIM(TrimSigDigits(Mode))) // CALL ShowContinueError(state, 'Min Rated Vol Flow Per Watt=['//TRIM(TrimSigDigits & @@ -3486,8 +3486,8 @@ namespace VariableSpeedCoils { state.dataPlnt->PlantLoop(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LoopNum).FluidIndex, RoutineNameSimpleWatertoAirHP); - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%DesignWaterMassFlowRate= & - // rho * state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate + // VarSpeedCoil(DXCoilNum)%DesignWaterMassFlowRate= & + // rho * VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate InitComponentNodes(0.0, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DesignWaterMassFlowRate, @@ -3544,7 +3544,7 @@ namespace VariableSpeedCoils { if (CyclingScheme == ContFanCycCoil) { // continuous fan, cycling compressor state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate = Node(AirInletNode).MassFlowRate; - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%AirMassFlowRate = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%DesignAirVolFlowRate* & + // VarSpeedCoil(DXCoilNum)%AirMassFlowRate = VarSpeedCoil(DXCoilNum)%DesignAirVolFlowRate* & // PsyRhoAirFnPbTdbW(state, OutBaroPress,Node(AirInletNode)%Temp,Node(AirInletNode)%HumRat) // If air flow is less than 25% rated flow. Then set air flow to the 25% of rated conditions if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate < @@ -3662,7 +3662,6 @@ namespace VariableSpeedCoils { using namespace Psychrometrics; using DataHVACGlobals::SmallAirVolFlow; using DataHVACGlobals::SmallLoad; - using PlantUtilities::MyPlantSizingIndex; using PlantUtilities::RegisterPlantCompDesignFlow; using namespace OutputReportPredefined; @@ -3673,17 +3672,11 @@ namespace VariableSpeedCoils { // Locals Real64 QLoadTotal; // placeholder for calculating SHR - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeVarSpeedCoil"); static std::string const RoutineNameAlt("SizeHVACWaterToAir"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 rhoair; @@ -3756,18 +3749,18 @@ namespace VariableSpeedCoils { RatedWaterFlowAutoSized = false; RatedCapHeatAutoSized = false; IsAutoSize = false; - if (SysSizingRunDone || ZoneSizingRunDone) { + if (state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone) { HardSizeNoDesRun = false; } else { HardSizeNoDesRun = true; } - if (CurSysNum > 0) { - CheckThisAirSystemForSizing(CurSysNum, SizingDesRunThisAirSys); + if (state.dataSize->CurSysNum > 0) { + CheckThisAirSystemForSizing(state, state.dataSize->CurSysNum, SizingDesRunThisAirSys); } else { SizingDesRunThisAirSys = false; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); } else { SizingDesRunThisZone = false; } @@ -3828,7 +3821,7 @@ namespace VariableSpeedCoils { RatedAirFlowAutoSized = true; } - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!RatedAirFlowAutoSized && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRunAirFlow = true; if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate > 0.0) { @@ -3839,15 +3832,15 @@ namespace VariableSpeedCoils { } } else { CheckSysSizing(state, "COIL:" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + CurrentObjSubfix, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - RatedAirVolFlowRateDes = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + RatedAirVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { RatedAirVolFlowRateDes = 0.0; } } } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (!RatedAirFlowAutoSized && !SizingDesRunThisZone) { // Simulation continue HardSizeNoDesRunAirFlow = true; if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate > 0.0) { @@ -3858,7 +3851,7 @@ namespace VariableSpeedCoils { } } else { CheckZoneSizing(state, "COIL:" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + CurrentObjSubfix, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); - RatedAirVolFlowRateDes = max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + RatedAirVolFlowRateDes = max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); if (RatedAirVolFlowRateDes < SmallAirVolFlow) { RatedAirVolFlowRateDes = 0.0; } @@ -3866,10 +3859,10 @@ namespace VariableSpeedCoils { } if (RatedAirFlowAutoSized) state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate = RatedAirVolFlowRateDes; - // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CoolHeatType)//TRIM(CurrentObjSubfix), & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name, & + // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(VarSpeedCoil(DXCoilNum)%CoolHeatType)//TRIM(CurrentObjSubfix), & + // VarSpeedCoil(DXCoilNum)%Name, & // 'Rated Air Flow Rate [m3/s]', & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedAirVolFlowRate) + // VarSpeedCoil(DXCoilNum)%RatedAirVolFlowRate) // RatedAirFlowAutoSized = .TRUE. @@ -3882,7 +3875,7 @@ namespace VariableSpeedCoils { RatedCapCoolTotalAutoSized = true; } if (SizingDesRunThisZone || SizingDesRunThisAirSys) HardSizeNoDesRun = false; - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!RatedCapCoolTotalAutoSized && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRun = true; if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal > 0.0) { @@ -3895,46 +3888,46 @@ namespace VariableSpeedCoils { CheckSysSizing(state, "COIL:" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + CurrentObjSubfix, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); VolFlowRate = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (CurOASysNum > 0) { // coil is in the OA stream - MixTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).OutHumRatAtCoolPeak; - SupTemp = FinalSysSizing(CurSysNum).PrecoolTemp; - SupHumRat = FinalSysSizing(CurSysNum).PrecoolHumRat; + if (state.dataSize->CurOASysNum > 0) { // coil is in the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat; } else { // coil is on the main air loop - SupTemp = FinalSysSizing(CurSysNum).CoolSupTemp; - SupHumRat = FinalSysSizing(CurSysNum).CoolSupHumRat; - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing(CurSysNum).MixTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat; + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if (VolFlowRate > 0.0) { - OutAirFrac = FinalSysSizing(CurSysNum).DesOutAirVolFlow / VolFlowRate; + OutAirFrac = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow / VolFlowRate; } else { OutAirFrac = 1.0; } OutAirFrac = min(1.0, max(0.0, OutAirFrac)); MixTemp = - OutAirFrac * FinalSysSizing(CurSysNum).PrecoolTemp + (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetTempAtCoolPeak; - MixHumRat = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolHumRat + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetHumRatAtCoolPeak; + OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; + OutTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, MixTemp, MixHumRat, RoutineName); MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); SupEnth = PsyHFnTdbW(SupTemp, SupHumRat); // design fan heat will be added to coil load - Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(state, DataFanEnumType, DataFanIndex, VolFlowRate); + Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(state, state.dataSize->DataFanEnumType, state.dataSize->DataFanIndex, VolFlowRate); // inlet/outlet temp is adjusted after enthalpy is calculcated so fan heat is not double counted Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); - } else if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { + } else if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); } MixWetBulb = PsyTwbFnTdbWPb(state, MixTemp, MixHumRat, state.dataEnvrn->OutBaroPress, RoutineName); - // need to use OutTemp for air-cooled and state.dataVariableSpeedCoils->RatedInletWaterTemp for water-cooled + // need to use OutTemp for air-cooled and RatedInletWaterTemp for water-cooled if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondenserInletNodeNum != 0) { RatedSourceTempCool = state.dataVariableSpeedCoils->RatedInletWaterTemp; } else { @@ -3961,7 +3954,7 @@ namespace VariableSpeedCoils { } } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { if (!RatedCapCoolTotalAutoSized && !SizingDesRunThisZone) { // Simulation continue HardSizeNoDesRun = true; if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal > 0.0) { @@ -3974,24 +3967,24 @@ namespace VariableSpeedCoils { CheckZoneSizing(state, "COIL:" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + CurrentObjSubfix, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); VolFlowRate = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (ZoneEqDXCoil) { - if (ZoneEqSizing(CurZoneEqNum).OAVolFlow > 0.0) { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow > 0.0) { + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak; - MixHumRat = FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak; } } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } - SupTemp = FinalZoneSizing(CurZoneEqNum).CoolDesTemp; - SupHumRat = FinalZoneSizing(CurZoneEqNum).CoolDesHumRat; - TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CurZoneEqNum).CoolDDNum; + SupTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesTemp; + SupHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesHumRat; + TimeStepNumAtMax = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDDNum; if (DDNum > 0 && TimeStepNumAtMax > 0) { - OutTemp = DesDayWeath(DDNum).Temp(TimeStepNumAtMax); + OutTemp = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepNumAtMax); } else { OutTemp = 0.0; } @@ -4000,18 +3993,18 @@ namespace VariableSpeedCoils { SupEnth = PsyHFnTdbW(SupTemp, SupHumRat); // design fan heat will be added to coil load - Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(state, DataFanEnumType, DataFanIndex, VolFlowRate); + Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(state, state.dataSize->DataFanEnumType, state.dataSize->DataFanIndex, VolFlowRate); // inlet/outlet temp is adjusted after enthalpy is calculcated so fan heat is not double counted Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (DataSizing::DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { + if (state.dataSize->DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); } else { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); } MixWetBulb = PsyTwbFnTdbWPb(state, MixTemp, MixHumRat, state.dataEnvrn->OutBaroPress, RoutineName); - // need to use OutTemp for air-cooled and state.dataVariableSpeedCoils->RatedInletWaterTemp for water-cooled + // need to use OutTemp for air-cooled and RatedInletWaterTemp for water-cooled if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondenserInletNodeNum != 0) { RatedSourceTempCool = state.dataVariableSpeedCoils->RatedInletWaterTemp; } else { @@ -4074,7 +4067,7 @@ namespace VariableSpeedCoils { "User-Specified Rated Total Cooling Capacity [W]", RatedCapCoolTotalUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedCapCoolTotalDes - RatedCapCoolTotalUser) / RatedCapCoolTotalUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedCapCoolTotalDes - RatedCapCoolTotalUser) / RatedCapCoolTotalUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for " + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -4089,7 +4082,7 @@ namespace VariableSpeedCoils { } coilSelectionReportObj->setCoilEntAirTemp(state, - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, MixTemp, CurSysNum, CurZoneEqNum); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, MixTemp, state.dataSize->CurSysNum, state.dataSize->CurZoneEqNum); coilSelectionReportObj->setCoilEntAirHumRat(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, MixHumRat); coilSelectionReportObj->setCoilLvgAirTemp(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, SupTemp); coilSelectionReportObj->setCoilLvgAirHumRat(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, SupHumRat); @@ -4098,9 +4091,9 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, RatedCapCoolTotalDes, RatedCapCoolTotalAutoSized, - CurSysNum, - CurZoneEqNum, - CurOASysNum, + state.dataSize->CurSysNum, + state.dataSize->CurZoneEqNum, + state.dataSize->CurOASysNum, 0.0, // no fan load included in sizing TotCapTempModFac, -999.0, @@ -4109,7 +4102,7 @@ namespace VariableSpeedCoils { // Set the global DX cooling coil capacity variable for use by other objects if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType == "COOLING") { - DXCoolCap = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal; + state.dataSize->DXCoolCap = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal; } // size rated heating capacity @@ -4117,13 +4110,13 @@ namespace VariableSpeedCoils { RatedCapHeatAutoSized = true; } // simply set heating capacity equal to the cooling capacity - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedCapHeat = DXCoolCap + // VarSpeedCoil(DXCoilNum)%RatedCapHeat = DXCoolCap if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType == "HEATING") { if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CompanionCoolingCoilNum > 0) { RatedCapHeatDes = state.dataVariableSpeedCoils->VarSpeedCoil(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CompanionCoolingCoilNum).RatedCapCoolTotal; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal = RatedCapHeatDes; // AVOID BEING ZERO } else { - RatedCapHeatDes = DXCoolCap; // previous code, can be risky + RatedCapHeatDes = state.dataSize->DXCoolCap; // previous code, can be risky } // END IF if (RatedCapHeatAutoSized) { @@ -4143,9 +4136,9 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, RatedCapHeatDes, RatedCapHeatAutoSized, - CurSysNum, - CurZoneEqNum, - CurOASysNum, + state.dataSize->CurSysNum, + state.dataSize->CurZoneEqNum, + state.dataSize->CurOASysNum, 0.0, 1.0, -999.0, @@ -4175,7 +4168,7 @@ namespace VariableSpeedCoils { "User-Specified Nominal Heating Capacity [W]", RatedCapHeatUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedCapHeatDes - RatedCapHeatUser) / RatedCapHeatUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedCapHeatDes - RatedCapHeatUser) / RatedCapHeatUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for " + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -4214,7 +4207,7 @@ namespace VariableSpeedCoils { "User-Specified Rated Air Flow Rate [m3/s]", RatedAirVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedAirVolFlowRateDes - RatedAirVolFlowRateUser) / RatedAirVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedAirVolFlowRateDes - RatedAirVolFlowRateUser) / RatedAirVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -4364,11 +4357,11 @@ namespace VariableSpeedCoils { //! if not found on a plant loop, check condenser loop and warn user if not found // IF(PltSizNum == 0) THEN // PltSizNum = & - // MyCondPlantSizingIndex('COIL:'//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CoolHeatType)// & + // MyCondPlantSizingIndex('COIL:'//TRIM(VarSpeedCoil(DXCoilNum)%CoolHeatType)// & // TRIM(CurrentObjSubfix), & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name, & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%WaterInletNodeNum, & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%WaterOutletNodeNum, ErrorsFound) + // VarSpeedCoil(DXCoilNum)%Name, & + // VarSpeedCoil(DXCoilNum)%WaterInletNodeNum, & + // VarSpeedCoil(DXCoilNum)%WaterOutletNodeNum, ErrorsFound) // END IF // WSHP condenser can be on either a plant loop or condenser loop. Test each to find plant sizing number. @@ -4384,27 +4377,27 @@ namespace VariableSpeedCoils { if (PltSizNum > 0) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LoopNum).FluidName, - PlantSizData(PltSizNum).ExitTemp, + state.dataSize->PlantSizData(PltSizNum).ExitTemp, state.dataPlnt->PlantLoop(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LoopNum).FluidIndex, RoutineNameAlt); cp = GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LoopNum).FluidName, - PlantSizData(PltSizNum).ExitTemp, + state.dataSize->PlantSizData(PltSizNum).ExitTemp, state.dataPlnt->PlantLoop(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LoopNum).FluidIndex, RoutineNameAlt); if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType == "HEATING") { - RatedWaterVolFlowRateDes = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapHeat / (PlantSizData(PltSizNum).DeltaT * cp * rho); + RatedWaterVolFlowRateDes = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapHeat / (state.dataSize->PlantSizData(PltSizNum).DeltaT * cp * rho); - // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CoolHeatType)//& + // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(VarSpeedCoil(DXCoilNum)%CoolHeatType)//& // TRIM(CurrentObjSubfix), & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name, & - // 'Rated Water Flow Rate [m3/s]', state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate) + // VarSpeedCoil(DXCoilNum)%Name, & + // 'Rated Water Flow Rate [m3/s]', VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate) coilSelectionReportObj->setCoilLvgWaterTemp(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, - PlantSizData(PltSizNum).ExitTemp + - PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report + state.dataSize->PlantSizData(PltSizNum).ExitTemp + + state.dataSize->PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report } else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType == "COOLING") { @@ -4415,25 +4408,25 @@ namespace VariableSpeedCoils { SystemCapacity = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal; } - RatedWaterVolFlowRateDes = SystemCapacity / (PlantSizData(PltSizNum).DeltaT * cp * rho); + RatedWaterVolFlowRateDes = SystemCapacity / (state.dataSize->PlantSizData(PltSizNum).DeltaT * cp * rho); - // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CoolHeatType)& + // CALL BaseSizer::reportSizerOutput('COIL:'//TRIM(VarSpeedCoil(DXCoilNum)%CoolHeatType)& // //TRIM(CurrentObjSubfix), & - // state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%Name, & - // 'Rated Water Flow Rate [m3/s]', state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate) + // VarSpeedCoil(DXCoilNum)%Name, & + // 'Rated Water Flow Rate [m3/s]', VarSpeedCoil(DXCoilNum)%RatedWaterVolFlowRate) coilSelectionReportObj->setCoilLvgWaterTemp(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, - PlantSizData(PltSizNum).ExitTemp - - PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report + state.dataSize->PlantSizData(PltSizNum).ExitTemp - + state.dataSize->PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report } coilSelectionReportObj->setCoilEntWaterTemp(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, - PlantSizData(PltSizNum).ExitTemp); // TRACE 3D Plus coil selection report + state.dataSize->PlantSizData(PltSizNum).ExitTemp); // TRACE 3D Plus coil selection report coilSelectionReportObj->setCoilWaterDeltaT(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VarSpeedCoilType, - PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report + state.dataSize->PlantSizData(PltSizNum).DeltaT); // TRACE 3D Plus coil selection report } else { ShowSevereError(state,"Autosizing of water flow requires a loop Sizing:Plant object"); ShowContinueError(state, "Autosizing also requires physical connection to a plant or condenser loop."); @@ -4494,7 +4487,7 @@ namespace VariableSpeedCoils { "User-Specified Rated Water Flow Rate [m3/s]", RatedWaterVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedWaterVolFlowRateDes - RatedWaterVolFlowRateUser) / RatedWaterVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedWaterVolFlowRateDes - RatedWaterVolFlowRateUser) / RatedWaterVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -4509,11 +4502,11 @@ namespace VariableSpeedCoils { // Save component design water volumetric flow rate. if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate > 0.0 && state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { - RegisterPlantCompDesignFlow(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate); } // Use 1/2 flow since both cooling and heating coil will save flow yet only 1 will operate at a time else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate > 0.0) { - RegisterPlantCompDesignFlow(state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum, 0.5 * state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum, 0.5 * state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate); } if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == Coil_CoolingWaterToAirHPVSEquationFit || @@ -4620,7 +4613,7 @@ namespace VariableSpeedCoils { for (Mode = 1; Mode <= state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++Mode) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode) = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) * rhoA; // Check for valid range of (Rated Air Volume Flow Rate / Rated Total Capacity) - // RatedVolFlowPerRatedTotCap = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) / + // RatedVolFlowPerRatedTotCap = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) / // VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode);//prepared for checking ratios, not used here } @@ -4650,7 +4643,7 @@ namespace VariableSpeedCoils { } } - // update state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal + // update VarSpeedCoil(DXCoilNum).RatedCapCoolTotal Mode = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NormSpedLevel; if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapCoolTotal = @@ -4783,7 +4776,7 @@ namespace VariableSpeedCoils { EvapCondPumpElecNomPowerUser); if (state.dataGlobal->DisplayExtraWarnings) { if ((std::abs(EvapCondPumpElecNomPowerDes - EvapCondPumpElecNomPowerUser) / EvapCondPumpElecNomPowerUser) > - AutoVsHardSizingThreshold) { + state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for " + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -4829,7 +4822,7 @@ namespace VariableSpeedCoils { "User-Specified Resistive Defrost Heater Capacity [W]", DefrostCapacityUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > AutoVsHardSizingThreshold) { + if ((std::abs(DefrostCapacityDes - DefrostCapacityUser) / DefrostCapacityUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVarSpeedCoil: Potential issue with equipment sizing for " + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CoolHeatType + ' ' + CurrentObjSubfix); ShowContinueError(state, "Coil Name =" + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name); @@ -5475,7 +5468,7 @@ namespace VariableSpeedCoils { MaxOutletEnth = PsyHFnTdbW(state.dataVariableSpeedCoils->LoadSideOutletDBTemp, MaxHumRat); if (state.dataVariableSpeedCoils->LoadSideOutletEnth > MaxOutletEnth) { state.dataVariableSpeedCoils->LoadSideOutletEnth = MaxOutletEnth; - // QLoadTotal = state.dataVariableSpeedCoils->LoadSideMassFlowRate * (LoadSideInletEnth - LoadSideOutletEnth) + // QLoadTotal = LoadSideMassFlowRate * (LoadSideInletEnth - LoadSideOutletEnth) } state.dataVariableSpeedCoils->LoadSideOutletHumRat = PsyWFnTdbH(state, state.dataVariableSpeedCoils->LoadSideOutletDBTemp, state.dataVariableSpeedCoils->LoadSideOutletEnth, RoutineName); if (state.dataVariableSpeedCoils->LoadSideOutletHumRat > MaxHumRat) { @@ -5502,8 +5495,8 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & - //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%BasinHeaterPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower + state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & + //+ VarSpeedCoil(DXCoilNum)%BasinHeaterPower + VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower state.dataVariableSpeedCoils->QSource *= PartLoadRatio; QWasteHeat *= PartLoadRatio; @@ -6046,8 +6039,8 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & - //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%BasinHeaterPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower + state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & + //+ VarSpeedCoil(DXCoilNum)%BasinHeaterPower + VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower state.dataVariableSpeedCoils->QSource *= PartLoadRatio; // Add power to global variable so power can be summed by parent object @@ -6469,7 +6462,7 @@ namespace VariableSpeedCoils { } else { // Defrost strategy is resistive state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DefrostPower = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DefrostCapacity * FractionalDefrostTime; } - } else { // Defrost is not active because (OutDryBulbTemp > state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxOATDefrost) + } else { // Defrost is not active because (OutDryBulbTemp > VarSpeedCoil(DXCoilNum).MaxOATDefrost) state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DefrostPower = 0.0; } } @@ -6484,7 +6477,7 @@ namespace VariableSpeedCoils { // END IF state.dataVariableSpeedCoils->QLoadTotal = state.dataVariableSpeedCoils->QLoadTotal * HeatingCapacityMultiplier - LoadDueToDefrost; // count the powr separately - state.dataVariableSpeedCoils->Winput *= InputPowerMultiplier; //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%DefrostPower + state.dataVariableSpeedCoils->Winput *= InputPowerMultiplier; //+ VarSpeedCoil(DXCoilNum)%DefrostPower } state.dataVariableSpeedCoils->QSource = state.dataVariableSpeedCoils->QLoadTotal + QWasteHeat - state.dataVariableSpeedCoils->Winput; @@ -6519,7 +6512,7 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower + state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower state.dataVariableSpeedCoils->QSource *= PartLoadRatio; QWasteHeat *= PartLoadRatio; @@ -7173,7 +7166,7 @@ namespace VariableSpeedCoils { WaterOutletNode = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterOutletNodeNum; // Set the air outlet nodes of the WatertoAirHPSimple - Node(AirOutletNode).MassFlowRate = Node(AirInletNode).MassFlowRate; // state.dataVariableSpeedCoils->LoadSideMassFlowRate + Node(AirOutletNode).MassFlowRate = Node(AirInletNode).MassFlowRate; // LoadSideMassFlowRate Node(AirOutletNode).Temp = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirDBTemp; Node(AirOutletNode).HumRat = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirHumRat; Node(AirOutletNode).Enthalpy = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirEnthalpy; @@ -7182,9 +7175,9 @@ namespace VariableSpeedCoils { Node(AirOutletNode).Quality = Node(AirInletNode).Quality; Node(AirOutletNode).Press = Node(AirInletNode).Press; Node(AirOutletNode).MassFlowRateMin = Node(AirInletNode).MassFlowRateMin; - Node(AirOutletNode).MassFlowRateMax = Node(AirInletNode).MassFlowRateMax; // state.dataVariableSpeedCoils->LoadSideMassFlowRate + Node(AirOutletNode).MassFlowRateMax = Node(AirInletNode).MassFlowRateMax; // LoadSideMassFlowRate Node(AirOutletNode).MassFlowRateMinAvail = Node(AirInletNode).MassFlowRateMinAvail; - Node(AirOutletNode).MassFlowRateMaxAvail = Node(AirInletNode).MassFlowRateMaxAvail; // state.dataVariableSpeedCoils->LoadSideMassFlowRate + Node(AirOutletNode).MassFlowRateMaxAvail = Node(AirInletNode).MassFlowRateMaxAvail; // LoadSideMassFlowRate // Set the water outlet node of the WatertoAirHPSimple // Set the water outlet nodes for properties that just pass through & not used diff --git a/src/EnergyPlus/VentilatedSlab.cc b/src/EnergyPlus/VentilatedSlab.cc index 2249443edbb..c54e7691a5c 100644 --- a/src/EnergyPlus/VentilatedSlab.cc +++ b/src/EnergyPlus/VentilatedSlab.cc @@ -150,16 +150,9 @@ namespace VentilatedSlab { // PURPOSE OF THIS SUBROUTINE: // This is the main driver subroutine for the Ventilated Slab simulation. - // METHODOLOGY EMPLOYED: - // Standard EnergyPlus methodology. - - // Using/Aliasing - using DataSizing::ZoneEqVentedSlab; - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int Item; // index of ventilated slab being simulated - if (state.dataVentilatedSlab->GetInputFlag) { GetVentilatedSlabInput(state); state.dataVentilatedSlab->GetInputFlag = false; @@ -193,7 +186,7 @@ namespace VentilatedSlab { } } - ZoneEqVentedSlab = true; + state.dataSize->ZoneEqVentedSlab = true; InitVentilatedSlab(state, Item, ZoneNum, FirstHVACIteration); @@ -203,7 +196,7 @@ namespace VentilatedSlab { ReportVentilatedSlab(state, Item); - ZoneEqVentedSlab = false; + state.dataSize->ZoneEqVentedSlab = false; } void GetVentilatedSlabInput(EnergyPlusData &state) @@ -241,7 +234,6 @@ namespace VentilatedSlab { using DataPlant::TypeOf_CoilWaterCooling; using DataPlant::TypeOf_CoilWaterDetailedFlatCooling; using DataPlant::TypeOf_CoilWaterSimpleHeating; - using DataSizing::ZoneHVACSizing; using FluidProperties::FindRefrigerant; using OutAirNodeManager::CheckAndAddAirNodeNumber; @@ -1045,7 +1037,7 @@ namespace VentilatedSlab { state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex = 0; if (!lAlphaBlanks(34)) { - state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(34), ZoneHVACSizing); + state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex = UtilityRoutines::FindItemInList(cAlphaArgs(34), state.dataSize->ZoneHVACSizing); if (state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(34) + " = " + cAlphaArgs(34) + " not found."); ShowContinueError(state, "Occurs in " + state.dataVentilatedSlab->cMO_VentilatedSlab + " = " + state.dataVentilatedSlab->VentSlab(Item).Name); @@ -1110,17 +1102,17 @@ namespace VentilatedSlab { // Setup Report variables for the VENTILATED SLAB for (Item = 1; Item <= state.dataVentilatedSlab->NumOfVentSlabs; ++Item) { // CALL SetupOutputVariable(state, 'Ventilated Slab Direct Heat Loss Rate [W]', & - // state.dataVentilatedSlab->VentSlab(Item)%DirectHeatLossRate,'System', & - // 'Average', state.dataVentilatedSlab->VentSlab(Item)%Name) + // VentSlab(Item)%DirectHeatLossRate,'System', & + // 'Average', VentSlab(Item)%Name) // CALL SetupOutputVariable(state, 'Ventilated Slab Direct Heat Loss [W]', & - // state.dataVentilatedSlab->VentSlab(Item)%DirectHeatLoss,'System', & - // 'Sum', state.dataVentilatedSlab->VentSlab(Item)%Name) + // VentSlab(Item)%DirectHeatLoss,'System', & + // 'Sum', VentSlab(Item)%Name) // CALL SetupOutputVariable(state, 'Ventilated Slab Direct Heat Gain Rate [W]', & - // state.dataVentilatedSlab->VentSlab(Item)%DirectHeatGainRate,'System', & - // 'Average', state.dataVentilatedSlab->VentSlab(Item)%Name) + // VentSlab(Item)%DirectHeatGainRate,'System', & + // 'Average', VentSlab(Item)%Name) // CALL SetupOutputVariable(state, 'Ventilated Slab Direct Heat Gain [J]', & - // state.dataVentilatedSlab->VentSlab(Item)%DirectHeatGain,'System', & - // 'Sum', state.dataVentilatedSlab->VentSlab(Item)%Name) + // VentSlab(Item)%DirectHeatGain,'System', & + // 'Sum', VentSlab(Item)%Name) SetupOutputVariable(state, "Zone Ventilated Slab Radiant Heating Rate", OutputProcessor::Unit::W, state.dataVentilatedSlab->VentSlab(Item).RadHeatingPower, @@ -1519,7 +1511,7 @@ namespace VentilatedSlab { state.dataVentilatedSlab->VentSlab(Item).HWBranchNum, state.dataVentilatedSlab->VentSlab(Item).HWCompNum); } - } //(state.dataVentilatedSlab->VentSlab(Item)%HCoilPresent) + } //(VentSlab(Item)%HCoilPresent) if (state.dataVentilatedSlab->VentSlab(Item).CCoilPresent && !MyPlantScanFlag(Item)) { // Only initialize these if a cooling coil is actually present @@ -1632,7 +1624,6 @@ namespace VentilatedSlab { using DataHVACGlobals::HeatingCapacitySizing; using FluidProperties::GetDensityGlycol; using FluidProperties::GetSpecificHeatGlycol; - using HVACHXAssistedCoolingCoil::GetHXCoilType; using HVACHXAssistedCoolingCoil::GetHXDXCoilName; using PlantUtilities::MyPlantSizingIndex; @@ -1642,6 +1633,9 @@ namespace VentilatedSlab { // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeVentilatedSlab"); + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &CurZoneEqNum(state.dataSize->CurZoneEqNum); + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int PltSizHeatNum; // index of plant sizing object for 1st heating loop int PltSizCoolNum; // index of plant sizing object for 1st cooling loop @@ -1714,19 +1708,19 @@ namespace VentilatedSlab { MaxVolColdWaterFlowUser = 0.0; CoolingAirVolFlowScalable = 0.0; HeatingAirVolFlowScalable = 0.0; - DataScalableSizingON = false; - DataScalableCapSizingON = false; + state.dataSize->DataScalableSizingON = false; + state.dataSize->DataScalableCapSizingON = false; CompType = state.dataVentilatedSlab->cMO_VentilatedSlab; CompName = state.dataVentilatedSlab->VentSlab(Item).Name; - DataZoneNumber = state.dataVentilatedSlab->VentSlab(Item).ZonePtr; + state.dataSize->DataZoneNumber = state.dataVentilatedSlab->VentSlab(Item).ZonePtr; if (state.dataVentilatedSlab->VentSlab(Item).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = state.dataVentilatedSlab->VentSlab(Item).Fan_Index; + state.dataSize->DataFanIndex = state.dataVentilatedSlab->VentSlab(Item).Fan_Index; // ventilated slab unit is always blow thru - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; if (state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex > 0) { zoneHVACIndex = state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex; @@ -1734,29 +1728,29 @@ namespace VentilatedSlab { FieldNum = 1; PrintFlag = true; SizingString = state.dataVentilatedSlab->VentSlabNumericFields(Item).FieldNames(FieldNum) + " [m3/s]"; - if (ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod > 0) { SizingMethod = DataHVACGlobals::CoolingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } CoolingAirFlowSizer sizingCoolingAirFlow; std::string stringOverride = "Maximum Air Flow Rate [m3/s]"; @@ -1770,13 +1764,13 @@ namespace VentilatedSlab { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataAutosizedCoolingCapacity = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1788,29 +1782,29 @@ namespace VentilatedSlab { CoolingAirVolFlowScalable = sizingCoolingAirFlow.size(state, TempSize, ErrorsFound); } } - if (ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod > 0) { SizingMethod = HeatingAirflowSizing; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingSAFMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedHeatingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow > 0.0) { + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; + ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedHeatingAirflow) { - DataFracOfAutosizedHeatingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataFracOfAutosizedHeatingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; } HeatingAirFlowSizer sizingHeatingAirFlow; sizingHeatingAirFlow.overrideSizingString(SizingString); @@ -1821,13 +1815,13 @@ namespace VentilatedSlab { SizingMethod = HeatingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; HeatingCapacitySizer sizerHeatingCapacity; sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataFlowPerHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; + state.dataSize->DataAutosizedHeatingCapacity = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataFlowPerHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxHeatAirVolFlow; SizingMethod = HeatingAirflowSizing; PrintFlag = true; TempSize = AutoSize; @@ -1860,7 +1854,7 @@ namespace VentilatedSlab { IsAutoSize = true; } if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataVentilatedSlab->VentSlab(Item).OutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name, "User-Specified Maximum Outdoor Air Flow Rate [m3/s]", state.dataVentilatedSlab->VentSlab(Item).OutAirVolFlow); @@ -1882,7 +1876,7 @@ namespace VentilatedSlab { "User-Specified Maximum Outdoor Air Flow Rate [m3/s]", OutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(OutAirVolFlowDes - OutAirVolFlowUser) / OutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVentilatedSlab: Potential issue with equipment sizing for ZoneHVAC:VentilatedSlab = \"" + state.dataVentilatedSlab->VentSlab(Item).Name + "\"."); ShowContinueError(state, format("User-Specified Maximum Outdoor Air Flow Rate of {:.5R} [m3/s]", OutAirVolFlowUser)); @@ -1902,7 +1896,7 @@ namespace VentilatedSlab { IsAutoSize = true; } if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataVentilatedSlab->VentSlab(Item).MinOutAirVolFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name, @@ -1911,7 +1905,7 @@ namespace VentilatedSlab { } } else { CheckZoneSizing(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name); - MinOutAirVolFlowDes = min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataVentilatedSlab->VentSlab(Item).MaxAirVolFlow); + MinOutAirVolFlowDes = min(state.dataSize->FinalZoneSizing(CurZoneEqNum).MinOA, state.dataVentilatedSlab->VentSlab(Item).MaxAirVolFlow); if (MinOutAirVolFlowDes < SmallAirVolFlow) { MinOutAirVolFlowDes = 0.0; } @@ -1929,7 +1923,7 @@ namespace VentilatedSlab { "User-Specified Minimum Outdoor Air Flow Rate [m3/s]", MinOutAirVolFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MinOutAirVolFlowDes - MinOutAirVolFlowUser) / MinOutAirVolFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MinOutAirVolFlowDes - MinOutAirVolFlowUser) / MinOutAirVolFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVentilatedSlab: Potential issue with equipment sizing for ZoneHVAC:VentilatedSlab = \"" + state.dataVentilatedSlab->VentSlab(Item).Name + "\"."); ShowContinueError(state, @@ -1952,7 +1946,7 @@ namespace VentilatedSlab { if (state.dataVentilatedSlab->VentSlab(Item).HCoilType == state.dataVentilatedSlab->Heating_WaterCoilType) { if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataVentilatedSlab->VentSlab(Item).MaxVolHotWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name, @@ -1973,7 +1967,7 @@ namespace VentilatedSlab { DoWaterCoilSizing = true; } else { if (PltSizHeatNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizHeatNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizHeatNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -1984,32 +1978,32 @@ namespace VentilatedSlab { } } if (DoWaterCoilSizing) { - if (FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { SizingMethod = HeatingCapacitySizing; if (state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex > 0) { zoneHVACIndex = state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2018,7 +2012,7 @@ namespace VentilatedSlab { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; @@ -2057,7 +2051,7 @@ namespace VentilatedSlab { "User-Specified Maximum Hot Water Flow [m3/s]", MaxVolHotWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotWaterFlowDes - MaxVolHotWaterFlowUser) / MaxVolHotWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVentilatedSlab: Potential issue with equipment sizing for ZoneHVAC:VentilatedSlab = \"" + state.dataVentilatedSlab->VentSlab(Item).Name + "\"."); ShowContinueError(state, @@ -2083,7 +2077,7 @@ namespace VentilatedSlab { if (state.dataVentilatedSlab->VentSlab(Item).HCoilType == state.dataVentilatedSlab->Heating_SteamCoilType) { if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataVentilatedSlab->VentSlab(Item).MaxVolHotSteamFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name, "User-Specified Maximum Steam Flow [m3/s]", state.dataVentilatedSlab->VentSlab(Item).MaxVolHotSteamFlow); @@ -2097,32 +2091,32 @@ namespace VentilatedSlab { PltSizHeatNum = MyPlantSizingIndex(state, "Coil:Heating:Steam", state.dataVentilatedSlab->VentSlab(Item).HCoilName, CoilSteamInletNode, CoilSteamOutletNode, ErrorsFound); if (PltSizHeatNum > 0) { - if (FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow >= SmallAirVolFlow) { SizingMethod = HeatingCapacitySizing; if (state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex > 0) { zoneHVACIndex = state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).HeatingCapMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == HeatingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedHeatingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity > 0.0) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).HeatingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedHeatingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledHeatingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2131,7 +2125,7 @@ namespace VentilatedSlab { sizerHeatingCapacity.overrideSizingString(SizingString); sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerHeatingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; @@ -2150,7 +2144,7 @@ namespace VentilatedSlab { Cp = GetSpecificHeatGlycol(state, fluidNameWater, DataGlobalConstants::HWInitConvTemp, DummyWaterIndex, RoutineName); rho = GetDensityGlycol(state, fluidNameWater, DataGlobalConstants::HWInitConvTemp, DummyWaterIndex, RoutineName); MaxVolHotSteamFlowDes = - DesCoilLoad / ((PlantSizData(PltSizHeatNum).DeltaT * Cp * rho) + SteamDensity * LatentHeatSteam); + DesCoilLoad / ((state.dataSize->PlantSizData(PltSizHeatNum).DeltaT * Cp * rho) + SteamDensity * LatentHeatSteam); } else { MaxVolHotSteamFlowDes = 0.0; } @@ -2174,7 +2168,7 @@ namespace VentilatedSlab { "User-Specified Maximum Steam Flow [m3/s]", MaxVolHotSteamFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolHotSteamFlowDes - MaxVolHotSteamFlowUser) / MaxVolHotSteamFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVentilatedSlab: Potential issue with equipment sizing for ZoneHVAC:VentilatedSlab = \"" + state.dataVentilatedSlab->VentSlab(Item).Name + "\"."); ShowContinueError(state, format("User-Specified Maximum Steam Flow of {:.5R} [m3/s]", MaxVolHotSteamFlowUser)); @@ -2197,7 +2191,7 @@ namespace VentilatedSlab { IsAutoSize = true; } if (CurZoneEqNum > 0) { - if (!IsAutoSize && !ZoneSizingRunDone) { + if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { if (state.dataVentilatedSlab->VentSlab(Item).MaxVolColdWaterFlow > 0.0) { BaseSizer::reportSizerOutput(state, state.dataVentilatedSlab->cMO_VentilatedSlab, state.dataVentilatedSlab->VentSlab(Item).Name, "User-Specified Maximum Cold Water Flow [m3/s]", state.dataVentilatedSlab->VentSlab(Item).MaxVolColdWaterFlow); @@ -2221,7 +2215,7 @@ namespace VentilatedSlab { DoWaterCoilSizing = true; } else { if (PltSizCoolNum > 0) { - WaterCoilSizDeltaT = PlantSizData(PltSizCoolNum).DeltaT; + WaterCoilSizDeltaT = state.dataSize->PlantSizData(PltSizCoolNum).DeltaT; DoWaterCoilSizing = true; } else { DoWaterCoilSizing = false; @@ -2232,32 +2226,32 @@ namespace VentilatedSlab { } } if (DoWaterCoilSizing) { - if (FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow >= SmallAirVolFlow) { + if (state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow >= SmallAirVolFlow) { SizingMethod = CoolingCapacitySizing; if (state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex > 0) { zoneHVACIndex = state.dataVentilatedSlab->VentSlab(Item).HVACSizingIndex; - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == CoolingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else { - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; } - TempSize = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } else if (CapSizingMethod == CapacityPerFloorArea) { ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedHeatingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFracOfAutosizedHeatingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; TempSize = AutoSize; - DataScalableCapSizingON = true; + state.dataSize->DataScalableCapSizingON = true; } } SizingString = ""; @@ -2266,12 +2260,12 @@ namespace VentilatedSlab { sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); DesCoilLoad = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } else { SizingString = ""; PrintFlag = false; TempSize = AutoSize; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); @@ -2301,7 +2295,7 @@ namespace VentilatedSlab { "User-Specified Maximum Cold Water Flow [m3/s]", MaxVolColdWaterFlowUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(MaxVolColdWaterFlowDes - MaxVolColdWaterFlowUser) / MaxVolColdWaterFlowUser) > AutoVsHardSizingThreshold) { + if ((std::abs(MaxVolColdWaterFlowDes - MaxVolColdWaterFlowUser) / MaxVolColdWaterFlowUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeVentilatedSlab: Potential issue with equipment sizing for ZoneHVAC:VentilatedSlab = \"" + state.dataVentilatedSlab->VentSlab(Item).Name + "\"."); ShowContinueError(state, format("User-Specified Maximum Cold Water Flow of {:.5R} [m3/s]", MaxVolColdWaterFlowUser)); @@ -3605,7 +3599,7 @@ namespace VentilatedSlab { // ELSE // CALL ShowRecurringWarningErrorAtEnd(state, 'Ventilated Slab ['//TRIM(VentSlab(Item)%Name)// & // '] Temperature Comparison Error shut-off occurrence continues.', & - // state.dataVentilatedSlab->VentSlab(Item)%CondErrCount) + // VentSlab(Item)%CondErrCount) // END IF // END IF @@ -3775,7 +3769,7 @@ namespace VentilatedSlab { } } // IF ((.NOT. FirstHVACIteration) .AND. & - // (ABS(Node(ReturnAirNode)%Temp-MAT(Zonenum)) > state.dataVentilatedSlab->VentSlabAirTempToler))THEN + // (ABS(Node(ReturnAirNode)%Temp-MAT(Zonenum)) > VentSlabAirTempToler))THEN // NeedtoIterate = .TRUE. // END IF // Node(ReturnAirNode)%Temp = MAT(Zonenum) @@ -3867,7 +3861,7 @@ namespace VentilatedSlab { // ELSE // CALL ShowRecurringWarningErrorAtEnd(state, 'Ventilated Slab ['//TRIM(VentSlab(Item)%Name)// & // '] shut-off occurrence continues due to temperature comparison error.', & - // state.dataVentilatedSlab->VentSlab(Item)%CondErrCount) + // VentSlab(Item)%CondErrCount) // END IF // END IF @@ -4533,7 +4527,7 @@ namespace VentilatedSlab { if (state.dataVentilatedSlab->VentSlab(Item).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataVentilatedSlab->VentSlab(Item).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataVentilatedSlab->VentSlab(Item).FirstPass); } } } diff --git a/src/EnergyPlus/WaterCoils.cc b/src/EnergyPlus/WaterCoils.cc index 7b73a6739d2..d01ebbb39ef 100644 --- a/src/EnergyPlus/WaterCoils.cc +++ b/src/EnergyPlus/WaterCoils.cc @@ -2030,25 +2030,14 @@ namespace WaterCoils { // Obtains flow rates from the zone or system sizing arrays and plant sizing data. UAs are // calculated by numerically inverting the individual coil calculation routines. - // REFERENCES: - // na - // Using/Aliasing using namespace DataSizing; using PlantUtilities::RegisterPlantCompDesignFlow; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE PARAMETER DEFINITIONS: static std::string const InitWaterCoil("InitWaterCoil"); static std::string const RoutineName("SizeWaterCoil"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 rho; int FieldNum = 2; // IDD numeric field number where input field description is found @@ -2071,6 +2060,9 @@ namespace WaterCoils { Real64 CpAirStd = PsyCpAirFnW(0.0); std::string CompName = state.dataWaterCoils->WaterCoil(CoilNum).Name; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + auto &OASysEqSizing(state.dataSize->OASysEqSizing); + // cooling coils if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilType == state.dataWaterCoils->CoilType_Cooling && state.dataWaterCoils->WaterCoil(CoilNum).RequestingAutoSize) { // find the appropriate Plant Sizing object @@ -2084,17 +2076,17 @@ namespace WaterCoils { if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilType == state.dataWaterCoils->CoilType_Cooling) { // 'Cooling' if (state.dataWaterCoils->WaterCoil(CoilNum).UseDesignWaterDeltaTemp) { - DataWaterCoilSizCoolDeltaT = state.dataWaterCoils->WaterCoil(CoilNum).DesignWaterDeltaTemp; + state.dataSize->DataWaterCoilSizCoolDeltaT = state.dataWaterCoils->WaterCoil(CoilNum).DesignWaterDeltaTemp; } else { if (PltSizCoolNum > 0) { - DataWaterCoilSizCoolDeltaT = PlantSizData(PltSizCoolNum).DeltaT; + state.dataSize->DataWaterCoilSizCoolDeltaT = state.dataSize->PlantSizData(PltSizCoolNum).DeltaT; } } if (PltSizCoolNum > 0) { - DataPltSizCoolNum = PltSizCoolNum; - DataWaterLoopNum = state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum; + state.dataSize->DataPltSizCoolNum = PltSizCoolNum; + state.dataSize->DataWaterLoopNum = state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum; if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilModel == state.dataWaterCoils->CoilModel_Detailed) { // 'DETAILED FLAT FIN' CompType = cAllCoilTypes(Coil_CoolingWaterDetailed); // Coil:Cooling:Water:DetailedGeometry @@ -2103,7 +2095,7 @@ namespace WaterCoils { } bPRINT = false; // do not print this sizing request since the autosized value is needed and this input may not be autosized (we should print this!) - if (state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate == DataFlowUsedForSizing) { + if (state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate == state.dataSize->DataFlowUsedForSizing) { TempSize = state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate; // represents parent object has hard-sized airflow } else { TempSize = AutoSize; // get the autosized air volume flow rate for use in other calculations @@ -2117,27 +2109,27 @@ namespace WaterCoils { state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataEnvrn->StdRhoAir * autoSizedValue; // inlet air mass flow rate is the autosized value // Check if the air volume flow rate is defined in parent HVAC equipment and set water coil design air volume flow rate accordingly - if (CurZoneEqNum > 0) { - if (ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent && state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate == autoSizedValue) { - DataAirFlowUsedForSizing = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataFlowUsedForSizing = ZoneEqSizing(CurZoneEqNum).AirVolFlow; + if (state.dataSize->CurZoneEqNum > 0) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent && state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate == autoSizedValue) { + state.dataSize->DataAirFlowUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataFlowUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = AutoSize; // represents water coil being autosized } else { - DataAirFlowUsedForSizing = autoSizedValue; // many autosized inputs use the design (autosized) air volume flow rate, save this value - DataFlowUsedForSizing = autoSizedValue; + state.dataSize->DataAirFlowUsedForSizing = autoSizedValue; // many autosized inputs use the design (autosized) air volume flow rate, save this value + state.dataSize->DataFlowUsedForSizing = autoSizedValue; } } else { - DataAirFlowUsedForSizing = autoSizedValue; // many autosized inputs use the design (autosized) air volume flow rate, save this value - DataFlowUsedForSizing = autoSizedValue; + state.dataSize->DataAirFlowUsedForSizing = autoSizedValue; // many autosized inputs use the design (autosized) air volume flow rate, save this value + state.dataSize->DataFlowUsedForSizing = autoSizedValue; } - if (CurSysNum > 0 && CurOASysNum == 0) { + if (state.dataSize->CurSysNum > 0 && state.dataSize->CurOASysNum == 0) { Real64 DesCoilExitHumRat(0.0); // fix coil sizing inconsistency - DataSizing::GetCoilDesFlowT(state, CurSysNum, CpAirStd, DesCoilAirFlow, DesCoilExitTemp, DesCoilExitHumRat); - DataAirFlowUsedForSizing = DesCoilAirFlow; - DataFlowUsedForSizing = DesCoilAirFlow; - DataDesOutletAirTemp = DesCoilExitTemp; - DataDesOutletAirHumRat = DesCoilExitHumRat; // need to test for dry coil but inlet conditions not yet known + DataSizing::GetCoilDesFlowT(state, state.dataSize->CurSysNum, CpAirStd, DesCoilAirFlow, DesCoilExitTemp, DesCoilExitHumRat); + state.dataSize->DataAirFlowUsedForSizing = DesCoilAirFlow; + state.dataSize->DataFlowUsedForSizing = DesCoilAirFlow; + state.dataSize->DataDesOutletAirTemp = DesCoilExitTemp; + state.dataSize->DataDesOutletAirHumRat = DesCoilExitHumRat; // need to test for dry coil but inlet conditions not yet known } // calculate pre-sizing data needed for specific functions (e.g., CoolingWaterDesAirInletTempSizing needs HRin and air flow) @@ -2149,26 +2141,26 @@ namespace WaterCoils { } CoolingWaterDesAirInletHumRatSizer sizerCWDesInHumRat; sizerCWDesInHumRat.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesInletAirHumRat = sizerCWDesInHumRat.size(state, TempSize, ErrorsFound); + state.dataSize->DataDesInletAirHumRat = sizerCWDesInHumRat.size(state, TempSize, ErrorsFound); TempSize = AutoSize; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); + state.dataSize->DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, ErrorsFound); TempSize = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; CoolingWaterflowSizer sizerCWWaterflow; sizerCWWaterflow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); Real64 autoSizedCWFlow = sizerCWWaterflow.size(state, TempSize, ErrorsFound); // Check if the water flow rate is defined in parent HVAC equipment and set water coil design water flow rate accordingly - if (CurZoneEqNum > 0) { - if (ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent) { - DataWaterFlowUsedForSizing = ZoneEqSizing(CurZoneEqNum).MaxCWVolFlow; + if (state.dataSize->CurZoneEqNum > 0) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent) { + state.dataSize->DataWaterFlowUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxCWVolFlow; } else { - DataWaterFlowUsedForSizing = autoSizedCWFlow; + state.dataSize->DataWaterFlowUsedForSizing = autoSizedCWFlow; } } else { - DataWaterFlowUsedForSizing = autoSizedCWFlow; + state.dataSize->DataWaterFlowUsedForSizing = autoSizedCWFlow; } // end pre-sizing data calculations @@ -2187,7 +2179,7 @@ namespace WaterCoils { CoolingWaterDesAirInletTempSizer sizerCWDesInletAirTemp; sizerCWDesInletAirTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp = sizerCWDesInletAirTemp.size(state, TempSize, ErrorsFound); - DataDesInletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp; + state.dataSize->DataDesInletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp; if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilModel == state.dataWaterCoils->CoilModel_Detailed) { // 'DETAILED FLAT FIN' bPRINT = false; // no field for detailed water coil, should print to eio anyway @@ -2203,7 +2195,7 @@ namespace WaterCoils { sizerCWDesWaterInTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp = sizerCWDesWaterInTemp.size(state, TempSize, ErrorsFound); - if (CurZoneEqNum > 0) { // zone equipment use air inlet humrat to calculate design outlet air temperature + if (state.dataSize->CurZoneEqNum > 0) { // zone equipment use air inlet humrat to calculate design outlet air temperature if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilModel == state.dataWaterCoils->CoilModel_Detailed) { // 'DETAILED FLAT FIN' bPRINT = false; // no field for detailed water coil, should print to eio anyway TempSize = AutoSize; // coil report @@ -2226,13 +2218,13 @@ namespace WaterCoils { SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [C]"; } - DataDesInletWaterTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp; // used for warning messages + state.dataSize->DataDesInletWaterTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp; // used for warning messages CoolingWaterDesAirOutletTempSizer sizerCWDesAirOutTemp; sizerCWDesAirOutTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp = sizerCWDesAirOutTemp.size(state, TempSize, ErrorsFound); - DataDesOutletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp; + state.dataSize->DataDesOutletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp; - if (CurSysNum > 0) { // This call can be deleted at a future time and remove the if ( CurZoneEqNum > 0 ) check above. This will + if (state.dataSize->CurSysNum > 0) { // This call can be deleted at a future time and remove the if ( CurZoneEqNum > 0 ) check above. This will // change the order of the eio file. if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilModel == state.dataWaterCoils->CoilModel_Detailed) { // 'DETAILED FLAT FIN' bPRINT = false; // no field for detailed water coil, should print this to eio anyway @@ -2255,22 +2247,22 @@ namespace WaterCoils { CoolingWaterDesAirOutletHumRatSizer sizerCWDesOutHumRat; sizerCWDesOutHumRat.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirHumRat = sizerCWDesOutHumRat.size(state, TempSize, ErrorsFound); - DataDesOutletAirHumRat = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirHumRat; + state.dataSize->DataDesOutletAirHumRat = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirHumRat; TempSize = AutoSize; bPRINT = true; if (state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate != AutoSize) bPRINT = false; - if (CurSysNum == 0) bPRINT = false; + if (state.dataSize->CurSysNum == 0) bPRINT = false; SizingString = "Design Coil Load [W]"; // there is no input field for this value and this is not the rated capacity (we should // always print this!) // air inlet/outlet conditions should be known. Don't include fan heat in capacity calculation. - DataDesAccountForFanHeat = false; + state.dataSize->DataDesAccountForFanHeat = false; CoolingCapacitySizer sizerCoolingCapacity2; sizerCoolingCapacity2.overrideSizingString(SizingString); sizerCoolingCapacity2.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesWaterCoolingCoilRate = sizerCoolingCapacity2.size(state, TempSize, ErrorsFound); - state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataEnvrn->StdRhoAir * DataFlowUsedForSizing; // inlet air mass flow rate is the autosized value - DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterCoolingCoilRate; + state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataEnvrn->StdRhoAir * state.dataSize->DataFlowUsedForSizing; // inlet air mass flow rate is the autosized value + state.dataSize->DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterCoolingCoilRate; // Why isn't the water volume flow rate based on the user inputs for inlet/outlet air/water temps? Water volume flow rate is // always based on autosized inputs. @@ -2278,7 +2270,7 @@ namespace WaterCoils { TempSize = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; sizerCWWaterflow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = sizerCWWaterflow.size(state, TempSize, ErrorsFound); - DataWaterFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; + state.dataSize->DataWaterFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; if (state.dataWaterCoils->WaterCoil(CoilNum).WaterCoilModel == state.dataWaterCoils->CoilModel_Detailed) { // 'DETAILED FLAT FIN' bPRINT = false; // do not print this sizing request since this coil does not have a design air flow rate input field (we @@ -2308,15 +2300,15 @@ namespace WaterCoils { bPRINT = true; SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum); // Auto size detailed cooling coil number of tubes per row = int( 13750.0 * WaterCoil( CoilNum ).MaxWaterVolFlowRate ) + 1 - DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; + state.dataSize->DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; TempSize = float(state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubesPerRow); CoolingWaterNumofTubesPerRowSizer sizerCWNumofTubesPerRow; sizerCWNumofTubesPerRow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubesPerRow = sizerCWNumofTubesPerRow.size(state, TempSize, ErrorsFound); // Auto size water coil fin diameter = 0.335 * WaterCoil( CoilNum ).InletAirMassFlowRate - DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; - DataFractionUsedForSizing = 0.335; + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; + state.dataSize->DataFractionUsedForSizing = 0.335; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).FinDiam; AutoCalculateSizer sizerFinDiameter; @@ -2327,8 +2319,8 @@ namespace WaterCoils { state.dataWaterCoils->WaterCoil(CoilNum).FinDiam = sizerFinDiameter.size(state, TempSize, ErrorsFound); // Auto size water coil minimum airflow area = 0.44 * WaterCoil( CoilNum ).InletAirMassFlowRate - DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; - DataFractionUsedForSizing = 0.44; + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; + state.dataSize->DataFractionUsedForSizing = 0.44; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).MinAirFlowArea; AutoCalculateSizer sizerMinAirFlowArea; @@ -2347,9 +2339,9 @@ namespace WaterCoils { } // Auto size water coil finned surface area = 78.5 * WaterCoil( CoilNum ).InletAirMassFlowRate - DataConstantUsedForSizing = + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; // actual autosized air mass flow rate, not calculated from user input - DataFractionUsedForSizing = 78.5; + state.dataSize->DataFractionUsedForSizing = 78.5; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).FinSurfArea; AutoCalculateSizer sizerFinSurfaceArea; @@ -2361,9 +2353,9 @@ namespace WaterCoils { // Auto size water coil total tube inside surface area = 4.4 * WaterCoil( CoilNum ).TubeInsideDiam * WaterCoil( CoilNum // ).NumOfTubeRows * WaterCoil( CoilNum ).NumOfTubesPerRow - DataConstantUsedForSizing = + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).TubeInsideDiam * state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubeRows * state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubesPerRow; - DataFractionUsedForSizing = 4.4; + state.dataSize->DataFractionUsedForSizing = 4.4; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).TotTubeInsideArea; AutoCalculateSizer sizerTubeInsideArea; @@ -2375,9 +2367,9 @@ namespace WaterCoils { // Auto size water coil total tube outside surface area = 4.1 * WaterCoil( CoilNum ).TubeOutsideDiam * WaterCoil( CoilNum // ).NumOfTubeRows * WaterCoil( CoilNum ).NumOfTubesPerRow - DataConstantUsedForSizing = + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).TubeOutsideDiam * state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubeRows * state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubesPerRow; - DataFractionUsedForSizing = 4.1; + state.dataSize->DataFractionUsedForSizing = 4.1; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).TubeOutsideSurfArea; AutoCalculateSizer sizerTubeOutsideArea; @@ -2398,8 +2390,8 @@ namespace WaterCoils { } // Auto size water coil coil depth = WaterCoil( CoilNum ).TubeDepthSpacing * WaterCoil( CoilNum ).NumOfTubeRows - DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).TubeDepthSpacing; - DataFractionUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubeRows; + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).TubeDepthSpacing; + state.dataSize->DataFractionUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).NumOfTubeRows; TempSize = state.dataWaterCoils->WaterCoil(CoilNum).CoilDepth; AutoCalculateSizer sizerCoilDepth; @@ -2409,21 +2401,21 @@ namespace WaterCoils { sizerCoilDepth.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).CoilDepth = sizerCoilDepth.size(state, TempSize, ErrorsFound); } - DataPltSizCoolNum = 0; // reset all globals to 0 to ensure correct sizing for other child components - DataWaterLoopNum = 0; - DataConstantUsedForSizing = 0.0; - DataFractionUsedForSizing = 0.0; - DataAirFlowUsedForSizing = 0.0; - DataFlowUsedForSizing = 0.0; - DataWaterFlowUsedForSizing = 0.0; - DataCapacityUsedForSizing = 0.0; - DataDesInletAirTemp = 0.0; - DataDesOutletAirTemp = 0.0; - DataDesOutletAirHumRat = 0.0; - DataDesInletAirHumRat = 0.0; - DataDesInletWaterTemp = 0.0; - DataWaterCoilSizCoolDeltaT = 0.0; - DataDesAccountForFanHeat = true; + state.dataSize->DataPltSizCoolNum = 0; // reset all globals to 0 to ensure correct sizing for other child components + state.dataSize->DataWaterLoopNum = 0; + state.dataSize->DataConstantUsedForSizing = 0.0; + state.dataSize->DataFractionUsedForSizing = 0.0; + state.dataSize->DataAirFlowUsedForSizing = 0.0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataWaterFlowUsedForSizing = 0.0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataDesInletAirTemp = 0.0; + state.dataSize->DataDesOutletAirTemp = 0.0; + state.dataSize->DataDesOutletAirHumRat = 0.0; + state.dataSize->DataDesInletAirHumRat = 0.0; + state.dataSize->DataDesInletWaterTemp = 0.0; + state.dataSize->DataWaterCoilSizCoolDeltaT = 0.0; + state.dataSize->DataDesAccountForFanHeat = true; } else { // If there is no cooling Plant Sizing object and autosizing was requested, issue fatal error message if (state.dataWaterCoils->WaterCoil(CoilNum).RequestingAutoSize) { @@ -2449,31 +2441,31 @@ namespace WaterCoils { if (state.dataWaterCoils->WaterCoil(CoilNum).UseDesignWaterDeltaTemp) { // use water design deltaT specified in the heating water coils - DataWaterCoilSizHeatDeltaT = state.dataWaterCoils->WaterCoil(CoilNum).DesignWaterDeltaTemp; + state.dataSize->DataWaterCoilSizHeatDeltaT = state.dataWaterCoils->WaterCoil(CoilNum).DesignWaterDeltaTemp; } else { if (PltSizHeatNum > 0) { - DataWaterCoilSizHeatDeltaT = PlantSizData(PltSizHeatNum).DeltaT; + state.dataSize->DataWaterCoilSizHeatDeltaT = state.dataSize->PlantSizData(PltSizHeatNum).DeltaT; } } if (PltSizHeatNum > 0) { - DataPltSizHeatNum = PltSizHeatNum; - DataWaterLoopNum = state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum; + state.dataSize->DataPltSizHeatNum = PltSizHeatNum; + state.dataSize->DataWaterLoopNum = state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum; rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum).FluidName, DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(state.dataWaterCoils->WaterCoil(CoilNum).WaterLoopNum).FluidIndex, RoutineName); Cp = GetSpecificHeatGlycol( - state, state.dataPlnt->PlantLoop(DataWaterLoopNum).FluidName, DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(DataWaterLoopNum).FluidIndex, RoutineName); + state, state.dataPlnt->PlantLoop(state.dataSize->DataWaterLoopNum).FluidName, DataGlobalConstants::HWInitConvTemp, state.dataPlnt->PlantLoop(state.dataSize->DataWaterLoopNum).FluidIndex, RoutineName); if (state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad > 0.0) { NomCapUserInp = true; - } else if (CurSysNum > 0 && CurSysNum <= DataHVACGlobals::NumPrimaryAirSys) { - if (FinalSysSizing(CurSysNum).HeatingCapMethod == CapacityPerFloorArea) { + } else if (state.dataSize->CurSysNum > 0 && state.dataSize->CurSysNum <= DataHVACGlobals::NumPrimaryAirSys) { + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatingCapMethod == CapacityPerFloorArea) { NomCapUserInp = true; - } else if (FinalSysSizing(CurSysNum).HeatingCapMethod == HeatingDesignCapacity && - FinalSysSizing(CurSysNum).HeatingTotalCapacity > 0.0) { + } else if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatingCapMethod == HeatingDesignCapacity && + state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).HeatingTotalCapacity > 0.0) { NomCapUserInp = true; } } else { @@ -2485,21 +2477,21 @@ namespace WaterCoils { CompType = cAllCoilTypes(Coil_HeatingWater); // "Coil:Heating:Water" CompName = state.dataWaterCoils->WaterCoil(CoilNum).Name; if (state.dataWaterCoils->WaterCoil(CoilNum).DesiccantRegenerationCoil) { - DataDesicRegCoil = true; - DataDesicDehumNum = state.dataWaterCoils->WaterCoil(CoilNum).DesiccantDehumNum; + state.dataSize->DataDesicRegCoil = true; + state.dataSize->DataDesicDehumNum = state.dataWaterCoils->WaterCoil(CoilNum).DesiccantDehumNum; HeatingCoilDesAirInletTempSizer sizerHeatingDesInletTemp; bool ErrorsFound = false; sizerHeatingDesInletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesInletAirTemp = sizerHeatingDesInletTemp.size(state, DataSizing::AutoSize, ErrorsFound); HeatingCoilDesAirOutletTempSizer sizerHeatingDesOutletTemp; ErrorsFound = false; sizerHeatingDesOutletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataDesOutletAirTemp = sizerHeatingDesOutletTemp.size(state, DataSizing::AutoSize, ErrorsFound); - if (CurOASysNum > 0) { - OASysEqSizing(CurOASysNum).AirFlow = true; - OASysEqSizing(CurOASysNum).AirVolFlow = FinalSysSizing(CurSysNum).DesOutAirVolFlow; + if (state.dataSize->CurOASysNum > 0) { + OASysEqSizing(state.dataSize->CurOASysNum).AirFlow = true; + OASysEqSizing(state.dataSize->CurOASysNum).AirVolFlow = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow; } TempSize = AutoSize; // reset back } @@ -2510,19 +2502,19 @@ namespace WaterCoils { sizingHeatingAirFlow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); TempSize = sizingHeatingAirFlow.size(state, TempSize, errorsFound); // reset the design air volume flow rate for air loop coils only - if (CurSysNum > 0) state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = TempSize; + if (state.dataSize->CurSysNum > 0) state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = TempSize; state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataEnvrn->StdRhoAir * TempSize; // inlet air mass flow rate is not the autosized value - DataAirFlowUsedForSizing = TempSize; - DataFlowUsedForSizing = TempSize; // many autosized inputs use the design (autosized) air flow rate, save this value + state.dataSize->DataAirFlowUsedForSizing = TempSize; + state.dataSize->DataFlowUsedForSizing = TempSize; // many autosized inputs use the design (autosized) air flow rate, save this value bPRINT = true; if (state.dataWaterCoils->WaterCoil(CoilNum).CoilPerfInpMeth == state.dataWaterCoils->NomCap && NomCapUserInp) { TempSize = state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad; - DataNomCapInpMeth = true; + state.dataSize->DataNomCapInpMeth = true; } else { TempSize = AutoSize; } - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { SizingType = HeatingCapacitySizing; FieldNum = 3; // N3 , \field Rated Capacity SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [W]"; @@ -2533,14 +2525,14 @@ namespace WaterCoils { TempSize = sizerHeatingCapacity.size(state, TempSize, errorsFound); state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = TempSize; state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad = TempSize; - DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate; + state.dataSize->DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate; } else { WaterHeatingCapacitySizer sizerWaterHeatingCapacity; bool ErrorsFound = false; sizerWaterHeatingCapacity.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = sizerWaterHeatingCapacity.size(state, TempSize, ErrorsFound); state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate; - DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate; + state.dataSize->DataCapacityUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate; } // We now have the design load if it was autosized. For the case of CoilPerfInpMeth == NomCap, calculate the air flow rate @@ -2549,8 +2541,8 @@ namespace WaterCoils { state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad / (CpAirStd * (state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp - state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp)); state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate / state.dataEnvrn->StdRhoAir; - DataAirFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate; - DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate; + state.dataSize->DataAirFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate; + state.dataSize->DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate; } TempSize = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; @@ -2558,31 +2550,31 @@ namespace WaterCoils { if (state.dataWaterCoils->WaterCoil(CoilNum).CoilPerfInpMeth == state.dataWaterCoils->NomCap && NomCapUserInp) { if (state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad > SmallLoad) { state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = - DataCapacityUsedForSizing / (Cp * rho * (state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp - state.dataWaterCoils->WaterCoil(CoilNum).DesOutletWaterTemp)); + state.dataSize->DataCapacityUsedForSizing / (Cp * rho * (state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp - state.dataWaterCoils->WaterCoil(CoilNum).DesOutletWaterTemp)); } else { state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = 0.0; } - DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; - DataFractionUsedForSizing = 1.0; + state.dataSize->DataConstantUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate; + state.dataSize->DataFractionUsedForSizing = 1.0; } HeatingWaterflowSizer sizerHWWaterflow; sizerHWWaterflow.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); Real64 sizedMaxWaterVolFlowRate = sizerHWWaterflow.size(state, TempSize, ErrorsFound); // Check if the water flow rate is defined in parent HVAC equipment and set water coil design water flow rate accordingly - if (CurZoneEqNum > 0) { - if (ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent) { - DataWaterFlowUsedForSizing = ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow; - state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow; + if (state.dataSize->CurZoneEqNum > 0) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).DesignSizeFromParent) { + state.dataSize->DataWaterFlowUsedForSizing = ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxHWVolFlow; + state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = ZoneEqSizing(state.dataSize->CurZoneEqNum).MaxHWVolFlow; } else { - DataWaterFlowUsedForSizing = sizedMaxWaterVolFlowRate; + state.dataSize->DataWaterFlowUsedForSizing = sizedMaxWaterVolFlowRate; state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = sizedMaxWaterVolFlowRate; } } else { - DataWaterFlowUsedForSizing = sizedMaxWaterVolFlowRate; + state.dataSize->DataWaterFlowUsedForSizing = sizedMaxWaterVolFlowRate; state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = sizedMaxWaterVolFlowRate; } - DataConstantUsedForSizing = 0.0; // reset these in case NomCapUserInp was true - DataFractionUsedForSizing = 0.0; + state.dataSize->DataConstantUsedForSizing = 0.0; // reset these in case NomCapUserInp was true + state.dataSize->DataFractionUsedForSizing = 0.0; if (state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate <= 0.0) { // MaxWaterVolFlowRateDes = 0.0; ShowWarningError(state, "The design coil load is zero for Coil:Heating:Water " + state.dataWaterCoils->WaterCoil(CoilNum).Name); @@ -2594,26 +2586,26 @@ namespace WaterCoils { // initialize the water coil inlet conditions bPRINT = false; // no need to print to eio since we only need the values - DataFlowUsedForSizing = DataAirFlowUsedForSizing; + state.dataSize->DataFlowUsedForSizing = state.dataSize->DataAirFlowUsedForSizing; if (state.dataWaterCoils->WaterCoil(CoilNum).CoilPerfInpMeth == state.dataWaterCoils->NomCap && NomCapUserInp) { state.dataWaterCoils->WaterCoil(CoilNum).InletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp; state.dataWaterCoils->WaterCoil(CoilNum).InletAirHumRat = PsyWFnTdbRhPb(state, state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirTemp, 0.5, state.dataEnvrn->StdBaroPress, RoutineName); - state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // don't need this - DataDesOutletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp; // for error messages - DataDesOutletAirHumRat = PsyWFnTdbRhPb(state, DataDesOutletAirTemp, 0.5, state.dataEnvrn->StdBaroPress, RoutineName); // for error messages - state.dataWaterCoils->WaterCoil(CoilNum).InletWaterMassFlowRate = rho * DataWaterFlowUsedForSizing; - state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterMassFlowRate = rho * DataWaterFlowUsedForSizing; + state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataSize->DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // don't need this + state.dataSize->DataDesOutletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesOutletAirTemp; // for error messages + state.dataSize->DataDesOutletAirHumRat = PsyWFnTdbRhPb(state, state.dataSize->DataDesOutletAirTemp, 0.5, state.dataEnvrn->StdBaroPress, RoutineName); // for error messages + state.dataWaterCoils->WaterCoil(CoilNum).InletWaterMassFlowRate = rho * state.dataSize->DataWaterFlowUsedForSizing; + state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterMassFlowRate = rho * state.dataSize->DataWaterFlowUsedForSizing; state.dataWaterCoils->WaterCoil(CoilNum).InletWaterTemp = state.dataWaterCoils->WaterCoil(CoilNum).DesInletWaterTemp; } else if (state.dataWaterCoils->WaterCoil(CoilNum).DesiccantRegenerationCoil) { - state.dataWaterCoils->WaterCoil(CoilNum).InletAirTemp = DataDesInletAirTemp; + state.dataWaterCoils->WaterCoil(CoilNum).InletAirTemp = state.dataSize->DataDesInletAirTemp; HeatingCoilDesAirInletHumRatSizer sizerHeatingDesInletHumRat; bool ErrorsFound = false; sizerHeatingDesInletHumRat.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirHumRat = sizerHeatingDesInletHumRat.size(state, DataSizing::AutoSize, ErrorsFound); state.dataWaterCoils->WaterCoil(CoilNum).InletAirHumRat = state.dataWaterCoils->WaterCoil(CoilNum).DesInletAirHumRat; - state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = DataAirFlowUsedForSizing; // coil report - state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // this is stiil volume flow! + state.dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = state.dataSize->DataAirFlowUsedForSizing; // coil report + state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate = state.dataSize->DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // this is stiil volume flow! } else { HeatingWaterDesAirInletTempSizer sizerHWDesInletTemp; sizerHWDesInletTemp.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); @@ -2633,44 +2625,44 @@ namespace WaterCoils { // zone and air loop coils use different design coil load calculations, air loop coils use air side capacity, // zone coils use water side capacity - DataDesInletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).InletAirTemp; // used in error mesages - DataDesInletAirHumRat = state.dataWaterCoils->WaterCoil(CoilNum).InletAirHumRat; // used in error mesages - DataFlowUsedForSizing = DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // used in error mesages - state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = DataWaterFlowUsedForSizing; // why is this here? + state.dataSize->DataDesInletAirTemp = state.dataWaterCoils->WaterCoil(CoilNum).InletAirTemp; // used in error mesages + state.dataSize->DataDesInletAirHumRat = state.dataWaterCoils->WaterCoil(CoilNum).InletAirHumRat; // used in error mesages + state.dataSize->DataFlowUsedForSizing = state.dataSize->DataAirFlowUsedForSizing * state.dataEnvrn->StdRhoAir; // used in error mesages + state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate = state.dataSize->DataWaterFlowUsedForSizing; // why is this here? if (!(state.dataWaterCoils->WaterCoil(CoilNum).CoilPerfInpMeth == state.dataWaterCoils->NomCap && NomCapUserInp)) { // get the design coil load used to size UA HeatingWaterDesCoilLoadUsedForUASizer sizerHWDesCoilLoadForUA; sizerHWDesCoilLoadForUA.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataCapacityUsedForSizing = sizerHWDesCoilLoadForUA.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataSize->DataCapacityUsedForSizing = sizerHWDesCoilLoadForUA.size(state, DataSizing::AutoSize, ErrorsFound); // get the water volume flow rate used to size UA HeatingWaterDesCoilWaterVolFlowUsedForUASizer sizerHWWaterVolFlowUA; sizerHWWaterVolFlowUA.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName); - DataWaterFlowUsedForSizing = sizerHWWaterVolFlowUA.size(state, DataSizing::AutoSize, ErrorsFound); - state.dataWaterCoils->WaterCoil(CoilNum).InletWaterTemp = PlantSizData(PltSizHeatNum).ExitTemp; - state.dataWaterCoils->WaterCoil(CoilNum).InletWaterMassFlowRate = rho * DataWaterFlowUsedForSizing; - state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterMassFlowRate = rho * DataWaterFlowUsedForSizing; - state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = DataCapacityUsedForSizing; + state.dataSize->DataWaterFlowUsedForSizing = sizerHWWaterVolFlowUA.size(state, DataSizing::AutoSize, ErrorsFound); + state.dataWaterCoils->WaterCoil(CoilNum).InletWaterTemp = state.dataSize->PlantSizData(PltSizHeatNum).ExitTemp; + state.dataWaterCoils->WaterCoil(CoilNum).InletWaterMassFlowRate = rho * state.dataSize->DataWaterFlowUsedForSizing; + state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterMassFlowRate = rho * state.dataSize->DataWaterFlowUsedForSizing; + state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = state.dataSize->DataCapacityUsedForSizing; } // calculate UA - if (CurSysNum > 0) state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad = DataCapacityUsedForSizing; + if (state.dataSize->CurSysNum > 0) state.dataWaterCoils->WaterCoil(CoilNum).DesTotWaterCoilLoad = state.dataSize->DataCapacityUsedForSizing; FieldNum = 1; // N1 , \field U-Factor Times Area Value bPRINT = true; // report to eio the UA value SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [W/K]"; - DataCoilNum = CoilNum; - DataFanOpMode = ContFanCycCoil; + state.dataSize->DataCoilNum = CoilNum; + state.dataSize->DataFanOpMode = ContFanCycCoil; if (state.dataWaterCoils->WaterCoil(CoilNum).CoilPerfInpMeth == state.dataWaterCoils->NomCap && NomCapUserInp) { TempSize = AutoSize; } else { TempSize = state.dataWaterCoils->WaterCoil(CoilNum).UACoil; } - DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; - DesCoilWaterInTempSaved = state.dataWaterCoils->WaterCoil(DataCoilNum).InletWaterTemp; + state.dataSize->DataFlowUsedForSizing = state.dataWaterCoils->WaterCoil(CoilNum).InletAirMassFlowRate; + DesCoilWaterInTempSaved = state.dataWaterCoils->WaterCoil(state.dataSize->DataCoilNum).InletWaterTemp; if (DesCoilWaterInTempSaved < DesCoilHWInletTempMin) { // at low coil design water inlet temp, sizing has convergence issue hence slightly higher water inlet temperature // is estimated in "EstimateCoilInletWaterTemp" and used for UA autosizing only - EstimateCoilInletWaterTemp(state, DataCoilNum, DataFanOpMode, 1.0, DataCapacityUsedForSizing, DesCoilInletWaterTempUsed); - state.dataWaterCoils->WaterCoil(DataCoilNum).InletWaterTemp = DesCoilInletWaterTempUsed; + EstimateCoilInletWaterTemp(state, state.dataSize->DataCoilNum, state.dataSize->DataFanOpMode, 1.0, state.dataSize->DataCapacityUsedForSizing, DesCoilInletWaterTempUsed); + state.dataWaterCoils->WaterCoil(state.dataSize->DataCoilNum).InletWaterTemp = DesCoilInletWaterTempUsed; } // must set DataCapacityUsedForSizing, DataWaterFlowUsedForSizing and DataFlowUsedForSizing to size UA. Any value of 0 will result // in UA = 1. @@ -2679,38 +2671,38 @@ namespace WaterCoils { state.dataWaterCoils->WaterCoil(CoilNum).UACoil = sizerHWCoilUA.size(state, TempSize, ErrorsFound); if (DesCoilWaterInTempSaved < DesCoilHWInletTempMin) { ShowWarningError(state, "Autosizing of heating coil UA for Coil:Heating:Water \"" + CompName + "\""); - ShowContinueError(state, format(" Plant design loop exit temperature = {:.2T} C", PlantSizData(DataPltSizHeatNum).ExitTemp)); + ShowContinueError(state, format(" Plant design loop exit temperature = {:.2T} C", state.dataSize->PlantSizData(state.dataSize->DataPltSizHeatNum).ExitTemp)); ShowContinueError(state, " Plant design loop exit temperature is low for design load and leaving air temperature anticipated."); ShowContinueError( state, format(" Heating coil UA-value is sized using coil water inlet temperature = {:.2T} C", DesCoilInletWaterTempUsed)); - state.dataWaterCoils->WaterCoil(DataCoilNum).InletWaterTemp = DesCoilWaterInTempSaved; // reset the Design Coil Inlet Water Temperature + state.dataWaterCoils->WaterCoil(state.dataSize->DataCoilNum).InletWaterTemp = DesCoilWaterInTempSaved; // reset the Design Coil Inlet Water Temperature } // if coil UA did not size due to one of these variables being 0, must set UACoilVariable to avoid crash later on - if (DataCapacityUsedForSizing == 0.0 || DataWaterFlowUsedForSizing == 0.0 || DataFlowUsedForSizing == 0.0) { + if (state.dataSize->DataCapacityUsedForSizing == 0.0 || state.dataSize->DataWaterFlowUsedForSizing == 0.0 || state.dataSize->DataFlowUsedForSizing == 0.0) { if (state.dataWaterCoils->WaterCoil(CoilNum).UACoilVariable == AutoSize) { state.dataWaterCoils->WaterCoil(CoilNum).UACoilVariable = state.dataWaterCoils->WaterCoil(CoilNum).UACoil; } } // WaterCoil(CoilNum).UACoilVariable = WaterCoil(CoilNum).UACoil; - state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = DataCapacityUsedForSizing; - state.dataWaterCoils->WaterCoil(DataCoilNum).InletWaterTemp = DesCoilWaterInTempSaved; // reset the Design Coil Inlet Water Temperature - - DataWaterLoopNum = 0; // reset all globals to 0 to ensure correct sizing for other child components - DataPltSizHeatNum = 0; - DataCoilNum = 0; - DataFanOpMode = 0; - DataCapacityUsedForSizing = 0.0; - DataWaterFlowUsedForSizing = 0.0; - DataDesInletAirTemp = 0.0; - DataDesInletAirHumRat = 0.0; - DataDesOutletAirTemp = 0.0; - DataDesOutletAirHumRat = 0.0; - DataAirFlowUsedForSizing = 0.0; - DataFlowUsedForSizing = 0.0; - DataDesicDehumNum = 0; - DataDesicRegCoil = false; - DataWaterCoilSizHeatDeltaT = 0.0; - DataNomCapInpMeth = false; + state.dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate = state.dataSize->DataCapacityUsedForSizing; + state.dataWaterCoils->WaterCoil(state.dataSize->DataCoilNum).InletWaterTemp = DesCoilWaterInTempSaved; // reset the Design Coil Inlet Water Temperature + + state.dataSize->DataWaterLoopNum = 0; // reset all globals to 0 to ensure correct sizing for other child components + state.dataSize->DataPltSizHeatNum = 0; + state.dataSize->DataCoilNum = 0; + state.dataSize->DataFanOpMode = 0; + state.dataSize->DataCapacityUsedForSizing = 0.0; + state.dataSize->DataWaterFlowUsedForSizing = 0.0; + state.dataSize->DataDesInletAirTemp = 0.0; + state.dataSize->DataDesInletAirHumRat = 0.0; + state.dataSize->DataDesOutletAirTemp = 0.0; + state.dataSize->DataDesOutletAirHumRat = 0.0; + state.dataSize->DataAirFlowUsedForSizing = 0.0; + state.dataSize->DataFlowUsedForSizing = 0.0; + state.dataSize->DataDesicDehumNum = 0; + state.dataSize->DataDesicRegCoil = false; + state.dataSize->DataWaterCoilSizHeatDeltaT = 0.0; + state.dataSize->DataNomCapInpMeth = false; } else { // if there is no heating Plant Sizing object and autosizng was requested, issue an error message @@ -2725,10 +2717,10 @@ namespace WaterCoils { // save the design water volumetric flow rate for use by the water loop sizing algorithms if (state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate > 0.0) { - RegisterPlantCompDesignFlow(state.dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum, state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum, state.dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate); } - if (ErrorsFound || DataErrorsFound) { + if (ErrorsFound || state.dataSize->DataErrorsFound) { ShowFatalError(state, "Preceding water coil sizing errors cause program termination"); } } @@ -5305,11 +5297,6 @@ namespace WaterCoils { // Puts UA into the water coil data structure, calls CalcSimpleHeatingCoil, and calculates // the residual as defined above. - // REFERENCES: - - // USE STATEMENTS: - using DataSizing::DataDesignCoilCapacity; // Data variable used in eq component sizing routines - // Return value Real64 Residuum; // residual to be minimized to zero @@ -5324,7 +5311,7 @@ namespace WaterCoils { state.dataWaterCoils->WaterCoil(CoilIndex).UACoilVariable = UA; CalcSimpleHeatingCoil(state, CoilIndex, FanOpMode, PartLoadRatio, state.dataWaterCoils->SimCalc); Residuum = (Par(1) - state.dataWaterCoils->WaterCoil(CoilIndex).TotWaterHeatingCoilRate) / Par(1); - DataDesignCoilCapacity = state.dataWaterCoils->WaterCoil(CoilIndex).TotWaterHeatingCoilRate; + state.dataSize->DataDesignCoilCapacity = state.dataWaterCoils->WaterCoil(CoilIndex).TotWaterHeatingCoilRate; return Residuum; } diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc index 8c060014a3c..1e5c75ba6f7 100644 --- a/src/EnergyPlus/WaterThermalTanks.cc +++ b/src/EnergyPlus/WaterThermalTanks.cc @@ -3486,7 +3486,7 @@ namespace EnergyPlus::WaterThermalTanks { } if (Tank.UseSide.loopSideNum == DataPlant::DemandSide && Tank.SourceInletNode != 0) { - PlantUtilities::RegisterPlantCompDesignFlow(Tank.SourceInletNode, Tank.SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, Tank.SourceInletNode, Tank.SourceDesignVolFlowRate); } } // WaterThermalTankNum @@ -3812,7 +3812,7 @@ namespace EnergyPlus::WaterThermalTanks { } if (Tank.UseSide.loopSideNum == DataPlant::DemandSide && Tank.SourceInletNode != 0) { - PlantUtilities::RegisterPlantCompDesignFlow(Tank.SourceInletNode, Tank.SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, Tank.SourceInletNode, Tank.SourceDesignVolFlowRate); } if (DataIPShortCuts::lAlphaFieldBlanks(13)) { @@ -5398,6 +5398,8 @@ namespace EnergyPlus::WaterThermalTanks { // METHODOLOGY EMPLOYED: // Inlet and outlet nodes are initialized. Scheduled values are retrieved for the current timestep. + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + static std::string const RoutineName("InitWaterThermalTank"); static std::string const GetWaterThermalTankInput("GetWaterThermalTankInput"); static std::string const SizeTankForDemand("SizeTankForDemandSide"); @@ -5931,11 +5933,11 @@ namespace EnergyPlus::WaterThermalTanks { "Evaporator air flow rate [m3/s]", state.dataWaterThermalTanks->HPWaterHeater(HPNum).OperatingAirFlowRate); } - DataSizing::DataNonZoneNonAirloopValue = state.dataWaterThermalTanks->HPWaterHeater(HPNum).OperatingAirFlowRate; + state.dataSize->DataNonZoneNonAirloopValue = state.dataWaterThermalTanks->HPWaterHeater(HPNum).OperatingAirFlowRate; state.dataWaterThermalTanks->HPWaterHeater(HPNum).OperatingAirMassFlowRate = state.dataWaterThermalTanks->HPWaterHeater(HPNum).OperatingAirFlowRate * state.dataEnvrn->StdRhoAir; - if (DataSizing::CurZoneEqNum > 0) { - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirVolFlow = DataSizing::DataNonZoneNonAirloopValue; + if (state.dataSize->CurZoneEqNum > 0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingAirVolFlow = state.dataSize->DataNonZoneNonAirloopValue; } if (state.dataPlnt->PlantFirstSizesOkayToReport || !state.dataGlobal->AnyPlantInModel || this->AlreadyRated) this->MyHPSizeFlag = false; } @@ -6166,7 +6168,7 @@ namespace EnergyPlus::WaterThermalTanks { state.dataWaterThermalTanks->HPWaterHeater(HPNum).HPWHAirMassFlowRate(state.dataWaterThermalTanks->HPWaterHeater(HPNum).NumofSpeed); } - } // IF(state.dataWaterThermalTanks->WaterThermalTank(WaterThermalTankNum)%HeatPumpNum .GT. 0)THEN + } // IF(WaterThermalTank(WaterThermalTankNum)%HeatPumpNum .GT. 0)THEN // calling CalcStandardRatings early bypasses fan sizing since DataSizing::DataNonZoneNonAirloopValue has not been set yet if (!this->AlreadyRated) { @@ -6423,7 +6425,7 @@ namespace EnergyPlus::WaterThermalTanks { // CASE (ControlTypeModulateWithUnderheat) ! Not yet implemented // Heater must not come back on until Qneeded >= Qmincap - // Mode = modstate.dataWaterThermalTanks->floatMode + // Mode = modfloatMode } } @@ -9852,7 +9854,7 @@ namespace EnergyPlus::WaterThermalTanks { } else { assert(this->TypeNum == DataPlant::TypeOf_WtrHeaterStratified); // For a stratified tank, the PLR is applied to the Coil.TotalHeatingEnergyRate - // whether that's a state.dataVariableSpeedCoils->VarSpeedCoil or DXCoils::DXCoil. + // whether that's a VarSpeedCoil or DXCoils::DXCoil. // Here we create a pointer to the TotalHeatingEnergyRate for the appropriate coil type. Real64 *CoilTotalHeatingEnergyRatePtr; if (isVariableSpeed) { @@ -10212,6 +10214,8 @@ namespace EnergyPlus::WaterThermalTanks { static std::string const RoutineName("SizeSupplySidePlantConnections"); + auto &PlantSizData(state.dataSize->PlantSizData); + Real64 tmpUseDesignVolFlowRate = this->UseDesignVolFlowRate; Real64 tmpSourceDesignVolFlowRate = this->SourceDesignVolFlowRate; @@ -10227,11 +10231,11 @@ namespace EnergyPlus::WaterThermalTanks { int PltSizNum = this->UseSidePlantSizNum; if (PltSizNum > 0) { // we have a Plant Sizing Object if (this->UseSide.loopSideNum == DataPlant::SupplySide) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - this->UseDesignVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + this->UseDesignVolFlowRate = PlantSizData(PltSizNum).DesVolFlowRate; } else { - tmpUseDesignVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + tmpUseDesignVolFlowRate = PlantSizData(PltSizNum).DesVolFlowRate; } } else { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { @@ -10248,9 +10252,9 @@ namespace EnergyPlus::WaterThermalTanks { this->Type, this->Name, "Initial Use Side Design Flow Rate [m3/s]", this->UseDesignVolFlowRate); } if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, this->UseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, this->UseDesignVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, tmpUseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, tmpUseDesignVolFlowRate); } Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->UseSide.loopNum).FluidName, @@ -10267,7 +10271,7 @@ namespace EnergyPlus::WaterThermalTanks { // do nothing } // plant sizing object } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, this->UseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, this->UseDesignVolFlowRate); Real64 rho; if (this->UseSide.loopNum > 0) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->UseSide.loopNum).FluidName, @@ -10288,11 +10292,11 @@ namespace EnergyPlus::WaterThermalTanks { int PltSizNum = this->SourceSidePlantSizNum; if (PltSizNum > 0) { if (this->SrcSide.loopSideNum == DataPlant::SupplySide) { - if (DataSizing::PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { + if (PlantSizData(PltSizNum).DesVolFlowRate >= DataHVACGlobals::SmallWaterVolFlow) { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - this->SourceDesignVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + this->SourceDesignVolFlowRate = PlantSizData(PltSizNum).DesVolFlowRate; } else { - tmpSourceDesignVolFlowRate = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate; + tmpSourceDesignVolFlowRate = PlantSizData(PltSizNum).DesVolFlowRate; } } else { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { @@ -10310,9 +10314,9 @@ namespace EnergyPlus::WaterThermalTanks { this->Type, this->Name, "Initial Source Side Design Flow Rate [m3/s]", this->SourceDesignVolFlowRate); } if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, this->SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, this->SourceDesignVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, tmpSourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, tmpSourceDesignVolFlowRate); } Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->SrcSide.loopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -10329,7 +10333,7 @@ namespace EnergyPlus::WaterThermalTanks { } // plant sizing object } else { if (this->SrcSide.loopSideNum == DataPlant::SupplySide) { - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, this->SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, this->SourceDesignVolFlowRate); Real64 rho; if (this->SrcSide.loopNum > 0) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->SrcSide.loopNum).FluidName, @@ -10826,10 +10830,12 @@ namespace EnergyPlus::WaterThermalTanks { // because the plant loop is not yet set up nor is plant sizing info populated. // sizing is done by calculating an initial // recovery rate that if continued would reheat tank in user specified amount of time. - // intial and final tank temperatures are 14.44 and reheat to 57.22 (values from CalcStandardRatings routine) + // initial and final tank temperatures are 14.44 and reheat to 57.22 (values from CalcStandardRatings routine) static std::string const RoutineName("SizeDemandSidePlantConnections"); + auto &PlantSizData(state.dataSize->PlantSizData); + Real64 tankRecoverhours = this->SizingRecoveryTime; bool ErrorsFound = false; Real64 tmpUseDesignVolFlowRate = this->UseDesignVolFlowRate; @@ -10861,7 +10867,7 @@ namespace EnergyPlus::WaterThermalTanks { // choose a flow rate that will allow the entire volume of the tank to go from 14.44 to 57.22 C // in user specified hours. // using the plant inlet design temp for sizing. - Real64 Tpdesign = DataSizing::PlantSizData(PltSizNum).ExitTemp; + Real64 Tpdesign = PlantSizData(PltSizNum).ExitTemp; Real64 eff = this->UseEffectiveness; if ((Tpdesign >= 58.0) && (!this->IsChilledWaterTank)) { if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { @@ -10901,9 +10907,9 @@ namespace EnergyPlus::WaterThermalTanks { this->Type, this->Name, "Initial Use Side Design Flow Rate [m3/s]", this->UseDesignVolFlowRate); } if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, this->UseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, this->UseDesignVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, tmpUseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, tmpUseDesignVolFlowRate); } Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->UseSide.loopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -10921,7 +10927,7 @@ namespace EnergyPlus::WaterThermalTanks { } else { // not autosized - report flow to RegisterPlantCompDesignFlow for supply side component sizing - PlantUtilities::RegisterPlantCompDesignFlow(this->UseInletNode, this->UseDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->UseInletNode, this->UseDesignVolFlowRate); Real64 rho; if (this->UseSide.loopNum > 0) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->UseSide.loopNum).FluidName, @@ -10943,7 +10949,7 @@ namespace EnergyPlus::WaterThermalTanks { // choose a flow rate that will allow the entire volume of the tank to go from 14.44 to 57.22 C // in user specified hours. // using the plant inlet design temp for sizing. - Real64 Tpdesign = DataSizing::PlantSizData(PltSizNum).ExitTemp; + Real64 Tpdesign = PlantSizData(PltSizNum).ExitTemp; Real64 eff = this->SourceEffectiveness; if ((Tpdesign >= 58.0) && (!this->IsChilledWaterTank)) { @@ -10985,9 +10991,9 @@ namespace EnergyPlus::WaterThermalTanks { this->Type, this->Name, "Initial Source Side Design Flow Rate [m3/s]", this->SourceDesignVolFlowRate); } if (state.dataPlnt->PlantFirstSizesOkayToFinalize) { - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, this->SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, this->SourceDesignVolFlowRate); } else { - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, tmpSourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, tmpSourceDesignVolFlowRate); } Real64 rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->SrcSide.loopNum).FluidName, DataGlobalConstants::InitConvTemp, @@ -11005,7 +11011,7 @@ namespace EnergyPlus::WaterThermalTanks { } else { // not autosized - report flow to RegisterPlantCompDesignFlow for supply side component sizing - PlantUtilities::RegisterPlantCompDesignFlow(this->SourceInletNode, this->SourceDesignVolFlowRate); + PlantUtilities::RegisterPlantCompDesignFlow(state, this->SourceInletNode, this->SourceDesignVolFlowRate); Real64 rho; if (this->SrcSide.loopNum > 0) { rho = FluidProperties::GetDensityGlycol(state, state.dataPlnt->PlantLoop(this->SrcSide.loopNum).FluidName, diff --git a/src/EnergyPlus/WaterToAirHeatPump.cc b/src/EnergyPlus/WaterToAirHeatPump.cc index ccac920ae3b..ac3d74f19c0 100644 --- a/src/EnergyPlus/WaterToAirHeatPump.cc +++ b/src/EnergyPlus/WaterToAirHeatPump.cc @@ -137,11 +137,11 @@ namespace WaterToAirHeatPump { // cycling fan/cycling compressor // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int HPNum; // The state.dataWaterToAirHeatPump->WatertoAirHP that you are currently loading input into + int HPNum; // The WatertoAirHP that you are currently loading input into - // Obtains and Allocates state.dataWaterToAirHeatPump->WatertoAirHP related parameters from input file + // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataWaterToAirHeatPump->GetCoilsInputFlag) { // First time subroutine has been entered state.dataWaterToAirHeatPump->WaterIndex = FindGlycol(state, fluidNameWater); // Initialize the WaterIndex once GetWatertoAirHPInput(state); @@ -418,7 +418,7 @@ namespace WaterToAirHeatPump { "System"); // save the design source side flow rate for use by plant loop sizing algorithms - RegisterPlantCompDesignFlow(state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).DesignWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).DesignWaterVolFlowRate); // create predefined report entries PreDefTableEntry(state, state.dataOutRptPredefined->pdchCoolCoilType, state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).Name, CurrentModuleObject); @@ -552,7 +552,7 @@ namespace WaterToAirHeatPump { "System"); // save the design source side flow rate for use by plant loop sizing algorithms - RegisterPlantCompDesignFlow(state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).DesignWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).DesignWaterVolFlowRate); // create predefined report entries PreDefTableEntry(state, state.dataOutRptPredefined->pdchHeatCoilType, state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).Name, CurrentModuleObject); @@ -962,21 +962,21 @@ namespace WaterToAirHeatPump { // ! Set heat pump simulation flag to false if the air loop and water loop conditions have not changed // IF( .NOT. (BeginEnvrnFlag .and. MyEnvrnFlag) .AND. (& - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletWaterTemp >= (Node(WaterInletNode)%Temp + TempTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletWaterTemp <= (Node(WaterInletNode)%Temp - TempTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletWaterEnthalpy >= (Node(WaterInletNode)%Enthalpy + EnthTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletWaterEnthalpy <= (Node(WaterInletNode)%Enthalpy - EnthTOL) .OR. &!! - - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirDBTemp >= (Node(AirInletNode)%Temp + TempTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirDBTemp <= (Node(AirInletNode)%Temp - TempTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirHumRat >= (Node(AirInletNode)%HumRat + HumRatTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirHumRat <= (Node(AirInletNode)%HumRat - HumRatTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirEnthalpy >= (Node(AirInletNode)%Enthalpy + EnthTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirEnthalpy <= (Node(AirInletNode)%Enthalpy - EnthTOL) .OR. & - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%InletAirMassFlowRate > 0.0))THEN - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag =.TRUE. + // WatertoAirHP(HPNum)%InletWaterTemp >= (Node(WaterInletNode)%Temp + TempTOL) .OR. & + // WatertoAirHP(HPNum)%InletWaterTemp <= (Node(WaterInletNode)%Temp - TempTOL) .OR. & + // WatertoAirHP(HPNum)%InletWaterEnthalpy >= (Node(WaterInletNode)%Enthalpy + EnthTOL) .OR. & + // WatertoAirHP(HPNum)%InletWaterEnthalpy <= (Node(WaterInletNode)%Enthalpy - EnthTOL) .OR. &!! + + // WatertoAirHP(HPNum)%InletAirDBTemp >= (Node(AirInletNode)%Temp + TempTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirDBTemp <= (Node(AirInletNode)%Temp - TempTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirHumRat >= (Node(AirInletNode)%HumRat + HumRatTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirHumRat <= (Node(AirInletNode)%HumRat - HumRatTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirEnthalpy >= (Node(AirInletNode)%Enthalpy + EnthTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirEnthalpy <= (Node(AirInletNode)%Enthalpy - EnthTOL) .OR. & + // WatertoAirHP(HPNum)%InletAirMassFlowRate > 0.0))THEN + // WatertoAirHP(HPNum)%SimFlag =.TRUE. // ELSE - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag =.FALSE. + // WatertoAirHP(HPNum)%SimFlag =.FALSE. // ENDIF if (((SensLoad != 0.0 || LatentLoad != 0.0) || (SensLoad == 0.0 && InitFlag)) && Node(AirInletNode).MassFlowRate > 0.0 && @@ -1360,7 +1360,7 @@ namespace WaterToAirHeatPump { // LOOP1: DO // NumIteration1=NumIteration1+1 // IF (NumIteration1.GT.STOP1) THEN - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag = .FALSE. + // WatertoAirHP(HPNum)%SimFlag = .FALSE. // RETURN // END IF // EffectiveSurfaceTemp=0.5d0*(EffectiveSurfaceTemp1+EffectiveSurfaceTemp2) @@ -1390,7 +1390,7 @@ namespace WaterToAirHeatPump { // LOOP2: DO // NumIteration1=NumIteration1+1 // IF (NumIteration1.GT.STOP1) THEN - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag = .FALSE. + // WatertoAirHP(HPNum)%SimFlag = .FALSE. // RETURN // END IF // EvapTemp=0.5d0*(EvapTemp1+EvapTemp2) @@ -1488,7 +1488,7 @@ namespace WaterToAirHeatPump { // LOOP: DO // NumIteration1=NumIteration1+1 // IF (NumIteration1.GT.STOP1) THEN - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag = .FALSE. + // WatertoAirHP(HPNum)%SimFlag = .FALSE. // RETURN // END IF // CompSuctionTemp = 0.5d0 * ( CompSuctionTemp1 + CompSuctionTemp2 ) @@ -2033,7 +2033,7 @@ namespace WaterToAirHeatPump { // LOOP: DO // NumIteration1=NumIteration1+1 // IF (NumIteration1.GT.STOP1) THEN - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag = .FALSE. + // WatertoAirHP(HPNum)%SimFlag = .FALSE. // RETURN // END IF // CompSuctionTemp = 0.5d0 * ( CompSuctionTemp1 + CompSuctionTemp2 ) @@ -2154,9 +2154,9 @@ namespace WaterToAirHeatPump { state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).PartLoadRatio = PartLoadRatio; // Air-side outlet conditions are already calculated above - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%OutletAirDBTemp=LoadSideOutletDBTemp - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%OutletAirHumRat=LoadsideOutletHumRat - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%OutletAirEnthalpy = LoadSideAirOutletEnth + // WatertoAirHP(HPNum)%OutletAirDBTemp=LoadSideOutletDBTemp + // WatertoAirHP(HPNum)%OutletAirHumRat=LoadsideOutletHumRat + // WatertoAirHP(HPNum)%OutletAirEnthalpy = LoadSideAirOutletEnth state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).OutletAirMassFlowRate = LoadSideMassFlowRate; state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).OutletWaterTemp = SourceSideOutletTemp; @@ -2170,7 +2170,7 @@ namespace WaterToAirHeatPump { // End Algorithm Section of the Module // ***************************************************************************** - // Beginning of Update subroutines for the state.dataWaterToAirHeatPump->WatertoAirHP Module + // Beginning of Update subroutines for the WatertoAirHP Module // ***************************************************************************** void UpdateWatertoAirHP(EnergyPlusData &state, int const HPNum) @@ -2199,7 +2199,7 @@ namespace WaterToAirHeatPump { Real64 ReportingConstant; ReportingConstant = TimeStepSys * DataGlobalConstants::SecInHour; - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%SimFlag=.FALSE. + // WatertoAirHP(HPNum)%SimFlag=.FALSE. if (!state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).SimFlag) { // Heatpump is off; just pass through conditions state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).Power = 0.0; @@ -2209,10 +2209,10 @@ namespace WaterToAirHeatPump { state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).QLatent = 0.0; state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).QSource = 0.0; // These will be overwritten below based on variables above that are already set to 0. - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%EnergyLoadTotal=0.0 - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%EnergySensible=0.0 - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%EnergySource=0.0 - // state.dataWaterToAirHeatPump->WatertoAirHP(HPNum)%EnergyLatent=0.0 + // WatertoAirHP(HPNum)%EnergyLoadTotal=0.0 + // WatertoAirHP(HPNum)%EnergySensible=0.0 + // WatertoAirHP(HPNum)%EnergySource=0.0 + // WatertoAirHP(HPNum)%EnergyLatent=0.0 state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).RunFrac = 0.0; state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).PartLoadRatio = 0.0; state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).OutletAirDBTemp = state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).InletAirDBTemp; @@ -2229,7 +2229,7 @@ namespace WaterToAirHeatPump { AirOutletNode = state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).AirOutletNodeNum; WaterOutletNode = state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterOutletNodeNum; - // Set the outlet air nodes of the state.dataWaterToAirHeatPump->WatertoAirHP + // Set the outlet air nodes of the WatertoAirHP Node(AirOutletNode).MassFlowRate = Node(AirInletNode).MassFlowRate; Node(AirOutletNode).Temp = state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).OutletAirDBTemp; Node(AirOutletNode).HumRat = state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).OutletAirHumRat; @@ -2267,7 +2267,7 @@ namespace WaterToAirHeatPump { } } - // End of Update subroutines for the state.dataWaterToAirHeatPump->WatertoAirHP Module + // End of Update subroutines for the WatertoAirHP Module // ***************************************************************************** Real64 CalcEffectiveSHR(EnergyPlusData &state, int const HPNum, // Index number for cooling coil @@ -2479,7 +2479,7 @@ namespace WaterToAirHeatPump { // Return value int IndexNum; // returned index of matched coil - // Obtains and Allocates state.dataWaterToAirHeatPump->WatertoAirHP related parameters from input file + // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataWaterToAirHeatPump->GetCoilsInputFlag) { // First time subroutine has been entered GetWatertoAirHPInput(state); state.dataWaterToAirHeatPump->WaterIndex = FindGlycol(state, fluidNameWater); // Initialize the WaterIndex once @@ -2522,7 +2522,7 @@ namespace WaterToAirHeatPump { // FUNCTION LOCAL VARIABLE DECLARATIONS: int WhichCoil; - // Obtains and Allocates state.dataWaterToAirHeatPump->WatertoAirHP related parameters from input file + // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataWaterToAirHeatPump->GetCoilsInputFlag) { // First time subroutine has been entered state.dataWaterToAirHeatPump->WaterIndex = FindGlycol(state, fluidNameWater); // Initialize the WaterIndex once GetWatertoAirHPInput(state); @@ -2578,7 +2578,7 @@ namespace WaterToAirHeatPump { // FUNCTION LOCAL VARIABLE DECLARATIONS: int WhichCoil; - // Obtains and Allocates state.dataWaterToAirHeatPump->WatertoAirHP related parameters from input file + // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataWaterToAirHeatPump->GetCoilsInputFlag) { // First time subroutine has been entered GetWatertoAirHPInput(state); state.dataWaterToAirHeatPump->WaterIndex = FindGlycol(state, fluidNameWater); // Initialize the WaterIndex once @@ -2625,7 +2625,7 @@ namespace WaterToAirHeatPump { // FUNCTION LOCAL VARIABLE DECLARATIONS: int WhichCoil; - // Obtains and Allocates state.dataWaterToAirHeatPump->WatertoAirHP related parameters from input file + // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataWaterToAirHeatPump->GetCoilsInputFlag) { // First time subroutine has been entered GetWatertoAirHPInput(state); state.dataWaterToAirHeatPump->WaterIndex = FindGlycol(state, fluidNameWater); // Initialize the WaterIndex once diff --git a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc index 858d547530e..d246d2e5ff2 100644 --- a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc +++ b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc @@ -1116,14 +1116,12 @@ namespace WaterToAirHeatPumpSimple { // and heating capacities of a DX heat pump system will be identical. In real life the ARI // heating and cooling capacities are close but not identical. - // REFERENCES: - // na + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); // Using/Aliasing using namespace Psychrometrics; using DataHVACGlobals::SmallAirVolFlow; using DataHVACGlobals::SmallLoad; - using PlantUtilities::MyPlantSizingIndex; using PlantUtilities::RegisterPlantCompDesignFlow; using namespace OutputReportPredefined; @@ -1131,19 +1129,10 @@ namespace WaterToAirHeatPumpSimple { using FluidProperties::GetSpecificHeatGlycol; using CurveManager::CurveValue; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: static std::string const RoutineName("SizeWaterToAirCoil"); static std::string const RoutineNameAlt("SizeHVACWaterToAir"); - // INTERFACE BLOCK SPECIFICATIONS - // na - - // DERIVED TYPE DEFINITIONS - // na - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 rhoair; Real64 MixTemp; @@ -1190,18 +1179,18 @@ namespace WaterToAirHeatPumpSimple { PltSizNum = 0; ErrorsFound = false; IsAutoSize = false; - if (SysSizingRunDone || ZoneSizingRunDone) { + if (state.dataSize->SysSizingRunDone || state.dataSize->ZoneSizingRunDone) { HardSizeNoDesRun = false; } else { HardSizeNoDesRun = true; } - if (CurSysNum > 0) { - CheckThisAirSystemForSizing(CurSysNum, SizingDesRunThisAirSys); + if (state.dataSize->CurSysNum > 0) { + CheckThisAirSystemForSizing(state, state.dataSize->CurSysNum, SizingDesRunThisAirSys); } else { SizingDesRunThisAirSys = false; } - if (CurZoneEqNum > 0) { - CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone); + if (state.dataSize->CurZoneEqNum > 0) { + CheckThisZoneForSizing(state, state.dataSize->CurZoneEqNum, SizingDesRunThisZone); } else { SizingDesRunThisZone = false; } @@ -1220,7 +1209,7 @@ namespace WaterToAirHeatPumpSimple { if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate == AutoSize) { IsAutoSize = true; } - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!IsAutoSize && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate > 0.0) { @@ -1232,13 +1221,13 @@ namespace WaterToAirHeatPumpSimple { } else { CheckSysSizing(state, "COIL:" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT", state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); - if (FinalSysSizing(CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { - RatedAirVolFlowRateDes = FinalSysSizing(CurSysNum).DesMainVolFlow; + if (state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow >= SmallAirVolFlow) { + RatedAirVolFlowRateDes = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesMainVolFlow; } else { RatedAirVolFlowRateDes = 0.0; } } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { if (!IsAutoSize && !SizingDesRunThisZone) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate > 0.0) { @@ -1250,7 +1239,7 @@ namespace WaterToAirHeatPumpSimple { } else { CheckZoneSizing(state, "COIL:" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT", state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); - RatedAirVolFlowRateDes = max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow); + RatedAirVolFlowRateDes = max(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); if (RatedAirVolFlowRateDes < SmallAirVolFlow) { RatedAirVolFlowRateDes = 0.0; } @@ -1273,7 +1262,7 @@ namespace WaterToAirHeatPumpSimple { "User-Specified Rated Air Flow Rate [m3/s]", RatedAirVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedAirVolFlowRateDes - RatedAirVolFlowRateUser) / RatedAirVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedAirVolFlowRateDes - RatedAirVolFlowRateUser) / RatedAirVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACWaterToAir: Potential issue with equipment sizing for coil " + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -1298,7 +1287,7 @@ namespace WaterToAirHeatPumpSimple { RatedCapCoolTotalAutoSized = true; } if (SizingDesRunThisAirSys || SizingDesRunThisZone) HardSizeNoDesRun = false; - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!RatedCapCoolTotalAutoSized && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal > 0.0) { @@ -1312,46 +1301,46 @@ namespace WaterToAirHeatPumpSimple { state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); VolFlowRate = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (CurOASysNum > 0) { // coil is in the OA stream - MixTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).OutHumRatAtCoolPeak; - SupTemp = FinalSysSizing(CurSysNum).PrecoolTemp; - SupHumRat = FinalSysSizing(CurSysNum).PrecoolHumRat; + if (state.dataSize->CurOASysNum > 0) { // coil is in the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat; } else { // coil is on the main air loop - SupTemp = FinalSysSizing(CurSysNum).CoolSupTemp; - SupHumRat = FinalSysSizing(CurSysNum).CoolSupHumRat; - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing(CurSysNum).MixTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat; + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if (VolFlowRate > 0.0) { - OutAirFrac = FinalSysSizing(CurSysNum).DesOutAirVolFlow / VolFlowRate; + OutAirFrac = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow / VolFlowRate; } else { OutAirFrac = 1.0; } OutAirFrac = min(1.0, max(0.0, OutAirFrac)); - MixTemp = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolTemp + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetTempAtCoolPeak; - MixHumRat = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolHumRat + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetHumRatAtCoolPeak; + MixTemp = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetHumRatAtCoolPeak; } } // supply air condition is capped with that of mixed air to avoid SHR > 1.0 SupTemp = min(MixTemp, SupTemp); SupHumRat = min(MixHumRat, SupHumRat); - OutTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; + OutTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, MixTemp, MixHumRat, RoutineName); MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); SupEnth = PsyHFnTdbW(SupTemp, SupHumRat); Real64 FanCoolLoad = 0.0; - if (DataFanEnumType > -1 && DataFanIndex > -1) { // add fan heat to coil load - switch (DataFanEnumType) { + if (state.dataSize->DataFanEnumType > -1 && state.dataSize->DataFanIndex > -1) { // add fan heat to coil load + switch (state.dataSize->DataFanEnumType) { case DataAirSystems::structArrayLegacyFanModels: { - FanCoolLoad = Fans::FanDesHeatGain(state, DataFanIndex, VolFlowRate); + FanCoolLoad = Fans::FanDesHeatGain(state, state.dataSize->DataFanIndex, VolFlowRate); break; } case DataAirSystems::objectVectorOOFanSystemModel: { - FanCoolLoad = HVACFan::fanObjs[DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); + FanCoolLoad = HVACFan::fanObjs[state.dataSize->DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); break; } case DataAirSystems::fanModelTypeNotYetSet: { @@ -1360,9 +1349,9 @@ namespace WaterToAirHeatPumpSimple { } } // end switch Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); - } else if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { + } else if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); } } @@ -1379,7 +1368,7 @@ namespace WaterToAirHeatPumpSimple { } else { RatedCapCoolTotalDes = CoolCapAtPeak; } - coilSelectionReportObj->setCoilEntAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixTemp, CurSysNum, CurZoneEqNum); + coilSelectionReportObj->setCoilEntAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixTemp, state.dataSize->CurSysNum, state.dataSize->CurZoneEqNum); coilSelectionReportObj->setCoilEntAirHumRat(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixHumRat); coilSelectionReportObj->setCoilLvgAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, SupTemp); coilSelectionReportObj->setCoilLvgAirHumRat(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, SupHumRat); @@ -1387,7 +1376,7 @@ namespace WaterToAirHeatPumpSimple { RatedCapCoolTotalDes = 0.0; } } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { if (!RatedCapCoolTotalAutoSized && !SizingDesRunThisZone) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal > 0.0) { @@ -1401,41 +1390,41 @@ namespace WaterToAirHeatPumpSimple { state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); VolFlowRate = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (ZoneEqDXCoil) { - if (ZoneEqSizing(CurZoneEqNum).OAVolFlow > 0.0) { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow > 0.0) { + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak; - MixHumRat = FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak; } } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } - SupTemp = FinalZoneSizing(CurZoneEqNum).CoolDesTemp; - SupHumRat = FinalZoneSizing(CurZoneEqNum).CoolDesHumRat; + SupTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesTemp; + SupHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesHumRat; // supply air condition is capped with that of mixed air to avoid SHR > 1.0 SupTemp = min(MixTemp, SupTemp); SupHumRat = min(MixHumRat, SupHumRat); - TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CurZoneEqNum).CoolDDNum; + TimeStepNumAtMax = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDDNum; if (DDNum > 0 && TimeStepNumAtMax > 0) { - OutTemp = DesDayWeath(DDNum).Temp(TimeStepNumAtMax); + OutTemp = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepNumAtMax); } else { OutTemp = 0.0; } rhoair = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, MixTemp, MixHumRat, RoutineName); MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); SupEnth = PsyHFnTdbW(SupTemp, SupHumRat); - if (DataFanEnumType > -1 && DataFanIndex > -1) { // add fan heat to coil load - switch (DataFanEnumType) { + if (state.dataSize->DataFanEnumType > -1 && state.dataSize->DataFanIndex > -1) { // add fan heat to coil load + switch (state.dataSize->DataFanEnumType) { case DataAirSystems::structArrayLegacyFanModels: { - FanCoolLoad = Fans::FanDesHeatGain(state, DataFanIndex, VolFlowRate); + FanCoolLoad = Fans::FanDesHeatGain(state, state.dataSize->DataFanIndex, VolFlowRate); break; } case DataAirSystems::objectVectorOOFanSystemModel: { - FanCoolLoad = HVACFan::fanObjs[DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); + FanCoolLoad = HVACFan::fanObjs[state.dataSize->DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); break; } case DataAirSystems::fanModelTypeNotYetSet: { @@ -1444,7 +1433,7 @@ namespace WaterToAirHeatPumpSimple { } } // end switch Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (DataSizing::DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { + if (state.dataSize->DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); } else { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); @@ -1462,7 +1451,7 @@ namespace WaterToAirHeatPumpSimple { } else { RatedCapCoolTotalDes = CoolCapAtPeak; } - coilSelectionReportObj->setCoilEntAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixTemp, CurSysNum, CurZoneEqNum); + coilSelectionReportObj->setCoilEntAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixTemp, state.dataSize->CurSysNum, state.dataSize->CurZoneEqNum); coilSelectionReportObj->setCoilEntAirHumRat(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, MixHumRat); coilSelectionReportObj->setCoilLvgAirTemp(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, SupTemp); coilSelectionReportObj->setCoilLvgAirHumRat(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, CompType, SupHumRat); @@ -1479,7 +1468,7 @@ namespace WaterToAirHeatPumpSimple { RatedCapCoolSensAutoSized = true; } if (SizingDesRunThisAirSys || SizingDesRunThisZone) HardSizeNoDesRun = false; - if (CurSysNum > 0) { + if (state.dataSize->CurSysNum > 0) { if (!RatedCapCoolSensAutoSized && !SizingDesRunThisAirSys) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolSens > 0.0) { @@ -1493,46 +1482,46 @@ namespace WaterToAirHeatPumpSimple { state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); VolFlowRate = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (CurOASysNum > 0) { // coil is in the OA stream - MixTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).OutHumRatAtCoolPeak; - SupTemp = FinalSysSizing(CurSysNum).PrecoolTemp; - SupHumRat = FinalSysSizing(CurSysNum).PrecoolHumRat; + if (state.dataSize->CurOASysNum > 0) { // coil is in the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat; } else { // coil is on the main air loop - SupTemp = FinalSysSizing(CurSysNum).CoolSupTemp; - SupHumRat = FinalSysSizing(CurSysNum).CoolSupHumRat; - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing(CurSysNum).MixTempAtCoolPeak; - MixHumRat = FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak; + SupTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupTemp; + SupHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).CoolSupHumRat; + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).NumOACoolCoils == 0) { // there is no precooling of the OA stream + MixTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixTempAtCoolPeak; + MixHumRat = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if (VolFlowRate > 0.0) { - OutAirFrac = FinalSysSizing(CurSysNum).DesOutAirVolFlow / VolFlowRate; + OutAirFrac = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).DesOutAirVolFlow / VolFlowRate; } else { OutAirFrac = 1.0; } OutAirFrac = min(1.0, max(0.0, OutAirFrac)); - MixTemp = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolTemp + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetTempAtCoolPeak; - MixHumRat = OutAirFrac * FinalSysSizing(CurSysNum).PrecoolHumRat + - (1.0 - OutAirFrac) * FinalSysSizing(CurSysNum).RetHumRatAtCoolPeak; + MixTemp = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolTemp + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).PrecoolHumRat + + (1.0 - OutAirFrac) * state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).RetHumRatAtCoolPeak; } } // supply air condition is capped with that of mixed air to avoid SHR > 1.0 SupTemp = min(MixTemp, SupTemp); SupHumRat = min(MixHumRat, SupHumRat); - OutTemp = FinalSysSizing(CurSysNum).OutTempAtCoolPeak; + OutTemp = state.dataSize->FinalSysSizing(state.dataSize->CurSysNum).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->StdBaroPress, MixTemp, MixHumRat, RoutineName); MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); SupEnth = PsyHFnTdbW(SupTemp, MixHumRat); Real64 FanCoolLoad = 0.0; - if (DataFanEnumType > -1 && DataFanIndex > -1) { // add fan heat to coil load - switch (DataFanEnumType) { + if (state.dataSize->DataFanEnumType > -1 && state.dataSize->DataFanIndex > -1) { // add fan heat to coil load + switch (state.dataSize->DataFanEnumType) { case DataAirSystems::structArrayLegacyFanModels: { - FanCoolLoad = Fans::FanDesHeatGain(state, DataFanIndex, VolFlowRate); + FanCoolLoad = Fans::FanDesHeatGain(state, state.dataSize->DataFanIndex, VolFlowRate); break; } case DataAirSystems::objectVectorOOFanSystemModel: { - FanCoolLoad = HVACFan::fanObjs[DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); + FanCoolLoad = HVACFan::fanObjs[state.dataSize->DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); break; } case DataAirSystems::fanModelTypeNotYetSet: { @@ -1541,9 +1530,9 @@ namespace WaterToAirHeatPumpSimple { } } // end switch Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { + if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::BlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); - } else if (state.dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { + } else if (state.dataAirSystemsData->PrimaryAirSystems(state.dataSize->CurSysNum).supFanLocation == DataAirSystems::fanPlacement::DrawThru) { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); } } @@ -1564,7 +1553,7 @@ namespace WaterToAirHeatPumpSimple { RatedCapCoolSensDes = 0.0; } } - } else if (CurZoneEqNum > 0) { + } else if (state.dataSize->CurZoneEqNum > 0) { if (!RatedCapCoolSensAutoSized && !SizingDesRunThisZone) { // Simulation continue HardSizeNoDesRun = true; if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolSens > 0.0) { @@ -1578,27 +1567,27 @@ namespace WaterToAirHeatPumpSimple { state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name); VolFlowRate = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate; if (VolFlowRate >= SmallAirVolFlow) { - if (ZoneEqDXCoil) { - if (ZoneEqSizing(CurZoneEqNum).OAVolFlow > 0.0) { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + if (state.dataSize->ZoneEqDXCoil) { + if (ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow > 0.0) { + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak; - MixHumRat = FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak; } } else { - MixTemp = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp; - MixHumRat = FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat; + MixTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInTemp; + MixHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolCoilInHumRat; } - SupTemp = FinalZoneSizing(CurZoneEqNum).CoolDesTemp; - SupHumRat = FinalZoneSizing(CurZoneEqNum).CoolDesHumRat; + SupTemp = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesTemp; + SupHumRat = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDesHumRat; // supply air condition is capped with that of mixed air to avoid SHR > 1.0 SupTemp = min(MixTemp, SupTemp); SupHumRat = min(MixHumRat, SupHumRat); - TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CurZoneEqNum).CoolDDNum; + TimeStepNumAtMax = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).CoolDDNum; if (DDNum > 0 && TimeStepNumAtMax > 0) { - OutTemp = DesDayWeath(DDNum).Temp(TimeStepNumAtMax); + OutTemp = state.dataSize->DesDayWeath(DDNum).Temp(TimeStepNumAtMax); } else { OutTemp = 0.0; } @@ -1606,14 +1595,14 @@ namespace WaterToAirHeatPumpSimple { MixEnth = PsyHFnTdbW(MixTemp, MixHumRat); SupEnth = PsyHFnTdbW(SupTemp, MixHumRat); Real64 FanCoolLoad = 0.0; - if (DataFanEnumType > -1 && DataFanIndex > -1) { // add fan heat to coil load - switch (DataFanEnumType) { + if (state.dataSize->DataFanEnumType > -1 && state.dataSize->DataFanIndex > -1) { // add fan heat to coil load + switch (state.dataSize->DataFanEnumType) { case DataAirSystems::structArrayLegacyFanModels: { - FanCoolLoad = Fans::FanDesHeatGain(state, DataFanIndex, VolFlowRate); + FanCoolLoad = Fans::FanDesHeatGain(state, state.dataSize->DataFanIndex, VolFlowRate); break; } case DataAirSystems::objectVectorOOFanSystemModel: { - FanCoolLoad = HVACFan::fanObjs[DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); + FanCoolLoad = HVACFan::fanObjs[state.dataSize->DataFanIndex]->getFanDesignHeatGain(state, VolFlowRate); break; } case DataAirSystems::fanModelTypeNotYetSet: { @@ -1622,7 +1611,7 @@ namespace WaterToAirHeatPumpSimple { } } // end switch Real64 CpAir = PsyCpAirFnW(MixHumRat); - if (DataSizing::DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { + if (state.dataSize->DataFanPlacement == DataSizing::zoneFanPlacement::zoneBlowThru) { MixTemp += FanCoolLoad / (CpAir * rhoair * VolFlowRate); } else { SupTemp -= FanCoolLoad / (CpAir * rhoair * VolFlowRate); @@ -1689,7 +1678,7 @@ namespace WaterToAirHeatPumpSimple { "User-Specified Rated Total Cooling Capacity [W]", RatedCapCoolTotalUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedCapCoolTotalDes - RatedCapCoolTotalUser) / RatedCapCoolTotalUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedCapCoolTotalDes - RatedCapCoolTotalUser) / RatedCapCoolTotalUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACWaterToAir: Potential issue with equipment sizing for coil " + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -1708,9 +1697,9 @@ namespace WaterToAirHeatPumpSimple { CompType, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal, RatedCapCoolTotalAutoSized, - CurSysNum, - CurZoneEqNum, - CurOASysNum, + state.dataSize->CurSysNum, + state.dataSize->CurZoneEqNum, + state.dataSize->CurOASysNum, FanCoolLoad, TotCapTempModFac, -999.0, @@ -1743,7 +1732,7 @@ namespace WaterToAirHeatPumpSimple { "User-Specified Rated Sensible Cooling Capacity [W]", RatedCapCoolSensUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedCapCoolSensDes - RatedCapCoolSensUser) / RatedCapCoolSensUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedCapCoolSensDes - RatedCapCoolSensUser) / RatedCapCoolSensUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACWaterToAir: Potential issue with equipment sizing for coil " + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -1760,7 +1749,7 @@ namespace WaterToAirHeatPumpSimple { } // Set the global DX cooling coil capacity variable for use by other objects if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType == "COOLING") { - DXCoolCap = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal; + state.dataSize->DXCoolCap = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal; } // test autosized sensible and total cooling capacity for total > sensible if ((RatedCapCoolSensAutoSized && RatedCapCoolTotalAutoSized) || RatedCapCoolSensAutoSized) { @@ -1832,7 +1821,7 @@ namespace WaterToAirHeatPumpSimple { if (SizingDesRunThisAirSys || SizingDesRunThisZone) HardSizeNoDesRun = false; // simply set heating capacity equal to the cooling capacity if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType == "HEATING") { - RatedCapHeatDes = DXCoolCap; + RatedCapHeatDes = state.dataSize->DXCoolCap; if (RatedCapHeatDes == AutoSize) { ShowWarningError(state, "COIL:" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -1868,7 +1857,7 @@ namespace WaterToAirHeatPumpSimple { "User-Specified Rated Heating Capacity [W]", RatedCapHeatUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedCapHeatDes - RatedCapHeatUser) / RatedCapHeatUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedCapHeatDes - RatedCapHeatUser) / RatedCapHeatUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACWaterToAir: Potential issue with equipment sizing for coil " + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -1923,9 +1912,9 @@ namespace WaterToAirHeatPumpSimple { CompType, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapHeat, IsAutoSize, - CurSysNum, - CurZoneEqNum, - CurOASysNum, + state.dataSize->CurSysNum, + state.dataSize->CurZoneEqNum, + state.dataSize->CurOASysNum, FanCoolLoad, TotCapTempModFac, -999.0, @@ -1969,17 +1958,17 @@ namespace WaterToAirHeatPumpSimple { if (PltSizNum > 0) { rho = GetDensityGlycol(state, state.dataPlnt->PlantLoop(state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).LoopNum).FluidName, - PlantSizData(PltSizNum).ExitTemp, + state.dataSize->PlantSizData(PltSizNum).ExitTemp, state.dataPlnt->PlantLoop(state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).LoopNum).FluidIndex, RoutineNameAlt); Cp = GetSpecificHeatGlycol(state, state.dataPlnt->PlantLoop(state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).LoopNum).FluidName, - PlantSizData(PltSizNum).ExitTemp, + state.dataSize->PlantSizData(PltSizNum).ExitTemp, state.dataPlnt->PlantLoop(state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).LoopNum).FluidIndex, RoutineNameAlt); if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType == "HEATING") { - RatedWaterVolFlowRateDes = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapHeat / (PlantSizData(PltSizNum).DeltaT * Cp * rho); + RatedWaterVolFlowRateDes = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapHeat / (state.dataSize->PlantSizData(PltSizNum).DeltaT * Cp * rho); } else if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType == "COOLING") { // use companion heating coil capacity to calculate volumetric flow rate @@ -1989,7 +1978,7 @@ namespace WaterToAirHeatPumpSimple { SystemCapacity = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal; } - RatedWaterVolFlowRateDes = SystemCapacity / (PlantSizData(PltSizNum).DeltaT * Cp * rho); + RatedWaterVolFlowRateDes = SystemCapacity / (state.dataSize->PlantSizData(PltSizNum).DeltaT * Cp * rho); } } else { ShowSevereError(state, "Autosizing of water flow requires a loop Sizing:Plant object"); @@ -2015,7 +2004,7 @@ namespace WaterToAirHeatPumpSimple { "User-Specified Rated Water Flow Rate [m3/s]", RatedWaterVolFlowRateUser); if (state.dataGlobal->DisplayExtraWarnings) { - if ((std::abs(RatedWaterVolFlowRateDes - RatedWaterVolFlowRateUser) / RatedWaterVolFlowRateUser) > AutoVsHardSizingThreshold) { + if ((std::abs(RatedWaterVolFlowRateDes - RatedWaterVolFlowRateUser) / RatedWaterVolFlowRateUser) > state.dataSize->AutoVsHardSizingThreshold) { ShowMessage(state, "SizeHVACWaterToAir: Potential issue with equipment sizing for coil " + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType + ":WATERTOAIRHEATPUMP:EQUATIONFIT \"" + state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name + "\""); @@ -2031,7 +2020,7 @@ namespace WaterToAirHeatPumpSimple { // Save component design water volumetric flow rate. // Use 1/2 flow since both cooling and heating coil will save flow yet only 1 will operate at a time if (state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedWaterVolFlowRate > 0.0) { - RegisterPlantCompDesignFlow(state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedWaterVolFlowRate); + RegisterPlantCompDesignFlow(state, state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterInletNodeNum, 0.5 * state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedWaterVolFlowRate); } } diff --git a/src/EnergyPlus/WaterUse.cc b/src/EnergyPlus/WaterUse.cc index 460085bcebc..bf0689dd6f5 100644 --- a/src/EnergyPlus/WaterUse.cc +++ b/src/EnergyPlus/WaterUse.cc @@ -574,7 +574,7 @@ namespace WaterUse { state.dataWaterUse->WaterEquipment(thisWaterEquipNum).PeakVolFlowRate * Psychrometrics::RhoH2O(DataGlobalConstants::InitConvTemp); } } - PlantUtilities::RegisterPlantCompDesignFlow(state.dataWaterUse->WaterConnections(WaterConnNum).InletNode, + PlantUtilities::RegisterPlantCompDesignFlow(state, state.dataWaterUse->WaterConnections(WaterConnNum).InletNode, state.dataWaterUse->WaterConnections(WaterConnNum).PeakMassFlowRate / Psychrometrics::RhoH2O(DataGlobalConstants::InitConvTemp)); } @@ -1198,7 +1198,7 @@ namespace WaterUse { this->ReturnTemp = this->ColdSupplyTemp; this->WasteTemp = this->DrainTemp; - } else { // state.dataWaterUse->WaterConnections(WaterConnNum)%TotalMassFlowRate > 0.0 + } else { // WaterConnections(WaterConnNum)%TotalMassFlowRate > 0.0 { auto const SELECT_CASE_var(this->HeatRecoveryConfig); diff --git a/src/EnergyPlus/WeatherManager.cc b/src/EnergyPlus/WeatherManager.cc index a3539de572c..fa2d5c85a2a 100644 --- a/src/EnergyPlus/WeatherManager.cc +++ b/src/EnergyPlus/WeatherManager.cc @@ -1732,7 +1732,7 @@ namespace WeatherManager { ReportMissing_RangeData(state); } - // set the state.dataGlobal->EndDesignDayEnvrnsFlag (dataGlobal) + // set the EndDesignDayEnvrnsFlag (dataGlobal) // True at the end of the last design day environment (last time step of last hour of last day of environ which is a design day) state.dataGlobal->EndDesignDayEnvrnsFlag = false; if (state.dataGlobal->EndEnvrnFlag) { diff --git a/src/EnergyPlus/WindowAC.cc b/src/EnergyPlus/WindowAC.cc index 55c7538a592..8395a7f78be 100644 --- a/src/EnergyPlus/WindowAC.cc +++ b/src/EnergyPlus/WindowAC.cc @@ -194,8 +194,8 @@ namespace WindowAC { QZnReq = 0.0; } - ZoneEqDXCoil = true; - ZoneCoolingOnlyFan = true; + state.dataSize->ZoneEqDXCoil = true; + state.dataSize->ZoneCoolingOnlyFan = true; // Initialize the window AC unit InitWindowAC(state, WindACNum, QZnReq, ZoneNum, FirstHVACIteration); @@ -205,8 +205,8 @@ namespace WindowAC { // Report the result of the simulation ReportWindowAC(state, WindACNum); - ZoneEqDXCoil = false; - ZoneCoolingOnlyFan = false; + state.dataSize->ZoneEqDXCoil = false; + state.dataSize->ZoneCoolingOnlyFan = false; } void GetWindowAC(EnergyPlusData &state) @@ -239,7 +239,6 @@ namespace WindowAC { using DataHVACGlobals::cFanTypes; using DataHVACGlobals::FanType_SimpleConstVolume; using DataHVACGlobals::FanType_SimpleOnOff; - using DataSizing::ZoneHVACSizing; using MixedAir::GetOAMixerIndex; using MixedAir::GetOAMixerNodeNumbers; @@ -505,7 +504,7 @@ namespace WindowAC { state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex = 0; if (!lAlphaBlanks(14)) { - state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(14), ZoneHVACSizing); + state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex = UtilityRoutines::FindItemInList(Alphas(14), state.dataSize->ZoneHVACSizing); if (state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex == 0) { ShowSevereError(state, cAlphaFields(14) + " = " + Alphas(14) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataWindowAC->WindAC(WindACNum).Name); @@ -916,6 +915,8 @@ namespace WindowAC { // METHODOLOGY EMPLOYED: // Obtains flow rates from the zone or system sizing arrays + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + // Using/Aliasing using namespace DataSizing; using DataHVACGlobals::CoolingCapacitySizing; @@ -948,56 +949,56 @@ namespace WindowAC { MaxAirVolFlowUser = 0.0; OutAirVolFlowDes = 0.0; OutAirVolFlowUser = 0.0; - DataFracOfAutosizedCoolingAirflow = 1.0; - DataFracOfAutosizedHeatingAirflow = 1.0; - DataFracOfAutosizedCoolingCapacity = 1.0; - DataFracOfAutosizedHeatingCapacity = 1.0; - DataScalableSizingON = false; - ZoneHeatingOnlyFan = false; - ZoneCoolingOnlyFan = true; - DataScalableCapSizingON = false; + state.dataSize->DataFracOfAutosizedCoolingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedHeatingAirflow = 1.0; + state.dataSize->DataFracOfAutosizedCoolingCapacity = 1.0; + state.dataSize->DataFracOfAutosizedHeatingCapacity = 1.0; + state.dataSize->DataScalableSizingON = false; + state.dataSize->ZoneHeatingOnlyFan = false; + state.dataSize->ZoneCoolingOnlyFan = true; + state.dataSize->DataScalableCapSizingON = false; CompType = "ZoneHVAC:WindowAirConditioner"; CompName = state.dataWindowAC->WindAC(WindACNum).Name; - DataZoneNumber = state.dataWindowAC->WindAC(WindACNum).ZonePtr; + state.dataSize->DataZoneNumber = state.dataWindowAC->WindAC(WindACNum).ZonePtr; if (state.dataWindowAC->WindAC(WindACNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state.dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; } else { - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state.dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; } - DataSizing::DataFanIndex = state.dataWindowAC->WindAC(WindACNum).FanIndex; + state.dataSize->DataFanIndex = state.dataWindowAC->WindAC(WindACNum).FanIndex; if (state.dataWindowAC->WindAC(WindACNum).FanPlace == BlowThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; } else if (state.dataWindowAC->WindAC(WindACNum).FanPlace == DrawThru) { - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state.dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; } - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { if (state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex > 0) { zoneHVACIndex = state.dataWindowAC->WindAC(WindACNum).HVACSizingIndex; // N1 , \field Maximum Supply Air Flow Rate SizingMethod = DataHVACGlobals::CoolingAirflowSizing; PrintFlag = true; - SAFMethod = ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; + SAFMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingSAFMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = SAFMethod; if (SAFMethod == None || SAFMethod == SupplyAirFlowRate || SAFMethod == FlowPerFloorArea || SAFMethod == FractionOfAutosizedCoolingAirflow) { if (SAFMethod == SupplyAirFlowRate) { - if (ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; } - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } else if (SAFMethod == FlowPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).SystemAirFlow = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - TempSize = ZoneEqSizing(CurZoneEqNum).AirVolFlow; - DataScalableSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SystemAirFlow = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + TempSize = ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow; + state.dataSize->DataScalableSizingON = true; } else if (SAFMethod == FractionOfAutosizedCoolingAirflow) { - DataFracOfAutosizedCoolingAirflow = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataFracOfAutosizedCoolingAirflow = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; TempSize = AutoSize; - DataScalableSizingON = true; + state.dataSize->DataScalableSizingON = true; } else { - TempSize = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + TempSize = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; } bool errorsFound = false; CoolingAirFlowSizer sizingCoolingAirFlow; @@ -1012,17 +1013,17 @@ namespace WindowAC { SizingMethod = CoolingCapacitySizing; TempSize = AutoSize; PrintFlag = false; - DataScalableSizingON = true; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; - if (ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableSizingON = true; + state.dataSize->DataFlowUsedForSizing = state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod == FractionOfAutosizedCoolingCapacity) { + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } bool errorsFound = false; CoolingCapacitySizer sizerCoolingCapacity; sizerCoolingCapacity.overrideSizingString(SizingString); sizerCoolingCapacity.initializeWithinEP(state, CompType, CompName, PrintFlag, RoutineName); - DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, errorsFound); - DataFlowPerCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; + state.dataSize->DataCapacityUsedForSizing = sizerCoolingCapacity.size(state, TempSize, errorsFound); + state.dataSize->DataFlowPerCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).MaxCoolAirVolFlow; PrintFlag = true; TempSize = AutoSize; errorsFound = false; @@ -1037,23 +1038,23 @@ namespace WindowAC { // DataScalableSizingON = false; // initialize capacity sizing variables: cooling - CapSizingMethod = ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; + CapSizingMethod = state.dataSize->ZoneHVACSizing(zoneHVACIndex).CoolingCapMethod; + ZoneEqSizing(state.dataSize->CurZoneEqNum).SizingMethod(SizingMethod) = CapSizingMethod; if (CapSizingMethod == CoolingDesignCapacity || CapSizingMethod == CapacityPerFloorArea || CapSizingMethod == FractionOfAutosizedCoolingCapacity) { if (CapSizingMethod == HeatingDesignCapacity) { - if (ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + if (state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity > 0.0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; } } else if (CapSizingMethod == CapacityPerFloorArea) { - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = - ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(DataZoneNumber).FloorArea; - DataScalableCapSizingON = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).CoolingCapacity = true; + ZoneEqSizing(state.dataSize->CurZoneEqNum).DesCoolingLoad = + state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity * state.dataHeatBal->Zone(state.dataSize->DataZoneNumber).FloorArea; + state.dataSize->DataScalableCapSizingON = true; } else if (CapSizingMethod == FractionOfAutosizedCoolingCapacity) { - DataFracOfAutosizedCoolingCapacity = ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; - DataScalableCapSizingON = true; + state.dataSize->DataFracOfAutosizedCoolingCapacity = state.dataSize->ZoneHVACSizing(zoneHVACIndex).ScaledCoolingCapacity; + state.dataSize->DataScalableCapSizingON = true; } } } else { @@ -1075,12 +1076,12 @@ namespace WindowAC { if (state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow == AutoSize) { - if (CurZoneEqNum > 0) { + if (state.dataSize->CurZoneEqNum > 0) { CheckZoneSizing(state, state.dataWindowAC->cWindowAC_UnitTypes(state.dataWindowAC->WindAC(WindACNum).UnitType), state.dataWindowAC->WindAC(WindACNum).Name); state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow = - min(FinalZoneSizing(CurZoneEqNum).MinOA, state.dataWindowAC->WindAC(WindACNum).MaxAirVolFlow); + min(state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).MinOA, state.dataWindowAC->WindAC(WindACNum).MaxAirVolFlow); if (state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow < SmallAirVolFlow) { state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow = 0.0; } @@ -1091,12 +1092,12 @@ namespace WindowAC { } } - if (CurZoneEqNum > 0) { - ZoneEqSizing(CurZoneEqNum).OAVolFlow = state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = state.dataWindowAC->WindAC(WindACNum).MaxAirVolFlow; + if (state.dataSize->CurZoneEqNum > 0) { + ZoneEqSizing(state.dataSize->CurZoneEqNum).OAVolFlow = state.dataWindowAC->WindAC(WindACNum).OutAirVolFlow; + ZoneEqSizing(state.dataSize->CurZoneEqNum).AirVolFlow = state.dataWindowAC->WindAC(WindACNum).MaxAirVolFlow; } - DataScalableCapSizingON = false; + state.dataSize->DataScalableCapSizingON = false; } void SimCyclingWindowAC(EnergyPlusData &state, @@ -1256,7 +1257,7 @@ namespace WindowAC { if (state.dataWindowAC->WindAC(WindACNum).FirstPass) { // reset sizing flags so other zone equipment can size normally if (!state.dataGlobal->SysSizingCalc) { - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, state.dataWindowAC->WindAC(WindACNum).FirstPass); + DataSizing::resetHVACSizingGlobals(state, state.dataSize->CurZoneEqNum, 0, state.dataWindowAC->WindAC(WindACNum).FirstPass); } } } diff --git a/src/EnergyPlus/WindowComplexManager.cc b/src/EnergyPlus/WindowComplexManager.cc index 9692f8c378c..994d26a4b15 100644 --- a/src/EnergyPlus/WindowComplexManager.cc +++ b/src/EnergyPlus/WindowComplexManager.cc @@ -189,15 +189,15 @@ namespace WindowComplexManager { state.dataWindowComplexManager->WindowList(state.dataWindowComplexManager->NumComplexWind).NumStates = 1; // Having found the construction reference in // the Surface array defines the first state for this window state.dataWindowComplexManager->WindowList(state.dataWindowComplexManager->NumComplexWind).SurfNo = ISurf; - // state.dataWindowComplexManager->WindowList( state.dataWindowComplexManager-> NumComplexWind ).Azimuth = DegToRadians * Surface( ISurf ).Azimuth; - // state.dataWindowComplexManager->WindowList( state.dataWindowComplexManager-> NumComplexWind ).Tilt = DegToRadians * Surface( ISurf ).Tilt; + // WindowList( NumComplexWind ).Azimuth = DegToRadians * Surface( ISurf ).Azimuth; + // WindowList( NumComplexWind ).Tilt = DegToRadians * Surface( ISurf ).Tilt; state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).InitInc = state.dataWindowComplexManager->Calculate_Geometry; state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).InitTrn = state.dataWindowComplexManager->Calculate_Geometry; state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).CopyIncState = 0; state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).CopyTrnState = 0; state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).Konst = IConst; // Simon Check: ThermalConstruction assigned to current construction - // state.dataWindowComplexManager->WindowStateList(NumComplexWind, NumStates)%ThermConst = ThConst + // WindowStateList(NumComplexWind, NumStates)%ThermConst = ThConst for (int I = 1; I <= state.dataWindowComplexManager->NumBasis; ++I) { // Find basis in Basis List if (state.dataConstruction->Construct(IConst).BSDFInput.BasisMatIndex == state.dataWindowComplexManager->BasisList(I).BasisMatIndex) { state.dataWindowComplexManager->WindowStateList(NumStates, state.dataWindowComplexManager->NumComplexWind).IncBasisIndx = I; // Note: square property matrices @@ -304,7 +304,7 @@ namespace WindowComplexManager { // SurfaceWindow(ISurf)%ComplexFen%State(IState)%ThermConst = ThConst if (state.dataWindowComplexManager->WindowStateList(IState, IWind).InitInc == state.dataWindowComplexManager->Calculate_Geometry) { state.dataBSDFWindow->ComplexWind(ISurf).Geom(IState).Inc = - state.dataWindowComplexManager->BasisList(state.dataWindowComplexManager->WindowStateList(IState, IWind).IncBasisIndx); // Put in the basis structure from the state.dataWindowComplexManager->BasisList + state.dataWindowComplexManager->BasisList(state.dataWindowComplexManager->WindowStateList(IState, IWind).IncBasisIndx); // Put in the basis structure from the BasisList state.dataBSDFWindow->ComplexWind(ISurf).Geom(IState).Trn = state.dataWindowComplexManager->BasisList(state.dataWindowComplexManager->WindowStateList(IState, IWind).TrnBasisIndx); SetupComplexWindowStateGeometry(state, diff --git a/src/EnergyPlus/ZoneAirLoopEquipmentManager.cc b/src/EnergyPlus/ZoneAirLoopEquipmentManager.cc index cbd6e5271a2..b18754019a5 100644 --- a/src/EnergyPlus/ZoneAirLoopEquipmentManager.cc +++ b/src/EnergyPlus/ZoneAirLoopEquipmentManager.cc @@ -135,7 +135,7 @@ namespace ZoneAirLoopEquipmentManager { state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).Name)); } } - DataSizing::CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).TermUnitSizingNum; + state.dataSize->CurTermUnitSizingNum = state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).TermUnitSizingNum; InitZoneAirLoopEquipment(state, AirDistUnitNum, ControlledZoneNum, ActualZoneNum); InitZoneAirLoopEquipmentTimeStep(state, AirDistUnitNum); @@ -272,7 +272,7 @@ namespace ZoneAirLoopEquipmentManager { state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).AirTerminalSizingSpecIndex = 0; if (!lAlphaBlanks(5)) { state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).AirTerminalSizingSpecIndex = - UtilityRoutines::FindItemInList(AlphArray(5), DataSizing::AirTerminalSizingSpec); + UtilityRoutines::FindItemInList(AlphArray(5), state.dataSize->AirTerminalSizingSpec); if (state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).AirTerminalSizingSpecIndex == 0) { ShowSevereError(state, cAlphaFields(5) + " = " + AlphArray(5) + " not found."); ShowContinueError(state, "Occurs in " + CurrentModuleObject + " = " + state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).Name); @@ -503,11 +503,11 @@ namespace ZoneAirLoopEquipmentManager { // Fill TermUnitSizing with specs from DesignSpecification:AirTerminal:Sizing { - auto &thisTermUnitSizingData(DataSizing::TermUnitSizing(thisADU.TermUnitSizingNum)); + auto &thisTermUnitSizingData(state.dataSize->TermUnitSizing(thisADU.TermUnitSizingNum)); thisTermUnitSizingData.ADUName = thisADU.Name; if (thisADU.AirTerminalSizingSpecIndex > 0) { { - auto const &thisAirTermSizingSpec(DataSizing::AirTerminalSizingSpec(thisADU.AirTerminalSizingSpecIndex)); + auto const &thisAirTermSizingSpec(state.dataSize->AirTerminalSizingSpec(thisADU.AirTerminalSizingSpecIndex)); thisTermUnitSizingData.SpecDesCoolSATRatio = thisAirTermSizingSpec.DesCoolSATRatio; thisTermUnitSizingData.SpecDesHeatSATRatio = thisAirTermSizingSpec.DesHeatSATRatio; thisTermUnitSizingData.SpecDesSensCoolingFrac = thisAirTermSizingSpec.DesSensCoolingFrac; diff --git a/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc b/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc index 53696d09864..bfdc39d68b4 100644 --- a/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc +++ b/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc @@ -2484,7 +2484,7 @@ namespace EnergyPlus::ZoneContaminantPredictorCorrector { // operating and system shutdown. RhoAir = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, ZT(ZoneNum), ZoneAirHumRat(ZoneNum), RoutineName); - // RhoAir = state.dataContaminantBalance->ZoneAirDensityCO(ZoneNum) + // RhoAir = ZoneAirDensityCO(ZoneNum) if (state.dataContaminantBalance->Contaminant.CO2Simulation) state.dataContaminantBalance->ZoneAirDensityCO(ZoneNum) = RhoAir; // Calculate Co2 internal gain diff --git a/src/EnergyPlus/ZoneEquipmentManager.cc b/src/EnergyPlus/ZoneEquipmentManager.cc index 9da58bd623b..a4f20d75071 100644 --- a/src/EnergyPlus/ZoneEquipmentManager.cc +++ b/src/EnergyPlus/ZoneEquipmentManager.cc @@ -243,6 +243,8 @@ namespace EnergyPlus::ZoneEquipmentManager { int ZoneCompNum; // Number/index of zone equipment component int ZoneEquipCount; + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + if (state.dataZoneEquipmentManager->InitZoneEquipmentOneTimeFlag) { state.dataZoneEquipmentManager->InitZoneEquipmentOneTimeFlag = false; ZoneEqSizing.allocate(state.dataGlobal->NumOfZones); @@ -463,7 +465,7 @@ namespace EnergyPlus::ZoneEquipmentManager { for (ControlledZoneNum = 1; ControlledZoneNum <= state.dataGlobal->NumOfZones; ++ControlledZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).IsControlled) continue; - ActualZoneNum = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).ActualZoneNum; + ActualZoneNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).ActualZoneNum; NonAirSystemResponse(ActualZoneNum) = 0.0; SysDepZoneLoads(ActualZoneNum) = 0.0; SysOutputProvided = 0.0; @@ -474,7 +476,7 @@ namespace EnergyPlus::ZoneEquipmentManager { SupplyAirNode1 = 0; SupplyAirNode2 = 0; // calculate DOAS heating/cooling effect - if (CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).AccountForDOAS) { + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).AccountForDOAS) { // check for adequate number of supply nodes if (state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).NumInletNodes >= 2) { SupplyAirNode1 = state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).InletNode(1); @@ -488,14 +490,14 @@ namespace EnergyPlus::ZoneEquipmentManager { ShowFatalError(state, "Previous severe error causes abort "); } // set the DOAS mass flow rate and supply temperature and humidity ratio - HR90H = PsyWFnTdbRhPb(state, CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASHighSetpoint, 0.9, state.dataEnvrn->StdBaroPress); - HR90L = PsyWFnTdbRhPb(state, CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASLowSetpoint, 0.9, state.dataEnvrn->StdBaroPress); - DOASMassFlowRate = CalcFinalZoneSizing(ControlledZoneNum).MinOA; + HR90H = PsyWFnTdbRhPb(state, state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASHighSetpoint, 0.9, state.dataEnvrn->StdBaroPress); + HR90L = PsyWFnTdbRhPb(state, state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASLowSetpoint, 0.9, state.dataEnvrn->StdBaroPress); + DOASMassFlowRate = state.dataSize->CalcFinalZoneSizing(ControlledZoneNum).MinOA; CalcDOASSupCondsForSizing(state, state.dataEnvrn->OutDryBulbTemp, state.dataEnvrn->OutHumRat, - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASControlStrategy, - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASLowSetpoint, - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASHighSetpoint, + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASControlStrategy, + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASLowSetpoint, + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASHighSetpoint, HR90H, HR90L, DOASSupplyTemp, @@ -509,20 +511,20 @@ namespace EnergyPlus::ZoneEquipmentManager { Node(SupplyAirNode1).HumRat = DOASSupplyHumRat; Node(SupplyAirNode1).MassFlowRate = DOASMassFlowRate; Node(SupplyAirNode1).Enthalpy = PsyHFnTdbW(DOASSupplyTemp, DOASSupplyHumRat); - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASHeatAdd = DOASSysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASLatAdd = TotDOASSysOutputProvided - DOASSysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASHeatAdd = DOASSysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASLatAdd = TotDOASSysOutputProvided - DOASSysOutputProvided; SupplyAirNode = SupplyAirNode2; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASSupMassFlow = DOASMassFlowRate; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASSupTemp = DOASSupplyTemp; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASSupHumRat = DOASSupplyHumRat; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASSupMassFlow = DOASMassFlowRate; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASSupTemp = DOASSupplyTemp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASSupHumRat = DOASSupplyHumRat; if (DOASSysOutputProvided > 0.0) { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASHeatLoad = DOASSysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASCoolLoad = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASTotCoolLoad = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASHeatLoad = DOASSysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASCoolLoad = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASTotCoolLoad = 0.0; } else { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASCoolLoad = DOASSysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASTotCoolLoad = TotDOASSysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).DOASHeatLoad = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASCoolLoad = DOASSysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASTotCoolLoad = TotDOASSysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).DOASHeatLoad = 0.0; } } else { @@ -539,33 +541,33 @@ namespace EnergyPlus::ZoneEquipmentManager { // Determine design supply air temperture and design supply air temperature difference if (state.dataZoneEnergyDemand->ZoneSysEnergyDemand(ActualZoneNum).RemainingOutputRequired < 0.0) { // Cooling case // If the user specify the design cooling supply air temperature, then - if (CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).ZnCoolDgnSAMethod == SupplyAirTemperature) { - Temp = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolDesTemp; - HumRat = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolDesHumRat; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).ZnCoolDgnSAMethod == SupplyAirTemperature) { + Temp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolDesTemp; + HumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolDesHumRat; DeltaTemp = Temp - Node(ZoneNode).Temp; if (state.dataHeatBal->Zone(ActualZoneNum).HasAdjustedReturnTempByITE && !(state.dataGlobal->BeginSimFlag)) { DeltaTemp = Temp - state.dataHeatBal->Zone(ActualZoneNum).AdjustedReturnTempByITE; } // If the user specify the design cooling supply air temperature difference, then } else { - DeltaTemp = -std::abs(CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolDesTempDiff); + DeltaTemp = -std::abs(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolDesTempDiff); Temp = DeltaTemp + Node(ZoneNode).Temp; if (state.dataHeatBal->Zone(ActualZoneNum).HasAdjustedReturnTempByITE && !(state.dataGlobal->BeginSimFlag)) { Temp = DeltaTemp + state.dataHeatBal->Zone(ActualZoneNum).AdjustedReturnTempByITE; } - HumRat = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolDesHumRat; + HumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolDesHumRat; } } else { // Heating Case // If the user specify the design heating supply air temperature, then - if (CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).ZnHeatDgnSAMethod == SupplyAirTemperature) { - Temp = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatDesTemp; - HumRat = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatDesHumRat; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).ZnHeatDgnSAMethod == SupplyAirTemperature) { + Temp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatDesTemp; + HumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatDesHumRat; DeltaTemp = Temp - Node(ZoneNode).Temp; // If the user specify the design heating supply air temperature difference, then } else { - DeltaTemp = std::abs(CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatDesTempDiff); + DeltaTemp = std::abs(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatDesTempDiff); Temp = DeltaTemp + Node(ZoneNode).Temp; - HumRat = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatDesHumRat; + HumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatDesHumRat; } } @@ -579,8 +581,8 @@ namespace EnergyPlus::ZoneEquipmentManager { MassFlowRate = 0.0; } - if (CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).SupplyAirAdjustFactor > 1.0) { - MassFlowRate *= CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).SupplyAirAdjustFactor; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).SupplyAirAdjustFactor > 1.0) { + MassFlowRate *= state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).SupplyAirAdjustFactor; } } else { @@ -593,28 +595,28 @@ namespace EnergyPlus::ZoneEquipmentManager { UpdateSystemOutputRequired(state, ActualZoneNum, SysOutputProvided, LatOutputProvided); if (SysOutputProvided > 0.0) { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatLoad = SysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatMassFlow = MassFlowRate; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatZoneTemp = Node(ZoneNode).Temp; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatZoneHumRat = Node(ZoneNode).HumRat; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolLoad = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolMassFlow = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolZoneTemp = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolZoneHumRat = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatLoad = SysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatMassFlow = MassFlowRate; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatZoneTemp = Node(ZoneNode).Temp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatZoneHumRat = Node(ZoneNode).HumRat; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolLoad = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolMassFlow = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolZoneTemp = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolZoneHumRat = 0.0; } else { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolLoad = -SysOutputProvided; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolMassFlow = MassFlowRate; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolZoneTemp = Node(ZoneNode).Temp; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolZoneHumRat = Node(ZoneNode).HumRat; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatLoad = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatMassFlow = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatZoneTemp = 0.0; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatZoneHumRat = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolLoad = -SysOutputProvided; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolMassFlow = MassFlowRate; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolZoneTemp = Node(ZoneNode).Temp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolZoneHumRat = Node(ZoneNode).HumRat; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatLoad = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatMassFlow = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatZoneTemp = 0.0; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatZoneHumRat = 0.0; } - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatOutTemp = state.dataEnvrn->OutDryBulbTemp; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatOutHumRat = state.dataEnvrn->OutHumRat; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolOutTemp = state.dataEnvrn->OutDryBulbTemp; - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolOutHumRat = state.dataEnvrn->OutHumRat; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatOutTemp = state.dataEnvrn->OutDryBulbTemp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatOutHumRat = state.dataEnvrn->OutHumRat; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolOutTemp = state.dataEnvrn->OutDryBulbTemp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolOutHumRat = state.dataEnvrn->OutHumRat; if (SupplyAirNode > 0) { Node(SupplyAirNode).Temp = Temp; @@ -639,25 +641,25 @@ namespace EnergyPlus::ZoneEquipmentManager { ReturnNode = 0; } ZoneNode = state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).ZoneNode; - ActualZoneNum = CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).ActualZoneNum; + ActualZoneNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).ActualZoneNum; if (ReturnNode > 0) { RetTemp = Node(ReturnNode).Temp; } else { RetTemp = Node(ZoneNode).Temp; } - if (CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatLoad > 0.0) { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatZoneRetTemp = RetTemp; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatLoad > 0.0) { + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatZoneRetTemp = RetTemp; if (TempZoneThermostatSetPoint(ActualZoneNum) > 0.0) { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatTstatTemp = TempZoneThermostatSetPoint(ActualZoneNum); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatTstatTemp = TempZoneThermostatSetPoint(ActualZoneNum); } else { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).HeatTstatTemp = ZoneThermostatSetPointLo(ActualZoneNum); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).HeatTstatTemp = ZoneThermostatSetPointLo(ActualZoneNum); } } else { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolZoneRetTemp = RetTemp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolZoneRetTemp = RetTemp; if (TempZoneThermostatSetPoint(ActualZoneNum) > 0.0) { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolTstatTemp = TempZoneThermostatSetPoint(ActualZoneNum); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolTstatTemp = TempZoneThermostatSetPoint(ActualZoneNum); } else { - CalcZoneSizing(CurOverallSimDay, ControlledZoneNum).CoolTstatTemp = ZoneThermostatSetPointHi(ActualZoneNum); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, ControlledZoneNum).CoolTstatTemp = ZoneThermostatSetPointHi(ActualZoneNum); } } } @@ -779,26 +781,26 @@ namespace EnergyPlus::ZoneEquipmentManager { int DSOAPtr; // index to DesignSpecification:OutdoorAir object - for (ZoneSizIndex = 1; ZoneSizIndex <= NumZoneSizingInput; ++ZoneSizIndex) { - ZoneIndex = UtilityRoutines::FindItemInList(ZoneSizingInput(ZoneSizIndex).ZoneName, state.dataHeatBal->Zone); + for (ZoneSizIndex = 1; ZoneSizIndex <= state.dataSize->NumZoneSizingInput; ++ZoneSizIndex) { + ZoneIndex = UtilityRoutines::FindItemInList(state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName, state.dataHeatBal->Zone); if (ZoneIndex == 0) { - ShowSevereError(state, "SetUpZoneSizingArrays: Sizing:Zone=\"" + ZoneSizingInput(ZoneSizIndex).ZoneName + "\" references unknown zone"); + ShowSevereError(state, "SetUpZoneSizingArrays: Sizing:Zone=\"" + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName + "\" references unknown zone"); ErrorsFound = true; } if (std::any_of(state.dataZoneEquip->ZoneEquipConfig.begin(), state.dataZoneEquip->ZoneEquipConfig.end(), [](EquipConfiguration const &e) { return e.IsControlled; })) { - ZoneIndex = UtilityRoutines::FindItemInList(ZoneSizingInput(ZoneSizIndex).ZoneName, state.dataZoneEquip->ZoneEquipConfig, &EquipConfiguration::ZoneName); + ZoneIndex = UtilityRoutines::FindItemInList(state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName, state.dataZoneEquip->ZoneEquipConfig, &EquipConfiguration::ZoneName); if (ZoneIndex == 0) { if (!state.dataGlobal->isPulseZoneSizing) { - ShowWarningError(state, "SetUpZoneSizingArrays: Requested Sizing for Zone=\"" + ZoneSizingInput(ZoneSizIndex).ZoneName + + ShowWarningError(state, "SetUpZoneSizingArrays: Requested Sizing for Zone=\"" + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName + "\", Zone is not found in the Controlled Zones List"); } } else { - ZoneSizingInput(ZoneSizIndex).ZoneNum = ZoneIndex; + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneNum = ZoneIndex; } - if (ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod == FromDDCalc || ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod == FromDDCalc) { - if (!VerifyThermostatInZone(state, ZoneSizingInput(ZoneSizIndex).ZoneName)) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).CoolAirDesMethod == FromDDCalc || state.dataSize->ZoneSizingInput(ZoneSizIndex).HeatAirDesMethod == FromDDCalc) { + if (!VerifyThermostatInZone(state, state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName)) { if (!state.dataGlobal->isPulseZoneSizing) { - ShowWarningError(state, "SetUpZoneSizingArrays: Requested Sizing for Zone=\"" + ZoneSizingInput(ZoneSizIndex).ZoneName + + ShowWarningError(state, "SetUpZoneSizingArrays: Requested Sizing for Zone=\"" + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName + "\", Zone has no thermostat (ref: ZoneControl:Thermostat, et al)"); } } @@ -815,438 +817,438 @@ namespace EnergyPlus::ZoneEquipmentManager { // Put Auto Sizing of Sizing:Zone inputs here! AutoCalcDOASControlStrategy(state); - ZoneSizing.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays, state.dataGlobal->NumOfZones); - FinalZoneSizing.allocate(state.dataGlobal->NumOfZones); - CalcZoneSizing.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays, state.dataGlobal->NumOfZones); - CalcFinalZoneSizing.allocate(state.dataGlobal->NumOfZones); - TermUnitFinalZoneSizing.allocate(DataSizing::NumAirTerminalUnits); - DesDayWeath.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays); + state.dataSize->ZoneSizing.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays, state.dataGlobal->NumOfZones); + state.dataSize->FinalZoneSizing.allocate(state.dataGlobal->NumOfZones); + state.dataSize->CalcZoneSizing.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays, state.dataGlobal->NumOfZones); + state.dataSize->CalcFinalZoneSizing.allocate(state.dataGlobal->NumOfZones); + state.dataSize->TermUnitFinalZoneSizing.allocate(state.dataSize->NumAirTerminalUnits); + state.dataSize->DesDayWeath.allocate(state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays); NumOfTimeStepInDay = state.dataGlobal->NumOfTimeStepInHour * 24; state.dataZoneEquipmentManager->AvgData.allocate(NumOfTimeStepInDay); - CoolPeakDateHrMin.allocate(state.dataGlobal->NumOfZones); - HeatPeakDateHrMin.allocate(state.dataGlobal->NumOfZones); - ZoneSizThermSetPtHi.allocate(state.dataGlobal->NumOfZones); - ZoneSizThermSetPtLo.allocate(state.dataGlobal->NumOfZones); + state.dataSize->CoolPeakDateHrMin.allocate(state.dataGlobal->NumOfZones); + state.dataSize->HeatPeakDateHrMin.allocate(state.dataGlobal->NumOfZones); + state.dataSize->ZoneSizThermSetPtHi.allocate(state.dataGlobal->NumOfZones); + state.dataSize->ZoneSizThermSetPtLo.allocate(state.dataGlobal->NumOfZones); - CoolPeakDateHrMin = ""; - HeatPeakDateHrMin = ""; + state.dataSize->CoolPeakDateHrMin = ""; + state.dataSize->HeatPeakDateHrMin = ""; - ZoneSizThermSetPtHi = 0.0; - ZoneSizThermSetPtLo = 1000.0; + state.dataSize->ZoneSizThermSetPtHi = 0.0; + state.dataSize->ZoneSizThermSetPtLo = 1000.0; for (DesDayNum = 1; DesDayNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DesDayNum) { - DesDayWeath(DesDayNum).Temp.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); - DesDayWeath(DesDayNum).HumRat.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); - DesDayWeath(DesDayNum).Press.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); - DesDayWeath(DesDayNum).Temp = 0.0; - DesDayWeath(DesDayNum).HumRat = 0.0; - DesDayWeath(DesDayNum).Press = 0.0; + state.dataSize->DesDayWeath(DesDayNum).Temp.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); + state.dataSize->DesDayWeath(DesDayNum).HumRat.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); + state.dataSize->DesDayWeath(DesDayNum).Press.allocate(state.dataGlobal->NumOfTimeStepInHour * 24); + state.dataSize->DesDayWeath(DesDayNum).Temp = 0.0; + state.dataSize->DesDayWeath(DesDayNum).HumRat = 0.0; + state.dataSize->DesDayWeath(DesDayNum).Press = 0.0; } // Fill zone sizing arrays from input array for (DesDayNum = 1; DesDayNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DesDayNum) { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - ZoneSizing(DesDayNum, CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; - ZoneSizing(DesDayNum, CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; // For each Zone Sizing object, find the corresponding controlled zone - ZoneSizNum = UtilityRoutines::FindItemInList(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName, ZoneSizingInput, &ZoneSizingInputData::ZoneName); + ZoneSizNum = UtilityRoutines::FindItemInList(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ZoneSizNum > 0) { // move data from zone sizing input - ZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = ZoneSizingInput(ZoneSizNum).CoolDesTemp; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = ZoneSizingInput(ZoneSizNum).HeatDesTemp; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat; - ZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = ZoneSizingInput(ZoneSizNum).DesOAFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; - ZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(ZoneSizNum).HeatSizingFactor; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(ZoneSizNum).CoolSizingFactor; - ZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = ZoneSizingInput(ZoneSizNum).AccountForDOAS; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(ZoneSizNum).DOASControlStrategy; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = ZoneSizingInput(ZoneSizNum).CoolDesTemp; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = ZoneSizingInput(ZoneSizNum).HeatDesTemp; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat; - CalcZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = ZoneSizingInput(ZoneSizNum).DesOAFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; - CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(ZoneSizNum).HeatSizingFactor; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(ZoneSizNum).CoolSizingFactor; - CalcZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = ZoneSizingInput(ZoneSizNum).AccountForDOAS; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(ZoneSizNum).DOASControlStrategy; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTemp; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTemp; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesHumRat; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesHumRat; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).OADesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatSizingFactor; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolSizingFactor; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(ZoneSizNum).AccountForDOAS; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASControlStrategy; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTemp; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTemp; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesHumRat; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesHumRat; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).OADesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatSizingFactor; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolSizingFactor; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(ZoneSizNum).AccountForDOAS; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASControlStrategy; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; } else { // Every controlled zone must be simulated, so set missing inputs to the first // LKL I think this is sufficient for warning -- no need for array if (DesDayNum == 1) { if (!state.dataGlobal->isPulseZoneSizing) { ShowWarningError(state, "SetUpZoneSizingArrays: Sizing for Zone=\"" + state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName + - "\" will use Sizing:Zone specifications listed for Zone=\"" + ZoneSizingInput(1).ZoneName + "\"."); + "\" will use Sizing:Zone specifications listed for Zone=\"" + state.dataSize->ZoneSizingInput(1).ZoneName + "\"."); } // Following needs to be implemented first: // CALL ShowContinueError(state, ' A better option would be to set up global ZoneList objects for Sizing:Zone objects.') } - ZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(1).ZnCoolDgnSAMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(1).ZnHeatDgnSAMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = ZoneSizingInput(1).CoolDesTemp; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = ZoneSizingInput(1).HeatDesTemp; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(1).CoolDesTempDiff; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat; - ZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(1).DesOAFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = ZoneSizingInput(1).DesOAFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(1).CoolAirDesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(1).HeatAirDesMethod; - ZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(1).DesCoolAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(1).DesCoolMinAirFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(1).DesCoolMinAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(1).DesCoolMinAirFlowFrac; - ZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(1).DesHeatAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(1).DesHeatMaxAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(1).DesHeatMaxAirFlowFrac; - ZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(1).HeatSizingFactor; - ZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(1).CoolSizingFactor; - ZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = ZoneSizingInput(1).AccountForDOAS; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(1).DOASControlStrategy; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(1).DOASLowSetpoint; - ZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(1).DOASHighSetpoint; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(1).ZnCoolDgnSAMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(1).ZnHeatDgnSAMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = ZoneSizingInput(1).CoolDesTemp; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = ZoneSizingInput(1).HeatDesTemp; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(1).CoolDesTempDiff; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat; - CalcZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(1).DesOAFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = ZoneSizingInput(1).DesOAFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(1).CoolAirDesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(1).HeatAirDesMethod; - CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(1).DesCoolAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(1).DesCoolMinAirFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(1).DesCoolMinAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(1).DesCoolMinAirFlowFrac; - CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(1).DesHeatAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(1).DesHeatMaxAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(1).DesHeatMaxAirFlowFrac; - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(1).HeatSizingFactor; - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(1).CoolSizingFactor; - CalcZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = ZoneSizingInput(1).AccountForDOAS; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(1).DOASControlStrategy; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(1).DOASLowSetpoint; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(1).DOASHighSetpoint; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnCoolDgnSAMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnHeatDgnSAMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(1).CoolDesTemp; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(1).HeatDesTemp; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(1).CoolDesTempDiff; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(1).HeatDesTempDiff; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(1).CoolDesHumRat; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(1).HeatDesHumRat; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(1).OADesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(1).DesOAFlowPPer; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(1).DesOAFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(1).DesOAFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(1).CoolAirDesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(1).HeatAirDesMethod; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowFrac; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowFrac; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(1).HeatSizingFactor; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(1).CoolSizingFactor; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(1).AccountForDOAS; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(1).DOASControlStrategy; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(1).DOASLowSetpoint; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(1).DOASHighSetpoint; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnCoolDgnSAMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnHeatDgnSAMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(1).CoolDesTemp; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(1).HeatDesTemp; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(1).CoolDesTempDiff; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(1).HeatDesTempDiff; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(1).CoolDesHumRat; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(1).HeatDesHumRat; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(1).OADesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(1).DesOAFlowPPer; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(1).DesOAFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(1).DesOAFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(1).CoolAirDesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(1).HeatAirDesMethod; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowFrac; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowFrac; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(1).HeatSizingFactor; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(1).CoolSizingFactor; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(1).AccountForDOAS; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(1).DOASControlStrategy; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(1).DOASLowSetpoint; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(1).DOASHighSetpoint; } - ZoneSizing(DesDayNum, CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); - CalcZoneSizing(DesDayNum, CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); } } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - FinalZoneSizing(CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; - FinalZoneSizing(CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; - CalcFinalZoneSizing(CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; - CalcFinalZoneSizing(CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; - ZoneSizNum = UtilityRoutines::FindItemInList(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName, ZoneSizingInput, &ZoneSizingInputData::ZoneName); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ActualZoneNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ActualZoneNum; + ZoneSizNum = UtilityRoutines::FindItemInList(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneName, state.dataSize->ZoneSizingInput, &ZoneSizingInputData::ZoneName); if (ZoneSizNum > 0) { // move data from zone sizing input - FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; - FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; - FinalZoneSizing(CtrlZoneNum).CoolDesTemp = ZoneSizingInput(ZoneSizNum).CoolDesTemp; - FinalZoneSizing(CtrlZoneNum).HeatDesTemp = ZoneSizingInput(ZoneSizNum).HeatDesTemp; - FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; - FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; - FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat; - FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat; - FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex; - FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex; - FinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod; - FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; - FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesOAFlow = ZoneSizingInput(ZoneSizNum).DesOAFlow; - FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; - FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; - FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(ZoneSizNum).HeatSizingFactor; - FinalZoneSizing(CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(ZoneSizNum).CoolSizingFactor; - FinalZoneSizing(CtrlZoneNum).AccountForDOAS = ZoneSizingInput(ZoneSizNum).AccountForDOAS; - FinalZoneSizing(CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(ZoneSizNum).DOASControlStrategy; - FinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; - FinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; - FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = ZoneSizingInput(ZoneSizNum).ZoneADEffCooling; - FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = ZoneSizingInput(ZoneSizNum).ZoneADEffHeating; - FinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = ZoneSizingInput(ZoneSizNum).ZoneSecondaryRecirculation; - FinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = ZoneSizingInput(ZoneSizNum).ZoneVentilationEff; - CalcFinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; - CalcFinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesTemp = ZoneSizingInput(ZoneSizNum).CoolDesTemp; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp = ZoneSizingInput(ZoneSizNum).HeatDesTemp; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat; - CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex; - CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex; - CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlow = ZoneSizingInput(ZoneSizNum).DesOAFlow; - CalcFinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; - CalcFinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; - CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; - CalcFinalZoneSizing(CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(ZoneSizNum).HeatSizingFactor; - CalcFinalZoneSizing(CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(ZoneSizNum).CoolSizingFactor; - CalcFinalZoneSizing(CtrlZoneNum).AccountForDOAS = ZoneSizingInput(ZoneSizNum).AccountForDOAS; - CalcFinalZoneSizing(CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(ZoneSizNum).DOASControlStrategy; - CalcFinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; - CalcFinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; - CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = ZoneSizingInput(ZoneSizNum).ZoneADEffCooling; - CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = ZoneSizingInput(ZoneSizNum).ZoneADEffHeating; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTemp; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTemp; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex; + state.dataSize->FinalZoneSizing(CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).OADesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(ZoneSizNum).AccountForDOAS; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASControlStrategy; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneADEffCooling; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneADEffHeating; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneSecondaryRecirculation; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneVentilationEff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnCoolDgnSAMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).ZnHeatDgnSAMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesTempDiff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesTempDiff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolDesHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatDesHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).OADesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPPer; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesOAFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolAirDesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatAirDesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesCoolMinAirFlowFrac; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(ZoneSizNum).DesHeatMaxAirFlowFrac; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).HeatSizingFactor; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(ZoneSizNum).CoolSizingFactor; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(ZoneSizNum).AccountForDOAS; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASControlStrategy; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASLowSetpoint; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizNum).DOASHighSetpoint; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneADEffCooling; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = state.dataSize->ZoneSizingInput(ZoneSizNum).ZoneADEffHeating; } else { // Every controlled zone must be simulated, so set missing inputs to the first - FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(1).ZnCoolDgnSAMethod; - FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(1).ZnHeatDgnSAMethod; - FinalZoneSizing(CtrlZoneNum).CoolDesTemp = ZoneSizingInput(1).CoolDesTemp; - FinalZoneSizing(CtrlZoneNum).HeatDesTemp = ZoneSizingInput(1).HeatDesTemp; - FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(1).CoolDesTempDiff; - FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff; - FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat; - FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat; - FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(1).ZoneAirDistributionIndex; - FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(1).ZoneDesignSpecOAIndex; - FinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod; - FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer; - FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(1).DesOAFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesOAFlow = ZoneSizingInput(1).DesOAFlow; - FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(1).CoolAirDesMethod; - FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(1).HeatAirDesMethod; - FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(1).DesCoolAirFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(1).DesCoolMinAirFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(1).DesCoolMinAirFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(1).DesCoolMinAirFlowFrac; - FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(1).DesHeatAirFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(1).DesHeatMaxAirFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(1).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(1).HeatSizingFactor; - FinalZoneSizing(CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(1).CoolSizingFactor; - FinalZoneSizing(CtrlZoneNum).AccountForDOAS = ZoneSizingInput(1).AccountForDOAS; - FinalZoneSizing(CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(1).DOASControlStrategy; - FinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(1).DOASLowSetpoint; - FinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(1).DOASHighSetpoint; - FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = ZoneSizingInput(1).ZoneADEffCooling; - FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = ZoneSizingInput(1).ZoneADEffHeating; - FinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = ZoneSizingInput(1).ZoneSecondaryRecirculation; - FinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = ZoneSizingInput(1).ZoneVentilationEff; - CalcFinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = ZoneSizingInput(1).ZnCoolDgnSAMethod; - CalcFinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = ZoneSizingInput(1).ZnHeatDgnSAMethod; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesTemp = ZoneSizingInput(1).CoolDesTemp; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp = ZoneSizingInput(1).HeatDesTemp; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = ZoneSizingInput(1).CoolDesTempDiff; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat; - CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(1).ZoneAirDistributionIndex; - CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(1).ZoneDesignSpecOAIndex; - CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = ZoneSizingInput(1).DesOAFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesOAFlow = ZoneSizingInput(1).DesOAFlow; - CalcFinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = ZoneSizingInput(1).CoolAirDesMethod; - CalcFinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = ZoneSizingInput(1).HeatAirDesMethod; - CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = ZoneSizingInput(1).DesCoolAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = ZoneSizingInput(1).DesCoolMinAirFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = ZoneSizingInput(1).DesCoolMinAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = ZoneSizingInput(1).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = ZoneSizingInput(1).DesHeatAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = ZoneSizingInput(1).DesHeatMaxAirFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(1).DesHeatMaxAirFlowFrac; - CalcFinalZoneSizing(CtrlZoneNum).HeatSizingFactor = ZoneSizingInput(1).HeatSizingFactor; - CalcFinalZoneSizing(CtrlZoneNum).CoolSizingFactor = ZoneSizingInput(1).CoolSizingFactor; - CalcFinalZoneSizing(CtrlZoneNum).AccountForDOAS = ZoneSizingInput(1).AccountForDOAS; - CalcFinalZoneSizing(CtrlZoneNum).DOASControlStrategy = ZoneSizingInput(1).DOASControlStrategy; - CalcFinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = ZoneSizingInput(1).DOASLowSetpoint; - CalcFinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = ZoneSizingInput(1).DOASHighSetpoint; - CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = ZoneSizingInput(1).ZoneADEffCooling; - CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = ZoneSizingInput(1).ZoneADEffHeating; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnCoolDgnSAMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnHeatDgnSAMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(1).CoolDesTemp; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(1).HeatDesTemp; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(1).CoolDesTempDiff; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(1).HeatDesTempDiff; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(1).CoolDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(1).HeatDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = state.dataSize->ZoneSizingInput(1).ZoneAirDistributionIndex; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = state.dataSize->ZoneSizingInput(1).ZoneDesignSpecOAIndex; + state.dataSize->FinalZoneSizing(CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(1).OADesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(1).DesOAFlowPPer; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(1).DesOAFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(1).DesOAFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(1).CoolAirDesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(1).HeatAirDesMethod; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowFrac; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowFrac; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(1).HeatSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(1).CoolSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(1).AccountForDOAS; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(1).DOASControlStrategy; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(1).DOASLowSetpoint; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(1).DOASHighSetpoint; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = state.dataSize->ZoneSizingInput(1).ZoneADEffCooling; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = state.dataSize->ZoneSizingInput(1).ZoneADEffHeating; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = state.dataSize->ZoneSizingInput(1).ZoneSecondaryRecirculation; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = state.dataSize->ZoneSizingInput(1).ZoneVentilationEff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnCoolDgnSAMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod = state.dataSize->ZoneSizingInput(1).ZnHeatDgnSAMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesTemp = state.dataSize->ZoneSizingInput(1).CoolDesTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp = state.dataSize->ZoneSizingInput(1).HeatDesTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesTempDiff = state.dataSize->ZoneSizingInput(1).CoolDesTempDiff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = state.dataSize->ZoneSizingInput(1).HeatDesTempDiff; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = state.dataSize->ZoneSizingInput(1).CoolDesHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = state.dataSize->ZoneSizingInput(1).HeatDesHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = state.dataSize->ZoneSizingInput(1).ZoneAirDistributionIndex; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = state.dataSize->ZoneSizingInput(1).ZoneDesignSpecOAIndex; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = state.dataSize->ZoneSizingInput(1).OADesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = state.dataSize->ZoneSizingInput(1).DesOAFlowPPer; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea = state.dataSize->ZoneSizingInput(1).DesOAFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesOAFlow = state.dataSize->ZoneSizingInput(1).DesOAFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolAirDesMethod = state.dataSize->ZoneSizingInput(1).CoolAirDesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatAirDesMethod = state.dataSize->ZoneSizingInput(1).HeatAirDesMethod; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesCoolMinAirFlowFrac; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowPerArea; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac = state.dataSize->ZoneSizingInput(1).DesHeatMaxAirFlowFrac; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatSizingFactor = state.dataSize->ZoneSizingInput(1).HeatSizingFactor; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolSizingFactor = state.dataSize->ZoneSizingInput(1).CoolSizingFactor; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).AccountForDOAS = state.dataSize->ZoneSizingInput(1).AccountForDOAS; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASControlStrategy = state.dataSize->ZoneSizingInput(1).DOASControlStrategy; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASLowSetpoint = state.dataSize->ZoneSizingInput(1).DOASLowSetpoint; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DOASHighSetpoint = state.dataSize->ZoneSizingInput(1).DOASHighSetpoint; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffCooling = state.dataSize->ZoneSizingInput(1).ZoneADEffCooling; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneADEffHeating = state.dataSize->ZoneSizingInput(1).ZoneADEffHeating; } - FinalZoneSizing(CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); - CalcFinalZoneSizing(CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); + state.dataSize->FinalZoneSizing(CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).allocateMemberArrays(NumOfTimeStepInDay); // setup CalcFinalZoneSizing structure for use with EMS, some as sensors, some as actuators if (state.dataGlobal->AnyEnergyManagementSystemInModel) { // actuate REAL(r64) :: DesHeatMassFlow = 0.0d0 ! zone design heating air mass flow rate [kg/s] SetupEMSInternalVariable(state, "Final Zone Design Heating Air Mass Flow Rate", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/s]", - FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow); SetupEMSInternalVariable(state, "Intermediate Zone Design Heating Air Mass Flow Rate", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/s]", - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Heating Air Mass Flow Rate", "[kg/s]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatMassOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatMassFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatMassOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatMassFlow); // actuate REAL(r64) :: DesCoolMassFlow = 0.0d0 ! zone design cooling air mass flow rate [kg/s] SetupEMSInternalVariable(state, "Final Zone Design Cooling Air Mass Flow Rate", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/s]", - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow); SetupEMSInternalVariable(state, "Intermediate Zone Design Cooling Air Mass Flow Rate", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/s]", - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Cooling Air Mass Flow Rate", "[kg/s]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolMassOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolMassFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolMassOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolMassFlow); // actuate REAL(r64) :: DesHeatLoad = 0.0d0 ! zone design heating load [W] SetupEMSInternalVariable(state, - "Final Zone Design Heating Load", FinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", FinalZoneSizing(CtrlZoneNum).DesHeatLoad); + "Final Zone Design Heating Load", state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad); SetupEMSInternalVariable(state, "Intermediate Zone Design Heating Load", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", - CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Heating Load", "[W]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatLoadOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatLoad); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatLoadOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatLoad); // actuate REAL(r64) :: DesCoolLoad = 0.0d0 ! zone design cooling load [W] SetupEMSInternalVariable(state, - "Final Zone Design Cooling Load", FinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", FinalZoneSizing(CtrlZoneNum).DesCoolLoad); + "Final Zone Design Cooling Load", state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolLoad); SetupEMSInternalVariable(state, "Intermediate Zone Design Cooling Load", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[W]", - CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Cooling Load", "[W]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolLoadOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolLoad); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolLoadOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolLoad); // sensor? REAL(r64) :: DesHeatDens = 0.0d0 ! zone design heating air density [kg/m3] SetupEMSInternalVariable(state, "Final Zone Design Heating Air Density", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/m3]", - FinalZoneSizing(CtrlZoneNum).DesHeatDens); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatDens); SetupEMSInternalVariable(state, "Intermediate Zone Design Heating Air Density", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/m3]", - CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens); // sensor? REAL(r64) :: DesCoolDens = 0.0d0 ! zone design cooling air density [kg/m3] SetupEMSInternalVariable(state, "Final Zone Design Cooling Air Density", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/m3]", - FinalZoneSizing(CtrlZoneNum).DesCoolDens); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolDens); SetupEMSInternalVariable(state, "Intermediate Zone Design Cooling Air Density", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[kg/m3]", - CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens); // actuate REAL(r64) :: DesHeatVolFlow = 0.0d0 ! zone design heating air volume flow rate [m3/s] SetupEMSInternalVariable(state, "Final Zone Design Heating Volume Flow", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[m3/s]", - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow); SetupEMSInternalVariable(state, "Intermediate Zone Design Heating Volume Flow", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[m3/s]", - CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Heating Vol Flow", "[m3/s]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatVolOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatVolFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatVolOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatVolFlow); // actuate REAL(r64) :: DesCoolVolFlow = 0.0d0 ! zone design cooling air volume flow rate [m3/s] SetupEMSInternalVariable(state, "Final Zone Design Cooling Volume Flow", - FinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, "[m3/s]", - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); SetupEMSInternalVariable(state, "Intermediate Zone Design Cooling Volume Flow", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[m3/s]", - CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); SetupEMSActuator(state, "Sizing:Zone", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "Zone Design Cooling Vol Flow", "[m3/s]", - CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolVolOn, - CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolVolFlow); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolVolOn, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolVolFlow); // actuate REAL(r64) :: DesHeatVolFlowMax = 0.0d0 ! zone design heating maximum air volume flow rate [m3/s] // actuate REAL(r64) :: DesCoolVolFlowMin = 0.0d0 ! zone design cooling minimum air volume flow rate [m3/s] SetupEMSInternalVariable(state, "Zone Outdoor Air Design Volume Flow Rate", - CalcFinalZoneSizing(CtrlZoneNum).ZoneName, + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName, "[m3/s]", - CalcFinalZoneSizing(CtrlZoneNum).MinOA); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).MinOA); } } // Use the max occupancy data from the PEOPLE structure to calculate design min OA for each zone @@ -1258,114 +1260,114 @@ namespace EnergyPlus::ZoneEquipmentManager { // from the outside air flow per person input TotPeopleInZone = 0.0; Real64 ZoneMinOccupancy = 0.; - ZoneIndex = FinalZoneSizing(CtrlZoneNum).ActualZoneNum; + ZoneIndex = state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum; for (PeopleNum = 1; PeopleNum <= state.dataHeatBal->TotPeople; ++PeopleNum) { - if (state.dataHeatBal->People(PeopleNum).ZonePtr == FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { - TotPeopleInZone += (state.dataHeatBal->People(PeopleNum).NumberOfPeople * state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); + if (state.dataHeatBal->People(PeopleNum).ZonePtr == state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum) { + TotPeopleInZone += (state.dataHeatBal->People(PeopleNum).NumberOfPeople * state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); SchMax = GetScheduleMaxValue(state, state.dataHeatBal->People(PeopleNum).NumberOfPeoplePtr); if (SchMax > 0) { - FinalZoneSizing(CtrlZoneNum).ZonePeakOccupancy = TotPeopleInZone * SchMax; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZonePeakOccupancy = TotPeopleInZone * SchMax; } else { - FinalZoneSizing(CtrlZoneNum).ZonePeakOccupancy = TotPeopleInZone; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZonePeakOccupancy = TotPeopleInZone; } ZoneMinOccupancy += TotPeopleInZone * ScheduleManager::GetScheduleMinValue(state, state.dataHeatBal->People(PeopleNum).NumberOfPeoplePtr); } } - FinalZoneSizing(CtrlZoneNum).TotalZoneFloorArea = - (state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * - state.dataHeatBal->Zone(FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); - if (FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowPPer || FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowSum || - FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowMax) { - OAFromPeople = FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer * TotPeopleInZone; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TotalZoneFloorArea = + (state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).Multiplier * + state.dataHeatBal->Zone(state.dataSize->FinalZoneSizing(CtrlZoneNum).ActualZoneNum).ListMultiplier); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowPPer || state.dataSize->FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowSum || + state.dataSize->FinalZoneSizing(CtrlZoneNum).OADesMethod == OAFlowMax) { + OAFromPeople = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer * TotPeopleInZone; } else { OAFromPeople = 0.0; } - OAFromArea = FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea * FinalZoneSizing(CtrlZoneNum).TotalZoneFloorArea; - FinalZoneSizing(CtrlZoneNum).TotPeopleInZone = TotPeopleInZone; - FinalZoneSizing(CtrlZoneNum).TotalOAFromPeople = OAFromPeople; - FinalZoneSizing(CtrlZoneNum).TotalOAFromArea = OAFromArea; + OAFromArea = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPerArea * state.dataSize->FinalZoneSizing(CtrlZoneNum).TotalZoneFloorArea; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TotPeopleInZone = TotPeopleInZone; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TotalOAFromPeople = OAFromPeople; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TotalOAFromArea = OAFromArea; // save Voz for predefined outdoor air summary report - Real64 MinEz = std::min(FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling, FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating); + Real64 MinEz = std::min(state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating); if (MinEz == 0) { MinEz = 1.0; // if not calculated assume 1.0 ventilation effectiveness } - state.dataHeatBal->ZonePreDefRep(ZoneIndex).VozMin = (ZoneMinOccupancy * FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer + OAFromArea) / MinEz; + state.dataHeatBal->ZonePreDefRep(ZoneIndex).VozMin = (ZoneMinOccupancy * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer + OAFromArea) / MinEz; // Calculate the design min OA flow rate for this zone UseOccSchFlag = false; UseMinOASchFlag = false; - DSOAPtr = FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex; + DSOAPtr = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex; state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneDesignSpecOAIndex = DSOAPtr; // store for later use - state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex = FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex; // store for later use + state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex; // store for later use OAVolumeFlowRate = CalcDesignSpecificationOutdoorAir(state, DSOAPtr, ZoneIndex, UseOccSchFlag, UseMinOASchFlag); // Zone(ZoneIndex)%Multiplier and Zone(ZoneIndex)%ListMultiplier applied in CalcDesignSpecificationOutdoorAir - FinalZoneSizing(CtrlZoneNum).MinOA = OAVolumeFlowRate; - CalcFinalZoneSizing(CtrlZoneNum).MinOA = OAVolumeFlowRate; - if (FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling > 0.0 || FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating > 0.0) { - FinalZoneSizing(CtrlZoneNum).MinOA /= - min(FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling, FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating); - CalcFinalZoneSizing(CtrlZoneNum).MinOA = FinalZoneSizing(CtrlZoneNum).MinOA; + state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA = OAVolumeFlowRate; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).MinOA = OAVolumeFlowRate; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling > 0.0 || state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating > 0.0) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA /= + min(state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating); + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).MinOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA; } // calculated zone design flow rates automatically take into account zone multipliers, since the zone // loads are multiplied (in ZoneTempPredictorCorrector.cc). Flow rates derived directly from // user inputs need to be explicitly multiplied by the zone multipliers. - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2 = FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2 = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea * + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2 = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2 = FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2 = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea * + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2 = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowPerArea * state.dataHeatBal->Zone(ZoneIndex).FloorArea * state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; - CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow *= state.dataHeatBal->Zone(ZoneIndex).Multiplier * state.dataHeatBal->Zone(ZoneIndex).ListMultiplier; for (DesDayNum = 1; DesDayNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DesDayNum) { - ZoneSizing(DesDayNum, CtrlZoneNum).MinOA = FinalZoneSizing(CtrlZoneNum).MinOA; - CalcZoneSizing(DesDayNum, CtrlZoneNum).MinOA = CalcFinalZoneSizing(CtrlZoneNum).MinOA; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow2 = FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2; - ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow2 = FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2; - ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow; - CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).MinOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).MinOA = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).MinOA; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow2 = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow2 = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesCoolMinAirFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow2 = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow2 = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2; + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow; + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).DesHeatMaxAirFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow; } } // Formats print(state.files.eio, "! , Value\n"); static constexpr auto Format_891(" Load Timesteps in Zone Design Calculation Averaging Window, {:4}\n"); - print(state.files.eio, Format_891, NumTimeStepsInAvg); + print(state.files.eio, Format_891, state.dataSize->NumTimeStepsInAvg); print(state.files.eio, "! , Sizing Factor ID, Value\n"); static constexpr auto Format_991(" Heating Sizing Factor Information, Global, {:12.5N}\n"); - print(state.files.eio, Format_991, GlobalHeatSizingFactor); + print(state.files.eio, Format_991, state.dataSize->GlobalHeatSizingFactor); for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - if (FinalZoneSizing(CtrlZoneNum).HeatSizingFactor != 1.0) { + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor != 1.0) { static constexpr auto Format_992(" Heating Sizing Factor Information, Zone {}, {:12.5N}\n"); - print(state.files.eio, Format_992, FinalZoneSizing(CtrlZoneNum).ZoneName, FinalZoneSizing(CtrlZoneNum).HeatSizingFactor); + print(state.files.eio, Format_992, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor); } } print(state.files.eio, "! , Sizing Factor ID, Value\n"); static constexpr auto Format_994(" Cooling Sizing Factor Information, Global, {:12.5N}\n"); - print(state.files.eio, Format_994, GlobalCoolSizingFactor); + print(state.files.eio, Format_994, state.dataSize->GlobalCoolSizingFactor); for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - if (FinalZoneSizing(CtrlZoneNum).CoolSizingFactor != 1.0) { + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor != 1.0) { static constexpr auto Format_995(" Cooling Sizing Factor Information, Zone {}, {:12.5N}\n"); - print(state.files.eio, Format_995, FinalZoneSizing(CtrlZoneNum).ZoneName, FinalZoneSizing(CtrlZoneNum).CoolSizingFactor); + print(state.files.eio, Format_995, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName, state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor); } } } @@ -1377,11 +1379,11 @@ namespace EnergyPlus::ZoneEquipmentManager { for (int ctrlZoneNum = 1; ctrlZoneNum <= state.dataGlobal->NumOfZones; ++ctrlZoneNum) { for (int desDayNum = 1; desDayNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++desDayNum) { - ZoneSizing(desDayNum, ctrlZoneNum).zeroMemberData(); - CalcZoneSizing(desDayNum, ctrlZoneNum).zeroMemberData(); + state.dataSize->ZoneSizing(desDayNum, ctrlZoneNum).zeroMemberData(); + state.dataSize->CalcZoneSizing(desDayNum, ctrlZoneNum).zeroMemberData(); } - CalcFinalZoneSizing(ctrlZoneNum).zeroMemberData(); - FinalZoneSizing(ctrlZoneNum).zeroMemberData(); + state.dataSize->CalcFinalZoneSizing(ctrlZoneNum).zeroMemberData(); + state.dataSize->FinalZoneSizing(ctrlZoneNum).zeroMemberData(); } } @@ -1448,12 +1450,12 @@ namespace EnergyPlus::ZoneEquipmentManager { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDesDay = state.dataEnvrn->EnvironmentName; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDesDay = state.dataEnvrn->EnvironmentName; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatDens = state.dataEnvrn->StdRhoAir; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolDens = state.dataEnvrn->StdRhoAir; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDDNum = CurOverallSimDay; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDDNum = CurOverallSimDay; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDesDay = state.dataEnvrn->EnvironmentName; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDesDay = state.dataEnvrn->EnvironmentName; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatDens = state.dataEnvrn->StdRhoAir; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolDens = state.dataEnvrn->StdRhoAir; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDDNum = state.dataSize->CurOverallSimDay; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDDNum = state.dataSize->CurOverallSimDay; } } else if (SELECT_CASE_var == DataGlobalConstants::CallIndicator::DuringDay) { @@ -1463,62 +1465,62 @@ namespace EnergyPlus::ZoneEquipmentManager { // save the results of the ideal zone component calculation in the CalcZoneSizing sequence variables for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - if (ZoneThermostatSetPointHi(CtrlZoneNum) > 0.0 && ZoneThermostatSetPointHi(CtrlZoneNum) > ZoneSizThermSetPtHi(CtrlZoneNum)) { - ZoneSizThermSetPtHi(CtrlZoneNum) = ZoneThermostatSetPointHi(CtrlZoneNum); + if (ZoneThermostatSetPointHi(CtrlZoneNum) > 0.0 && ZoneThermostatSetPointHi(CtrlZoneNum) > state.dataSize->ZoneSizThermSetPtHi(CtrlZoneNum)) { + state.dataSize->ZoneSizThermSetPtHi(CtrlZoneNum) = ZoneThermostatSetPointHi(CtrlZoneNum); } - if (ZoneThermostatSetPointLo(CtrlZoneNum) > 0.0 && ZoneThermostatSetPointLo(CtrlZoneNum) < ZoneSizThermSetPtLo(CtrlZoneNum)) { - ZoneSizThermSetPtLo(CtrlZoneNum) = ZoneThermostatSetPointLo(CtrlZoneNum); + if (ZoneThermostatSetPointLo(CtrlZoneNum) > 0.0 && ZoneThermostatSetPointLo(CtrlZoneNum) < state.dataSize->ZoneSizThermSetPtLo(CtrlZoneNum)) { + state.dataSize->ZoneSizThermSetPtLo(CtrlZoneNum) = ZoneThermostatSetPointLo(CtrlZoneNum); } - ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatSetPtSeq(TimeStepInDay) = ZoneThermostatSetPointLo(CtrlZoneNum); - ZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatTstatTempSeq(TimeStepInDay) = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatTstatTemp; - ZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolSetPtSeq(TimeStepInDay) = ZoneThermostatSetPointHi(CtrlZoneNum); - ZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolTstatTempSeq(TimeStepInDay) = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolTstatTemp; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatFlowSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatMassFlow * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoad * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRat * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutHumRat * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolFlowSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolMassFlow * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoad * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRat * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutHumRat * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatLoadSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatLoad * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASCoolLoadSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASCoolLoad * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatAdd * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASLatAdd * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupMassFlowSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupMassFlow * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupTempSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupTemp * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupHumRatSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASSupHumRat * FracTimeStepZone; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASTotCoolLoadSeq(TimeStepInDay) += - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASTotCoolLoad * FracTimeStepZone; + state.dataSize->ZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatSetPtSeq(TimeStepInDay) = ZoneThermostatSetPointLo(CtrlZoneNum); + state.dataSize->ZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatTstatTempSeq(TimeStepInDay) = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatTstatTemp; + state.dataSize->ZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolSetPtSeq(TimeStepInDay) = ZoneThermostatSetPointHi(CtrlZoneNum); + state.dataSize->ZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolTstatTempSeq(TimeStepInDay) = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolTstatTemp; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatFlowSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatMassFlow * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoad * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRat * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutHumRat * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolFlowSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolMassFlow * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoad * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRat * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutHumRat * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatLoadSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatLoad * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASCoolLoadSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASCoolLoad * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatAdd * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASLatAdd * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupMassFlowSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupMassFlow * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupTempSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupTemp * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupHumRatSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASSupHumRat * FracTimeStepZone; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASTotCoolLoadSeq(TimeStepInDay) += + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASTotCoolLoad * FracTimeStepZone; } } else if (SELECT_CASE_var == DataGlobalConstants::CallIndicator::EndDay) { @@ -1526,50 +1528,50 @@ namespace EnergyPlus::ZoneEquipmentManager { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolFlowSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolFlowSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolFlowSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolFlowSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatFlowSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatFlowSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatFlowSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatFlowSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASHeatAddSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; state.dataZoneEquipmentManager->AvgData = 0.0; - MovingAvg(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq = state.dataZoneEquipmentManager->AvgData; + MovingAvg(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq, state.dataZoneEquipmentManager->NumOfTimeStepInDay, state.dataSize->NumTimeStepsInAvg, state.dataZoneEquipmentManager->AvgData); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DOASLatAddSeq = state.dataZoneEquipmentManager->AvgData; } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { @@ -1577,178 +1579,178 @@ namespace EnergyPlus::ZoneEquipmentManager { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; // save the sequence values at the heating peak for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepIndex) > - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatLoad) { - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatLoad = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatFlowSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepIndex; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepIndex) > + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatLoad) { + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatLoad = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatFlowSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepIndex; } } - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow > 0.0) { - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow / CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatDens; - OAFrac = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).MinOA / - max(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow, SmallMassFlow); + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow > 0.0) { + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow / state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatDens; + OAFrac = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).MinOA / + max(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow, SmallMassFlow); OAFrac = min(1.0, max(0.0, OAFrac)); - TimeStepAtPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp = - OAFrac * DesDayWeath(CurOverallSimDay).Temp(TimeStepAtPeak) + - (1.0 - OAFrac) * CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat = - OAFrac * DesDayWeath(CurOverallSimDay).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; + TimeStepAtPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp = + OAFrac * state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).Temp(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat = + OAFrac * state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; } // save the sequence values at the cooling peak for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepIndex) > - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolLoad) { - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolLoad = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepIndex; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepIndex) > + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolLoad) { + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolLoad = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepIndex; } } - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow > 0.0) { - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow / CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolDens; - OAFrac = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).MinOA / - max(CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow, SmallMassFlow); + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow > 0.0) { + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow / state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolDens; + OAFrac = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).MinOA / + max(state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow, SmallMassFlow); OAFrac = min(1.0, max(0.0, OAFrac)); - TimeStepAtPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp = - OAFrac * DesDayWeath(CurOverallSimDay).Temp(TimeStepAtPeak) + - (1.0 - OAFrac) * CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat = - OAFrac * DesDayWeath(CurOverallSimDay).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; + TimeStepAtPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp = + OAFrac * state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).Temp(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat = + OAFrac * state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; } // from all the design periods, choose the one needing the most heating and save all its design variables in CalcFinalZoneSizing - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow > CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { - CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatLoad; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDesDay; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatDens; - CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatFlowSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).HeatDDNum = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDDNum; - CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate = DesDayWeath(CurOverallSimDay).DateString; - CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow > state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatVolFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatLoad; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatMassFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDesDay; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatDens; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatFlowSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDDNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDDNum; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate = state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).DateString; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat; } else { - CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens = state.dataEnvrn->StdRhoAir; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatDens = state.dataEnvrn->StdRhoAir; // save design heating load when the there is design heating load and the design heating volume flow rate is zero, i.e., when // design heating volume flow rate is set to zero due to heating supply air temp less than zone thermostat temperature - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatLoad > CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad) { - CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatLoad; - CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDesDay; - CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatLoadSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).HeatDDNum = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatDDNum; - CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate = DesDayWeath(CurOverallSimDay).DateString; - CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp; - CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat; - CalcFinalZoneSizing(CtrlZoneNum).HeatTstatTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).HeatTstatTemp; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatLoad > state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad) { + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatLoad; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDesDay; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatLoadSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneRetTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatZoneHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatOutHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDDNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatDDNum; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate = state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).DateString; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtHeatMax; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesHeatCoilInHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatTstatTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).HeatTstatTemp; } } // from all the design periods, choose the one needing the most Cooling and save all its design variables in CalcFinalZoneSizing - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow > CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) { - CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolLoad; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesDay = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDesDay; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolDens; - CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolFlowSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutTempAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).CoolDDNum = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDDNum; - CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate = DesDayWeath(CurOverallSimDay).DateString; - CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow > state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) { + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolVolFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolLoad; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolMassFlow; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesDay = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDesDay; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolDens; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolFlowSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutTempAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDDNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDDNum; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate = state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).DateString; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat; } else { - CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens = state.dataEnvrn->StdRhoAir; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolDens = state.dataEnvrn->StdRhoAir; // save design cooling load when the there is design cooling load and the design cooling volume flow rate is zero, i.e., when // design cooling volume flow rate is set to zero due to cooling supply air temp greater than zone thermostat temperature - if (CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolLoad > CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad) { - CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolLoad; - CalcFinalZoneSizing(CtrlZoneNum).CoolDesDay = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDesDay; - CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolLoadSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq; - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutTempAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtCoolPeak = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).CoolDDNum = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolDDNum; - CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate = DesDayWeath(CurOverallSimDay).DateString; - CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = - CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp; - CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat; - CalcFinalZoneSizing(CtrlZoneNum).CoolTstatTemp = CalcZoneSizing(CurOverallSimDay, CtrlZoneNum).CoolTstatTemp; + if (state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolLoad > state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad) { + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolLoad; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDesDay = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDesDay; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolLoadSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneRetTempSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolZoneHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolOutHumRatSeq; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutTempAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneRetTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).OutHumRatAtCoolPeak = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).OutHumRatAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolDDNum = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolDDNum; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate = state.dataSize->DesDayWeath(state.dataSize->CurOverallSimDay).DateString; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = + state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).TimeStepNumAtCoolMax; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInTemp; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).DesCoolCoilInHumRat; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolTstatTemp = state.dataSize->CalcZoneSizing(state.dataSize->CurOverallSimDay, CtrlZoneNum).CoolTstatTemp; } } } @@ -1763,29 +1765,29 @@ namespace EnergyPlus::ZoneEquipmentManager { if (state.dataGlobal->AnyEnergyManagementSystemInModel) { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatMassOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatMassFlow; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatMassOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatMassFlow; } - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolMassOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolMassFlow; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolMassOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolMassFlow; } - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatLoadOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatLoad; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatLoadOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatLoad; } - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolLoadOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolLoad; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolLoadOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolLoad; } - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatVolOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatVolFlow; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesHeatVolOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesHeatVolFlow; } - if (CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolVolOn) { - if (CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) - CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolVolFlow; + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSOverrideDesCoolVolOn) { + if (state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).EMSValueDesCoolVolFlow; } } } @@ -1794,12 +1796,12 @@ namespace EnergyPlus::ZoneEquipmentManager { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - if (std::abs(CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad) <= 1.e-8) { - ShowWarningError(state, "Calculated design cooling load for zone=" + CalcFinalZoneSizing(CtrlZoneNum).ZoneName + " is zero."); + if (std::abs(state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad) <= 1.e-8) { + ShowWarningError(state, "Calculated design cooling load for zone=" + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName + " is zero."); ShowContinueError(state, "Check Sizing:Zone and ZoneControl:Thermostat inputs."); } - if (std::abs(CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad) <= 1.e-8) { - ShowWarningError(state, "Calculated design heating load for zone=" + CalcFinalZoneSizing(CtrlZoneNum).ZoneName + " is zero."); + if (std::abs(state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad) <= 1.e-8) { + ShowWarningError(state, "Calculated design heating load for zone=" + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneName + " is zero."); ShowContinueError(state, "Check Sizing:Zone and ZoneControl:Thermostat inputs."); } } @@ -1811,33 +1813,33 @@ namespace EnergyPlus::ZoneEquipmentManager { static constexpr auto ZSizeFmt11("{}{}:{}{}{}{}:{}{}{}{}:{}{}{}{}:{}{}"); print(state.files.zsz, ZSizeFmt11, - SizingFileColSep, - CalcFinalZoneSizing(I).ZoneName, - CalcFinalZoneSizing(I).HeatDesDay, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).ZoneName, + state.dataSize->CalcFinalZoneSizing(I).HeatDesDay, ":Des Heat Load [W]", - SizingFileColSep, - CalcFinalZoneSizing(I).ZoneName, - CalcFinalZoneSizing(I).CoolDesDay, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).ZoneName, + state.dataSize->CalcFinalZoneSizing(I).CoolDesDay, ":Des Sens Cool Load [W]", - SizingFileColSep, - CalcFinalZoneSizing(I).ZoneName, - CalcFinalZoneSizing(I).HeatDesDay, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).ZoneName, + state.dataSize->CalcFinalZoneSizing(I).HeatDesDay, ":Des Heat Mass Flow [kg/s]", - SizingFileColSep, - CalcFinalZoneSizing(I).ZoneName, - CalcFinalZoneSizing(I).CoolDesDay, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).ZoneName, + state.dataSize->CalcFinalZoneSizing(I).CoolDesDay, ":Des Cool Mass Flow [kg/s]"); // Should this be done only if there is a cooling load? Or would this message help determine why there was no load? - if (std::abs(CalcFinalZoneSizing(I).DesCoolLoad) > 1.e-8) { + if (std::abs(state.dataSize->CalcFinalZoneSizing(I).DesCoolLoad) > 1.e-8) { // check for low cooling delta T from supply to zone to see if air volume flow rate might be excessively high - if (CalcFinalZoneSizing(I).ZnCoolDgnSAMethod == SupplyAirTemperature) { - SupplyTemp = CalcFinalZoneSizing(I).CoolDesTemp; - DeltaTemp = SupplyTemp - CalcFinalZoneSizing(I).ZoneTempAtCoolPeak; + if (state.dataSize->CalcFinalZoneSizing(I).ZnCoolDgnSAMethod == SupplyAirTemperature) { + SupplyTemp = state.dataSize->CalcFinalZoneSizing(I).CoolDesTemp; + DeltaTemp = SupplyTemp - state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak; } else { - DeltaTemp = -std::abs(CalcFinalZoneSizing(I).CoolDesTempDiff); - SupplyTemp = DeltaTemp + CalcFinalZoneSizing(I).ZoneTempAtCoolPeak; + DeltaTemp = -std::abs(state.dataSize->CalcFinalZoneSizing(I).CoolDesTempDiff); + SupplyTemp = DeltaTemp + state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak; } // check for low delta T to avoid very high flow rates @@ -1848,45 +1850,45 @@ namespace EnergyPlus::ZoneEquipmentManager { ShowSevereError(state, "UpdateZoneSizing: Cooling supply air temperature (calculated) within 2C of zone temperature"); } ShowContinueError(state, "...check zone thermostat set point and design supply air temperatures"); - ShowContinueError(state, "...zone name = " + CalcFinalZoneSizing(I).ZoneName); - ShowContinueError(state, format("...design sensible cooling load = {:.2R} W", CalcFinalZoneSizing(I).DesCoolLoad)); - ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", CalcFinalZoneSizing(I).CoolTstatTemp)); + ShowContinueError(state, "...zone name = " + state.dataSize->CalcFinalZoneSizing(I).ZoneName); + ShowContinueError(state, format("...design sensible cooling load = {:.2R} W", state.dataSize->CalcFinalZoneSizing(I).DesCoolLoad)); + ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).CoolTstatTemp)); ShowContinueError(state, - format("...zone temperature = {:.3R} C", CalcFinalZoneSizing(I).ZoneTempAtCoolPeak)); + format("...zone temperature = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak)); ShowContinueError(state, format("...supply air temperature = {:.3R} C", SupplyTemp)); ShowContinueError(state, format("...temperature difference = {:.5R} C", DeltaTemp)); ShowContinueError(state, - format("...calculated volume flow rate = {:.5R} m3/s", (CalcFinalZoneSizing(I).DesCoolVolFlow))); + format("...calculated volume flow rate = {:.5R} m3/s", (state.dataSize->CalcFinalZoneSizing(I).DesCoolVolFlow))); ShowContinueError(state, - format("...calculated mass flow rate = {:.5R} kg/s", (CalcFinalZoneSizing(I).DesCoolMassFlow))); - if (SupplyTemp > CalcFinalZoneSizing(I).ZoneTempAtCoolPeak) + format("...calculated mass flow rate = {:.5R} kg/s", (state.dataSize->CalcFinalZoneSizing(I).DesCoolMassFlow))); + if (SupplyTemp > state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak) ShowContinueError(state, "...Note: supply air temperature should be less than zone temperature during cooling air flow calculations"); - } else if (std::abs(DeltaTemp) > SmallTempDiff && SupplyTemp > CalcFinalZoneSizing(I).ZoneTempAtCoolPeak) { + } else if (std::abs(DeltaTemp) > SmallTempDiff && SupplyTemp > state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak) { ShowSevereError(state, "UpdateZoneSizing: Supply air temperature is greater than zone temperature during cooling air flow calculations"); ShowContinueError(state, - format("...calculated volume flow rate = {:.5R} m3/s", (CalcFinalZoneSizing(I).DesCoolVolFlow))); + format("...calculated volume flow rate = {:.5R} m3/s", (state.dataSize->CalcFinalZoneSizing(I).DesCoolVolFlow))); ShowContinueError(state, - format("...calculated mass flow rate = {:.5R} kg/s", (CalcFinalZoneSizing(I).DesCoolMassFlow))); - ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", CalcFinalZoneSizing(I).CoolTstatTemp)); + format("...calculated mass flow rate = {:.5R} kg/s", (state.dataSize->CalcFinalZoneSizing(I).DesCoolMassFlow))); + ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).CoolTstatTemp)); ShowContinueError(state, - format("...zone temperature = {:.3R} C", CalcFinalZoneSizing(I).ZoneTempAtCoolPeak)); + format("...zone temperature = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtCoolPeak)); ShowContinueError(state, format("...supply air temperature = {:.3R} C", SupplyTemp)); - ShowContinueError(state, "...occurs in zone = " + CalcFinalZoneSizing(I).ZoneName); + ShowContinueError(state, "...occurs in zone = " + state.dataSize->CalcFinalZoneSizing(I).ZoneName); ShowContinueError(state, "...Note: supply air temperature should be less than zone temperature during cooling air flow calculations"); } } // Should this be done only if there is a heating load? Or would this message help determine why there was no load? - if (std::abs(CalcFinalZoneSizing(I).DesHeatLoad) > 1.e-8) { // ABS() ? + if (std::abs(state.dataSize->CalcFinalZoneSizing(I).DesHeatLoad) > 1.e-8) { // ABS() ? // check for low cooling delta T from supply to zone to see if air volume flow rate might be excessively high - if (CalcFinalZoneSizing(I).ZnHeatDgnSAMethod == SupplyAirTemperature) { - SupplyTemp = CalcFinalZoneSizing(I).HeatDesTemp; - DeltaTemp = SupplyTemp - CalcFinalZoneSizing(I).ZoneTempAtHeatPeak; + if (state.dataSize->CalcFinalZoneSizing(I).ZnHeatDgnSAMethod == SupplyAirTemperature) { + SupplyTemp = state.dataSize->CalcFinalZoneSizing(I).HeatDesTemp; + DeltaTemp = SupplyTemp - state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak; } else { - DeltaTemp = CalcFinalZoneSizing(I).HeatDesTempDiff; - SupplyTemp = DeltaTemp + CalcFinalZoneSizing(I).ZoneTempAtHeatPeak; + DeltaTemp = state.dataSize->CalcFinalZoneSizing(I).HeatDesTempDiff; + SupplyTemp = DeltaTemp + state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak; } if (std::abs(DeltaTemp) < 5.0 && std::abs(DeltaTemp) > SmallTempDiff) { // Vdot exceeds 1200 cfm/ton @ DT=5 @@ -1896,34 +1898,34 @@ namespace EnergyPlus::ZoneEquipmentManager { ShowSevereError(state, "UpdateZoneSizing: Heating supply air temperature (calculated) within 2C of zone temperature"); } ShowContinueError(state, "...check zone thermostat set point and design supply air temperatures"); - ShowContinueError(state, "...zone name = " + CalcFinalZoneSizing(I).ZoneName); - ShowContinueError(state, format("...design heating load = {:.2R} W", CalcFinalZoneSizing(I).DesHeatLoad)); - ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", CalcFinalZoneSizing(I).HeatTstatTemp)); + ShowContinueError(state, "...zone name = " + state.dataSize->CalcFinalZoneSizing(I).ZoneName); + ShowContinueError(state, format("...design heating load = {:.2R} W", state.dataSize->CalcFinalZoneSizing(I).DesHeatLoad)); + ShowContinueError(state, format("...thermostat set point temp = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).HeatTstatTemp)); ShowContinueError(state, - format("...zone temperature = {:.3R} C", CalcFinalZoneSizing(I).ZoneTempAtHeatPeak)); + format("...zone temperature = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak)); ShowContinueError(state, format("...supply air temperature = {:.3R} C", SupplyTemp)); ShowContinueError(state, format("...temperature difference = {:.5R} C", DeltaTemp)); ShowContinueError(state, - format("...calculated volume flow rate = {:.5R} m3/s", (CalcFinalZoneSizing(I).DesHeatVolFlow))); + format("...calculated volume flow rate = {:.5R} m3/s", (state.dataSize->CalcFinalZoneSizing(I).DesHeatVolFlow))); ShowContinueError(state, - format("...calculated mass flow rate = {:.5R} kg/s", (CalcFinalZoneSizing(I).DesHeatMassFlow))); - if (SupplyTemp < CalcFinalZoneSizing(I).ZoneTempAtHeatPeak) + format("...calculated mass flow rate = {:.5R} kg/s", (state.dataSize->CalcFinalZoneSizing(I).DesHeatMassFlow))); + if (SupplyTemp < state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak) ShowContinueError(state, "...Note: supply air temperature should be greater than zone temperature during heating air " "flow calculations"); - } else if (std::abs(DeltaTemp) > SmallTempDiff && SupplyTemp < CalcFinalZoneSizing(I).ZoneTempAtHeatPeak) { + } else if (std::abs(DeltaTemp) > SmallTempDiff && SupplyTemp < state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak) { ShowSevereError(state, "UpdateZoneSizing: Supply air temperature is less than zone temperature during heating air flow calculations"); ShowContinueError( state, - format("...calculated design heating volume flow rate = {:.5R} m3/s", (CalcFinalZoneSizing(I).DesHeatVolFlow))); + format("...calculated design heating volume flow rate = {:.5R} m3/s", (state.dataSize->CalcFinalZoneSizing(I).DesHeatVolFlow))); ShowContinueError( state, - format("...calculated design heating mass flow rate = {:.5R} kg/s", (CalcFinalZoneSizing(I).DesHeatMassFlow))); - ShowContinueError(state, format("...thermostat set piont temp = {:.3R} C", CalcFinalZoneSizing(I).HeatTstatTemp)); + format("...calculated design heating mass flow rate = {:.5R} kg/s", (state.dataSize->CalcFinalZoneSizing(I).DesHeatMassFlow))); + ShowContinueError(state, format("...thermostat set piont temp = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).HeatTstatTemp)); ShowContinueError(state, - format("...zone temperature = {:.3R} C", CalcFinalZoneSizing(I).ZoneTempAtHeatPeak)); + format("...zone temperature = {:.3R} C", state.dataSize->CalcFinalZoneSizing(I).ZoneTempAtHeatPeak)); ShowContinueError(state, format("...supply air temperature = {:.3R} C", SupplyTemp)); - ShowContinueError(state, "...occurs in zone = " + CalcFinalZoneSizing(I).ZoneName); + ShowContinueError(state, "...occurs in zone = " + state.dataSize->CalcFinalZoneSizing(I).ZoneName); ShowContinueError(state, "...Note: supply air temperature should be greater than zone temperature during heating air " "flow calculations"); } @@ -1946,11 +1948,11 @@ namespace EnergyPlus::ZoneEquipmentManager { } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; - if (TimeStepIndex == CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax) { - HeatPeakDateHrMin(CtrlZoneNum) = CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate + ' ' + format(PeakHrMinFmt, HourPrint,Minutes); + if (TimeStepIndex == state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax) { + state.dataSize->HeatPeakDateHrMin(CtrlZoneNum) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cHeatDDDate + ' ' + format(PeakHrMinFmt, HourPrint,Minutes); } - if (TimeStepIndex == CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax) { - CoolPeakDateHrMin(CtrlZoneNum) = CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate + ' ' + format(PeakHrMinFmt, HourPrint, Minutes); + if (TimeStepIndex == state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax) { + state.dataSize->CoolPeakDateHrMin(CtrlZoneNum) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).cCoolDDDate + ' ' + format(PeakHrMinFmt, HourPrint, Minutes); } } @@ -1961,14 +1963,14 @@ namespace EnergyPlus::ZoneEquipmentManager { static constexpr auto ZSizeFmt21("{}{:12.6E}{}{:12.6E}{}{:12.6E}{}{:12.6E}"); print(state.files.zsz, ZSizeFmt21, - SizingFileColSep, - CalcFinalZoneSizing(I).HeatLoadSeq(TimeStepIndex), - SizingFileColSep, - CalcFinalZoneSizing(I).CoolLoadSeq(TimeStepIndex), - SizingFileColSep, - CalcFinalZoneSizing(I).HeatFlowSeq(TimeStepIndex), - SizingFileColSep, - CalcFinalZoneSizing(I).CoolFlowSeq(TimeStepIndex)); + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).HeatLoadSeq(TimeStepIndex), + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).CoolLoadSeq(TimeStepIndex), + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).HeatFlowSeq(TimeStepIndex), + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).CoolFlowSeq(TimeStepIndex)); } print(state.files.zsz, "\n"); } @@ -1981,14 +1983,14 @@ namespace EnergyPlus::ZoneEquipmentManager { static constexpr auto ZSizeFmt31("{}{:12.6E}{}{:12.6E}{}{:12.6E}{}{:12.6E}"); print(state.files.zsz, ZSizeFmt31, - SizingFileColSep, - CalcFinalZoneSizing(I).DesHeatLoad, - SizingFileColSep, - CalcFinalZoneSizing(I).DesCoolLoad, - SizingFileColSep, - CalcFinalZoneSizing(I).DesHeatMassFlow, - SizingFileColSep, - CalcFinalZoneSizing(I).DesCoolMassFlow); + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesHeatLoad, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesCoolLoad, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesHeatMassFlow, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesCoolMassFlow); } print(state.files.zsz, "\n"); @@ -1998,12 +2000,12 @@ namespace EnergyPlus::ZoneEquipmentManager { static constexpr auto ZSizeFmt41("{}{}{}{:12.6E}{}{:12.6E}"); print(state.files.zsz, ZSizeFmt41, - SizingFileColSep, - SizingFileColSep, - SizingFileColSep, - CalcFinalZoneSizing(I).DesHeatVolFlow, - SizingFileColSep, - CalcFinalZoneSizing(I).DesCoolVolFlow); + state.dataSize->SizingFileColSep, + state.dataSize->SizingFileColSep, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesHeatVolFlow, + state.dataSize->SizingFileColSep, + state.dataSize->CalcFinalZoneSizing(I).DesCoolVolFlow); } print(state.files.zsz, "\n"); state.files.zsz.close(); @@ -2011,9 +2013,9 @@ namespace EnergyPlus::ZoneEquipmentManager { // Move data from Calc arrays to user modified arrays - for (std::size_t i = 0; i < ZoneSizing.size(); ++i) { - auto &z(ZoneSizing[i]); - auto &c(CalcZoneSizing[i]); + for (std::size_t i = 0; i < state.dataSize->ZoneSizing.size(); ++i) { + auto &z(state.dataSize->ZoneSizing[i]); + auto &c(state.dataSize->CalcZoneSizing[i]); z.CoolDesDay = c.CoolDesDay; z.HeatDesDay = c.HeatDesDay; z.DesHeatDens = c.DesHeatDens; @@ -2046,9 +2048,9 @@ namespace EnergyPlus::ZoneEquipmentManager { z.DesCoolCoilInHumRat = c.DesCoolCoilInHumRat; } - for (std::size_t i = 0; i < FinalZoneSizing.size(); ++i) { - auto &z(FinalZoneSizing[i]); - auto &c(CalcFinalZoneSizing[i]); + for (std::size_t i = 0; i < state.dataSize->FinalZoneSizing.size(); ++i) { + auto &z(state.dataSize->FinalZoneSizing[i]); + auto &c(state.dataSize->CalcFinalZoneSizing[i]); z.CoolDesDay = c.CoolDesDay; z.HeatDesDay = c.HeatDesDay; z.DesHeatDens = c.DesHeatDens; @@ -2089,34 +2091,34 @@ namespace EnergyPlus::ZoneEquipmentManager { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - ZoneSizing(DesDayNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatLoadSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatLoadSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolLoadSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolLoadSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); - ZoneSizing(DesDayNum, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex) = - CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatLoadSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatLoadSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolLoadSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolLoadSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); + state.dataSize->ZoneSizing(DesDayNum, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex) = + state.dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); } } } @@ -2124,130 +2126,130 @@ namespace EnergyPlus::ZoneEquipmentManager { for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatLoadSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolLoadSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatOutTempSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolOutTempSeq(TimeStepIndex) = CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); - FinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex) = - CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatLoadSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolLoadSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatOutTempSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneRetTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatZoneHumRatSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatOutHumRatSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolOutTempSeq(TimeStepIndex) = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneRetTempSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolZoneHumRatSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex) = + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolOutHumRatSeq(TimeStepIndex); } } for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) { if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue; // update non air system design load and air flow to include the sizing factor - FinalZoneSizing(CtrlZoneNum).NonAirSysDesCoolLoad *= FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; - FinalZoneSizing(CtrlZoneNum).NonAirSysDesCoolVolFlow *= - FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; // NonAirSysDesCoolVolFlow not currently used + state.dataSize->FinalZoneSizing(CtrlZoneNum).NonAirSysDesCoolLoad *= state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).NonAirSysDesCoolVolFlow *= + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; // NonAirSysDesCoolVolFlow not currently used // Now take into account the user specified sizing factor and user specified cooling design air flow rate TotCoolSizMult = 0.0; // Calculate a sizing factor from the user specified cooling design air flow rate - if (FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow > 0.0 && FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == InpDesAirFlow && - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { - TotCoolSizMult = (FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow / FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) * - FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow > 0.0 && state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == InpDesAirFlow && + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { + TotCoolSizMult = (state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow / state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) * + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; // If no user specified cooling design air flow rate input, use the user specified szing factor } else { - TotCoolSizMult = FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; + TotCoolSizMult = state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolSizingFactor; } // If the cooling sizing multiplier is not 1, adjust the cooling design data if (std::abs(TotCoolSizMult - 1.0) > 0.00001) { - if (FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { - TimeStepAtPeak = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; - DDNum = FinalZoneSizing(CtrlZoneNum).CoolDDNum; - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * TotCoolSizMult; - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow * TotCoolSizMult; - FinalZoneSizing(CtrlZoneNum).DesCoolLoad = CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad * TotCoolSizMult; - FinalZoneSizing(CtrlZoneNum).CoolFlowSeq = CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq * TotCoolSizMult; - FinalZoneSizing(CtrlZoneNum).CoolLoadSeq = CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq * TotCoolSizMult; - OAFrac = FinalZoneSizing(CtrlZoneNum).MinOA / FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; + DDNum = state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * TotCoolSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolMassFlow * TotCoolSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolLoad = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesCoolLoad * TotCoolSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeq = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolFlowSeq * TotCoolSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolLoadSeq = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).CoolLoadSeq * TotCoolSizMult; + OAFrac = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA / state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow; OAFrac = min(1.0, max(0.0, OAFrac)); - FinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = - OAFrac * DesDayWeath(DDNum).Temp(TimeStepAtPeak) + (1.0 - OAFrac) * FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; - FinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = OAFrac * DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = + OAFrac * state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) + (1.0 - OAFrac) * state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = OAFrac * state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; } else { - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * FinalZoneSizing(CtrlZoneNum).DesCoolDens; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesCoolAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolDens; } for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - if (ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow > 0.0) { - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow * TotCoolSizMult; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow * TotCoolSizMult; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolLoad = CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolLoad * TotCoolSizMult; - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq = CalcZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq * TotCoolSizMult; - ZoneSizing(DDNum, CtrlZoneNum).CoolLoadSeq = CalcZoneSizing(DDNum, CtrlZoneNum).CoolLoadSeq * TotCoolSizMult; - OAFrac = ZoneSizing(DDNum, CtrlZoneNum).MinOA / ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; + if (state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow * TotCoolSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow * TotCoolSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolLoad = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesCoolLoad * TotCoolSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq * TotCoolSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolLoadSeq = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).CoolLoadSeq * TotCoolSizMult; + OAFrac = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA / state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; OAFrac = min(1.0, max(0.0, OAFrac)); - ZoneSizing(DDNum, CtrlZoneNum).DesCoolCoilInTemp = OAFrac * DesDayWeath(DDNum).Temp(TimeStepAtPeak) + - (1.0 - OAFrac) * ZoneSizing(DDNum, CtrlZoneNum).ZoneTempAtCoolPeak; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolCoilInHumRat = - OAFrac * DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * ZoneSizing(DDNum, CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolCoilInTemp = OAFrac * state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolCoilInHumRat = + OAFrac * state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).ZoneHumRatAtCoolPeak; } else { - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = ZoneSizing(DDNum, CtrlZoneNum).InpDesCoolAirFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow * ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).InpDesCoolAirFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; } // Save cooling flows without MinOA for use later - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA = ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow; } } // Save a set of design cooling air flow rates greater than or equal to the specified minimums without MinOA { Real64 MaxOfMinCoolVolFlowNoOA = 0.0; // max of the user specified design cooling minimum flows without min OA flow [m3/s] - if (FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == DesAirFlowWithLim) { + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == DesAirFlowWithLim) { MaxOfMinCoolVolFlowNoOA = - max(FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2); + max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2); } Real64 MaxOfMinCoolMassFlowNoOA = MaxOfMinCoolVolFlowNoOA * - FinalZoneSizing(CtrlZoneNum) + state.dataSize->FinalZoneSizing(CtrlZoneNum) .DesCoolDens; // max of the user specified design cooling minimum flows without min OA flow [m3/s] - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA = FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlowNoOA = FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow; - if (MaxOfMinCoolVolFlowNoOA > FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA) { - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA = MaxOfMinCoolVolFlowNoOA; - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlowNoOA = MaxOfMinCoolMassFlowNoOA; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlowNoOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow; + if (MaxOfMinCoolVolFlowNoOA > state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowNoOA = MaxOfMinCoolVolFlowNoOA; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlowNoOA = MaxOfMinCoolMassFlowNoOA; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex); - if (MaxOfMinCoolMassFlowNoOA > FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex)) { - FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = MaxOfMinCoolMassFlowNoOA; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex); + if (MaxOfMinCoolMassFlowNoOA > state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex)) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = MaxOfMinCoolMassFlowNoOA; } } for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow; MaxOfMinCoolVolFlowNoOA = - max(ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow); - MaxOfMinCoolMassFlowNoOA = MaxOfMinCoolVolFlowNoOA * ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; - if (MaxOfMinCoolVolFlowNoOA > ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow) { - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = MaxOfMinCoolVolFlowNoOA; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = MaxOfMinCoolMassFlowNoOA; + max(state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow); + MaxOfMinCoolMassFlowNoOA = MaxOfMinCoolVolFlowNoOA * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; + if (MaxOfMinCoolVolFlowNoOA > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlowNoOA = MaxOfMinCoolVolFlowNoOA; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlowNoOA = MaxOfMinCoolMassFlowNoOA; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); - if (MaxOfMinCoolMassFlowNoOA > ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = MaxOfMinCoolMassFlowNoOA; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex); + if (MaxOfMinCoolMassFlowNoOA > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeqNoOA(TimeStepIndex) = MaxOfMinCoolMassFlowNoOA; } } } @@ -2256,37 +2258,37 @@ namespace EnergyPlus::ZoneEquipmentManager { // Now make sure that the design cooling air flow rates are greater than or equal to the specified minimums including MinOA { Real64 MaxOfMinCoolVolFlow = 0.0; // max of the user specified design cooling minimum flows and min OA flow [m3/s] - if (FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == DesAirFlowWithLim) { - MaxOfMinCoolVolFlow = max(FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2, - FinalZoneSizing(CtrlZoneNum).MinOA); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolAirDesMethod == DesAirFlowWithLim) { + MaxOfMinCoolVolFlow = max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2, + state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA); } else { - MaxOfMinCoolVolFlow = FinalZoneSizing(CtrlZoneNum).MinOA; + MaxOfMinCoolVolFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA; } Real64 MaxOfMinCoolMassFlow = MaxOfMinCoolVolFlow * - FinalZoneSizing(CtrlZoneNum).DesCoolDens; // max of the user specified design cooling minimum flows and min OA flow [kg/s] - if (MaxOfMinCoolVolFlow > FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) { - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = MaxOfMinCoolVolFlow; - FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = MaxOfMinCoolMassFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolDens; // max of the user specified design cooling minimum flows and min OA flow [kg/s] + if (MaxOfMinCoolVolFlow > state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = MaxOfMinCoolVolFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMassFlow = MaxOfMinCoolMassFlow; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (MaxOfMinCoolMassFlow > FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { - FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = MaxOfMinCoolMassFlow; + if (MaxOfMinCoolMassFlow > state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = MaxOfMinCoolMassFlow; } } for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - MaxOfMinCoolVolFlow = max(ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, - ZoneSizing(DDNum, CtrlZoneNum).MinOA); - MaxOfMinCoolMassFlow = MaxOfMinCoolVolFlow * ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; - if (MaxOfMinCoolVolFlow > ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow) { - ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = MaxOfMinCoolVolFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = MaxOfMinCoolMassFlow; + MaxOfMinCoolVolFlow = max(state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMinAirFlow, + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA); + MaxOfMinCoolMassFlow = MaxOfMinCoolVolFlow * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolDens; + if (MaxOfMinCoolVolFlow > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolVolFlow = MaxOfMinCoolVolFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesCoolMassFlow = MaxOfMinCoolMassFlow; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (MaxOfMinCoolMassFlow > ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { - ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = MaxOfMinCoolMassFlow; + if (MaxOfMinCoolMassFlow > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex)) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).CoolFlowSeq(TimeStepIndex) = MaxOfMinCoolMassFlow; } } } @@ -2294,246 +2296,246 @@ namespace EnergyPlus::ZoneEquipmentManager { // IF cooling flow rate is 0, this data may be used to size a HP so initialize DDNum, TimeStepatPeak, and sizing data (end of IF) // check for flow rate having been set (by MinOA or other min) but no timestep at max // IF (FinalZoneSizing(CtrlZoneNum)%DesCoolMassFlow > 0.0d0 .AND. & - if ((FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax == 0 || FinalZoneSizing(CtrlZoneNum).CoolDDNum == 0)) { + if ((state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax == 0 || state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum == 0)) { for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax = 1; - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax = 1; + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (DesDayWeath(DDNum).Temp(TimeStepIndex) > DesDayWeath(DDNum).Temp(TimeStepAtPeak)) { + if (state.dataSize->DesDayWeath(DDNum).Temp(TimeStepIndex) > state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak)) { TimeStepAtPeak = TimeStepIndex; } } - ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepAtPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepAtPeak; } - FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = 1; - FinalZoneSizing(CtrlZoneNum).CoolDDNum = 1; - TimeStepAtPeakF = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; - DDNumF = FinalZoneSizing(CtrlZoneNum).CoolDDNum; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = 1; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum = 1; + TimeStepAtPeakF = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax; + DDNumF = state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum; for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; - if (DesDayWeath(DDNum).Temp(TimeStepAtPeak) > DesDayWeath(DDNumF).Temp(TimeStepAtPeakF)) { + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtCoolMax; + if (state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) > state.dataSize->DesDayWeath(DDNumF).Temp(TimeStepAtPeakF)) { DDNumF = DDNum; TimeStepAtPeakF = TimeStepAtPeak; } } - FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepAtPeakF; - FinalZoneSizing(CtrlZoneNum).CoolDDNum = DDNumF; - FinalZoneSizing(CtrlZoneNum).CoolDesDay = ZoneSizing(DDNumF, CtrlZoneNum).CoolDesDay; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtCoolMax = TimeStepAtPeakF; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDDNum = DDNumF; + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesDay = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).CoolDesDay; // initialize sizing conditions if they have not been set (i.e., no corresponding load) to zone condition - if (FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak == 0.0) { + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak == 0.0) { // issue 6006, heating coils sizing to 0 when no heating load in zone - if (ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.empty()) { + if (state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.empty()) { ShowSevereError(state, RoutineName + ": Thermostat cooling set point temperatures are not initialized for Zone = " + - FinalZoneSizing(CtrlZoneNum).ZoneName); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName); ShowFatalError(state, "Please send your input file to the EnergyPlus support/development team for further investigation."); } else { - FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = *std::min_element( - ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.begin(), ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.end()); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = *std::min_element( + state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.begin(), state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesCoolSetPtSeq.end()); } - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = ZoneSizing(DDNumF, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepAtPeakF); - if (FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak > 0.0) { - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = - min(FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak, - PsyWFnTdpPb(state, FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak, state.dataEnvrn->StdBaroPress, RoutineName)); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).CoolZoneHumRatSeq(TimeStepAtPeakF); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak > 0.0) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = + min(state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak, + PsyWFnTdpPb(state, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak, state.dataEnvrn->StdBaroPress, RoutineName)); } else { - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = ZoneSizing(DDNumF, CtrlZoneNum).CoolDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).CoolDesHumRat; } - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; - FinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; - FinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; - FinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolCoilInTemp = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolCoilInHumRat = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtCoolPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneRetTempAtCoolPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak; } } // update non air system design load and air flow to include the sizing factor - FinalZoneSizing(CtrlZoneNum).NonAirSysDesHeatLoad *= FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; - FinalZoneSizing(CtrlZoneNum).NonAirSysDesHeatVolFlow *= FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).NonAirSysDesHeatLoad *= state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + state.dataSize->FinalZoneSizing(CtrlZoneNum).NonAirSysDesHeatVolFlow *= state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; // Now take into account the user specified sizing factor or user specified heating design air flow rate (which overrides the // sizing factor) TotHeatSizMult = 0.0; // Calculate a sizing factor from the user specified heating design air flow rate - if (FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow > 0.0 && FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod == InpDesAirFlow && - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { - TotHeatSizMult = (FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow / FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * - FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow > 0.0 && state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod == InpDesAirFlow && + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { + TotHeatSizMult = (state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow / state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; // Calculate a sizing factor from the user specified max heating design air flow rates - } else if (FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod == DesAirFlowWithLim && - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { - MaxHeatVolFlow = max(FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow, - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2, - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac); - if (MaxHeatVolFlow < FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { + } else if (state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatAirDesMethod == DesAirFlowWithLim && + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { + MaxHeatVolFlow = max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac); + if (MaxHeatVolFlow < state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { TotHeatSizMult = - (MaxHeatVolFlow / FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + (MaxHeatVolFlow / state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; } else { - TotHeatSizMult = FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + TotHeatSizMult = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; } // If no user specified heating design air flow rate input, use the user specified sizing factor } else { - TotHeatSizMult = FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; + TotHeatSizMult = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatSizingFactor; } if (std::abs(TotHeatSizMult - 1.0) > 0.00001) { - if (FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { - TimeStepAtPeak = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; - DDNum = FinalZoneSizing(CtrlZoneNum).HeatDDNum; - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow * TotHeatSizMult; - FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow * TotHeatSizMult; - FinalZoneSizing(CtrlZoneNum).DesHeatLoad = CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad * TotHeatSizMult; - FinalZoneSizing(CtrlZoneNum).HeatFlowSeq = CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq * TotHeatSizMult; - FinalZoneSizing(CtrlZoneNum).HeatLoadSeq = CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq * TotHeatSizMult; - OAFrac = FinalZoneSizing(CtrlZoneNum).MinOA / FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; + DDNum = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow * TotHeatSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow * TotHeatSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad * TotHeatSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeq = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatFlowSeq * TotHeatSizMult; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatLoadSeq = state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatLoadSeq * TotHeatSizMult; + OAFrac = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA / state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow; OAFrac = min(1.0, max(0.0, OAFrac)); - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = - OAFrac * DesDayWeath(DDNum).Temp(TimeStepAtPeak) + (1.0 - OAFrac) * FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = OAFrac * DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = + OAFrac * state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) + (1.0 - OAFrac) * state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = OAFrac * state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; } else { - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow * FinalZoneSizing(CtrlZoneNum).DesHeatDens; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).InpDesHeatAirFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatDens; } for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - if (ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow > 0.0) { - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow * TotHeatSizMult; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow * TotHeatSizMult; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatLoad = CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatLoad * TotHeatSizMult; - ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq = CalcZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq * TotHeatSizMult; - ZoneSizing(DDNum, CtrlZoneNum).HeatLoadSeq = CalcZoneSizing(DDNum, CtrlZoneNum).HeatLoadSeq * TotHeatSizMult; - OAFrac = ZoneSizing(DDNum, CtrlZoneNum).MinOA / ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow; + if (state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow > 0.0) { + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow * TotHeatSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow * TotHeatSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatLoad = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).DesHeatLoad * TotHeatSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq * TotHeatSizMult; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatLoadSeq = state.dataSize->CalcZoneSizing(DDNum, CtrlZoneNum).HeatLoadSeq * TotHeatSizMult; + OAFrac = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA / state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow; OAFrac = min(1.0, max(0.0, OAFrac)); - ZoneSizing(DDNum, CtrlZoneNum).DesHeatCoilInTemp = OAFrac * DesDayWeath(DDNum).Temp(TimeStepAtPeak) + - (1.0 - OAFrac) * ZoneSizing(DDNum, CtrlZoneNum).ZoneTempAtHeatPeak; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatCoilInHumRat = - OAFrac * DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + - (1.0 - OAFrac) * ZoneSizing(DDNum, CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatCoilInTemp = OAFrac * state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatCoilInHumRat = + OAFrac * state.dataSize->DesDayWeath(DDNum).HumRat(TimeStepAtPeak) + + (1.0 - OAFrac) * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).ZoneHumRatAtHeatPeak; } else { - ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = ZoneSizing(DDNum, CtrlZoneNum).InpDesHeatAirFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = - ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow * ZoneSizing(DDNum, CtrlZoneNum).DesHeatDens; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).InpDesHeatAirFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatDens; } // Save heating flows without MinOA for use later - ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeqNoOA = ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlowNoOA = ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeqNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlowNoOA = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow; } } // Save a set of design heating air flow rates before the MinOA adjustment // just in FinalZoneSizing to use for TermUnit sizing adjustments in SizingManager::UpdateTermUnitFinalZoneSizing - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlowNoOA = FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow; - FinalZoneSizing(CtrlZoneNum).DesHeatMassFlowNoOA = FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlowNoOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlowNoOA = state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow; for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - FinalZoneSizing(CtrlZoneNum).HeatFlowSeqNoOA(TimeStepIndex) = FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex); + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeqNoOA(TimeStepIndex) = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex); } // Now make sure that the design heating air flow rates are greater than or equal to MinOA - MinOAMass = FinalZoneSizing(CtrlZoneNum).MinOA * FinalZoneSizing(CtrlZoneNum).DesHeatDens; - if (FinalZoneSizing(CtrlZoneNum).MinOA > FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = FinalZoneSizing(CtrlZoneNum).MinOA; - FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = MinOAMass; + MinOAMass = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatDens; + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA > state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow = state.dataSize->FinalZoneSizing(CtrlZoneNum).MinOA; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow = MinOAMass; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (MinOAMass > FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex)) { - FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = MinOAMass; + if (MinOAMass > state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex)) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = MinOAMass; } } for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - MinOAMass = ZoneSizing(DDNum, CtrlZoneNum).MinOA * ZoneSizing(DDNum, CtrlZoneNum).DesHeatDens; - if (ZoneSizing(DDNum, CtrlZoneNum).MinOA > ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow) { - ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = ZoneSizing(DDNum, CtrlZoneNum).MinOA; - ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = MinOAMass; + MinOAMass = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA * state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatDens; + if (state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatVolFlow = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).MinOA; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).DesHeatMassFlow = MinOAMass; } for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (MinOAMass > ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex)) { - ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = MinOAMass; + if (MinOAMass > state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex)) { + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).HeatFlowSeq(TimeStepIndex) = MinOAMass; } } } // IF heating flow rate is 0, this data may be used to size a HP so initialize DDNum, TimeStepatPeak, and sizing data (end of IF) // check for flow rate having been set (by MinOA or other min) but no timestep at max // IF (FinalZoneSizing(CtrlZoneNum)%DesHeatMassFlow > 0.0d0 .AND. & - if ((FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax == 0 || FinalZoneSizing(CtrlZoneNum).HeatDDNum == 0)) { + if ((state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax == 0 || state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum == 0)) { for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax = 1; - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax = 1; + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; for (TimeStepIndex = 1; TimeStepIndex <= state.dataZoneEquipmentManager->NumOfTimeStepInDay; ++TimeStepIndex) { - if (DesDayWeath(DDNum).Temp(TimeStepIndex) < DesDayWeath(DDNum).Temp(TimeStepAtPeak)) { + if (state.dataSize->DesDayWeath(DDNum).Temp(TimeStepIndex) < state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak)) { TimeStepAtPeak = TimeStepIndex; } } - ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepAtPeak; + state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepAtPeak; } - FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = 1; - FinalZoneSizing(CtrlZoneNum).HeatDDNum = 1; - TimeStepAtPeakF = FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; - DDNumF = FinalZoneSizing(CtrlZoneNum).HeatDDNum; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = 1; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum = 1; + TimeStepAtPeakF = state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax; + DDNumF = state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum; for (DDNum = 1; DDNum <= state.dataEnvrn->TotDesDays + state.dataEnvrn->TotRunDesPersDays; ++DDNum) { - TimeStepAtPeak = ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; - if (DesDayWeath(DDNum).Temp(TimeStepAtPeak) < DesDayWeath(DDNumF).Temp(TimeStepAtPeakF)) { + TimeStepAtPeak = state.dataSize->ZoneSizing(DDNum, CtrlZoneNum).TimeStepNumAtHeatMax; + if (state.dataSize->DesDayWeath(DDNum).Temp(TimeStepAtPeak) < state.dataSize->DesDayWeath(DDNumF).Temp(TimeStepAtPeakF)) { DDNumF = DDNum; TimeStepAtPeakF = TimeStepAtPeak; } } - FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepAtPeakF; - FinalZoneSizing(CtrlZoneNum).HeatDDNum = DDNumF; - FinalZoneSizing(CtrlZoneNum).HeatDesDay = ZoneSizing(DDNumF, CtrlZoneNum).HeatDesDay; + state.dataSize->FinalZoneSizing(CtrlZoneNum).TimeStepNumAtHeatMax = TimeStepAtPeakF; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDDNum = DDNumF; + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesDay = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatDesDay; // initialize sizing conditions if they have not been set (i.e., no corresponding load) to zone condition - if (FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak == 0.0) { + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak == 0.0) { // issue 6006, heating coils sizing to 0 when no heating load in zone - if (ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.empty()) { + if (state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.empty()) { ShowSevereError(state, RoutineName + ": Thermostat heating set point temperatures not initialized for Zone = " + - FinalZoneSizing(CtrlZoneNum).ZoneName); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneName); ShowFatalError(state, "Please send your input file to the EnergyPlus support/development team for further investigation."); } else { - FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = *std::max_element( - ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.begin(), ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.end()); - FinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = *std::min_element( - ZoneSizing(DDNumF, CtrlZoneNum).HeatOutTempSeq.begin(), ZoneSizing(DDNumF, CtrlZoneNum).HeatOutTempSeq.end()); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = *std::max_element( + state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.begin(), state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).DesHeatSetPtSeq.end()); + state.dataSize->FinalZoneSizing(CtrlZoneNum).OutTempAtHeatPeak = *std::min_element( + state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatOutTempSeq.begin(), state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatOutTempSeq.end()); } - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = ZoneSizing(DDNumF, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepAtPeakF); - FinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = ZoneSizing(DDNumF, CtrlZoneNum).HeatOutHumRatSeq(TimeStepAtPeakF); - if (FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak > 0.0) { - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = - min(FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak, - PsyWFnTdpPb(state, FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, state.dataEnvrn->StdBaroPress, RoutineName)); + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatZoneHumRatSeq(TimeStepAtPeakF); + state.dataSize->FinalZoneSizing(CtrlZoneNum).OutHumRatAtHeatPeak = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatOutHumRatSeq(TimeStepAtPeakF); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak > 0.0) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = + min(state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak, + PsyWFnTdpPb(state, state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, state.dataEnvrn->StdBaroPress, RoutineName)); } else { - FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = ZoneSizing(DDNumF, CtrlZoneNum).HeatDesHumRat; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = state.dataSize->ZoneSizing(DDNumF, CtrlZoneNum).HeatDesHumRat; } - CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; - CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; - FinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTemp = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRat = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneHumRatAtHeatPeak; + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneRetTempAtHeatPeak = state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak; } } // set the zone minimum cooling supply air flow rate. This will be used for autosizing VAV terminal unit // minimum flow rates (comment seems incorrect, really used as a minimum lower limit for the maximum air flow) - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, - FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2, - FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = + max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlow2, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow * state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolMinAirFlowFrac); // set the zone maximum heating supply air flow rate. This will be used for autosizing VAV terminal unit // max heating flow rates - FinalZoneSizing(CtrlZoneNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow, - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * - FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac); + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlowMax = + max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow, + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlow2, + max(state.dataSize->FinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow) * + state.dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMaxAirFlowFrac); // Determine the design cooling supply air temperature if the supply air temperature difference is specified by user. - if (FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod == TemperatureDifference) { - FinalZoneSizing(CtrlZoneNum).CoolDesTemp = - FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak - std::abs(FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnCoolDgnSAMethod == TemperatureDifference) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTemp = + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtCoolPeak - std::abs(state.dataSize->FinalZoneSizing(CtrlZoneNum).CoolDesTempDiff); } // Determine the design heating supply air temperature if the supply air temperature difference is specified by user. - if (FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod == TemperatureDifference) { - FinalZoneSizing(CtrlZoneNum).HeatDesTemp = - FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak + std::abs(FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff); + if (state.dataSize->FinalZoneSizing(CtrlZoneNum).ZnHeatDgnSAMethod == TemperatureDifference) { + state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTemp = + state.dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak + std::abs(state.dataSize->FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff); } } } @@ -2571,6 +2573,8 @@ namespace EnergyPlus::ZoneEquipmentManager { // the type of system being simulated. // 3. Calculate zone energy requirements + auto &ZoneEqSizing(state.dataSize->ZoneEqSizing); + // Using/Aliasing using namespace DataHVACGlobals; using BaseboardElectric::SimElectricBaseboard; @@ -2695,7 +2699,7 @@ namespace EnergyPlus::ZoneEquipmentManager { state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).ZoneExh = 0.0; state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).ZoneExhBalanced = 0.0; state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).PlenumMassFlow = 0.0; - CurZoneEqNum = ControlledZoneNum; + state.dataSize->CurZoneEqNum = ControlledZoneNum; InitSystemOutputRequired(state, ActualZoneNum, FirstHVACIteration, true); @@ -2713,7 +2717,7 @@ namespace EnergyPlus::ZoneEquipmentManager { EquipPtr = state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipPtr; SysOutputProvided = 0.0; LatOutputProvided = 0.0; - DataCoolCoilCap = 0.0; // reset global variable used only for heat pumps (i.e., DX cooling and heating coils) + state.dataSize->DataCoolCoilCap = 0.0; // reset global variable used only for heat pumps (i.e., DX cooling and heating coils) // Reset ZoneEqSizing data (because these may change from one equipment type to the next) if (state.dataZoneEquipmentManager->FirstPassZoneEquipFlag) { @@ -2739,7 +2743,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ZoneEquipTypeNum = state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipType_Num; - ZoneCompNum = state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr); + ZoneCompNum = state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr); bool ValidSAMComp = false; @@ -2790,7 +2794,7 @@ namespace EnergyPlus::ZoneEquipmentManager { LatOutputProvided, ActualZoneNum, ControlledZoneNum, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); // reset status flags for other zone equipment TurnFansOn = false; @@ -2808,7 +2812,7 @@ namespace EnergyPlus::ZoneEquipmentManager { SimulateVRF(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, ControlledZoneNum, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -2823,7 +2827,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if ((SELECT_CASE_var == PkgTermHPAirToAir_Num) || (SELECT_CASE_var == PkgTermACAirToAir_Num) || (SELECT_CASE_var == PkgTermHPWaterToAir_Num)) { // 'ZoneHVAC:PackagedTerminalHeatPump' @@ -2835,7 +2839,7 @@ namespace EnergyPlus::ZoneEquipmentManager { SysOutputProvided, LatOutputProvided, ZoneEquipTypeNum, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == ZoneUnitarySys_Num) { // 'AirloopHVAC:UnitarySystem' int AirLoopNum = 0; @@ -2844,12 +2848,12 @@ namespace EnergyPlus::ZoneEquipmentManager { int OAUnitNum = 0; Real64 OAUCoilOutTemp = 0.0; bool ZoneEquipFlag = true; - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum) + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum) .compPointer[EquipPtr] ->simulate(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, AirLoopNum, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -2864,7 +2868,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); SysDepZoneLoads(ActualZoneNum) += SysOutputProvided; @@ -2879,7 +2883,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == UnitVentilator_Num) { // 'ZoneHVAC:UnitVentilator' SimUnitVentilator(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, @@ -2887,7 +2891,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == UnitHeater_Num) { // 'ZoneHVAC:UnitHeater' SimUnitHeater(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, @@ -2895,7 +2899,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == PurchasedAir_Num) { // 'ZoneHVAC:IdealLoadsAirSystem' SimPurchasedAir(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, @@ -2904,7 +2908,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, ControlledZoneNum, ActualZoneNum, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == BBWater_Num) { // 'ZoneHVAC:Baseboard:RadiantConvective:Water' SimHWBaseboard(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, @@ -2912,7 +2916,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ControlledZoneNum, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat @@ -2923,7 +2927,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ControlledZoneNum, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat @@ -2934,7 +2938,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ControlledZoneNum, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat @@ -2944,7 +2948,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ActualZoneNum, ControlledZoneNum, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat @@ -2955,7 +2959,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ControlledZoneNum, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This cooling panel does not add/remove any latent heat @@ -2964,7 +2968,7 @@ namespace EnergyPlus::ZoneEquipmentManager { SimHighTempRadiantSystem(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); LatOutputProvided = 0.0; // This baseboard currently sends its latent heat gain directly to predictor/corrector // via SumLatentHTRadSys... so setting LatOutputProvided = 0.0 @@ -2974,7 +2978,7 @@ namespace EnergyPlus::ZoneEquipmentManager { SimLowTempRadiantSystem(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat } else if (SELECT_CASE_var == ZoneExhaustFan_Num) { // 'Fan:ZoneExhaust' @@ -2990,7 +2994,7 @@ namespace EnergyPlus::ZoneEquipmentManager { } Fans::SimulateFanComponents(state, - state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, FirstHVACIteration, state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); // reset status flags for other zone equipment TurnFansOn = false; @@ -3034,14 +3038,14 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == OutdoorAirUnit_Num) { // 'ZoneHVAC:OutdoorAirUnit' OutdoorAirUnit::SimOutdoorAirUnit(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, ActualZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == BBElectric_Num) { // 'ZoneHVAC:Baseboard:RadiantConvective:Electric' SimElecBaseboard(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, @@ -3049,7 +3053,7 @@ namespace EnergyPlus::ZoneEquipmentManager { ControlledZoneNum, FirstHVACIteration, SysOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; LatOutputProvided = 0.0; // This baseboard does not add/remove any latent heat @@ -3060,7 +3064,7 @@ namespace EnergyPlus::ZoneEquipmentManager { FirstHVACIteration, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); NonAirSystemResponse(ActualZoneNum) += SysOutputProvided; @@ -3070,21 +3074,21 @@ namespace EnergyPlus::ZoneEquipmentManager { ActualZoneNum, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == ZoneEvaporativeCoolerUnit_Num) { SimZoneEvaporativeCoolerUnit(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, ActualZoneNum, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else if (SELECT_CASE_var == ZoneHybridEvaporativeCooler_Num) { SimZoneHybridUnitaryAirConditioners(state, state.dataZoneEquipmentManager->PrioritySimOrder(EquipTypeNum).EquipName, ActualZoneNum, SysOutputProvided, LatOutputProvided, - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); } else { } @@ -3096,19 +3100,19 @@ namespace EnergyPlus::ZoneEquipmentManager { state.dataZoneEquip->ZoneEquipConfig(ControlledZoneNum).PlenumMassFlow += PlenumInducedMassFlow; // Store available capacities for load distribution calculations - if (FirstHVACIteration && (state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).LoadDistScheme != DataZoneEquipment::LoadDist::SequentialLoading)) { + if (FirstHVACIteration && (state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).LoadDistScheme != DataZoneEquipment::LoadDist::SequentialLoading)) { if (SysOutputProvided > 0.0) { - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).HeatingCapacity(EquipPtr) = SysOutputProvided; + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).HeatingCapacity(EquipPtr) = SysOutputProvided; } else { - state.dataZoneEquip->ZoneEquipList(CurZoneEqNum).CoolingCapacity(EquipPtr) = SysOutputProvided; + state.dataZoneEquip->ZoneEquipList(state.dataSize->CurZoneEqNum).CoolingCapacity(EquipPtr) = SysOutputProvided; } } UpdateSystemOutputRequired(state, ActualZoneNum, SysOutputProvided, LatOutputProvided, EquipTypeNum); - CurTermUnitSizingNum = 0; + state.dataSize->CurTermUnitSizingNum = 0; } // zone loop } // End of controlled zone loop - CurZoneEqNum = 0; + state.dataSize->CurZoneEqNum = 0; state.dataZoneEquipmentManager->FirstPassZoneEquipFlag = false; // This is the call to the Supply Air Path after the components are simulated to update @@ -3298,19 +3302,19 @@ namespace EnergyPlus::ZoneEquipmentManager { (loadDistType == DataZoneEquipment::LoadDist::SequentialUniformPLRLoading)) { // init each sequenced demand to the zone design load in order to get available capacities from equipment if (energy.TotalOutputRequired >= 0.0) { - energy.SequencedOutputRequired = DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment + energy.SequencedOutputRequired = state.dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment } else { - energy.SequencedOutputRequired = -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment + energy.SequencedOutputRequired = -state.dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment } if (energy.TotalOutputRequired >= 0.0) { - energy.SequencedOutputRequiredToHeatingSP = DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment + energy.SequencedOutputRequiredToHeatingSP = state.dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment } else { - energy.SequencedOutputRequiredToHeatingSP = -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment + energy.SequencedOutputRequiredToHeatingSP = -state.dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment } if (energy.TotalOutputRequired >= 0.0) { - energy.SequencedOutputRequiredToCoolingSP = DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment + energy.SequencedOutputRequiredToCoolingSP = state.dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad; // array assignment } else { - energy.SequencedOutputRequiredToCoolingSP = -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment + energy.SequencedOutputRequiredToCoolingSP = -state.dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad; // array assignment } // init each sequenced moisture demand to the full output moisture.SequencedOutputRequired = moisture.TotalOutputRequired; // array assignment @@ -5744,53 +5748,53 @@ namespace EnergyPlus::ZoneEquipmentManager { bool ErrorsFound; ErrorsFound = false; - for (ZoneSizIndex = 1; ZoneSizIndex <= NumZoneSizingInput; ++ZoneSizIndex) { - if (ZoneSizingInput(ZoneSizIndex).AccountForDOAS) { - if (ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOANeutralSup) { - if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 21.1; - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 23.9; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint - 2.8; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint + 2.8; + for (ZoneSizIndex = 1; ZoneSizIndex <= state.dataSize->NumZoneSizingInput; ++ZoneSizIndex) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).AccountForDOAS) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOANeutralSup) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 21.1; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 23.9; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint - 2.8; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint + 2.8; } ReportZoneSizingDOASInputs(state, - ZoneSizingInput(ZoneSizIndex).ZoneName, + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName, "NeutralSupplyAir", - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); - } else if (ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOANeutralDehumSup) { - if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 14.4; - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 22.2; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 14.4; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 22.2; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOANeutralDehumSup) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 14.4; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 22.2; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 14.4; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 22.2; } ReportZoneSizingDOASInputs(state, - ZoneSizingInput(ZoneSizIndex).ZoneName, + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName, "NeutralDehumidifiedSupplyAir", - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); - } else if (ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOACoolSup) { - if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 12.2; - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 14.4; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint - 2.2; - } else if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint + 2.2; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASControlStrategy == DOACoolSup) { + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = 12.2; + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = 14.4; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint == AutoSize && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint > 0.0) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint = state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint - 2.2; + } else if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > 0.0 && state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint == AutoSize) { + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint = state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint + 2.2; } ReportZoneSizingDOASInputs(state, - ZoneSizingInput(ZoneSizIndex).ZoneName, + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName, "ColdSupplyAir", - ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, - ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint, + state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint); } - if (ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint) { - ShowSevereError(state, "For Sizing:Zone = " + ZoneSizingInput(ZoneSizIndex).ZoneName); + if (state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASLowSetpoint > state.dataSize->ZoneSizingInput(ZoneSizIndex).DOASHighSetpoint) { + ShowSevereError(state, "For Sizing:Zone = " + state.dataSize->ZoneSizingInput(ZoneSizIndex).ZoneName); ShowContinueError(state, "... Dedicated Outside Air Low Setpoint for Design must be less than the High Setpoint"); ErrorsFound = true; } diff --git a/tst/EnergyPlus/unit/AirTerminalSingleDuctMixer.unit.cc b/tst/EnergyPlus/unit/AirTerminalSingleDuctMixer.unit.cc index 4f73254b8f2..7828873c91b 100644 --- a/tst/EnergyPlus/unit/AirTerminalSingleDuctMixer.unit.cc +++ b/tst/EnergyPlus/unit/AirTerminalSingleDuctMixer.unit.cc @@ -669,8 +669,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTAC_ATMInletSide) Node(state->dataSingleDuct->SysATMixer(1).SecInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -1000,8 +1000,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTAC_ATMSupplySide) Node(state->dataPTHP->PTUnit(PTUnitNum).AirInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -1414,8 +1414,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTHP_ATMInletSide) Node(state->dataSingleDuct->SysATMixer(1).SecInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -1827,8 +1827,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTHP_ATMSupplySide) Node(state->dataPTHP->PTUnit(PTUnitNum).AirInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -2508,8 +2508,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimVRF_ATMInletSide) Node(state->dataSingleDuct->SysATMixer(1).SecInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataHVACVarRefFlow->VRFTU(1).ZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -3184,8 +3184,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimVRF_ATMSupplySide) Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUInletNodeNum).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataHVACVarRefFlow->VRFTU(1).ZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -4936,8 +4936,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimVRFfluidCntrl_ATMInletSi Node(state->dataSingleDuct->SysATMixer(1).SecInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataHVACVarRefFlow->VRFTU(1).ZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -6688,8 +6688,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimVRFfluidCntrl_ATMSupplyS Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUInletNodeNum).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataHVACVarRefFlow->VRFTU(1).ZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -6925,8 +6925,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimUnitVent_ATMInletSide) Node(state->dataSingleDuct->SysATMixer(1).SecInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataUnitVentilators->UnitVent(1).ZonePtr = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); @@ -7162,8 +7162,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimUnitVent_ATMSupplySide) Node(state->dataUnitVentilators->UnitVent(UnitVentNum).AirInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataUnitVentilators->UnitVent(1).ZonePtr = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); @@ -7526,7 +7526,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) int ZoneNum(1); int FanCoilNum(1); - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); state->dataWaterCoils->GetWaterCoilsInputFlag = true; @@ -7561,8 +7561,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - NumPltSizInput = 2; - PlantSizData.allocate(NumPltSizInput); + state->dataSize->NumPltSizInput = 2; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); // chilled water coil auto &CWCoil(state->dataWaterCoils->WaterCoil(2)); thisFanCoil.CCoilName_Index = 2; @@ -7599,7 +7599,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) CWLoop.LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil_Cooling; CWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumIn = CWCoil.WaterInletNodeNum; CWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumOut = CWCoil.WaterOutletNodeNum; - auto &CWLoopSizingData(DataSizing::PlantSizData(2)); + auto &CWLoopSizingData(state->dataSize->PlantSizData(2)); // Chilled Water Loop CWLoop.PlantSizNum = 2; CWLoopSizingData.PlantLoopName = CWLoop.Name; @@ -7616,7 +7616,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) HWLoop.LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil_SimpleHeating; HWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumIn = HWCoil.WaterInletNodeNum; HWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumOut = HWCoil.WaterOutletNodeNum; - auto &HWLoopSizingData(DataSizing::PlantSizData(1)); + auto &HWLoopSizingData(state->dataSize->PlantSizData(1)); // Hot Water Loop HWLoop.PlantSizNum = 1; HWLoopSizingData.PlantLoopName = HWLoop.Name; @@ -7636,17 +7636,17 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - auto &zoneEqSizing(ZoneEqSizing(1)); + state->dataSize->ZoneEqSizing.allocate(1); + auto &zoneEqSizing(state->dataSize->ZoneEqSizing(1)); zoneEqSizing.SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - auto &finalZoneSizing(FinalZoneSizing(1)); + state->dataSize->FinalZoneSizing.allocate(1); + auto &finalZoneSizing(state->dataSize->FinalZoneSizing(1)); finalZoneSizing.DesCoolVolFlow = DesignHeatAirVolFlow; finalZoneSizing.DesCoolMassFlow = finalZoneSizing.DesCoolVolFlow * state->dataEnvrn->StdRhoAir; finalZoneSizing.DesHeatVolFlow = DesignCoolAirVolFlow; @@ -7697,7 +7697,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) Node(thisATMixer.SecInNode).Enthalpy = Node(zoneEquipConfig.ZoneNode).Enthalpy; state->dataGlobal->BeginEnvrnFlag = true; - ZoneEqFanCoil = true; + state->dataSize->ZoneEqFanCoil = true; // set predicted heating load zoneSysEnergyDemand.RemainingOutputReqToCoolSP = 0; @@ -7739,8 +7739,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimFCU_ATMInletSideTest) Node(thisFanCoil.ATMixerPriNode).MassFlowRate = PrimaryAirMassFlowRate; Node(thisFanCoil.ATMixerPriNode).MassFlowRateMaxAvail = PrimaryAirMassFlowRate; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; state->dataGlobal->BeginEnvrnFlag = true; // set predicted cooling load @@ -7954,7 +7954,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) int ZoneNum(1); int FanCoilNum(1); - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); state->dataWaterCoils->GetWaterCoilsInputFlag = true; @@ -7992,8 +7992,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - NumPltSizInput = 2; - PlantSizData.allocate(NumPltSizInput); + state->dataSize->NumPltSizInput = 2; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); // chilled water coil auto &CWCoil(state->dataWaterCoils->WaterCoil(2)); thisFanCoil.CCoilName_Index = 2; @@ -8030,7 +8030,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) CWLoop.LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil_Cooling; CWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumIn = CWCoil.WaterInletNodeNum; CWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumOut = CWCoil.WaterOutletNodeNum; - auto &CWLoopSizingData(DataSizing::PlantSizData(2)); + auto &CWLoopSizingData(state->dataSize->PlantSizData(2)); // Chilled Water Loop CWLoop.PlantSizNum = 2; CWLoopSizingData.PlantLoopName = CWLoop.Name; @@ -8047,7 +8047,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) HWLoop.LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil_SimpleHeating; HWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumIn = HWCoil.WaterInletNodeNum; HWLoop.LoopSide(1).Branch(1).Comp(1).NodeNumOut = HWCoil.WaterOutletNodeNum; - auto &HWLoopSizingData(DataSizing::PlantSizData(1)); + auto &HWLoopSizingData(state->dataSize->PlantSizData(1)); // Hot Water Loop HWLoop.PlantSizNum = 1; HWLoopSizingData.PlantLoopName = HWLoop.Name; @@ -8067,17 +8067,17 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - auto &zoneEqSizing(ZoneEqSizing(1)); + state->dataSize->ZoneEqSizing.allocate(1); + auto &zoneEqSizing(state->dataSize->ZoneEqSizing(1)); zoneEqSizing.SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - auto &finalZoneSizing(FinalZoneSizing(1)); + state->dataSize->FinalZoneSizing.allocate(1); + auto &finalZoneSizing(state->dataSize->FinalZoneSizing(1)); finalZoneSizing.DesCoolVolFlow = DesignHeatAirVolFlow; finalZoneSizing.DesCoolMassFlow = finalZoneSizing.DesCoolVolFlow * state->dataEnvrn->StdRhoAir; finalZoneSizing.DesHeatVolFlow = DesignCoolAirVolFlow; @@ -8128,7 +8128,7 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_FCU_NightCycleTest) Node(thisATMixer.SecInNode).Enthalpy = Node(zoneEquipConfig.ZoneNode).Enthalpy; state->dataGlobal->BeginEnvrnFlag = true; - ZoneEqFanCoil = true; + state->dataSize->ZoneEqFanCoil = true; // check availability manager Night Cycle parameters EXPECT_EQ(state->dataSystemAvailabilityManager->ThermostatWithMinimumRunTime, state->dataSystemAvailabilityManager->NCycSysAvailMgrData(1).CycRunTimeCntrlType); EXPECT_EQ(DataHVACGlobals::NoAction, state->dataSystemAvailabilityManager->NCycSysAvailMgrData(1).AvailStatus); diff --git a/tst/EnergyPlus/unit/Autosizing/All_Simple_Sizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/All_Simple_Sizing.unit.cc index 042a143425f..4fcdbe5c1e4 100644 --- a/tst/EnergyPlus/unit/Autosizing/All_Simple_Sizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/All_Simple_Sizing.unit.cc @@ -74,7 +74,7 @@ TEST_F(AutoSizingFixture, AutoCalculateSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -90,8 +90,8 @@ TEST_F(AutoSizingFixture, AutoCalculateSizingGauntlet) printFlag = true; // set autocalculate data constants and sizing string - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataConstantUsedForSizing = 30.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 30.0; std::string sizingString = "Any sizing that requires AutoCalculate []"; sizer.overrideSizingString(sizingString); @@ -110,8 +110,8 @@ TEST_F(AutoSizingFixture, AutoCalculateSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // must reset Data globals after a sizer run is executed - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataConstantUsedForSizing = 30.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 30.0; // Test 2 - start with autosized value sizer.wasAutoSized = false; @@ -137,8 +137,8 @@ TEST_F(AutoSizingFixture, AutoCalculateSizingGauntlet) has_eio_output(true); // Test 4 - EMS override on - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 33.4; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 33.4; sizer.wasAutoSized = false; inputValue = 28.8; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -188,7 +188,7 @@ TEST_F(AutoSizingFixture, MaxHeaterOutletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -215,16 +215,16 @@ TEST_F(AutoSizingFixture, MaxHeaterOutletTempSizingGauntlet) " Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Maximum Supply Air Temperature [C], 37.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesTemp = 32.6; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 32.6; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU (doesn't matter) - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -239,16 +239,16 @@ TEST_F(AutoSizingFixture, MaxHeaterOutletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 3 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 27.8; // do sizing @@ -263,14 +263,14 @@ TEST_F(AutoSizingFixture, MaxHeaterOutletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Airloop Equipment - CurDuctType not set - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatSupTemp = 25.8; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupTemp = 25.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -322,7 +322,7 @@ TEST_F(AutoSizingFixture, ZoneCoolingLoadSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -349,16 +349,16 @@ TEST_F(AutoSizingFixture, ZoneCoolingLoadSizingGauntlet) " Component Sizing Information, Coil:Cooling:Water, MyWaterCoil, User-Specified Zone Cooling Sensible Load [W], 3007.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolLoad = 2500.0; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolLoad = 2500.0; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU (doesn't matter) - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -373,16 +373,16 @@ TEST_F(AutoSizingFixture, ZoneCoolingLoadSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 3 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 2007.8; // do sizing @@ -397,14 +397,14 @@ TEST_F(AutoSizingFixture, ZoneCoolingLoadSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatSupTemp = 25.8; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupTemp = 25.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -456,7 +456,7 @@ TEST_F(AutoSizingFixture, ZoneHeatingLoadSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -483,16 +483,16 @@ TEST_F(AutoSizingFixture, ZoneHeatingLoadSizingGauntlet) " Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Zone Heating Sensible Load [W], 3007.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatLoad = 2500.0; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatLoad = 2500.0; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU (doesn't matter) - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -507,16 +507,16 @@ TEST_F(AutoSizingFixture, ZoneHeatingLoadSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 3 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 2007.8; // do sizing @@ -531,13 +531,13 @@ TEST_F(AutoSizingFixture, ZoneHeatingLoadSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -589,7 +589,7 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -616,19 +616,19 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) "Temperature in Cooling Mode [C], 16.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtCoolPeak = 23.9; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtCoolPeak = 0.009; - DataSizing::DataCapacityUsedForSizing = 2500.0; - DataSizing::DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtCoolPeak = 23.9; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtCoolPeak = 0.009; + state->dataSize->DataCapacityUsedForSizing = 2500.0; + state->dataSize->DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W + state->dataSize->ZoneSizingRunDone = true; state->dataEnvrn->StdRhoAir = 1.2; // Test 2 - Zone Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -638,9 +638,9 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, DataFlowUsedForSizing = 0.0 - DataSizing::DataFlowUsedForSizing = 0.0; // not allowed + state->dataSize->DataFlowUsedForSizing = 0.0; // not allowed // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -655,13 +655,13 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 4 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 14.8; // do sizing @@ -676,14 +676,14 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 5 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataZoneUsedForSizing = 1; + inputValue = DataSizing::AutoSize; + state->dataSize->DataZoneUsedForSizing = 1; // do sizing, DataAirFlowUsedForSizing = 0 sizer.wasAutoSized = false; @@ -702,8 +702,8 @@ TEST_F(AutoSizingFixture, ASHRAEMinSATCoolingSizingGauntlet) // Test 6 - Airloop Equipment // start with an auto-sized value as the user input - DataSizing::DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W - inputValue = EnergyPlus::DataSizing::AutoSize; + state->dataSize->DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -756,7 +756,7 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -783,19 +783,19 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) "Temperature in Heating Mode [C], 26.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 21.9; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; - DataSizing::DataCapacityUsedForSizing = 2500.0; - DataSizing::DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 21.9; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; + state->dataSize->DataCapacityUsedForSizing = 2500.0; + state->dataSize->DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W + state->dataSize->ZoneSizingRunDone = true; state->dataEnvrn->StdRhoAir = 1.2; // Test 2 - Zone Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -805,9 +805,9 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, DataFlowUsedForSizing = 0 - DataSizing::DataFlowUsedForSizing = 0.0; // not allowed + state->dataSize->DataFlowUsedForSizing = 0.0; // not allowed // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -821,15 +821,15 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) eiooutput = ""; // AIRLOOP EQUIPMENT TESTING - DataSizing::DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W + state->dataSize->DataFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W // Test 3 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 32.8; // do sizing @@ -844,14 +844,14 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataZoneUsedForSizing = 1; + inputValue = DataSizing::AutoSize; + state->dataSize->DataZoneUsedForSizing = 1; // do sizing sizer.wasAutoSized = false; @@ -888,7 +888,7 @@ TEST_F(AutoSizingFixture, ASHRAEMaxSATHeatingSizingGauntlet) // test sizer method failure with DataCapacityUsedForSizing = 0 // Test 6 - Airloop Equipment sizer.wasAutoSized = false; - DataSizing::DataCapacityUsedForSizing = 0.0; + state->dataSize->DataCapacityUsedForSizing = 0.0; inputValue = DataSizing::AutoSize; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -917,7 +917,7 @@ TEST_F(AutoSizingFixture, DesiccantDehumidifierBFPerfDataFaceVelocitySizingGaunt errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, compType, "MyDesiccantHX", printFlag, routineName); @@ -944,30 +944,30 @@ TEST_F(AutoSizingFixture, DesiccantDehumidifierBFPerfDataFaceVelocitySizingGaunt compType + ", MyDesiccantHX, User-Specified Nominal Air Face Velocity [m/s], 4.50000\n"); EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - DataSizing::DataAirFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->DataAirFlowUsedForSizing = 0.125; // = 0.00005 m3/s/W + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, compType, "MyDesiccantHX", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4.307, sizedValue, 0.001); - Real64 expectedValue = 4.30551 + 0.01969 * DataSizing::DataAirFlowUsedForSizing; + Real64 expectedValue = 4.30551 + 0.01969 * state->dataSize->DataAirFlowUsedForSizing; EXPECT_NEAR(expectedValue, sizedValue, 0.001); sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, EMS override ON - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 2.887; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 2.887; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, compType, "MyDesiccantHX", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -981,15 +981,15 @@ TEST_F(AutoSizingFixture, DesiccantDehumidifierBFPerfDataFaceVelocitySizingGaunt eiooutput = ""; // AIRLOOP EQUIPMENT TESTING - DataSizing::DataEMSOverrideON = false; + state->dataSize->DataEMSOverrideON = false; // Test 4 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 3.2; // do sizing @@ -1004,14 +1004,14 @@ TEST_F(AutoSizingFixture, DesiccantDehumidifierBFPerfDataFaceVelocitySizingGaunt EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 5 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataZoneUsedForSizing = 1; + inputValue = DataSizing::AutoSize; + state->dataSize->DataZoneUsedForSizing = 1; // do sizing sizer.wasAutoSized = false; @@ -1063,7 +1063,7 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - Zone equipment not supported - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1076,12 +1076,12 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 2 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; + state->dataSize->CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 17.8; // do sizing @@ -1095,15 +1095,15 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatRetTemp = 15.8; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp = 13.8; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetTemp = 15.8; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp = 13.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // DataDesicRegCoil not set sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1115,8 +1115,8 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletTempSizingGauntlet) // Test 4 - Airloop Equipment w/ desiccant regen coil // do sizing - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesicDehumNum = 1; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesicDehumNum = 1; DesiccantDehumidifiers::DesicDehum.allocate(1); sizer.wasAutoSized = false; printFlag = true; @@ -1179,7 +1179,7 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirOutletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - Zone equipment not supported - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1192,12 +1192,12 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirOutletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 2 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; + state->dataSize->CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 27.8; // do sizing @@ -1211,15 +1211,15 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirOutletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatRetTemp = 15.8; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp = 13.8; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetTemp = 15.8; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp = 13.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // DataDesicRegCoil not set sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1231,8 +1231,8 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirOutletTempSizingGauntlet) // Test 4 - Airloop Equipment w/ desiccant regen coil // do sizing - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesicDehumNum = 1; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesicDehumNum = 1; DesiccantDehumidifiers::DesicDehum.allocate(1); DesiccantDehumidifiers::DesicDehum(1).RegenSetPointTemp = 26.4; sizer.wasAutoSized = false; @@ -1284,7 +1284,7 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletHumRatSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - Zone equipment not supported - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1297,12 +1297,12 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletHumRatSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting // Test 2 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; + state->dataSize->CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.008; // do sizing @@ -1316,15 +1316,15 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatRetHumRat = 0.008; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutHumRat = 0.004; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetHumRat = 0.008; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutHumRat = 0.004; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // DataDesicRegCoil not set sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -1336,8 +1336,8 @@ TEST_F(AutoSizingFixture, HeatingCoilDesAirInletHumRatSizingGauntlet) // Test 4 - Airloop Equipment w/ desiccant regen coil // do sizing - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesicDehumNum = 1; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesicDehumNum = 1; DesiccantDehumidifiers::DesicDehum.allocate(1); sizer.wasAutoSized = false; printFlag = true; diff --git a/tst/EnergyPlus/unit/Autosizing/BaseClassSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/BaseClassSizing.unit.cc index 0620218a440..14b0cc45904 100644 --- a/tst/EnergyPlus/unit/Autosizing/BaseClassSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/BaseClassSizing.unit.cc @@ -80,30 +80,30 @@ using namespace EnergyPlus::Psychrometrics; TEST_F(EnergyPlusFixture, BaseSizer_GetCoilDesFlowT) { // setup global allocation - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); - DataSizing::FinalSysSizing.allocate(1); - DataSizing::CalcSysSizing.allocate(1); - DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq.allocate(1); - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->CalcSysSizing.allocate(1); + state->dataSize->CalcSysSizing(1).SumZoneCoolLoadSeq.allocate(1); + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); // one-time global initialization int const DesignDayForPeak = 1; - DataSizing::SysSizPeakDDNum(1).SensCoolPeakDD = DesignDayForPeak; - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = DesignDayForPeak; - DataSizing::SysSizPeakDDNum(1).TotCoolPeakDD = DesignDayForPeak; - DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk(DesignDayForPeak) = 1; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(DesignDayForPeak) = 1; - DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk(DesignDayForPeak) = 1; - DataSizing::FinalSysSizing(1).CoolSupTemp = 10; - DataSizing::FinalSysSizing(1).MassFlowAtCoolPeak = 2.0; - DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.15; - DataSizing::DataAirFlowUsedForSizing = 0.2; + state->dataSize->SysSizPeakDDNum(1).SensCoolPeakDD = DesignDayForPeak; + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = DesignDayForPeak; + state->dataSize->SysSizPeakDDNum(1).TotCoolPeakDD = DesignDayForPeak; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtSensCoolPk(DesignDayForPeak) = 1; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(DesignDayForPeak) = 1; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtTotCoolPk(DesignDayForPeak) = 1; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = 2.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 0.15; + state->dataSize->DataAirFlowUsedForSizing = 0.2; state->dataEnvrn->StdRhoAir = 1000; - DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq(1) = 1250000; + state->dataSize->CalcSysSizing(1).SumZoneCoolLoadSeq(1) = 1250000; // one-time argument initialization int const sysNum = 1; @@ -114,69 +114,69 @@ TEST_F(EnergyPlusFixture, BaseSizer_GetCoilDesFlowT) Real64 designExitTemp; Real64 designExitHumRat; - DataSizing::SysSizInput(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; - DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + state->dataSize->SysSizInput(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + state->dataSize->FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; // Single path for VAV - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VAV; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VAV; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.002, designFlowValue); // Single path for OnOff - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::OnOff; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::OnOff; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.2, designFlowValue); // Two paths for VT: // CoolSupTemp > calculated value - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VT; + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).DesCoolVolFlow, designFlowValue); // CoolSupTemp < calculated value - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 15; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VT; + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 15; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); EXPECT_NEAR(13.00590, designExitTemp, 0.0001); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).DesCoolVolFlow, designFlowValue); // Two paths for bypass: // MixTemp > DesExitTemp - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::Bypass; - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; - DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 15; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::Bypass; + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; + state->dataSize->CalcSysSizing(1).MixTempAtCoolPeak = 15; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); EXPECT_DOUBLE_EQ(10, designExitTemp); EXPECT_NEAR(0.119823, designFlowValue, 0.0001); // MixTemp < DesExitTemp - DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 5; + state->dataSize->CalcSysSizing(1).MixTempAtCoolPeak = 5; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); EXPECT_DOUBLE_EQ(10, designExitTemp); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).DesCoolVolFlow, designFlowValue); // Oh and the sensible cases - DataSizing::SysSizInput(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; - DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; + state->dataSize->SysSizInput(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; + state->dataSize->FinalSysSizing(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; // Repeat a VT case - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VT; + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).DesCoolVolFlow, designFlowValue); // And a bypass case - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::Bypass; - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; - DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 15; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::Bypass; + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; + state->dataSize->CalcSysSizing(1).MixTempAtCoolPeak = 15; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); EXPECT_DOUBLE_EQ(10, designExitTemp); @@ -185,27 +185,27 @@ TEST_F(EnergyPlusFixture, BaseSizer_GetCoilDesFlowT) TEST_F(EnergyPlusFixture, BaseSizer_GetCoilDesFlowT_NoPeak) { // setup global allocation - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); - DataSizing::FinalSysSizing.allocate(1); - DataSizing::CalcSysSizing.allocate(1); - DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq.allocate(1); - DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->CalcSysSizing.allocate(1); + state->dataSize->CalcSysSizing(1).SumZoneCoolLoadSeq.allocate(1); + state->dataSize->CalcSysSizing(1).CoolZoneAvgTempSeq.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); // one-time global initialization int const DesignDayForPeak = 0; - DataSizing::SysSizPeakDDNum(1).SensCoolPeakDD = DesignDayForPeak; - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = DesignDayForPeak; - DataSizing::SysSizPeakDDNum(1).TotCoolPeakDD = DesignDayForPeak; - DataSizing::FinalSysSizing(1).CoolSupTemp = 10; - DataSizing::FinalSysSizing(1).MassFlowAtCoolPeak = 2.0; - DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.15; - DataSizing::DataAirFlowUsedForSizing = 0.2; + state->dataSize->SysSizPeakDDNum(1).SensCoolPeakDD = DesignDayForPeak; + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = DesignDayForPeak; + state->dataSize->SysSizPeakDDNum(1).TotCoolPeakDD = DesignDayForPeak; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = 2.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 0.15; + state->dataSize->DataAirFlowUsedForSizing = 0.2; state->dataEnvrn->StdRhoAir = 1000; - DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq(1) = 1250000; + state->dataSize->CalcSysSizing(1).SumZoneCoolLoadSeq(1) = 1250000; // one-time argument initialization int const sysNum = 1; @@ -216,38 +216,38 @@ TEST_F(EnergyPlusFixture, BaseSizer_GetCoilDesFlowT_NoPeak) Real64 designExitTemp; Real64 designExitHumRat; - DataSizing::SysSizInput(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; - DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + state->dataSize->SysSizInput(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + state->dataSize->FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; // Single path for VAV - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VAV; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VAV; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.002, designFlowValue); // Single path for OnOff - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::OnOff; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::OnOff; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); EXPECT_FALSE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.2, designFlowValue); // VT // CoolSupTemp > calculated value - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VT; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); // Expect warning and same result as VAV EXPECT_TRUE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.002, designFlowValue); // Bypass - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::Bypass; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::Bypass; DataSizing::GetCoilDesFlowT(*state, sysNum, CpAir, designFlowValue, designExitTemp, designExitHumRat); // Expect warning and same result as VAV EXPECT_TRUE(has_err_output(true)); - EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(state->dataSize->FinalSysSizing(1).CoolSupTemp, designExitTemp); EXPECT_DOUBLE_EQ(0.002, designFlowValue); } TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystem) @@ -261,37 +261,37 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystem) bool PrintWarning; // true when sizing information is reported in the eio file std::string CallingRoutine; // calling routine - DataTotCapCurveIndex = 0; - DataDesOutletAirTemp = 0.0; + state->dataSize->DataTotCapCurveIndex = 0; + state->dataSize->DataDesOutletAirTemp = 0.0; - CurZoneEqNum = 0; - CurOASysNum = 0; - CurSysNum = 1; - FinalSysSizing.allocate(1); - FinalSysSizing(CurSysNum).CoolSupTemp = 12.0; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0085; - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 28.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0075; - FinalSysSizing(CurSysNum).DesCoolVolFlow = 1.00; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 12.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 28.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0075; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.00; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; - SysSizingRunDone = true; - SysSizInput.allocate(1); - SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; state->dataEnvrn->StdBaroPress = 101325.0; InitializePsychRoutines(); - DataFlowUsedForSizing = FinalSysSizing(CurSysNum).DesCoolVolFlow; + state->dataSize->DataFlowUsedForSizing = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow; // Need this to prevent crash in Sizers - UnitarySysEqSizing.allocate(1); - OASysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); CompType = "COIL:COOLING:DX:SINGLESPEED"; CompName = "Single Speed DX Cooling Coil"; @@ -300,7 +300,7 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystem) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "RequestSizing"; - DataIsDXCoil = true; + state->dataSize->DataIsDXCoil = true; // dx cooling coil capacity sizing bool errorsFound = false; @@ -311,18 +311,18 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystem) EXPECT_NEAR(18882.0, SizingResult, 0.1); // confirm that sizing data is saved for use by parent object - EXPECT_NEAR(DataSizing::DataCoilSizingAirInTemp, 28.0, 0.0000001); - EXPECT_NEAR(DataSizing::DataCoilSizingAirInHumRat, 0.0075, 0.0000001); - EXPECT_NEAR(DataSizing::DataCoilSizingAirOutTemp,12.0, 0.0000001); - EXPECT_NEAR(DataSizing::DataCoilSizingAirOutHumRat, 0.0075, 0.0000001); - EXPECT_NEAR(DataSizing::DataCoilSizingFanCoolLoad, 0.0, 0.0000001); - EXPECT_NEAR(DataSizing::DataCoilSizingCapFT, 1.0, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingAirInTemp, 28.0, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingAirInHumRat, 0.0075, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingAirOutTemp,12.0, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingAirOutHumRat, 0.0075, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingFanCoolLoad, 0.0, 0.0000001); + EXPECT_NEAR(state->dataSize->DataCoilSizingCapFT, 1.0, 0.0000001); CompType = "COIL:COOLING:WATER"; CompName = "Chilled Water Cooling Coil"; SizingResult = DataSizing::AutoSize; state->dataEnvrn->StdRhoAir = 1.18; - DataIsDXCoil = false; + state->dataSize->DataIsDXCoil = false; // chilled water cooling coil capacity sizing sizerCoolingCapacity.initializeWithinEP(*state, CompType, CompName, PrintWarning, CallingRoutine); @@ -401,9 +401,9 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) std::string fanName = "TEST FAN 1"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); // triggers sizing call Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; // get function @@ -437,38 +437,38 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) bool PrintWarning; // true when sizing information is reported in the eio file std::string CallingRoutine; // calling routine - DataTotCapCurveIndex = 0; - DataDesOutletAirTemp = 0.0; + state->dataSize->DataTotCapCurveIndex = 0; + state->dataSize->DataDesOutletAirTemp = 0.0; - CurZoneEqNum = 0; - CurOASysNum = 0; - CurSysNum = 1; - FinalSysSizing.allocate(1); - FinalSysSizing(CurSysNum).CoolSupTemp = 12.0; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0085; - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 28.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0075; - FinalSysSizing(CurSysNum).DesCoolVolFlow = 1.00; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 12.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 28.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0075; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.00; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::fanModelTypeNotYetSet; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::fanModelTypeNotYetSet; - SysSizingRunDone = true; - SysSizInput.allocate(1); - SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; state->dataEnvrn->StdBaroPress = 101325.0; InitializePsychRoutines(); - DataFlowUsedForSizing = FinalSysSizing(CurSysNum).DesCoolVolFlow; + state->dataSize->DataFlowUsedForSizing = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow; // Need this to prevent crash in Sizers - UnitarySysEqSizing.allocate(1); - OASysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); // Without fan heat CompType = "COIL:COOLING:DX:SINGLESPEED"; @@ -478,7 +478,7 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "RequestSizing"; - DataIsDXCoil = true; + state->dataSize->DataIsDXCoil = true; // dx cooling coil capacity sizing bool errorsFound = false; @@ -490,9 +490,9 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) Real64 dxCoilSizeNoFan = SizingResult; // With Test Fan 4 fan heat - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; CompType = "COIL:COOLING:DX:SINGLESPEED"; CompName = "Single Speed DX Cooling Coil"; SizingType = DataHVACGlobals::CoolingCapacitySizing; @@ -500,7 +500,7 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "RequestSizing"; - DataIsDXCoil = true; + state->dataSize->DataIsDXCoil = true; // Expect coil size to increase by fan heat for fan 4 Real64 expectedDXCoilSize = dxCoilSizeNoFan + locDesignHeatGain4; @@ -510,10 +510,10 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) EXPECT_NEAR(expectedDXCoilSize, SizingResult, 0.1); // With Test Fan 3 fan heat - this fails before the #6126 fix - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 2; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanVecIndex = 2; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 2; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanVecIndex = 2; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::objectVectorOOFanSystemModel; CompType = "COIL:COOLING:DX:SINGLESPEED"; CompName = "Single Speed DX Cooling Coil"; SizingType = DataHVACGlobals::CoolingCapacitySizing; @@ -521,7 +521,7 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingSystemWithFans) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "RequestSizing"; - DataIsDXCoil = true; + state->dataSize->DataIsDXCoil = true; // Expect coil size to increase by fan heat for fan 3 expectedDXCoilSize = dxCoilSizeNoFan + locDesignHeatGain3; @@ -542,31 +542,31 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingZone) bool PrintWarning; // true when sizing information is reported in the eio file std::string CallingRoutine; // calling routine - DataTotCapCurveIndex = 0; - DataDesOutletAirTemp = 0.0; - - CurZoneEqNum = 1; - CurOASysNum = 0; - CurSysNum = 0; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 12.0; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0085; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 28.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.0075; - FinalZoneSizing(CurZoneEqNum).DesCoolOAFlowFrac = 0.2; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.30; - - ZoneSizingRunDone = true; + state->dataSize->DataTotCapCurveIndex = 0; + state->dataSize->DataDesOutletAirTemp = 0.0; + + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 12.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0085; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 28.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.0075; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolOAFlowFrac = 0.2; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.30; + + state->dataSize->ZoneSizingRunDone = true; state->dataEnvrn->StdBaroPress = 101325.0; InitializePsychRoutines(); // Need this to prevent crash in Sizers - ZoneEqSizing.allocate(1); - ZoneSizingInput.allocate(1); - ZoneSizingInput(1).ZoneNum = ZoneNum; - DataSizing::NumZoneSizingInput = 1; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - DataFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = ZoneNum; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->DataFlowUsedForSizing = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow; CompType = "COIL:COOLING:DX:SINGLESPEED"; CompName = "Single Speed DX Cooling Coil"; @@ -575,7 +575,7 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingZone) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "RequestSizing"; - DataIsDXCoil = true; + state->dataSize->DataIsDXCoil = true; // dx cooling coil capacity sizing bool errorsFound = false; @@ -589,8 +589,8 @@ TEST_F(EnergyPlusFixture, BaseSizer_RequestSizingZone) CompName = "Chilled Water Cooling Coil"; SizingResult = DataSizing::AutoSize; state->dataEnvrn->StdRhoAir = 1.18; - FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; - DataIsDXCoil = false; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->DataIsDXCoil = false; // chilled water cooling coil capacity sizing sizerCoolingCapacity.initializeWithinEP(*state, CompType, CompName, PrintWarning, CallingRoutine); @@ -633,18 +633,18 @@ TEST_F(SQLiteFixture, BaseSizer_SQLiteRecordReportSizerOutputTest) TEST_F(EnergyPlusFixture, BaseSizer_setOAFracForZoneEqSizing_Test) { CoolingCapacitySizer sizer; - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).OAVolFlow = 0.34; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow = 0.34; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).ATMixerVolFlow = 0.0; state->dataEnvrn->StdRhoAir = 1.23; Real64 oaFrac = 0.0; Real64 DesMassFlow = 0.685; - Real64 massFlowRate = state->dataEnvrn->StdRhoAir * DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).OAVolFlow; + Real64 massFlowRate = state->dataEnvrn->StdRhoAir * state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow; Real64 oaFrac_Test = massFlowRate / DesMassFlow; - ZoneEqSizingData &zoneEqSizing = DataSizing::ZoneEqSizing(1); + ZoneEqSizingData &zoneEqSizing = state->dataSize->ZoneEqSizing(1); // ATMixer flow rate = 0 so oaFrac depends on ZoneEqSizing.OAVolFlow oaFrac = sizer.setOAFracForZoneEqSizing(*state, DesMassFlow, zoneEqSizing); @@ -672,11 +672,11 @@ TEST_F(EnergyPlusFixture, BaseSizer_setOAFracForZoneEqSizing_Test) TEST_F(EnergyPlusFixture, BaseSizer_setZoneCoilInletConditions) { - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizingData &zoneEqSizing = ZoneEqSizing(CurZoneEqNum); - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::ZoneSizingData &finalZoneSizing = DataSizing::FinalZoneSizing(CurZoneEqNum); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + DataSizing::ZoneEqSizingData &zoneEqSizing = state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum); + state->dataSize->FinalZoneSizing.allocate(1); + DataSizing::ZoneSizingData &finalZoneSizing = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); zoneEqSizing.OAVolFlow = 0.34; zoneEqSizing.ATMixerVolFlow = 0.0; @@ -899,36 +899,36 @@ TEST_F(EnergyPlusFixture, BaseSizer_FanPeak) SizingResult = DataSizing::AutoSize; PrintWarning = true; CallingRoutine = "Size Fan: "; - DataSizing::DataIsDXCoil = false; - - DataSizing::CurZoneEqNum = 1; - DataSizing::CurOASysNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.30; - DataSizing::FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; + state->dataSize->DataIsDXCoil = false; + + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.30; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; // Time of peak, should equal to 18:00:00 - DataSizing::FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 72; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 72; // Fake a design day state->dataWeatherManager->DesDayInput.allocate(1); std::string DDTitle = "CHICAGO ANN CLG 1% CONDNS DB=>MWB"; - state->dataWeatherManager->DesDayInput(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Title = DDTitle; - state->dataWeatherManager->DesDayInput(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Month = 7; - state->dataWeatherManager->DesDayInput(FinalZoneSizing(CurZoneEqNum).CoolDDNum).DayOfMonth = 15; + state->dataWeatherManager->DesDayInput(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Title = DDTitle; + state->dataWeatherManager->DesDayInput(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Month = 7; + state->dataWeatherManager->DesDayInput(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).DayOfMonth = 15; // Also need to set this, it's used to check if DDNum <= TotDesDays state->dataEnvrn->TotDesDays = 1; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Need this to prevent crash in Sizers - ZoneEqSizing.allocate(1); - ZoneSizingInput.allocate(1); - ZoneSizingInput(1).ZoneNum = ZoneNum; - DataSizing::NumZoneSizingInput = 1; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod(SizingType) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = ZoneNum; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(SizingType) = DataSizing::SupplyAirFlowRate; // Now, we're ready to call the function bool errorsFound = false; @@ -1427,18 +1427,18 @@ TEST_F(EnergyPlusFixture, BaseSizer_SupplyAirTempLessThanZoneTStatTest) int CtrlZoneNum(1); // design peak load conditons and design supply air temperature - EXPECT_EQ(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).HeatTstatTemp, 21.0); // expects specified value - EXPECT_EQ(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp, 12.0); // less than zone air Temp - EXPECT_EQ(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay, "PHOENIX SKY HARBOR INTL AP ANN HTG 99.6% CONDNS DB"); + EXPECT_EQ(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatTstatTemp, 21.0); // expects specified value + EXPECT_EQ(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesTemp, 12.0); // less than zone air Temp + EXPECT_EQ(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).HeatDesDay, "PHOENIX SKY HARBOR INTL AP ANN HTG 99.6% CONDNS DB"); // actual zone air temperature at peak load - EXPECT_NEAR(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, 17.08, 0.01); - EXPECT_NEAR(DataSizing::FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, 17.08, 0.01); + EXPECT_NEAR(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, 17.08, 0.01); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(CtrlZoneNum).ZoneTempAtHeatPeak, 17.08, 0.01); // Check heating design flow rates, expected to be zero due the above conditions - EXPECT_EQ(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 0.0); // expects zero - EXPECT_EQ(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow, 0.0); // expects zero - EXPECT_EQ(DataSizing::FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 0.0); // expects zero - EXPECT_EQ(DataSizing::FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow, 0.0); // expects zero + EXPECT_EQ(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 0.0); // expects zero + EXPECT_EQ(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatMassFlow, 0.0); // expects zero + EXPECT_EQ(state->dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatVolFlow, 0.0); // expects zero + EXPECT_EQ(state->dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatMassFlow, 0.0); // expects zero // expects non-zero peak heating load - EXPECT_NEAR(DataSizing::CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad, 6911.42, 0.01); - EXPECT_NEAR(DataSizing::FinalZoneSizing(CtrlZoneNum).DesHeatLoad, 6911.42, 0.01); + EXPECT_NEAR(state->dataSize->CalcFinalZoneSizing(CtrlZoneNum).DesHeatLoad, 6911.42, 0.01); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatLoad, 6911.42, 0.01); } diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingAirFlowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingAirFlowSizing.unit.cc index 000432ac4f5..ca2fe813dbb 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingAirFlowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingAirFlowSizing.unit.cc @@ -60,7 +60,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("CoolingAirFlowSizingGauntlet"); state->dataEnvrn->StdRhoAir = 1.2; @@ -78,9 +78,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -112,17 +112,17 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).SizingMethod.allocate(35); - - DataSizing::ZoneSizingRunDone = true; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolVolFlow = 1.6; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatVolFlow = 1.2; - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDDNum = 1; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDDNum = 2; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(35); + + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing(1).DesCoolVolFlow = 1.6; + state->dataSize->FinalZoneSizing(1).DesHeatVolFlow = 1.2; + state->dataSize->FinalZoneSizing(1).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(1).HeatDDNum = 2; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; state->dataEnvrn->TotDesDays = 2; @@ -136,10 +136,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) // Test 2 - Zone Equipment, sizes to greater of zone cooling and heating flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -152,9 +152,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 3 - Zone Equipment, set heating only fan - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -164,10 +164,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, set cooling only fan - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -177,9 +177,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, cooling only fan, set fraction used for sizing - DataSizing::DataFractionUsedForSizing = 0.5; + state->dataSize->DataFractionUsedForSizing = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -187,14 +187,14 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.6, sizedValue, 0.0001); // data fraction has no affect on cooling air flow rate sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFractionUsedForSizing = 0.0; // reset for next test + state->dataSize->DataFractionUsedForSizing = 0.0; // reset for next test // Test 6 - Zone Equipment, set ZoneEqSizing data - DataSizing::ZoneEqSizing(1).SystemAirFlow = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.8; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.8; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -204,10 +204,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, set cooling only fan - DataSizing::ZoneEqSizing(1).SystemAirFlow = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -217,10 +217,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, set heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -230,11 +230,11 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, set ZoneEqSizing cooling air flow - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirVolFlow = 2.2; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirVolFlow = 2.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -244,11 +244,11 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, set ZoneEqSizing heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 3.2; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 3.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -258,9 +258,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 11 - Zone Equipment, set ZoneEqSizing cooling and heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -268,16 +268,16 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(3.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; // Test 12 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -287,11 +287,11 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::DataFracOfAutosizedHeatingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->DataFracOfAutosizedHeatingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -301,9 +301,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Zone Equipment, cooling or heating fan not set - DataSizing::ZoneHeatingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -313,9 +313,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Zone Equipment, ZoneEqSizing cooling - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -325,10 +325,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Zone Equipment, ZoneEqSizing heating - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -338,9 +338,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Zone Equipment, ZoneEqSizing cooling and heating fan - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -349,13 +349,13 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; // Test 18 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -365,10 +365,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 19 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -378,10 +378,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 20 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -391,10 +391,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 21 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -404,9 +404,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 22 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -414,12 +414,12 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 23 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -428,16 +428,16 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_NEAR(0.64, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; // Test 24 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::DataFlowPerCoolingCapacity = 0.00005; - DataSizing::DataAutosizedCoolingCapacity = 10000.0; - DataSizing::DataFlowPerHeatingCapacity = 0.00006; - DataSizing::DataAutosizedHeatingCapacity = 20000.0; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFlowPerCoolingCapacity = 0.00005; + state->dataSize->DataAutosizedCoolingCapacity = 10000.0; + state->dataSize->DataFlowPerHeatingCapacity = 0.00006; + state->dataSize->DataAutosizedHeatingCapacity = 20000.0; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -447,10 +447,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 25 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -460,10 +460,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 26 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -473,10 +473,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 27 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -486,9 +486,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 28 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -496,12 +496,12 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 29 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -510,12 +510,12 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; // Test 30 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -525,10 +525,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 31 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -538,10 +538,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 32 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -551,10 +551,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 33 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -564,9 +564,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 34 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -574,12 +574,12 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 35 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -589,9 +589,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 36 - Zone Equipment, set design size from parent - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.75; - inputValue = EnergyPlus::DataSizing::AutoSize; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.75; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -599,7 +599,7 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.75, sizedValue, 0.0001); // parent passed size sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = false; // Test 37 - Zone Equipment, hard size with zone sizing run inputValue = 1.44; @@ -613,7 +613,7 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) // Test 38 - Zone Equipment, hard size inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -623,10 +623,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 39 - EMS override - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 1.33; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 1.33; inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -642,16 +642,16 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting, CurDuctType not set // Test 40 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -666,20 +666,20 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 41 - Airloop Equipment - ems override is on - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataEnvrn->TotDesDays = 2; - DataSizing::SysSizPeakDDNum.allocate(2); - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = 1; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).HeatDDNum = 2; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->SysSizPeakDDNum.allocate(2); + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatDDNum = 2; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; @@ -692,7 +692,7 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.33, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataEMSOverrideON = false; + state->dataSize->DataEMSOverrideON = false; // header already reported above (and flag set false). Only coil sizing information reported here. eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Cooling Supply Air Flow Rate [m3/s], 1.33000\n"); @@ -700,13 +700,13 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 42 - Airloop Equipment - CurDuctType = Main - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -719,14 +719,14 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 43 - Airloop Equipment - AirLoopSysFlag set - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + inputValue = DataSizing::AutoSize; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // do sizing sizer.wasAutoSized = false; @@ -738,11 +738,11 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 44 - Airloop Equipment - AirLoopSysFlag set, CurDuctType = Heating - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = false; - DataSizing::CurDuctType = DataHVACGlobals::Heating; - DataSizing::FinalSysSizing(1).DesHeatVolFlow = 7.2; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = false; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 7.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -755,13 +755,13 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 45 - Outdoor Air System - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 3.0; - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 3.0; + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -773,10 +773,10 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 46 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).AirFlow = true; - EnergyPlus::DataSizing::OASysEqSizing(1).AirVolFlow = 3.7; + state->dataSize->OASysEqSizing(1).AirFlow = true; + state->dataSize->OASysEqSizing(1).AirVolFlow = 3.7; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -787,11 +787,11 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 47 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).AirFlow = false; - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirFlow = true; - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirVolFlow = 3.6; + state->dataSize->OASysEqSizing(1).AirFlow = false; + state->dataSize->OASysEqSizing(1).CoolingAirFlow = true; + state->dataSize->OASysEqSizing(1).CoolingAirVolFlow = 3.6; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -802,12 +802,12 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 48 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirFlow = false; + state->dataSize->OASysEqSizing(1).CoolingAirFlow = false; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].SizingMassFlow = 4.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -818,14 +818,14 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 49 - Air Loop Equipment, CurDuctType = Main - DataSizing::CurOASysNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.4; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.3; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 5.2; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.4; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.3; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 5.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -836,9 +836,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 50 - Air Loop Equipment, CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -849,9 +849,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 51 - Air Loop Equipment, CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -863,9 +863,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 52 - Air Loop Equipment, CurDuctType = Other - DataSizing::CurDuctType = DataHVACGlobals::Other; + state->dataSize->CurDuctType = DataHVACGlobals::Other; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -877,9 +877,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 53 - Air Loop Equipment, CurDuctType = RAB - DataSizing::CurDuctType = DataHVACGlobals::RAB; + state->dataSize->CurDuctType = DataHVACGlobals::RAB; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -890,9 +890,9 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 54 - Air Loop Equipment, parent set DataAirFlowUsedForSizing - DataSizing::DataAirFlowUsedForSizing = 5.8; + state->dataSize->DataAirFlowUsedForSizing = 5.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -919,7 +919,7 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(2.0, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataAirFlowUsedForSizing = 0.0; + state->dataSize->DataAirFlowUsedForSizing = 0.0; EXPECT_FALSE(errorsFound); @@ -931,8 +931,8 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) // Test 56 - Air Loop Equipment, CurDuctType = RAB, hard-sized air flow rate // start with an hard-sized value as the user input inputValue = 2.2; - DataSizing::DataConstantUsedForSizing = 3.5; - DataSizing::DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 3.5; + state->dataSize->DataFractionUsedForSizing = 1.0; // do sizing sizer.wasAutoSized = false; @@ -943,8 +943,8 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(2.2, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 0.0; EXPECT_FALSE(errorsFound); @@ -954,7 +954,7 @@ TEST_F(AutoSizingFixture, CoolingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 57 - Air Loop Equipment, no sizing run, hard-sized air flow rate - DataSizing::SysSizingRunDone = false; + state->dataSize->SysSizingRunDone = false; // start with an hard-sized value as the user input inputValue = 2.9; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingCapacitySizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingCapacitySizing.unit.cc index 02d540f09d5..9a845007ebb 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingCapacitySizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingCapacitySizing.unit.cc @@ -91,7 +91,7 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) // this global state is what would be set up by E+ currently static std::string const routineName("CoolingCapacitySizingGauntlet"); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // create the sizer and set up the flags to specify the sizing configuration CoolingCapacitySizer sizer; @@ -107,9 +107,9 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; // Test #1 - Zone Equipment, no autosizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -123,19 +123,19 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) has_eio_output(true); printFlag = true; - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = true; - DataSizing::ZoneEqSizing(1).DesCoolingLoad = sizedValue; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(1).DesCoolingLoad = sizedValue; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(5125.3, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = false; // eio header reported in fan sizing std::string eiooutput = @@ -144,26 +144,26 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // now allocate sizing arrays for testing autosized field - DataSizing::TermUnitSizing.allocate(1); - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(1).DesCoolMassFlow = 0.2; - DataSizing::FinalZoneSizing(1).DesCoolCoilInTemp = 24.0; - DataSizing::FinalZoneSizing(1).DesCoolCoilInHumRat = 0.009; - DataSizing::FinalZoneSizing(1).CoolDesTemp = 7.0; - DataSizing::FinalZoneSizing(1).CoolDesHumRat = 0.006; - DataSizing::FinalZoneSizing(1).ZoneRetTempAtCoolPeak = 22.0; - DataSizing::FinalZoneSizing(1).ZoneTempAtCoolPeak = 23.0; - DataSizing::FinalZoneSizing(1).ZoneHumRatAtCoolPeak = 0.008; - - DataSizing::ZoneEqSizing(1).ATMixerCoolPriDryBulb = 20.0; - DataSizing::ZoneEqSizing(1).ATMixerCoolPriHumRat = 0.007; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).DesCoolMassFlow = 0.2; + state->dataSize->FinalZoneSizing(1).DesCoolCoilInTemp = 24.0; + state->dataSize->FinalZoneSizing(1).DesCoolCoilInHumRat = 0.009; + state->dataSize->FinalZoneSizing(1).CoolDesTemp = 7.0; + state->dataSize->FinalZoneSizing(1).CoolDesHumRat = 0.006; + state->dataSize->FinalZoneSizing(1).ZoneRetTempAtCoolPeak = 22.0; + state->dataSize->FinalZoneSizing(1).ZoneTempAtCoolPeak = 23.0; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtCoolPeak = 0.008; + + state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb = 20.0; + state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat = 0.007; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 5.0; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -178,9 +178,9 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitSingDuct = false; - DataSizing::ZoneEqFanCoil = true; - DataSizing::ZoneEqSizing(1).DesCoolingLoad = 4000.0; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->ZoneEqFanCoil = true; + state->dataSize->ZoneEqSizing(1).DesCoolingLoad = 4000.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -193,8 +193,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Zone Eq Fan Coil, HX assisted water coil - DataSizing::ZoneEqSizing(1).DesCoolingLoad = 0.0; - DataSizing::DataFlowUsedForSizing = DataSizing::FinalZoneSizing(1).DesCoolMassFlow / state->dataEnvrn->StdRhoAir; + state->dataSize->ZoneEqSizing(1).DesCoolingLoad = 0.0; + state->dataSize->DataFlowUsedForSizing = state->dataSize->FinalZoneSizing(1).DesCoolMassFlow / state->dataEnvrn->StdRhoAir; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -208,8 +208,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Terminal Induction Unit - DataSizing::TermUnitIU = true; - DataSizing::TermUnitSizing(DataSizing::CurTermUnitSizingNum).DesCoolingLoad = 3500.0; + state->dataSize->TermUnitIU = true; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).DesCoolingLoad = 3500.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -222,8 +222,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, OA flow > 0 - DataSizing::ZoneEqFanCoil = false; - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.05; + state->dataSize->ZoneEqFanCoil = false; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.05; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -237,8 +237,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone DX Equipment, inlet side AT Mixer - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.03; - DataSizing::ZoneEqDXCoil = true; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.03; + state->dataSize->ZoneEqDXCoil = true; // start with an auto-sized value as the user input, AT Mixer present inputValue = DataSizing::AutoSize; // do sizing @@ -250,10 +250,10 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(3843.78, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // Test 8 - Zone DX Equipment, no AT Mixer, local OA only - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // start with an auto-sized value as the user input, AT Mixer present inputValue = DataSizing::AutoSize; // do sizing @@ -265,7 +265,7 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4862.02, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.0; // reset eio stream has_eio_output(true); @@ -293,16 +293,16 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) // AIRLOOP Equipment // Test 10 - Airloop Equipment, hard size, no sizing run - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - DataSizing::ZoneEqSizing.deallocate(); - DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 2700.8; // do sizing @@ -316,18 +316,18 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).CoolSupTemp = 7.0; - DataSizing::FinalSysSizing(1).CoolSupHumRat = 0.006; - DataSizing::FinalSysSizing(1).MixTempAtCoolPeak = 24.0; - DataSizing::FinalSysSizing(1).MixHumRatAtCoolPeak = 0.009; - DataSizing::FinalSysSizing(1).RetTempAtCoolPeak = 25.0; - DataSizing::FinalSysSizing(1).RetHumRatAtCoolPeak = 0.0085; - DataSizing::FinalSysSizing(1).OutTempAtCoolPeak = 35.0; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).CoolSupTemp = 7.0; + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.006; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 24.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.009; + state->dataSize->FinalSysSizing(1).RetTempAtCoolPeak = 25.0; + state->dataSize->FinalSysSizing(1).RetHumRatAtCoolPeak = 0.0085; + state->dataSize->FinalSysSizing(1).OutTempAtCoolPeak = 35.0; // Test 11 - Airloop Equipment, no OA // start with an autosized value @@ -344,7 +344,7 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 12 - Airloop Equipment, with OA but no precooling of OA stream - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.02; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.02; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -359,8 +359,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) // Test 13 - Airloop Equipment, with OA and precooling of OA stream state->dataAirSystemsData->PrimaryAirSystems(1).NumOACoolCoils = 1; - DataSizing::FinalSysSizing(1).PrecoolTemp = 12.0; - DataSizing::FinalSysSizing(1).PrecoolHumRat = 0.008; + state->dataSize->FinalSysSizing(1).PrecoolTemp = 12.0; + state->dataSize->FinalSysSizing(1).PrecoolHumRat = 0.008; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -382,7 +382,7 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) Fans::Fan(1).FanType_Num = DataHVACGlobals::FanType_SimpleConstVolume; state->dataAirSystemsData->PrimaryAirSystems(1).SupFanNum = 1; state->dataAirSystemsData->PrimaryAirSystems(1).supFanModelTypeEnum = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state->dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; // Test 14 - Airloop Equipment, with OA and precooling of OA stream, add fan heat // start with an autosized value @@ -396,14 +396,14 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4740.64, sizedValue, 0.01); // change in capacity because precool conditions mixed with return EXPECT_NEAR(158.33, sizer.primaryAirSystem(1).FanDesCoolLoad, 0.01); // air loop fan heat is saved in sizer class - EXPECT_NEAR(DataSizing::DataCoilSizingAirInTemp, 23.44, 0.01); // does not include fan heat becase PrimaryAirSys fan place not set - EXPECT_EQ(1.0, DataSizing::DataFracOfAutosizedCoolingCapacity); + EXPECT_NEAR(state->dataSize->DataCoilSizingAirInTemp, 23.44, 0.01); // does not include fan heat because PrimaryAirSys fan place not set + EXPECT_EQ(1.0, state->dataSize->DataFracOfAutosizedCoolingCapacity); sizer.autoSizedValue = 0.0; // reset for next test Real64 unScaledCapacity = sizedValue; // Test 15 - Airloop Equipment, with OA and precooling of OA stream, add fan heat, add scalable capacity sizing - DataSizing::FinalSysSizing(1).CoolingCapMethod = DataSizing::FractionOfAutosizedCoolingCapacity; - DataSizing::FinalSysSizing(1).FractionOfAutosizedCoolingCapacity = 0.5; + state->dataSize->FinalSysSizing(1).CoolingCapMethod = DataSizing::FractionOfAutosizedCoolingCapacity; + state->dataSize->FinalSysSizing(1).FractionOfAutosizedCoolingCapacity = 0.5; state->dataAirSystemsData->PrimaryAirSystems(1).supFanLocation = DataAirSystems::fanPlacement::BlowThru; // start with an autosized value inputValue = DataSizing::AutoSize; @@ -416,14 +416,14 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(unScaledCapacity * 0.5, sizedValue, 0.01); // change in capacity because precool conditions mixed with return EXPECT_NEAR(158.33, sizer.primaryAirSystem(1).FanDesCoolLoad, 0.01); // air loop fan heat is saved in sizer class - EXPECT_EQ(1.0, DataSizing::DataFracOfAutosizedCoolingCapacity); // Data global is not affected - EXPECT_NEAR(DataSizing::DataCoilSizingAirInTemp, 24.22, 0.01); // does include fan heat becase PrimaryAirSys fan place is set + EXPECT_EQ(1.0, state->dataSize->DataFracOfAutosizedCoolingCapacity); // Data global is not affected + EXPECT_NEAR(state->dataSize->DataCoilSizingAirInTemp, 24.22, 0.01); // does include fan heat becase PrimaryAirSys fan place is set EXPECT_EQ(0.5, sizer.dataFracOfAutosizedCoolingCapacity); // sizer class holds fractional value sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Airloop Equipment, with OA and precooling of OA stream, add scalable capacity per floor area sizing - DataSizing::FinalSysSizing(1).CoolingCapMethod = DataSizing::CapacityPerFloorArea; - DataSizing::FinalSysSizing(1).CoolingTotalCapacity = 4500.0; + state->dataSize->FinalSysSizing(1).CoolingCapMethod = DataSizing::CapacityPerFloorArea; + state->dataSize->FinalSysSizing(1).CoolingTotalCapacity = 4500.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -437,8 +437,8 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Airloop Equipment, with OA and precooling of OA stream, add scalable capacity sizing - DataSizing::FinalSysSizing(1).CoolingCapMethod = DataSizing::CoolingDesignCapacity; - DataSizing::FinalSysSizing(1).CoolingTotalCapacity = 3500.0; + state->dataSize->FinalSysSizing(1).CoolingCapMethod = DataSizing::CoolingDesignCapacity; + state->dataSize->FinalSysSizing(1).CoolingTotalCapacity = 3500.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -452,9 +452,9 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 18 - Airloop Equipment, with OA and precooling of OA stream, add scalable capacity sizing - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = true; - DataSizing::UnitarySysEqSizing(1).DesCoolingLoad = 2500.0; + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = true; + state->dataSize->UnitarySysEqSizing(1).DesCoolingLoad = 2500.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -466,13 +466,13 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(2500.0, sizedValue, 0.01); // capacity precalculated and saved in UnitarySysEqSizing(1).DesCoolingLoad sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = false; + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = false; // Test 19 - OA Equipment, OA Sys capacity sizing - DataSizing::CurOASysNum = 1; - DataSizing::OASysEqSizing.allocate(1); - DataSizing::OASysEqSizing(1).CoolingCapacity = true; - DataSizing::OASysEqSizing(1).DesCoolingLoad = 1500.0; + state->dataSize->CurOASysNum = 1; + state->dataSize->OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing(1).CoolingCapacity = true; + state->dataSize->OASysEqSizing(1).DesCoolingLoad = 1500.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -486,7 +486,7 @@ TEST_F(AutoSizingFixture, CoolingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 20 - OA Equipment, DOAS Air loop - DataSizing::OASysEqSizing(1).CoolingCapacity = false; + state->dataSize->OASysEqSizing(1).CoolingCapacity = false; state->dataAirLoop->OutsideAirSys.allocate(1); state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingSHRSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingSHRSizing.unit.cc index 8c83a2d8f6d..97dc5e41026 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingSHRSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingSHRSizing.unit.cc @@ -57,9 +57,9 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; static std::string const routineName("CoolingSHRSizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -83,10 +83,10 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) // DX Coil SHR Sizing inputValue = 0.85; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // Test #1 - Zone Equipment, no autosizing, missing input data - DataSizing::DataFlowUsedForSizing = 0.5; // DataCapacityUsedForSizing not initialized + state->dataSize->DataFlowUsedForSizing = 0.5; // DataCapacityUsedForSizing not initialized sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); // no sizing error since not autosized @@ -102,13 +102,13 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) // Test #2 - Zone Equipment, no autosizing, has input data, print result printFlag = true; inputValue = 0.85; - DataSizing::DataCapacityUsedForSizing = 10000.0; + state->dataSize->DataCapacityUsedForSizing = 10000.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(0.85, sizedValue, 0.01); // hard-sized value - Real64 RatedVolFlowPerRatedTotCap = DataSizing::DataFlowUsedForSizing / DataSizing::DataCapacityUsedForSizing; + Real64 RatedVolFlowPerRatedTotCap = state->dataSize->DataFlowUsedForSizing / state->dataSize->DataCapacityUsedForSizing; Real64 initialSHR = 0.431 + 6086.0 * RatedVolFlowPerRatedTotCap; // does not include impact of ValidateADP, which increases SHR EXPECT_LT(initialSHR, sizedValue); // hard-sized value > autosized value EXPECT_FALSE(sizer.sizingDesRunThisZone); @@ -125,12 +125,12 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) // Test #3 - Zone Equipment, autosized // start with an auto-sized value as the user input - DataSizing::ZoneSizingRunDone = true; - inputValue = EnergyPlus::DataSizing::AutoSize; + state->dataSize->ZoneSizingRunDone = true; + inputValue = DataSizing::AutoSize; DataHVACGlobals::DXCT = DataHVACGlobals::RegularDXCoil; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -144,8 +144,8 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test #4 - Zone Equipment, repeat with autosized and no initialized DataCapacityUsedForSizing - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataCapacityUsedForSizing = 0.0; + inputValue = DataSizing::AutoSize; + state->dataSize->DataCapacityUsedForSizing = 0.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::ErrorType1, sizer.errorType); @@ -154,8 +154,8 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) EXPECT_NEAR(1.0, sizedValue, 0.01); // autosizing failed since Data* variables were not both > 0 // Test #5 - Zone Equipment, flow to capacity ratio high - DataSizing::DataCapacityUsedForSizing = 10000.0; - DataSizing::DataFlowUsedForSizing = 1.0; + state->dataSize->DataCapacityUsedForSizing = 10000.0; + state->dataSize->DataFlowUsedForSizing = 1.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); // missing Data* globals and Plant data @@ -166,9 +166,9 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test #6 - Zone Equipment, flow to capacity ratio low - DataSizing::DataFlowUsedForSizing = 0.1; + state->dataSize->DataFlowUsedForSizing = 0.1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); @@ -185,16 +185,16 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) has_eio_output(true); // Test #7 - Zone Equipment, autosized - DataSizing::DataFlowUsedForSizing = 0.3; + state->dataSize->DataFlowUsedForSizing = 0.3; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; DataHVACGlobals::DXCT = DataHVACGlobals::DOASDXCoil; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - RatedVolFlowPerRatedTotCap = DataSizing::DataFlowUsedForSizing / DataSizing::DataCapacityUsedForSizing; + RatedVolFlowPerRatedTotCap = state->dataSize->DataFlowUsedForSizing / state->dataSize->DataCapacityUsedForSizing; initialSHR = 0.389 + 7684.0 * RatedVolFlowPerRatedTotCap; EXPECT_NEAR(0.61952, initialSHR, 0.000001); // does not include impact of ValidateADP EXPECT_NEAR(0.63152, sizedValue, 0.000001); // includes impact of ValidateADP @@ -206,7 +206,7 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test #8 - Zone Equipment, flow to capacity ratio high - DataSizing::DataFlowUsedForSizing = 1.0; + state->dataSize->DataFlowUsedForSizing = 1.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); // missing Data* globals and Plant data @@ -217,9 +217,9 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test #9 - Zone Equipment, flow to capacity ratio low - DataSizing::DataFlowUsedForSizing = 0.1; + state->dataSize->DataFlowUsedForSizing = 0.1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::CoilDX_CoolingSingleSpeed), "MyDXCoil", printFlag, routineName); @@ -238,14 +238,14 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) // AIRLOOP EQUIPMENT TESTING // Test #10 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.67; // do sizing @@ -260,15 +260,15 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test #11 - Airloop Equipment - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - DataSizing::DataFlowUsedForSizing = 0.5; // flow to capacity ratio within limits + state->dataSize->DataFlowUsedForSizing = 0.5; // flow to capacity ratio within limits DataHVACGlobals::DXCT = DataHVACGlobals::RegularDXCoil; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -286,9 +286,9 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test #12 - Airloop Equipment - DataSizing::DataFlowUsedForSizing = 0.6; // flow to capacity ratio high + state->dataSize->DataFlowUsedForSizing = 0.6; // flow to capacity ratio high // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -301,9 +301,9 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test #13 - Airloop Equipment - DataSizing::DataFlowUsedForSizing = 0.1; // flow to capacity ratio low + state->dataSize->DataFlowUsedForSizing = 0.1; // flow to capacity ratio low // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -321,8 +321,8 @@ TEST_F(AutoSizingFixture, CoolingSHRSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test #14 - Outdoor Air System Equipment, no DOAS air loop - DataSizing::CurOASysNum = 1; - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->CurOASysNum = 1; + state->dataSize->OASysEqSizing.allocate(1); // start with an auto-sized value as the user input inputValue = 0.52; printFlag = true; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletHumRatSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletHumRatSizing.unit.cc index d7108aa7408..6ae398387f8 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletHumRatSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletHumRatSizing.unit.cc @@ -59,7 +59,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("CoolingWaterDesAirInletHumRatSizingGauntlet"); @@ -77,7 +77,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // reset eio stream has_eio_output(true); @@ -113,27 +113,27 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // Sizing Type Prerequisites: // TermUnitIU, ZoneEqFanCoil w/ no OA - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.007; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.007; // All other TU types (TermUnitSingDuct, TermUnitPIU) - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.008; // ZoneEqFanCoil w/ OA - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow = 0.01; - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).OutHumRatAtCoolPeak = 0.004; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutHumRatAtCoolPeak = 0.004; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 3 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -147,10 +147,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -161,11 +161,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Induction Unit - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -176,11 +176,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -191,10 +191,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment w/ 10% OA - DataSizing::ZoneEqSizing(1).OAVolFlow = - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); + state->dataSize->ZoneEqSizing(1).OAVolFlow = + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -206,12 +206,12 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment w/ AT Mixer at 20% of design flow - DataSizing::ZoneEqSizing(1).ATMixerCoolPriHumRat = 0.001; - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 + state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat = 0.001; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 Real64 mixedHumRat2 = 0.8 * 0.007 + 0.2 * 0.001; // 80% of ZoneHumRatAtCoolPeak, 20% of ATMixerCoolPriHumRat // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -221,7 +221,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) EXPECT_NEAR(mixedHumRat2, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // reset eio stream has_eio_output(true); eiooutput = ""; @@ -229,15 +229,15 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 9 - Airloop Equipment // delete zone sizing info - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.012; // do sizing @@ -253,14 +253,14 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) // Test 10 - Airloop Equipment - no OA coils state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).MixHumRatAtCoolPeak = 0.0105; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.0105; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -279,12 +279,12 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - 1 OA coil, use PrecoolHumRat - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).RetHumRatAtCoolPeak = 0.015; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolHumRat = 0.01; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).RetHumRatAtCoolPeak = 0.015; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolHumRat = 0.01; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -297,10 +297,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 12 - Airloop Equipment - 1 OA coil use mixture of outdoor and return hum rat since DataFlowUsedForSizing > 0 - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = 0.01; - EnergyPlus::DataSizing::DataFlowUsedForSizing = 0.1; // system volume flow + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.01; + state->dataSize->DataFlowUsedForSizing = 0.1; // system volume flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -313,12 +313,12 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 13 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutHumRatAtCoolPeak = 0.003; + state->dataSize->CurOASysNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutHumRatAtCoolPeak = 0.003; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -326,18 +326,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletHumRatSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - Real64 outAirHumRat = EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutHumRatAtCoolPeak; + Real64 outAirHumRat = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutHumRatAtCoolPeak; EXPECT_NEAR(outAirHumRat, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].SizingCoolOAHumRat = 0.0036; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletTempSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletTempSizing.unit.cc index 2dd9ae05f45..7a4ad51b6d4 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletTempSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirInletTempSizing.unit.cc @@ -60,7 +60,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("CoolingWaterDesAirInletTempSizingGauntlet"); @@ -78,7 +78,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // reset eio stream has_eio_output(true); @@ -114,28 +114,28 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // Sizing Type Prerequisites: // TermUnitIU, ZoneEqFanCoil w/ no OA - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneTempAtCoolPeak = 21.77; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtCoolPeak = 21.77; // All other TU types (TermUnitSingDuct, TermUnitPIU) - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 22.88; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 22.88; // ZoneEqFanCoil w/ OA - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow = 0.01; - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).OutTempAtCoolPeak = 29.0; - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneRetTempAtCoolPeak = 23.9; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutTempAtCoolPeak = 29.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = 23.9; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 3 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -149,10 +149,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -163,11 +163,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Induction Unit - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -184,14 +184,14 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) Fans::Fan(1).FanEff = 0.6; Fans::Fan(1).MotInAirFrac = 0.5; Fans::Fan(1).FanType_Num = DataHVACGlobals::FanType_SimpleConstVolume; - DataSizing::DataFanIndex = 1; - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; - DataSizing::DataDesInletAirHumRat = 0.008; - DataSizing::DataAirFlowUsedForSizing = EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow; + state->dataSize->DataFanIndex = 1; + state->dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state->dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneBlowThru; + state->dataSize->DataDesInletAirHumRat = 0.008; + state->dataSize->DataAirFlowUsedForSizing = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -200,14 +200,14 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(22.5464, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFanIndex = -1; + state->dataSize->DataFanIndex = -1; // Test 7 - Zone Equipment, Zone Eq Fan Coil, no fan heat - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -218,10 +218,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment w/ 10% OA - DataSizing::ZoneEqSizing(1).OAVolFlow = - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); + state->dataSize->ZoneEqSizing(1).OAVolFlow = + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -233,12 +233,12 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment w/ AT Mixer at 20% of design flow - DataSizing::ZoneEqSizing(1).ATMixerCoolPriDryBulb = 17.4; - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 + state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb = 17.4; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 Real64 mixedTemp2 = 0.8 * 23.9 + 0.2 * 17.4; // 80% of ZoneHumRatAtCoolPeak, 20% of ATMixerCoolPriDryBulb // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -248,7 +248,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_NEAR(mixedTemp2, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // reset eio stream has_eio_output(true); eiooutput = ""; @@ -256,16 +256,16 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 11 - Airloop Equipment // delete zone sizing info - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 18.0; // do sizing @@ -280,21 +280,21 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 12 - Airloop Equipment - DataDesInletAirTemp > 0, NumOACoils = 1 - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).MixTempAtCoolPeak = 20.15; - EnergyPlus::DataSizing::FinalSysSizing(1).RetTempAtCoolPeak = 24.11; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutTempAtCoolPeak = 27.88; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.15; + state->dataSize->FinalSysSizing(1).RetTempAtCoolPeak = 24.11; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutTempAtCoolPeak = 27.88; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - DataSizing::DataDesInletAirTemp = 19.155; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->DataDesInletAirTemp = 19.155; sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -302,13 +302,13 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(19.155, sizedValue, 0.001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataDesInletAirTemp = 0.0; - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 0; - DataSizing::DataDesInletAirTemp = 0.0; + state->dataSize->DataDesInletAirTemp = 0.0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataSize->DataDesInletAirTemp = 0.0; // Test 13 - Airloop Equipment - no OA coils // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; printFlag = true; @@ -326,11 +326,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 14 - Airloop Equipment - 1 OA coil, use PrecoolHumRat - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolTemp = 12.21; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolTemp = 12.21; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -343,10 +343,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Airloop Equipment - 1 OA coil use mixture of outdoor and return hum rat since DataFlowUsedForSizing > 0 - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = 0.01; - EnergyPlus::DataSizing::DataFlowUsedForSizing = 0.1; // system volume flow + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.01; + state->dataSize->DataFlowUsedForSizing = 0.1; // system volume flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -359,11 +359,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 16 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -371,18 +371,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirInletTempSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - Real64 outAirTemp = EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutTempAtCoolPeak; + Real64 outAirTemp = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutTempAtCoolPeak; EXPECT_NEAR(outAirTemp, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].SizingCoolOATemp = 27.44; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletHumRatSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletHumRatSizing.unit.cc index d8d71af5db9..982a717b3fe 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletHumRatSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletHumRatSizing.unit.cc @@ -59,7 +59,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("CoolingWaterDesAirOutletHumRatSizingGauntlet"); @@ -77,7 +77,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // reset eio stream has_eio_output(true); @@ -113,22 +113,22 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); // Sizing Type Prerequisites: // TermUnitIU - DataSizing::DataDesInletAirHumRat = 0.009; - DataSizing::DataDesOutletAirTemp = 12.0; - DataSizing::DataDesInletWaterTemp = 7.0; + state->dataSize->DataDesInletAirHumRat = 0.009; + state->dataSize->DataDesOutletAirTemp = 12.0; + state->dataSize->DataDesInletWaterTemp = 7.0; // All other TU types - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.008; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 3 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -142,10 +142,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -156,11 +156,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitPIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -171,11 +171,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Induction Unit - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -185,7 +185,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) // humidity ratio at 12 C and 90% RH EXPECT_NEAR(0.0078, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::TermUnitIU = false; + state->dataSize->TermUnitIU = false; // reset eio stream has_eio_output(true); @@ -194,15 +194,15 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 9 - Airloop Equipment // delete zone sizing info - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.012; // do sizing @@ -217,18 +217,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 10 - Airloop Equipment - no OA coils - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).CoolSupHumRat = 0.0105; // set SA hum rat > inlet air hum rat + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.0105; // set SA hum rat > inlet air hum rat // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -238,8 +238,8 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); // outlet air hum rat > inlet air hum rat and capped at inlet air hum rat - EXPECT_GT(EnergyPlus::DataSizing::FinalSysSizing(1).CoolSupHumRat, DataSizing::DataDesInletAirHumRat); - EXPECT_NEAR(DataSizing::DataDesInletAirHumRat, sizedValue, 0.0001); + EXPECT_GT(state->dataSize->FinalSysSizing(1).CoolSupHumRat, state->dataSize->DataDesInletAirHumRat); + EXPECT_NEAR(state->dataSize->DataDesInletAirHumRat, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test // header already reported above (and flag set false). Only coil sizing information reported here. @@ -249,11 +249,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - 1 OA coil, use PrecoolHumRat - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).CoolSupHumRat = 0.0075; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.0075; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -266,9 +266,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 12 - Airloop Equipment - 1 OA coil use previously set hum rat since DataDesOutletAirHumRat > 0 - EnergyPlus::DataSizing::DataDesOutletAirHumRat = 0.0077; // system coil outlet air hum rat set + state->dataSize->DataDesOutletAirHumRat = 0.0077; // system coil outlet air hum rat set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -281,13 +281,13 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 13 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutHumRatAtCoolPeak = 0.005; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolHumRat = 0.004; + state->dataSize->CurOASysNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutHumRatAtCoolPeak = 0.005; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolHumRat = 0.004; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -295,18 +295,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - Real64 precoolHumRat = EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolHumRat; + Real64 precoolHumRat = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolHumRat; EXPECT_NEAR(precoolHumRat, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].PrecoolHumRat = 0.0036; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -346,8 +346,8 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) // Test 16 - Repeat w/ dry coil, Outdoor Air System Equipment with DOAS system, autosized humidity ratio // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataDesInletAirHumRat = 0.003; // set up prior to sizing outlet hum rat, dryer than autosized outlet + inputValue = DataSizing::AutoSize; + state->dataSize->DataDesInletAirHumRat = 0.003; // set up prior to sizing outlet hum rat, dryer than autosized outlet // do sizing sizer.wasAutoSized = false; @@ -356,7 +356,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - EXPECT_NEAR(DataSizing::DataDesInletAirHumRat, sizedValue, 0.0001); // hard-sized value + EXPECT_NEAR(state->dataSize->DataDesInletAirHumRat, sizedValue, 0.0001); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test EXPECT_FALSE(errorsFound); @@ -368,10 +368,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) // Test 17 - Repeat w/ dry coil and high water temp, Outdoor Air System Equipment with DOAS system, autosized humidity ratio // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::DataDesInletAirHumRat = 0.010; - DataSizing::DataDesInletWaterTemp = 12.0; - DataSizing::DataDesInletAirHumRat = 0.008; + inputValue = DataSizing::AutoSize; + state->dataSize->DataDesInletAirHumRat = 0.010; + state->dataSize->DataDesInletWaterTemp = 12.0; + state->dataSize->DataDesInletAirHumRat = 0.008; // do sizing sizer.wasAutoSized = false; @@ -380,7 +380,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletHumRatSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - EXPECT_NEAR(DataSizing::DataDesInletAirHumRat, sizedValue, 0.0001); // hard-sized value + EXPECT_NEAR(state->dataSize->DataDesInletAirHumRat, sizedValue, 0.0001); // hard-sized value EXPECT_NEAR(0.008, sizedValue, 0.0001); // hum rat set to inlet hum rat sizer.autoSizedValue = 0.0; // reset for next test diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletTempSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletTempSizing.unit.cc index 8fd4ef35559..04ec6635ef0 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletTempSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesAirOutletTempSizing.unit.cc @@ -60,7 +60,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("CoolingWaterDesAirInletTempSizingGauntlet"); @@ -78,7 +78,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // reset eio stream has_eio_output(true); @@ -114,25 +114,25 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataPlnt->PlantLoop.allocate(1); - EnergyPlus::DataSizing::PlantSizData.allocate(1); - EnergyPlus::DataSizing::PlantSizData(1).ExitTemp = 7.0; - EnergyPlus::DataSizing::DataPltSizCoolNum = 1; - DataSizing::DataDesInletWaterTemp = 7.0; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).ExitTemp = 7.0; + state->dataSize->DataPltSizCoolNum = 1; + state->dataSize->DataDesInletWaterTemp = 7.0; // Sizing Type Prerequisites: - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDesTemp = 12.88; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; + state->dataSize->FinalZoneSizing(1).CoolDesTemp = 12.88; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 3 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -146,16 +146,16 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; - DataSizing::DataAirFlowUsedForSizing = 0.2; - DataSizing::DataWaterFlowUsedForSizing = 0.0001; - DataSizing::DataWaterCoilSizCoolDeltaT = 5.0; - DataSizing::DataDesInletAirTemp = 23.0; - DataSizing::DataDesInletAirHumRat = 0.007; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; + state->dataSize->DataAirFlowUsedForSizing = 0.2; + state->dataSize->DataWaterFlowUsedForSizing = 0.0001; + state->dataSize->DataWaterCoilSizCoolDeltaT = 5.0; + state->dataSize->DataDesInletAirTemp = 23.0; + state->dataSize->DataDesInletAirHumRat = 0.007; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -166,12 +166,12 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Induction Unit - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; - DataSizing::DataWaterLoopNum = 1; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; + state->dataSize->DataWaterLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -188,14 +188,14 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) Fans::Fan(1).FanEff = 0.6; Fans::Fan(1).MotInAirFrac = 0.1; Fans::Fan(1).FanType_Num = DataHVACGlobals::FanType_SimpleConstVolume; - DataSizing::DataFanIndex = 1; - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; - DataSizing::DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; - DataSizing::DataDesInletAirHumRat = 0.008; - DataSizing::DataAirFlowUsedForSizing = 0.24; + state->dataSize->DataFanIndex = 1; + state->dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state->dataSize->DataFanPlacement = DataSizing::zoneFanPlacement::zoneDrawThru; + state->dataSize->DataDesInletAirHumRat = 0.008; + state->dataSize->DataAirFlowUsedForSizing = 0.24; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -204,14 +204,14 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(15.729, sizedValue, 0.001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFanIndex = -1; + state->dataSize->DataFanIndex = -1; // Test 7 - Zone Equipment, Zone Eq Fan Coil, no fan heat - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -222,18 +222,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Zone Eq Fan Coil, outlet temp < water temp - DataSizing::DataDesInletWaterTemp = 13.0; + state->dataSize->DataDesInletWaterTemp = 13.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - EXPECT_NEAR(DataSizing::DataDesInletWaterTemp + 0.5, sizedValue, 0.0001); // 0.5 C above inlet water temp + EXPECT_NEAR(state->dataSize->DataDesInletWaterTemp + 0.5, sizedValue, 0.0001); // 0.5 C above inlet water temp sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataDesInletWaterTemp = 7.0; + state->dataSize->DataDesInletWaterTemp = 7.0; // reset eio stream has_eio_output(true); @@ -241,16 +241,16 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 9 - Airloop Equipment // delete zone sizing info - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 14.0; // do sizing @@ -266,15 +266,15 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 10 - Airloop Equipment - no OA coils, no fan heat - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).CoolSupTemp = 12.15; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).OutTempAtCoolPeak = 27.88; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 12.15; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutTempAtCoolPeak = 27.88; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -293,10 +293,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - no OA coils, with fan heat - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; - DataSizing::DataFanIndex = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanLocation = DataAirSystems::fanPlacement::DrawThru; + state->dataSize->DataFanIndex = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -309,11 +309,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 12 - Airloop Equipment - 1 OA coil, use PrecoolHumRat - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolTemp = 12.21; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolTemp = 12.21; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -326,9 +326,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Airloop Equipment - 1 OA coil, DataDesOutletAirTemp is set - DataSizing::DataDesOutletAirTemp = 10.6; + state->dataSize->DataDesOutletAirTemp = 10.6; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -338,16 +338,16 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(10.476, sizedValue, 0.001); // includes impact of fan heat - EXPECT_LT(sizedValue, DataSizing::DataDesOutletAirTemp); + EXPECT_LT(sizedValue, state->dataSize->DataDesOutletAirTemp); sizer.autoSizedValue = 0.0; // reset for next test // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 14 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -355,18 +355,18 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - Real64 outAirTemp = EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolTemp; + Real64 outAirTemp = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolTemp; EXPECT_NEAR(outAirTemp, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].PrecoolTemp = 11.44; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -403,7 +403,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 17 - Outdoor Air System Equipment with DOAS system, outlet temp < water temp - DataSizing::DataDesInletWaterTemp = 12.0; + state->dataSize->DataDesInletWaterTemp = 12.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; @@ -414,7 +414,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesAirOutletTempSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - EXPECT_NEAR(DataSizing::DataDesInletWaterTemp + 0.5, sizedValue, 0.01); // 0.5 C above water temp + EXPECT_NEAR(state->dataSize->DataDesInletWaterTemp + 0.5, sizedValue, 0.01); // 0.5 C above water temp sizer.autoSizedValue = 0.0; // reset for next test // call the clearState diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesWaterInletTempSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesWaterInletTempSizing.unit.cc index 4d90098a7e5..26aa301ca60 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesWaterInletTempSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterDesWaterInletTempSizing.unit.cc @@ -74,7 +74,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::DataPltSizCoolNum = 1; + state->dataSize->DataPltSizCoolNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -102,13 +102,13 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).ExitTemp = 15.0; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).ExitTemp = 15.0; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -118,10 +118,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -132,10 +132,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Induction TU - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -146,10 +146,10 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -160,9 +160,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Other Equipment - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -174,7 +174,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // Test 7 - Zone Equipment, Other Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -186,7 +186,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // Test 8 - Zone Equipment, Other Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -202,17 +202,17 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 9 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -227,17 +227,17 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 10 - Airloop Equipment - CurDuctType not set - DataSizing::CurSysNum = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::FinalSysSizing(1).HeatOutTemp = 10.0; - EnergyPlus::DataSizing::FinalSysSizing(1).HeatRetTemp = 12.0; - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->CurSysNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatOutTemp = 10.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 12.0; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -255,9 +255,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - CurDuctType = Main - DataSizing::CurDuctType = DataHVACGlobals::Main; + state->dataSize->CurDuctType = DataHVACGlobals::Main; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -271,7 +271,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // Test 12 - Airloop Equipment - CurDuctType = Main // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -283,9 +283,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Airloop Equipment - CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -298,7 +298,7 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // Test 14 - Airloop Equipment - CurDuctType = Cooling // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -310,9 +310,9 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Airloop Equipment - CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -325,11 +325,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 16 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -341,11 +341,11 @@ TEST_F(AutoSizingFixture, CoolingWaterDesWaterInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Outdoor Air System Equipment with DOAS system - state->dataAirLoop->OutsideAirSys(DataSizing::CurOASysNum).AirLoopDOASNum = 0; + state->dataAirLoop->OutsideAirSys(state->dataSize->CurOASysNum).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].HeatOutTemp = 12.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterNumofTubesPerRowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterNumofTubesPerRowSizing.unit.cc index aa91ccf9eca..0f502e588cb 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterNumofTubesPerRowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterNumofTubesPerRowSizing.unit.cc @@ -73,7 +73,7 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::DataPltSizCoolNum = 1; + state->dataSize->DataPltSizCoolNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -101,13 +101,13 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - DataSizing::PlantSizData.allocate(1); - DataSizing::DataWaterFlowUsedForSizing = 0.0001; // should cap at 3 tubes + state->dataSize->PlantSizData.allocate(1); + state->dataSize->DataWaterFlowUsedForSizing = 0.0001; // should cap at 3 tubes // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -117,11 +117,11 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Powered Induction TU - DataSizing::DataWaterFlowUsedForSizing = 0.00025; // just over 4 tubes - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->DataWaterFlowUsedForSizing = 0.00025; // just over 4 tubes + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -137,17 +137,17 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 4 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -162,15 +162,15 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 5 - Airloop Equipment - CurDuctType not set - DataSizing::CurSysNum = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->CurSysNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -189,11 +189,11 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 6 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -205,10 +205,10 @@ TEST_F(AutoSizingFixture, CoolingWaterNumofTubesPerRowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Outdoor Air System Equipment with DOAS system - state->dataAirLoop->OutsideAirSys(DataSizing::CurOASysNum).AirLoopDOASNum = 0; + state->dataAirLoop->OutsideAirSys(state->dataSize->CurOASysNum).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/CoolingWaterflowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/CoolingWaterflowSizing.unit.cc index e3de3c32456..6d5372bd8d3 100644 --- a/tst/EnergyPlus/unit/Autosizing/CoolingWaterflowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/CoolingWaterflowSizing.unit.cc @@ -60,7 +60,7 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) { // this global state is what would be set up by E+ currently state->dataEnvrn->StdRhoAir = 1.2; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("CoolingWaterflowSizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -78,11 +78,11 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) // ZONE EQUIPMENT TESTING inputValue = 5; - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitSizing(1).MaxCWVolFlow = 0.005; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).MaxCWVolFlow = 0.005; // Test #1 - Zone Equipment, no autosizing, missing input data sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -93,9 +93,9 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test #2 - Zone Equipment, no autosizing, has input data - DataSizing::DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::DataWaterCoilSizCoolDeltaT = 10.0; + state->dataSize->DataWaterCoilSizCoolDeltaT = 10.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -124,23 +124,23 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).MaxCWVolFlow = 0.3; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolMassFlow = 0.3; - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDesTemp = 12.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDesHumRat = 0.006; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolCoilInTemp = 25.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolCoilInHumRat = 0.009; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).MaxCWVolFlow = 0.3; + state->dataSize->FinalZoneSizing(1).DesCoolMassFlow = 0.3; + state->dataSize->FinalZoneSizing(1).CoolDesTemp = 12.0; + state->dataSize->FinalZoneSizing(1).CoolDesHumRat = 0.006; + state->dataSize->FinalZoneSizing(1).DesCoolCoilInTemp = 25.0; + state->dataSize->FinalZoneSizing(1).DesCoolCoilInHumRat = 0.009; + state->dataSize->ZoneSizingRunDone = true; // Test 3 - Zone Equipment, Single Duct TU, cooling coil water flow sizes > 0 - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -162,8 +162,8 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) Fans::Fan(1).FanEff = 0.6; Fans::Fan(1).MotInAirFrac = 0.5; Fans::Fan(1).FanType_Num = DataHVACGlobals::FanType_SimpleConstVolume; - DataSizing::DataFanIndex = 1; - DataSizing::DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; + state->dataSize->DataFanIndex = 1; + state->dataSize->DataFanEnumType = DataAirSystems::structArrayLegacyFanModels; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); // missing Data* globals and Plant data @@ -172,7 +172,7 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) EXPECT_GT(sizedValue, previousWaterFlow); // water flow rate is greater with fan heat than without // test fan heat - Real64 desVolFlow = DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolMassFlow / state->dataEnvrn->StdRhoAir; + Real64 desVolFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow / state->dataEnvrn->StdRhoAir; Real64 desFanHeat = sizer.calcFanDesHeatGain(desVolFlow); EXPECT_FALSE(sizer.fanCompModel); // fan is not a component model type EXPECT_NEAR(237.5, desFanHeat, 0.001); @@ -181,10 +181,10 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) EXPECT_NEAR(designFanHeatGain, desFanHeat, 0.0001);// compare with manual fan heat calculation // Test 5 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -195,10 +195,10 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Induction TU - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -206,14 +206,14 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.005, sizedValue, 0.0001); - EXPECT_NEAR(DataSizing::TermUnitSizing(1).MaxCWVolFlow, sizedValue, 0.0001); + EXPECT_NEAR(state->dataSize->TermUnitSizing(1).MaxCWVolFlow, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -221,14 +221,14 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.3, sizedValue, 0.0001); - EXPECT_NEAR(EnergyPlus::DataSizing::ZoneEqSizing(1).MaxCWVolFlow, sizedValue, 0.0001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).MaxCWVolFlow, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Unit Ventilator - DataSizing::ZoneEqFanCoil = false; - DataSizing::ZoneEqUnitVent = true; + state->dataSize->ZoneEqFanCoil = false; + state->dataSize->ZoneEqUnitVent = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -239,10 +239,10 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, Other Equipment - DataSizing::ZoneEqUnitVent = false; - DataSizing::DataWaterCoilSizCoolDeltaT = 5.0; + state->dataSize->ZoneEqUnitVent = false; + state->dataSize->DataWaterCoilSizCoolDeltaT = 5.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_CoolingWater), "MyWaterCoil", printFlag, routineName); @@ -258,19 +258,19 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 10 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; - DataSizing::DataCapacityUsedForSizing = 5000.0; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; + state->dataSize->DataCapacityUsedForSizing = 5000.0; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -285,14 +285,14 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - CurDuctType not set - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -315,8 +315,8 @@ TEST_F(AutoSizingFixture, CoolingWaterflowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 13 - Outdoor Air System Equipment, no DOAS air loop - DataSizing::CurOASysNum = 1; - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->CurOASysNum = 1; + state->dataSize->OASysEqSizing.allocate(1); // start with an auto-sized value as the user input inputValue = 0.0002; printFlag = true; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingAirFlowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingAirFlowSizing.unit.cc index 2ae23b39829..3d544bb4fb2 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingAirFlowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingAirFlowSizing.unit.cc @@ -60,7 +60,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("HeatingAirFlowSizingGauntlet"); state->dataEnvrn->StdRhoAir = 1.2; @@ -78,9 +78,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -112,17 +112,17 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).SizingMethod.allocate(35); - - DataSizing::ZoneSizingRunDone = true; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolVolFlow = 1.6; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatVolFlow = 1.2; - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDDNum = 1; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDDNum = 2; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(35); + + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing(1).DesCoolVolFlow = 1.6; + state->dataSize->FinalZoneSizing(1).DesHeatVolFlow = 1.2; + state->dataSize->FinalZoneSizing(1).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(1).HeatDDNum = 2; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; state->dataEnvrn->TotDesDays = 2; @@ -136,10 +136,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) // Test 2 - Zone Equipment, sizes to greater of zone cooling and heating flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -152,9 +152,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 3 - Zone Equipment, set heating only fan - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -164,10 +164,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, set cooling only fan - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -177,9 +177,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, cooling only fan, set fraction used for sizing - DataSizing::DataFractionUsedForSizing = 0.5; + state->dataSize->DataFractionUsedForSizing = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -187,14 +187,14 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.6, sizedValue, 0.0001); // data fraction has no affect on cooling air flow rate sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFractionUsedForSizing = 0.0; // reset for next test + state->dataSize->DataFractionUsedForSizing = 0.0; // reset for next test // Test 6 - Zone Equipment, set ZoneEqSizing data - DataSizing::ZoneEqSizing(1).SystemAirFlow = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.8; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.8; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -204,10 +204,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, set cooling only fan - DataSizing::ZoneEqSizing(1).SystemAirFlow = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -217,10 +217,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, set heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -230,11 +230,11 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, set ZoneEqSizing cooling air flow - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirVolFlow = 2.2; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirVolFlow = 2.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -244,11 +244,11 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, set ZoneEqSizing heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 3.2; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 3.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -258,9 +258,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 11 - Zone Equipment, set ZoneEqSizing cooling and heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -268,16 +268,16 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(3.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; // Test 12 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -287,11 +287,11 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::DataFracOfAutosizedHeatingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->DataFracOfAutosizedHeatingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -301,9 +301,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Zone Equipment, cooling or heating fan not set - DataSizing::ZoneHeatingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -313,9 +313,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Zone Equipment, ZoneEqSizing cooling - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -325,10 +325,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Zone Equipment, ZoneEqSizing heating - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -338,9 +338,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Zone Equipment, ZoneEqSizing cooling and heating fan - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -349,13 +349,13 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; // Test 18 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -365,10 +365,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 19 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -378,10 +378,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 20 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -391,10 +391,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 21 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -404,9 +404,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 22 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -414,12 +414,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 23 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -428,16 +428,16 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_NEAR(0.64, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; // Test 24 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::DataFlowPerCoolingCapacity = 0.00005; - DataSizing::DataAutosizedCoolingCapacity = 10000.0; - DataSizing::DataFlowPerHeatingCapacity = 0.00006; - DataSizing::DataAutosizedHeatingCapacity = 20000.0; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFlowPerCoolingCapacity = 0.00005; + state->dataSize->DataAutosizedCoolingCapacity = 10000.0; + state->dataSize->DataFlowPerHeatingCapacity = 0.00006; + state->dataSize->DataAutosizedHeatingCapacity = 20000.0; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -447,10 +447,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 25 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -460,10 +460,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 26 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -473,10 +473,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 27 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -486,9 +486,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 28 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -496,12 +496,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 29 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -510,12 +510,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; // Test 30 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -525,10 +525,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 31 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -538,10 +538,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 32 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -551,10 +551,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 33 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -564,9 +564,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 34 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -574,12 +574,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 35 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -589,9 +589,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 36 - Zone Equipment, set design size from parent - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.75; - inputValue = EnergyPlus::DataSizing::AutoSize; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.75; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -599,7 +599,7 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.75, sizedValue, 0.0001); // parent passed size sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = false; // Test 37 - Zone Equipment, hard size with zone sizing run inputValue = 1.44; @@ -613,7 +613,7 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) // Test 38 - Zone Equipment, hard size inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -623,10 +623,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 39 - EMS override - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 1.33; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 1.33; inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -642,16 +642,16 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting, CurDuctType not set // Test 40 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -666,20 +666,20 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 41 - Airloop Equipment - ems override is on - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataEnvrn->TotDesDays = 2; - DataSizing::SysSizPeakDDNum.allocate(2); - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = 1; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).HeatDDNum = 2; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->SysSizPeakDDNum.allocate(2); + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatDDNum = 2; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; @@ -692,7 +692,7 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.33, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataEMSOverrideON = false; + state->dataSize->DataEMSOverrideON = false; // header already reported above (and flag set false). Only coil sizing information reported here. eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Heating Supply Air Flow Rate [m3/s], 1.33000\n"); @@ -700,13 +700,13 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 42 - Airloop Equipment - CurDuctType = Main - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -719,14 +719,14 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 43 - Airloop Equipment - AirLoopSysFlag set - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + inputValue = DataSizing::AutoSize; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // do sizing sizer.wasAutoSized = false; @@ -738,12 +738,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 44 - Airloop Equipment - AirLoopSysFlag set, CurDuctType = Heating - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = false; - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = false; - DataSizing::CurDuctType = DataHVACGlobals::Heating; - DataSizing::FinalSysSizing(1).DesHeatVolFlow = 7.2; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = false; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = false; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 7.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -756,13 +756,13 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 45 - Outdoor Air System - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 3.0; - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 3.0; + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -774,10 +774,10 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 46 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).AirFlow = true; - EnergyPlus::DataSizing::OASysEqSizing(1).AirVolFlow = 3.7; + state->dataSize->OASysEqSizing(1).AirFlow = true; + state->dataSize->OASysEqSizing(1).AirVolFlow = 3.7; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -788,11 +788,11 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 47 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).AirFlow = false; - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirFlow = true; - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirVolFlow = 3.6; + state->dataSize->OASysEqSizing(1).AirFlow = false; + state->dataSize->OASysEqSizing(1).CoolingAirFlow = true; + state->dataSize->OASysEqSizing(1).CoolingAirVolFlow = 3.6; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -803,12 +803,12 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 48 - Outdoor Air System - EnergyPlus::DataSizing::OASysEqSizing(1).CoolingAirFlow = false; + state->dataSize->OASysEqSizing(1).CoolingAirFlow = false; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].SizingMassFlow = 4.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -819,14 +819,14 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 49 - Air Loop Equipment, CurDuctType = Main - DataSizing::CurOASysNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.4; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.3; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 5.2; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.4; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.3; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 5.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -837,9 +837,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 50 - Air Loop Equipment, CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -850,9 +850,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 51 - Air Loop Equipment, CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -864,9 +864,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 52 - Air Loop Equipment, CurDuctType = Other - DataSizing::CurDuctType = DataHVACGlobals::Other; + state->dataSize->CurDuctType = DataHVACGlobals::Other; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -878,9 +878,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 53 - Air Loop Equipment, CurDuctType = RAB - DataSizing::CurDuctType = DataHVACGlobals::RAB; + state->dataSize->CurDuctType = DataHVACGlobals::RAB; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -891,9 +891,9 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 54 - Air Loop Equipment, parent set DataAirFlowUsedForSizing - DataSizing::DataAirFlowUsedForSizing = 5.8; + state->dataSize->DataAirFlowUsedForSizing = 5.8; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -920,7 +920,7 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(2.0, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataAirFlowUsedForSizing = 0.0; + state->dataSize->DataAirFlowUsedForSizing = 0.0; EXPECT_FALSE(errorsFound); @@ -932,8 +932,8 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) // Test 56 - Air Loop Equipment, CurDuctType = RAB, hard-sized air flow rate // start with an hard-sized value as the user input inputValue = 2.2; - DataSizing::DataConstantUsedForSizing = 3.5; - DataSizing::DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 3.5; + state->dataSize->DataFractionUsedForSizing = 1.0; // do sizing sizer.wasAutoSized = false; @@ -944,8 +944,8 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(2.2, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 0.0; EXPECT_FALSE(errorsFound); @@ -955,7 +955,7 @@ TEST_F(AutoSizingFixture, HeatingAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 57 - Air Loop Equipment, no sizing run, hard-sized air flow rate - DataSizing::SysSizingRunDone = false; + state->dataSize->SysSizingRunDone = false; // start with an hard-sized value as the user input inputValue = 2.9; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingAirflowUASizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingAirflowUASizing.unit.cc index 1d55146b1e6..c865f675557 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingAirflowUASizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingAirflowUASizing.unit.cc @@ -83,7 +83,7 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) { // this global state is what would be set up by E+ currently state->dataEnvrn->StdRhoAir = 1.2; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("HeatingAirflowUASizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -100,9 +100,9 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -134,26 +134,26 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow = 0.0008; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).AirVolFlow = 0.0008; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU, UA sizes to 0 - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.0, sizedValue, 0.01); - EXPECT_NEAR(0.0008, EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow, 0.0001); + EXPECT_NEAR(0.0008, state->dataSize->TermUnitSizing(1).AirVolFlow, 0.0001); EXPECT_NEAR(1.2, state->dataEnvrn->StdRhoAir, 0.01); eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, Design Size Heating Coil Airflow For UA, 0.00000\n"); @@ -161,23 +161,23 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 3 - Zone Equipment, Single Duct TU - EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow = 5; + state->dataSize->TermUnitSizing(1).AirVolFlow = 5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(6.0, sizedValue, 0.01); - EXPECT_NEAR(5.0, EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow, 0.01); + EXPECT_NEAR(5.0, state->dataSize->TermUnitSizing(1).AirVolFlow, 0.01); sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -188,10 +188,10 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Induction TU - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -202,12 +202,12 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; - EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow = 0.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatVolFlow = 5.0; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; + state->dataSize->TermUnitSizing(1).AirVolFlow = 0.0; + state->dataSize->FinalZoneSizing(1).DesHeatVolFlow = 5.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -218,13 +218,13 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Other Equipment - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // baseFlags.otherEqType = true; set in initialize function based on other flags - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatVolFlow = 0.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).AirVolFlow = 5.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).SystemAirFlow = true; + state->dataSize->FinalZoneSizing(1).DesHeatVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 5.0; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -235,12 +235,12 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Other Equipment - EnergyPlus::DataSizing::ZoneEqSizing(1).AirVolFlow = 0.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 5.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).SystemAirFlow = false; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 5.0; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -251,11 +251,11 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, Other Equipment - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 0.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 5.0; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 5.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -271,17 +271,17 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 10 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -296,17 +296,17 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - CurDuctType not set - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -324,11 +324,11 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 12 - Airloop Equipment - CurDuctType = Main, SysAirMinFlowRat = 0 - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -341,9 +341,9 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Airloop Equipment - CurDuctType = Main, SysAirMinFlowRat = 0.5 - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.5; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -355,12 +355,12 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Airloop Equipment - CurDuctType = Cooling, SysAirMinFlowRat = 0 - DataSizing::CurDuctType = DataHVACGlobals::Cooling; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -372,9 +372,9 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Airloop Equipment - CurDuctType = Cooling, SysAirMinFlowRat = 0.5 - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.5; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -386,12 +386,12 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Airloop Equipment - CurDuctType = Heating, SysAirMinFlowRat doesn't matter - DataSizing::CurDuctType = DataHVACGlobals::Heating; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.5; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -404,13 +404,13 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 17 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 5.0; - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 5.0; + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -422,12 +422,12 @@ TEST_F(AutoSizingFixture, HeatingAirflowUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 18 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].SizingMassFlow = 5.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingCapacitySizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingCapacitySizing.unit.cc index 096e9e0f4a7..91a0084ee53 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingCapacitySizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingCapacitySizing.unit.cc @@ -89,7 +89,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) // this global state is what would be set up by E+ currently static std::string const routineName("HeatingCapacitySizingGauntlet"); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // create the sizer and set up the flags to specify the sizing configuration HeatingCapacitySizer sizer; @@ -105,9 +105,9 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; // Test #1 - Zone Equipment, no autosizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -121,19 +121,19 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) has_eio_output(true); printFlag = true; - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = true; - DataSizing::ZoneEqSizing(1).DesHeatingLoad = sizedValue; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(1).DesHeatingLoad = sizedValue; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(5125.3, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = false; std::string eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Heating Capacity [W], 5125.30000\n"); @@ -141,35 +141,35 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // now allocate sizing arrays for testing autosized field - DataSizing::TermUnitFinalZoneSizing.allocate(1); - DataSizing::TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; - DataSizing::TermUnitFinalZoneSizing(1).DesHeatCoilInHumRatTU = 0.007; - DataSizing::TermUnitFinalZoneSizing(1).HeatDesTemp = 30.0; - DataSizing::TermUnitFinalZoneSizing(1).HeatDesHumRat = 0.007; - DataSizing::TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - DataSizing::TermUnitFinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitSizing(1).InducRat = 0.5; - DataSizing::TermUnitSizing(1).AirVolFlow = 0.2; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - DataSizing::FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; - DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; - DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 0.2; - DataSizing::FinalZoneSizing(1).HeatDesTemp = 30.0; - DataSizing::FinalZoneSizing(1).HeatDesHumRat = 0.004; - DataSizing::FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; - DataSizing::FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; - - DataSizing::ZoneEqSizing(1).ATMixerHeatPriDryBulb = 20.0; - DataSizing::ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.007; + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; + state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInHumRatTU = 0.007; + state->dataSize->TermUnitFinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->TermUnitFinalZoneSizing(1).HeatDesHumRat = 0.007; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).InducRat = 0.5; + state->dataSize->TermUnitSizing(1).AirVolFlow = 0.2; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 0.2; + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.004; + state->dataSize->FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; + state->dataSize->FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; + + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb = 20.0; + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.007; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 5.0; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -184,8 +184,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitSingDuct = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -198,8 +198,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone DX Equipment - DataSizing::ZoneEqFanCoil = false; - DataSizing::DataFlowUsedForSizing = DataSizing::FinalZoneSizing(1).DesHeatMassFlow / state->dataEnvrn->StdRhoAir; + state->dataSize->ZoneEqFanCoil = false; + state->dataSize->DataFlowUsedForSizing = state->dataSize->FinalZoneSizing(1).DesHeatMassFlow / state->dataEnvrn->StdRhoAir; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -213,7 +213,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Terminal Induction Unit - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -226,8 +226,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.05; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.05; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -241,8 +241,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone DX Equipment, inlet side AT Mixer - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.03; - DataSizing::ZoneEqDXCoil = true; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.03; + state->dataSize->ZoneEqDXCoil = true; // start with an auto-sized value as the user input, AT Mixer present inputValue = DataSizing::AutoSize; // do sizing @@ -254,10 +254,10 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1360.5, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // Test 8 - Zone DX Equipment, no AT Mixer, local OA only - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // start with an auto-sized value as the user input, AT Mixer present inputValue = DataSizing::AutoSize; // do sizing @@ -271,8 +271,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, powered induction unit - DataSizing::TermUnitPIU = true; - DataSizing::TermUnitSizing(1).MinFlowFrac = 0.3; + state->dataSize->TermUnitPIU = true; + state->dataSize->TermUnitSizing(1).MinFlowFrac = 0.3; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -286,7 +286,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, powered induction unit - DataSizing::TermUnitSizing(1).InducesPlenumAir = true; + state->dataSize->TermUnitSizing(1).InducesPlenumAir = true; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -298,10 +298,10 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(6229.26, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.0; // Test 11 - Zone Equipment, powered induction unit - DataSizing::DataCoolCoilCap = 4250.0; // overrides capacity + state->dataSize->DataCoolCoilCap = 4250.0; // overrides capacity // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -313,9 +313,9 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4250.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataCoolCoilCap = 0.0; // reset for next test + state->dataSize->DataCoolCoilCap = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).HeatingCapacity = true; + state->dataSize->ZoneEqSizing(1).HeatingCapacity = true; // Test 12 - Zone Equipment, parent set heating capacity // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; @@ -328,11 +328,11 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(5125.3, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).HeatingCapacity = false; + state->dataSize->ZoneEqSizing(1).HeatingCapacity = false; // Test 13 - Zone Equipment, parent sets constant and fraction used for sizing - DataSizing::DataConstantUsedForSizing = 2800.0; - DataSizing::DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 2800.0; + state->dataSize->DataFractionUsedForSizing = 1.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -344,12 +344,12 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(2800.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 0.0; // Test 14 - Zone Equipment, EMS override - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 1500.0; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 1500.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; // do sizing @@ -361,8 +361,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1500.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataEMSOverrideON = false; - DataSizing::DataEMSOverride = 0.0; + state->dataSize->DataEMSOverrideON = false; + state->dataSize->DataEMSOverride = 0.0; // reset eio stream has_eio_output(true); @@ -389,16 +389,16 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) // AIRLOOP Equipment // Test 16 - Airloop Equipment, hard size, no sizing run - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - DataSizing::ZoneEqSizing.deallocate(); - DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 2700.8; // do sizing @@ -412,23 +412,23 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).HeatRetTemp = 20.0; - DataSizing::FinalSysSizing(1).HeatOutTemp = 5.0; - DataSizing::FinalSysSizing(1).HeatSupTemp = 30.0; - DataSizing::FinalSysSizing(1).HeatRetHumRat = 0.006; - DataSizing::FinalSysSizing(1).HeatOutHumRat = 0.004; - DataSizing::FinalSysSizing(1).PreheatTemp = 10.0; - DataSizing::FinalSysSizing(1).PreheatHumRat = 0.005; - DataSizing::FinalSysSizing(1).DesMainVolFlow = 0.3; - DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.27; - DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.24; + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 30.0; + state->dataSize->FinalSysSizing(1).HeatRetHumRat = 0.006; + state->dataSize->FinalSysSizing(1).HeatOutHumRat = 0.004; + state->dataSize->FinalSysSizing(1).PreheatTemp = 10.0; + state->dataSize->FinalSysSizing(1).PreheatHumRat = 0.005; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.3; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.27; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 0.24; // Test 17 - Airloop Equipment, no OA // start with an autosized value @@ -444,8 +444,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) Real64 unAdjustedSize = sizedValue; // Test 18 - Airloop Equipment, no OA, fraction of autosized heating capacity - DataSizing::FinalSysSizing(1).HeatingCapMethod = DataSizing::FractionOfAutosizedHeatingCapacity; - DataSizing::FinalSysSizing(1).FractionOfAutosizedHeatingCapacity = 0.5; + state->dataSize->FinalSysSizing(1).HeatingCapMethod = DataSizing::FractionOfAutosizedHeatingCapacity; + state->dataSize->FinalSysSizing(1).FractionOfAutosizedHeatingCapacity = 0.5; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -456,12 +456,12 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(unAdjustedSize * 0.5, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::FinalSysSizing(1).HeatingCapMethod = DataSizing::None; - DataSizing::FinalSysSizing(1).FractionOfAutosizedHeatingCapacity = 0.0; + state->dataSize->FinalSysSizing(1).HeatingCapMethod = DataSizing::None; + state->dataSize->FinalSysSizing(1).FractionOfAutosizedHeatingCapacity = 0.0; // Test 19 - Airloop Equipment, with min OA - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.02; - DataSizing::FinalSysSizing(1).HeatOAOption = DataSizing::MinOA; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.02; + state->dataSize->FinalSysSizing(1).HeatOAOption = DataSizing::MinOA; state->dataAirSystemsData->PrimaryAirSystems(1).NumOAHeatCoils = 1; // start with an autosized value inputValue = DataSizing::AutoSize; @@ -475,8 +475,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 20 - Airloop Equipment, unitary system sets capacity - DataSizing::UnitarySysEqSizing(1).HeatingCapacity = true; - DataSizing::UnitarySysEqSizing(1).DesHeatingLoad = 4500.0; + state->dataSize->UnitarySysEqSizing(1).HeatingCapacity = true; + state->dataSize->UnitarySysEqSizing(1).DesHeatingLoad = 4500.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -489,10 +489,10 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 21 - Airloop Equipment, desiccant heating coil - DataSizing::UnitarySysEqSizing(1).HeatingCapacity = false; - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesOutletAirTemp = 32.0; - DataSizing::DataDesInletAirTemp = 5.0; + state->dataSize->UnitarySysEqSizing(1).HeatingCapacity = false; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesOutletAirTemp = 32.0; + state->dataSize->DataDesInletAirTemp = 5.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -503,12 +503,12 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(5426.24, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataDesicRegCoil = false; + state->dataSize->DataDesicRegCoil = false; // Test 22 - Airloop Equipment, unitary system sets air flow - DataSizing::DataFlowUsedForSizing = 0.0; - DataSizing::UnitarySysEqSizing(1).AirFlow = true; - DataSizing::UnitarySysEqSizing(1).AirVolFlow = 0.15; + state->dataSize->DataFlowUsedForSizing = 0.0; + state->dataSize->UnitarySysEqSizing(1).AirFlow = true; + state->dataSize->UnitarySysEqSizing(1).AirVolFlow = 0.15; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -519,11 +519,11 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(2049.91, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::UnitarySysEqSizing(1).AirFlow = false; + state->dataSize->UnitarySysEqSizing(1).AirFlow = false; // Test 23 - Airloop Equipment, unitary system sets heating air flow - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).HeatingAirVolFlow = 0.12; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).HeatingAirVolFlow = 0.12; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -534,10 +534,10 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1688.16, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = false; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = false; // Test 24 - Airloop Equipment, CurDuctType = Main - DataSizing::CurDuctType = DataHVACGlobals::Main; + state->dataSize->CurDuctType = DataHVACGlobals::Main; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -550,7 +550,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 25 - Airloop Equipment, CurDuctType = Main, SysAirMinFlowRat > 0 - DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.3; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.3; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -563,8 +563,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 26 - Airloop Equipment, CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; - DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -577,7 +577,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 27 - Airloop Equipment, CurDuctType = Main, SysAirMinFlowRat > 0 - DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.3; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.3; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -590,8 +590,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 28 - Airloop Equipment, CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; - DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -604,7 +604,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 29 - Airloop Equipment, CurDuctType = Other - DataSizing::CurDuctType = DataHVACGlobals::Other; + state->dataSize->CurDuctType = DataHVACGlobals::Other; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -617,7 +617,7 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 30 - Airloop Equipment, CurDuctType = RAB - DataSizing::CurDuctType = DataHVACGlobals::RAB; + state->dataSize->CurDuctType = DataHVACGlobals::RAB; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -632,8 +632,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) // Test 31 - Airloop Equipment, CurDuctType = Main, Unitary system does not set size for HW coils // even when AirLoopControlInfo(1).UnitarySysSimulating = true state->dataAirLoop->AirLoopControlInfo(1).UnitarySys = true; - DataSizing::UnitaryHeatCap = 4790.0; - DataSizing::CurDuctType = DataHVACGlobals::Main; + state->dataSize->UnitaryHeatCap = 4790.0; + state->dataSize->CurDuctType = DataHVACGlobals::Main; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -659,8 +659,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 33 - Airloop Equipment, CurDuctType = Main, Unitary system has supp heating coil - DataSizing::DataCoilIsSuppHeater = true; - DataSizing::SuppHeatCap = 5325.0; + state->dataSize->DataCoilIsSuppHeater = true; + state->dataSize->SuppHeatCap = 5325.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -671,11 +671,11 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(5325.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataCoilIsSuppHeater = false; - DataSizing::SuppHeatCap = 0.0; + state->dataSize->DataCoilIsSuppHeater = false; + state->dataSize->SuppHeatCap = 0.0; // Test 34 - Airloop Equipment, CurDuctType = Main, Unitary system sets heat coil to same size as cool coil - DataSizing::DataCoolCoilCap = 4325.0; + state->dataSize->DataCoolCoilCap = 4325.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -686,13 +686,13 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4325.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataCoolCoilCap = 0.0; + state->dataSize->DataCoolCoilCap = 0.0; state->dataAirLoop->AirLoopControlInfo(1).UnitarySys = false; // Test 35 - Airloop Equipment, CurDuctType = Main, air loop uses scaled sizing - DataSizing::FinalSysSizing(1).HeatingCapMethod = DataSizing::CapacityPerFloorArea; - DataSizing::FinalSysSizing(1).HeatingTotalCapacity = 3325.0; + state->dataSize->FinalSysSizing(1).HeatingCapMethod = DataSizing::CapacityPerFloorArea; + state->dataSize->FinalSysSizing(1).HeatingTotalCapacity = 3325.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -705,8 +705,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 36 - Airloop Equipment, CurDuctType = Main, air loop uses scaled sizing - DataSizing::FinalSysSizing(1).HeatingCapMethod = DataSizing::HeatingDesignCapacity; - DataSizing::FinalSysSizing(1).HeatingTotalCapacity = 2325.0; + state->dataSize->FinalSysSizing(1).HeatingCapMethod = DataSizing::HeatingDesignCapacity; + state->dataSize->FinalSysSizing(1).HeatingTotalCapacity = 2325.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -717,13 +717,13 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(2325.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::FinalSysSizing(1).HeatingCapMethod = DataSizing::None; - DataSizing::FinalSysSizing(1).HeatingTotalCapacity = 0.0; + state->dataSize->FinalSysSizing(1).HeatingCapMethod = DataSizing::None; + state->dataSize->FinalSysSizing(1).HeatingTotalCapacity = 0.0; // Test 37 - OA Equipment, OA Sys capacity sizing - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -736,8 +736,8 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 38 - OA Equipment, OA Sys air flow sizing - DataSizing::OASysEqSizing(1).AirFlow = true; - DataSizing::OASysEqSizing(1).AirVolFlow = 1.5; + state->dataSize->OASysEqSizing(1).AirFlow = true; + state->dataSize->OASysEqSizing(1).AirVolFlow = 1.5; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -748,11 +748,11 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(9043.73, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::OASysEqSizing(1).AirFlow = false; + state->dataSize->OASysEqSizing(1).AirFlow = false; // Test 39 - OA Equipment, OA Sys heating air flow sizing - DataSizing::OASysEqSizing(1).HeatingAirFlow = true; - DataSizing::OASysEqSizing(1).HeatingAirVolFlow = 1.2; + state->dataSize->OASysEqSizing(1).HeatingAirFlow = true; + state->dataSize->OASysEqSizing(1).HeatingAirVolFlow = 1.2; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -763,11 +763,11 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(7234.98, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::OASysEqSizing(1).HeatingAirFlow = false; + state->dataSize->OASysEqSizing(1).HeatingAirFlow = false; // Test 40 - OA Equipment, OA Sys unitary sets capacity - DataSizing::OASysEqSizing(1).HeatingCapacity = true; - DataSizing::OASysEqSizing(1).DesHeatingLoad = 4400.0; + state->dataSize->OASysEqSizing(1).HeatingCapacity = true; + state->dataSize->OASysEqSizing(1).DesHeatingLoad = 4400.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -778,13 +778,13 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(4400.0, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::OASysEqSizing(1).HeatingCapacity = false; - DataSizing::OASysEqSizing(1).DesHeatingLoad = 0.0; + state->dataSize->OASysEqSizing(1).HeatingCapacity = false; + state->dataSize->OASysEqSizing(1).DesHeatingLoad = 0.0; // Test 41 - OA Equipment, desiccant heating coil - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesOutletAirTemp = 38.0; - DataSizing::DataDesInletAirTemp = 5.0; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesOutletAirTemp = 38.0; + state->dataSize->DataDesInletAirTemp = 5.0; // start with an autosized value inputValue = DataSizing::AutoSize; // do sizing @@ -795,10 +795,10 @@ TEST_F(AutoSizingFixture, HeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(795.85, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataDesicRegCoil = false; + state->dataSize->DataDesicRegCoil = false; // Test 42 - OA Equipment, DOAS Air loop - DataSizing::OASysEqSizing(1).HeatingAirFlow = false; + state->dataSize->OASysEqSizing(1).HeatingAirFlow = false; state->dataAirLoop->OutsideAirSys.allocate(1); state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletHumRatSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletHumRatSizing.unit.cc index 70756d006f2..2940b41811b 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletHumRatSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletHumRatSizing.unit.cc @@ -59,7 +59,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("HeatingWaterDesAirInletHumRatSizingGauntlet"); @@ -77,7 +77,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // reset eio stream has_eio_output(true); @@ -113,37 +113,37 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); // Sizing Type Prerequisites: // TermUnitPIU, TermUnitSingDuct - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; // TermUnitPIU - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.007; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.007; // TermUnitIU - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(DataSizing::CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.006; // all others - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInHumRat = 0.008; - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow = 0.01; - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).OutHumRatAtHeatPeak = 0.004; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutHumRatAtHeatPeak = 0.004; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; // set by parent - EnergyPlus::DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 0.021; - EnergyPlus::DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 0.015; - EnergyPlus::DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).OAVolFlow = 0.003; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.021; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 0.015; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow = 0.003; - DataSizing::ZoneSizingRunDone = true; - DataSizing::CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurTermUnitSizingNum = 1; // Test 3 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -157,11 +157,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; - EnergyPlus::DataSizing::TermUnitSizing(1).MinFlowFrac = 0.0; // all zone air + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; + state->dataSize->TermUnitSizing(1).MinFlowFrac = 0.0; // all zone air // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -172,9 +172,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Powered Induction TU with MinFlowFrac at 0.3 - EnergyPlus::DataSizing::TermUnitSizing(1).MinFlowFrac = 0.3; // mix zone air and DesHeatCoilInHumRatTU + state->dataSize->TermUnitSizing(1).MinFlowFrac = 0.3; // mix zone air and DesHeatCoilInHumRatTU // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -187,11 +187,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Induction Unit - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -202,11 +202,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Zone Eq Fan Coil, mixture of zone and OA - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -217,9 +217,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Zone Eq Fan Coil, parent set system flow - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -229,12 +229,12 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_NEAR(0.00657, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = false; // Test 9 - Zone Equipment, Zone Eq Fan Coil, parent set heating flow - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -244,13 +244,13 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_NEAR(0.00592, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = false; // Test 10 - Zone Equipment w/ 10% OA - DataSizing::ZoneEqSizing(1).OAVolFlow = - EnergyPlus::DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); + state->dataSize->ZoneEqSizing(1).OAVolFlow = + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow / (10.0 * state->dataEnvrn->StdRhoAir); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -263,12 +263,12 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 11 - Zone Equipment w/ AT Mixer at 20% of design flow - DataSizing::ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.001; - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.001; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.002 / state->dataEnvrn->StdRhoAir; // AT mass flow smaller than DesCoolMassFlow by factor of 5 Real64 mixedHumRat2 = 0.8 * 0.007 + 0.2 * 0.001; // 80% of ZoneHumRatAtCoolPeak, 20% of AT Mixer mass flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -279,11 +279,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 12 - Zone Equipment w/o AT Mixer or OA flow set by parent, yields zone hum rat - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -293,7 +293,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_NEAR(0.007, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // reset eio stream has_eio_output(true); eiooutput = ""; @@ -301,15 +301,15 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 13 - Airloop Equipment // delete zone sizing info - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.012; // do sizing @@ -324,19 +324,19 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 14 - Airloop Equipment - no OA coils - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - - EnergyPlus::DataSizing::FinalSysSizing(1).HeatRetHumRat = 0.012; - EnergyPlus::DataSizing::FinalSysSizing(1).HeatOutHumRat = 0.006; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->FinalSysSizing(1).HeatRetHumRat = 0.012; + state->dataSize->FinalSysSizing(1).HeatOutHumRat = 0.006; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -355,12 +355,12 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 15 - Airloop Equipment - 1 OA coil - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 1; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).RetHumRatAtCoolPeak = 0.015; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PrecoolHumRat = 0.01; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).RetHumRatAtCoolPeak = 0.015; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PrecoolHumRat = 0.01; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -373,11 +373,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Airloop Equipment - 1 OA coil use mixture of outdoor and return hum rat since DataFlowUsedForSizing > 0 - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = 0.01; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOAOption = DataSizing::MinOA; - EnergyPlus::DataSizing::DataFlowUsedForSizing = 0.1; // system volume flow + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.01; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOAOption = DataSizing::MinOA; + state->dataSize->DataFlowUsedForSizing = 0.1; // system volume flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -390,11 +390,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 17 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -402,18 +402,18 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletHumRatSizingGauntlet) sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); - Real64 outAirHumRat = EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutHumRat; + Real64 outAirHumRat = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutHumRat; EXPECT_NEAR(outAirHumRat, sizedValue, 0.00001); sizer.autoSizedValue = 0.0; // reset for next test // Test 18 - Outdoor Air System Equipment with DOAS system - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; state->dataAirLoop->OutsideAirSys(1).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].HeatOutHumRat = 0.0036; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletTempSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletTempSizing.unit.cc index fb2fdf7fe78..76eb8e13b3b 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletTempSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesAirInletTempSizing.unit.cc @@ -62,7 +62,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("HeatingWaterDesAirInletTempSizingGauntlet"); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // create the sizer and set up the flags to specify the sizing configuration HeatingWaterDesAirInletTempSizer sizer; @@ -78,9 +78,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -109,20 +109,20 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15; - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->ZoneEqSizing.allocate(1); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.zoneSizingInput.allocate(1); sizer.zoneSizingInput(1).ZoneNum = 1; @@ -135,10 +135,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -149,10 +149,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Induction TU - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -163,10 +163,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -177,9 +177,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Other Equipment - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -191,7 +191,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // Test 7 - Zone Equipment, Other Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -203,7 +203,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // Test 8 - Zone Equipment, Other Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -219,17 +219,17 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 9 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -244,19 +244,19 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 10 - Airloop Equipment - CurDuctType not set - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::FinalSysSizing(1).HeatOutTemp = 10.0; - EnergyPlus::DataSizing::FinalSysSizing(1).HeatRetTemp = 12.0; - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatOutTemp = 10.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 12.0; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -274,9 +274,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 11 - Airloop Equipment - CurDuctType = Main - DataSizing::CurDuctType = DataHVACGlobals::Main; + state->dataSize->CurDuctType = DataHVACGlobals::Main; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -290,7 +290,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // Test 12 - Airloop Equipment - CurDuctType = Main // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -302,9 +302,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Airloop Equipment - CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -317,7 +317,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // Test 14 - Airloop Equipment - CurDuctType = Cooling // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -329,9 +329,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Airloop Equipment - CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -344,11 +344,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 16 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -360,11 +360,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesAirInletTempSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Outdoor Air System Equipment with DOAS system - state->dataAirLoop->OutsideAirSys(DataSizing::CurOASysNum).AirLoopDOASNum = 0; + state->dataAirLoop->OutsideAirSys(state->dataSize->CurOASysNum).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].HeatOutTemp = 12.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilLoadUsedForUASizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilLoadUsedForUASizing.unit.cc index 956af5a6861..e2214f3a3d2 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilLoadUsedForUASizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilLoadUsedForUASizing.unit.cc @@ -61,7 +61,7 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("HeatingWaterDesCoilLoadUsedForUASizingGauntlet"); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // create the sizer and set up the flags to specify the sizing configuration HeatingWaterDesCoilLoadUsedForUASizer sizer; @@ -77,9 +77,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -108,39 +108,39 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow = 0.0005; - EnergyPlus::DataSizing::TermUnitSizing(1).ReheatAirFlowMult = 1.0; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 0.2; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesTemp = 30.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesHumRat = 0.004; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(1).ZoneNum = 1; - - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).MaxHWVolFlow = 0.0002; - EnergyPlus::DataSizing::ZoneEqSizing(1).ATMixerHeatPriDryBulb = 28.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.0045; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->TermUnitSizing(1).AirVolFlow = 0.0005; + state->dataSize->TermUnitSizing(1).ReheatAirFlowMult = 1.0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 0.2; + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.004; + state->dataSize->FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; + state->dataSize->FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; + + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).MaxHWVolFlow = 0.0002; + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb = 28.0; + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.0045; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 5.0; - DataSizing::DataWaterFlowUsedForSizing = 0.0002; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 5.0; + state->dataSize->DataWaterFlowUsedForSizing = 0.0002; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.zoneSizingInput.allocate(1); sizer.zoneSizingInput(1).ZoneNum = 1; @@ -153,10 +153,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitSingDuct = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -167,10 +167,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Zone Eq Fan Coil - DataSizing::ZoneEqFanCoil = false; - DataSizing::TermUnitIU = true; + state->dataSize->ZoneEqFanCoil = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -180,11 +180,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) EXPECT_NEAR(4114.69, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.05; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.05; // Test 6 - Zone Equipment, Other Equipment - DataSizing::TermUnitIU = false; + state->dataSize->TermUnitIU = false; // start with an auto-sized value as the user input, OA flow > 0 - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -195,9 +195,9 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.03; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.03; // start with an auto-sized value as the user input, AT Mixer present - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -206,14 +206,14 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1068.96, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.0; - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // Test 8 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 0.3; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.3; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -224,12 +224,12 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 0.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 0.4; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 0.4; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -240,10 +240,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -281,16 +281,16 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) // AIRLOOP EQUIPMENT TESTING // Test 12 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5000.0; // do sizing @@ -305,21 +305,21 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 13 - Airloop Equipment - sizing arrays set - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::FinalSysSizing(1).HeatOutTemp = 10.0; - EnergyPlus::DataSizing::FinalSysSizing(1).HeatRetTemp = 24.0; - EnergyPlus::DataSizing::FinalSysSizing(1).HeatSupTemp = 30.0; - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatOutTemp = 10.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 24.0; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 30.0; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - DataSizing::DataAirFlowUsedForSizing = 0.6; + state->dataSize->DataAirFlowUsedForSizing = 0.6; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -337,11 +337,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 14 - Airloop Equipment, 50% OA, MinOA option - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOAOption = DataSizing::MinOA; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = DataSizing::DataAirFlowUsedForSizing / 2.0; - EnergyPlus::DataSizing::FinalSysSizing(DataSizing::CurSysNum).PreheatTemp = 19.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOAOption = DataSizing::MinOA; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = state->dataSize->DataAirFlowUsedForSizing / 2.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).PreheatTemp = 19.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -354,11 +354,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Airloop Equipment - desiccant regen heating coil - DataSizing::DataDesicRegCoil = true; - DataSizing::DataDesOutletAirTemp = 20.0; - DataSizing::DataDesInletAirTemp = 10.0; + state->dataSize->DataDesicRegCoil = true; + state->dataSize->DataDesOutletAirTemp = 20.0; + state->dataSize->DataDesInletAirTemp = 10.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -370,10 +370,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Air Loop Equipment, DOAS air loop w/ heating coil - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOAHeatCoils = 1; - DataSizing::DataDesicRegCoil = false; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOAHeatCoils = 1; + state->dataSize->DataDesicRegCoil = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -386,11 +386,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 17 - Outdoor Air System Equipment, DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -402,12 +402,12 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilLoadUsedForUASizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 18 - Outdoor Air System Equipment with DOAS system - state->dataAirLoop->OutsideAirSys(DataSizing::CurOASysNum).AirLoopDOASNum = 0; + state->dataAirLoop->OutsideAirSys(state->dataSize->CurOASysNum).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); state->dataAirLoopHVACDOAS->airloopDOAS[0].HeatOutTemp = 8.0; state->dataAirLoopHVACDOAS->airloopDOAS[0].PreheatTemp = 15.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilWaterVolFlowUsedForUASizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilWaterVolFlowUsedForUASizing.unit.cc index a1ca3fae4ae..2d554843980 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilWaterVolFlowUsedForUASizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingWaterDesCoilWaterVolFlowUsedForUASizing.unit.cc @@ -72,8 +72,8 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::DataPltSizHeatNum = 1; - DataSizing::CurZoneEqNum = 1; + state->dataSize->DataPltSizHeatNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -101,16 +101,16 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet EXPECT_TRUE(compare_eio_stream(eiooutput, true)); - DataSizing::PlantSizData.allocate(1); - DataSizing::DataWaterFlowUsedForSizing = 0.0001; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(DataSizing::CurZoneEqNum).ZoneNum = DataSizing::CurZoneEqNum; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->DataWaterFlowUsedForSizing = 0.0001; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -120,14 +120,14 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Powered Induction TU - DataSizing::DataWaterFlowUsedForSizing = 0.00025; - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitSizing(1).ReheatLoadMult = 0.5; + state->dataSize->DataWaterFlowUsedForSizing = 0.00025; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).ReheatLoadMult = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -138,13 +138,13 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::DataWaterFlowUsedForSizing = 0.00025; - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitSizing(1).ReheatLoadMult = 0.5; + state->dataSize->DataWaterFlowUsedForSizing = 0.00025; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).ReheatLoadMult = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -160,16 +160,16 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 5 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 0.0003; // do sizing @@ -184,14 +184,14 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 6 - Airloop Equipment - CurDuctType not set - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; - DataSizing::DataWaterFlowUsedForSizing = 0.0004; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->DataWaterFlowUsedForSizing = 0.0004; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -211,11 +211,11 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 7 - Outdoor Air System Equipment, no DOAS air loop - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -227,10 +227,10 @@ TEST_F(AutoSizingFixture, HeatingWaterDesCoilWaterVolFlowUsedForUASizingGauntlet sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Outdoor Air System Equipment with DOAS system - state->dataAirLoop->OutsideAirSys(DataSizing::CurOASysNum).AirLoopDOASNum = 0; + state->dataAirLoop->OutsideAirSys(state->dataSize->CurOASysNum).AirLoopDOASNum = 0; state->dataAirLoopHVACDOAS->airloopDOAS.emplace_back(); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/Autosizing/HeatingWaterflowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/HeatingWaterflowSizing.unit.cc index e018d4d2e43..a401347257d 100644 --- a/tst/EnergyPlus/unit/Autosizing/HeatingWaterflowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/HeatingWaterflowSizing.unit.cc @@ -59,7 +59,7 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) { // this global state is what would be set up by E+ currently state->dataEnvrn->StdRhoAir = 1.2; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("HeatingWaterflowSizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -76,8 +76,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) errorsFound = false; // test auto calculate - DataSizing::DataFractionUsedForSizing = 0.0; - DataSizing::DataConstantUsedForSizing = 1.0; + state->dataSize->DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 1.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); // developer errror, DataFractionUsedForSizing = 0 and Constant > 0 @@ -87,8 +87,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) EXPECT_NEAR(5.0, sizer.originalValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 0.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -97,8 +97,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) EXPECT_NEAR(5.0, sizer.originalValue, 0.01); // developer errror, DataFractionUsedForSizing = 0 and Constant > 0 sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataConstantUsedForSizing = 1.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 1.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -108,8 +108,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) // autosized input with AutoCalculate inputValue = DataSizing::AutoSize; - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataConstantUsedForSizing = 2.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 2.0; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); // autosized input EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -118,16 +118,16 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // reset AutoCalculate globals - DataSizing::DataFractionUsedForSizing = 0.0; - DataSizing::DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 0.0; // ZONE EQUIPMENT TESTING inputValue = 5; - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitSizing(1).MaxHWVolFlow = 0.005; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).MaxHWVolFlow = 0.005; // Test #1 - Zone Equipment, no autosizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -158,31 +158,31 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 0.3; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesTemp = 30.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesHumRat = 0.004; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 19.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 21.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutTempAtHeatPeak = 10.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.003; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 0.3; + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.004; + state->dataSize->FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 19.0; + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 21.0; + state->dataSize->FinalZoneSizing(1).OutTempAtHeatPeak = 10.0; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.003; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU, UA sizes to 0 - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.005, sizedValue, 0.01); - EXPECT_NEAR(0.005, EnergyPlus::DataSizing::TermUnitSizing(1).MaxHWVolFlow, 0.0001); + EXPECT_NEAR(0.005, state->dataSize->TermUnitSizing(1).MaxHWVolFlow, 0.0001); EXPECT_NEAR(1.2, state->dataEnvrn->StdRhoAir, 0.01); eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, Design Size Maximum Water Flow Rate [m3/s], 5.00000E-003\n"); @@ -191,7 +191,7 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) // Test 3 - Zone Equipment, Single Duct TU // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -201,10 +201,10 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, Powered Induction TU - DataSizing::TermUnitSingDuct = false; - DataSizing::TermUnitPIU = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->TermUnitPIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -215,10 +215,10 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Induction TU - DataSizing::TermUnitPIU = false; - DataSizing::TermUnitIU = true; + state->dataSize->TermUnitPIU = false; + state->dataSize->TermUnitIU = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -229,10 +229,10 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 6 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitIU = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitIU = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -243,11 +243,11 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Other Equipment - DataSizing::ZoneEqFanCoil = false; - DataSizing::ZoneEqUnitHeater = true; + state->dataSize->ZoneEqFanCoil = false; + state->dataSize->ZoneEqUnitHeater = true; // baseFlags.otherEqType = true; set in initialize function based on other flags // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -258,13 +258,13 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Other Equipment - DataSizing::ZoneEqUnitHeater = false; - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 10.0; + state->dataSize->ZoneEqUnitHeater = false; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 10.0; state->dataPlnt->PlantLoop.allocate(1); state->dataPlnt->PlantLoop(1).FluidName = "Water"; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -275,11 +275,11 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, Other Equipment - EnergyPlus::DataSizing::ZoneEqSizing(1).AirVolFlow = 0.5; - EnergyPlus::DataSizing::ZoneEqSizing(1).SystemAirFlow = true; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 0.0; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 0.5; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = true; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -290,12 +290,12 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, Other Equipment - EnergyPlus::DataSizing::ZoneEqSizing(1).AirVolFlow = 0.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).SystemAirFlow = false; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 0.25; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 0.25; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -304,8 +304,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.000066, sizedValue, 0.000001); // uses a mass flow rate for sizing sizer.autoSizedValue = 0.0; // reset for next test - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 0.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // reset eio stream has_eio_output(true); @@ -313,17 +313,17 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 11 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -338,20 +338,20 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 12 - Airloop Equipment - CurDuctType not set - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // CurDuctType not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::DataCapacityUsedForSizing = 5000.0; + state->dataSize->DataCapacityUsedForSizing = 5000.0; sizer.wasAutoSized = false; printFlag = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -372,8 +372,8 @@ TEST_F(AutoSizingFixture, HeatingWaterflowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 13 - Outdoor Air System Equipment, no DOAS air loop - DataSizing::CurOASysNum = 1; - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->CurOASysNum = 1; + state->dataSize->OASysEqSizing.allocate(1); // start with an auto-sized value as the user input inputValue = 0.0002; printFlag = true; diff --git a/tst/EnergyPlus/unit/Autosizing/SystemAirFlowSizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/SystemAirFlowSizing.unit.cc index 557cd86e004..b3f4b7d347b 100644 --- a/tst/EnergyPlus/unit/Autosizing/SystemAirFlowSizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/SystemAirFlowSizing.unit.cc @@ -60,7 +60,7 @@ namespace EnergyPlus { TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) { // this global state is what would be set up by E+ currently - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("SystemAirFlowSizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -77,7 +77,7 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -109,17 +109,17 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) has_eio_output(true); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).SizingMethod.allocate(35); - - DataSizing::ZoneSizingRunDone = true; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesCoolVolFlow = 1.6; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatVolFlow = 1.2; - EnergyPlus::DataSizing::FinalZoneSizing(1).CoolDDNum = 1; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDDNum = 2; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; - EnergyPlus::DataSizing::FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(35); + + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing(1).DesCoolVolFlow = 1.6; + state->dataSize->FinalZoneSizing(1).DesHeatVolFlow = 1.2; + state->dataSize->FinalZoneSizing(1).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(1).HeatDDNum = 2; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtCoolMax = 12; + state->dataSize->FinalZoneSizing(1).TimeStepNumAtHeatMax = 6; state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; state->dataEnvrn->TotDesDays = 2; @@ -133,10 +133,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) // Test 2 - Zone Equipment, sizes to greater of zone cooling and heating flow // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -149,9 +149,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 3 - Zone Equipment, set heating only fan - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -161,10 +161,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 4 - Zone Equipment, set cooling only fan - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -174,9 +174,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, cooling only fan, set fraction used for sizing - DataSizing::DataFractionUsedForSizing = 0.5; + state->dataSize->DataFractionUsedForSizing = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -184,14 +184,14 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(0.8, sizedValue, 0.0001); // 1/2 of zone cooling air flow rate sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataFractionUsedForSizing = 0.0; // reset for next test + state->dataSize->DataFractionUsedForSizing = 0.0; // reset for next test // Test 6 - Zone Equipment, set ZoneEqSizing data - DataSizing::ZoneEqSizing(1).SystemAirFlow = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.8; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.8; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::SupplyAirFlowRate; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -201,10 +201,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, set cooling only fan - DataSizing::ZoneEqSizing(1).SystemAirFlow = false; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneEqSizing(1).SystemAirFlow = false; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -214,10 +214,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, set heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -227,11 +227,11 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, set ZoneEqSizing cooling air flow - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirVolFlow = 2.2; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirVolFlow = 2.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -241,11 +241,11 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 10 - Zone Equipment, set ZoneEqSizing heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).HeatingAirVolFlow = 3.2; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 3.2; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -255,9 +255,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 11 - Zone Equipment, set ZoneEqSizing cooling and heating air flow - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -265,16 +265,16 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(3.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedCoolingAirflow; // Test 12 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -284,11 +284,11 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 13 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::DataFracOfAutosizedHeatingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->DataFracOfAutosizedHeatingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -298,9 +298,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 14 - Zone Equipment, cooling or heating fan not set - DataSizing::ZoneHeatingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -310,9 +310,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 15 - Zone Equipment, ZoneEqSizing cooling - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -322,10 +322,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 16 - Zone Equipment, ZoneEqSizing heating - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -335,9 +335,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 17 - Zone Equipment, ZoneEqSizing cooling and heating fan - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -346,13 +346,13 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FractionOfAutosizedHeatingAirflow; // Test 18 - Zone Equipment, set fraction of autosized cooling flow for cooling only fan - DataSizing::DataFracOfAutosizedCoolingAirflow = 0.4; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 0.4; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -362,10 +362,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 19 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -375,10 +375,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 20 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -388,10 +388,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 21 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -401,9 +401,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 22 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -411,12 +411,12 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.28, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 23 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -425,16 +425,16 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_NEAR(0.64, sizedValue, 0.0001); // max of FinalZoneSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerCoolingCapacity; // Test 24 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::DataFlowPerCoolingCapacity = 0.00005; - DataSizing::DataAutosizedCoolingCapacity = 10000.0; - DataSizing::DataFlowPerHeatingCapacity = 0.00006; - DataSizing::DataAutosizedHeatingCapacity = 20000.0; - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->DataFlowPerCoolingCapacity = 0.00005; + state->dataSize->DataAutosizedCoolingCapacity = 10000.0; + state->dataSize->DataFlowPerHeatingCapacity = 0.00006; + state->dataSize->DataAutosizedHeatingCapacity = 20000.0; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -444,10 +444,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 25 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -457,10 +457,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 26 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -470,10 +470,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 27 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -483,9 +483,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 28 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -493,12 +493,12 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of ZoneEqSizing cooling/heating flow * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 29 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -507,12 +507,12 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; + state->dataSize->ZoneEqSizing(1).SizingMethod(int(sizer.sizingType)) = DataSizing::FlowPerHeatingCapacity; // Test 30 - Zone Equipment, set fraction of autosized cooling capacity for cooling only fan - DataSizing::ZoneCoolingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -522,10 +522,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 31 - Zone Equipment, set fraction of autosized heating flow for heating only fan - DataSizing::ZoneCoolingOnlyFan = false; - DataSizing::ZoneHeatingOnlyFan = true; + state->dataSize->ZoneCoolingOnlyFan = false; + state->dataSize->ZoneHeatingOnlyFan = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -535,10 +535,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 32 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing CoolingAirFlow is set - DataSizing::ZoneHeatingOnlyFan = false; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneHeatingOnlyFan = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -548,10 +548,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 33 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing HeatingAirFlow is set - DataSizing::ZoneEqSizing(1).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -561,9 +561,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 34 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow are set - DataSizing::ZoneEqSizing(1).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -571,12 +571,12 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.2, sizedValue, 0.0001); // max of autosized cooling/heating capacity * fraction sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).CoolingAirFlow = false; - DataSizing::ZoneEqSizing(1).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(1).CoolingAirFlow = false; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = false; // Test 35 - Zone Equipment, cooling or heating fan not set, ZoneEqSizing Cooling/HeatingAirFlow not set // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -586,9 +586,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 36 - Zone Equipment, set design size from parent - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = true; - DataSizing::ZoneEqSizing(1).AirVolFlow = 1.75; - inputValue = EnergyPlus::DataSizing::AutoSize; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(1).AirVolFlow = 1.75; + inputValue = DataSizing::AutoSize; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -596,7 +596,7 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.75, sizedValue, 0.0001); // parent passed size sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(1).DesignSizeFromParent = false; // Test 37 - Zone Equipment, hard size with zone sizing run inputValue = 1.44; @@ -610,7 +610,7 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) // Test 38 - Zone Equipment, hard size inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -620,10 +620,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 39 - EMS override - DataSizing::DataEMSOverrideON = true; - DataSizing::DataEMSOverride = 1.33; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataEMSOverride = 1.33; inputValue = 1.44; - DataSizing::ZoneSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = false; // do sizing sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*this->state, inputValue, errorsFound); @@ -639,16 +639,16 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) // AIRLOOP EQUIPMENT TESTING - no reporting, CurDuctType not set // Test 40 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -663,20 +663,20 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 41 - Airloop Equipment - ems override is on - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataEnvrn->TotDesDays = 2; - DataSizing::SysSizPeakDDNum.allocate(2); - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = 1; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).HeatDDNum = 2; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->SysSizPeakDDNum.allocate(2); + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(2); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(1) = 12; + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(2) = 6; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).HeatDDNum = 2; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; // start with an auto-sized value as the user input inputValue = DataSizing::AutoSize; @@ -689,7 +689,7 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1.33, sizedValue, 0.0001); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataEMSOverrideON = false; + state->dataSize->DataEMSOverrideON = false; // header already reported above (and flag set false). Only coil sizing information reported here. eiooutput = std::string(" Component Sizing Information, Coil:Heating:Water, MyWaterCoil, User-Specified Maximum Flow Rate [m3/s], 1.33000\n"); @@ -697,12 +697,12 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 42 - Airloop Equipment - CurDuctType = Main - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesMainVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesCoolVolFlow = 5.0; - EnergyPlus::DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.0; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 5.0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -715,14 +715,14 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 43 - Airloop Equipment - AirLoopSysFlag set - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).CoolingAirVolFlow = 6.0; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).HeatingAirVolFlow = 7.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -734,9 +734,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 44 - Airloop Equipment - AirLoopSysFlag set, heating only - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = false; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -748,10 +748,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 45 - Airloop Equipment - AirLoopSysFlag set, cooling only - DataSizing::UnitarySysEqSizing(1).CoolingAirFlow = true; - DataSizing::UnitarySysEqSizing(1).HeatingAirFlow = false; + state->dataSize->UnitarySysEqSizing(1).CoolingAirFlow = true; + state->dataSize->UnitarySysEqSizing(1).HeatingAirFlow = false; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -764,14 +764,14 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 46 - Outdoor Air System HX Equipment - DataSizing::HRFlowSizingFlag = true; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.0; - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 3.0; - EnergyPlus::DataSizing::OASysEqSizing.allocate(1); + state->dataSize->HRFlowSizingFlag = true; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 3.0; + state->dataSize->OASysEqSizing.allocate(1); state->dataAirLoop->OutsideAirSys.allocate(1); - DataSizing::CurOASysNum = 1; + state->dataSize->CurOASysNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -783,9 +783,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 47 - Air Loop HX Equipment, CurDuctType = Main - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -797,9 +797,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 48 - Air Loop HX Equipment, CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -811,10 +811,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 49 - Air Loop HX Equipment, CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 8.0; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 8.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -826,9 +826,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 50 - Air Loop HX Equipment, CurDuctType = Other - DataSizing::CurDuctType = DataHVACGlobals::Other; + state->dataSize->CurDuctType = DataHVACGlobals::Other; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -840,11 +840,11 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 51 - Air Loop HX Equipment, CurDuctType = Main - DataSizing::CurOASysNum = 0; - DataSizing::CurDuctType = DataHVACGlobals::Main; - EnergyPlus::DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -856,9 +856,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 52 - Air Loop HX Equipment, CurDuctType = Cooling - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -870,10 +870,10 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 53 - Air Loop HX Equipment, CurDuctType = Heating - DataSizing::CurDuctType = DataHVACGlobals::Heating; - EnergyPlus::DataSizing::FinalSysSizing(1).DesHeatVolFlow = 8.0; + state->dataSize->CurDuctType = DataHVACGlobals::Heating; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 8.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -885,9 +885,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 54 - Air Loop HX Equipment, CurDuctType = Other - DataSizing::CurDuctType = DataHVACGlobals::Other; + state->dataSize->CurDuctType = DataHVACGlobals::Other; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -899,9 +899,9 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 55 - Air Loop HX Equipment, CurDuctType = RAB - DataSizing::CurDuctType = DataHVACGlobals::RAB; + state->dataSize->CurDuctType = DataHVACGlobals::RAB; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -939,8 +939,8 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) // Test 57 - Air Loop HX Equipment, CurDuctType = RAB, hard-sized air flow rate // start with an hard-sized value as the user input inputValue = 2.2; - DataSizing::DataConstantUsedForSizing = 3.5; - DataSizing::DataFractionUsedForSizing = 1.0; + state->dataSize->DataConstantUsedForSizing = 3.5; + state->dataSize->DataFractionUsedForSizing = 1.0; // do sizing sizer.wasAutoSized = false; @@ -951,8 +951,8 @@ TEST_F(AutoSizingFixture, SystemAirFlowSizingGauntlet) EXPECT_FALSE(sizer.wasAutoSized); EXPECT_NEAR(2.2, sizedValue, 0.01); // hard-sized value sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::DataConstantUsedForSizing = 0.0; - DataSizing::DataFractionUsedForSizing = 0.0; + state->dataSize->DataConstantUsedForSizing = 0.0; + state->dataSize->DataFractionUsedForSizing = 0.0; EXPECT_FALSE(errorsFound); diff --git a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCapacitySizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCapacitySizing.unit.cc index 9e4c2795d11..95f77d7e6db 100644 --- a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCapacitySizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCapacitySizing.unit.cc @@ -61,7 +61,7 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) state->dataEnvrn->StdRhoAir = 1.2; static std::string const routineName("WaterHeatingCapacitySizingGauntlet"); - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // create the sizer and set up the flags to specify the sizing configuration WaterHeatingCapacitySizer sizer; @@ -77,9 +77,9 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -108,38 +108,38 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; - EnergyPlus::DataSizing::TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - EnergyPlus::DataSizing::TermUnitSizing(1).MaxHWVolFlow = 0.0005; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; - EnergyPlus::DataSizing::FinalZoneSizing(1).DesHeatMassFlow = 0.2; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesTemp = 30.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesHumRat = 0.004; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; - EnergyPlus::DataSizing::ZoneSizingInput.allocate(1); - EnergyPlus::DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU = 15.0; + state->dataSize->TermUnitFinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->TermUnitSizing(1).MaxHWVolFlow = 0.0005; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(1).ZoneRetTempAtHeatPeak = 24.0; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.007; + state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak = 0.006; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = 0.2; + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.004; + state->dataSize->FinalZoneSizing(1).OutTempAtHeatPeak = 5.0; + state->dataSize->FinalZoneSizing(1).OutHumRatAtHeatPeak = 0.002; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - EnergyPlus::DataSizing::ZoneEqSizing(1).MaxHWVolFlow = 0.0002; - EnergyPlus::DataSizing::ZoneEqSizing(1).ATMixerHeatPriDryBulb = 28.0; - EnergyPlus::DataSizing::ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.0045; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(1).MaxHWVolFlow = 0.0002; + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb = 28.0; + state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat = 0.0045; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 5.0; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment, Single Duct TU - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.zoneSizingInput.allocate(1); sizer.zoneSizingInput(1).ZoneNum = 1; @@ -152,10 +152,10 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 3 - Zone Equipment, Zone Eq Fan Coil - DataSizing::TermUnitSingDuct = false; - DataSizing::ZoneEqFanCoil = true; + state->dataSize->TermUnitSingDuct = false; + state->dataSize->ZoneEqFanCoil = true; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -165,11 +165,11 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) EXPECT_NEAR(4114.69, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.05; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.05; // Test 4 - Zone Equipment, Other Equipment - DataSizing::ZoneEqFanCoil = false; + state->dataSize->ZoneEqFanCoil = false; // start with an auto-sized value as the user input, OA flow > 0 - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -180,9 +180,9 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 5 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.03; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.03; // start with an auto-sized value as the user input, AT Mixer present - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -191,14 +191,14 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(1068.96, sizedValue, 0.01); sizer.autoSizedValue = 0.0; // reset for next test - DataSizing::ZoneEqSizing(1).OAVolFlow = 0.0; - DataSizing::ZoneEqSizing(1).ATMixerVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.0; + state->dataSize->ZoneEqSizing(1).ATMixerVolFlow = 0.0; // Test 6 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 0.3; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.3; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -209,12 +209,12 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 7 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 0.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 0.4; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 0.4; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -225,10 +225,10 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 8 - Zone Equipment, Other Equipment - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 0.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -239,9 +239,9 @@ TEST_F(AutoSizingFixture, WaterHeatingCapacitySizingGauntlet) sizer.autoSizedValue = 0.0; // reset for next test // Test 9 - Zone Equipment, Other Equipment, heating sizing ratio = 0.5 - DataSizing::DataHeatSizeRatio = 0.5; + state->dataSize->DataHeatSizeRatio = 0.5; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); diff --git a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc index c0ecf811010..898ddd5fab5 100644 --- a/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc +++ b/tst/EnergyPlus/unit/Autosizing/WaterHeatingCoilUASizing.unit.cc @@ -61,7 +61,7 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) { // this global state is what would be set up by E+ currently state->dataEnvrn->StdRhoAir = 1.2; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); static std::string const routineName("WaterHeatingCoilUASizingGauntlet"); // create the sizer and set up the flags to specify the sizing configuration @@ -78,9 +78,9 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) errorsFound = false; // ZONE EQUIPMENT TESTING - DataSizing::CurZoneEqNum = 1; - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSingDuct = true; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); @@ -125,35 +125,35 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) state->dataScheduleMgr->Schedule.allocate(1); // now allocate sizing arrays for testing autosized field - EnergyPlus::DataSizing::TermUnitSizing.allocate(1); - EnergyPlus::DataSizing::TermUnitSizing(1).AirVolFlow = 0.0008; - EnergyPlus::DataSizing::FinalZoneSizing.allocate(1); - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesTemp = 30.0; - EnergyPlus::DataSizing::FinalZoneSizing(1).HeatDesHumRat = 0.007; - EnergyPlus::DataSizing::FinalZoneSizing(1).ZoneName = "MyZone"; - EnergyPlus::DataSizing::ZoneEqSizing.allocate(1); - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).ExitTemp = 60.0; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing(1).AirVolFlow = 0.0008; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.007; + state->dataSize->FinalZoneSizing(1).ZoneName = "MyZone"; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).ExitTemp = 60.0; state->dataPlnt->PlantLoop.allocate(1); state->dataPlnt->PlantLoop(1).FluidIndex = 1; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // Test 2 - Zone Equipment - DataSizing::DataCapacityUsedForSizing = 3000.0; - DataSizing::DataWaterFlowUsedForSizing = 0.0002; - DataSizing::DataFlowUsedForSizing = 0.2; - DataSizing::DataCoilNum = 1; - DataSizing::DataFanOpMode = DataHVACGlobals::ContFanCycCoil; - DataSizing::DataPltSizHeatNum = 1; - DataSizing::DataWaterCoilSizHeatDeltaT = 5.0; - DataSizing::DataDesInletAirTemp = 21.0; - DataSizing::DataDesInletAirHumRat = 0.009; + state->dataSize->DataCapacityUsedForSizing = 3000.0; + state->dataSize->DataWaterFlowUsedForSizing = 0.0002; + state->dataSize->DataFlowUsedForSizing = 0.2; + state->dataSize->DataCoilNum = 1; + state->dataSize->DataFanOpMode = DataHVACGlobals::ContFanCycCoil; + state->dataSize->DataPltSizHeatNum = 1; + state->dataSize->DataWaterCoilSizHeatDeltaT = 5.0; + state->dataSize->DataDesInletAirTemp = 21.0; + state->dataSize->DataDesInletAirHumRat = 0.009; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*state, inputValue, errorsFound); EXPECT_EQ(AutoSizingResultType::NoError, sizer.errorType); @@ -167,20 +167,20 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) // Test 2 - Zone Equipment, UA sizing fails state->dataWaterCoils->WaterCoil(1).InletAirTemp = 61.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; sizer.initializeWithinEP(*this->state, DataHVACGlobals::cAllCoilTypes(DataHVACGlobals::Coil_HeatingWater), "MyWaterCoil", printFlag, routineName); sizedValue = sizer.size(*state, inputValue, errorsFound); EXPECT_TRUE(errorsFound); - EXPECT_TRUE(DataSizing::DataErrorsFound); + EXPECT_TRUE(state->dataSize->DataErrorsFound); EXPECT_TRUE(sizer.dataErrorsFound); EXPECT_EQ(AutoSizingResultType::ErrorType1, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_NEAR(3.0, sizedValue, 0.01); // 0.1% of 3000 W capacity state->dataWaterCoils->WaterCoil(1).InletAirTemp = 21.0; - DataSizing::DataErrorsFound = false; + state->dataSize->DataErrorsFound = false; sizer.dataErrorsFound = false; errorsFound = false; @@ -190,17 +190,17 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) // AIRLOOP EQUIPMENT TESTING - CurDuctType not set, no reporting // Test 3 - Airloop Equipment - DataSizing::CurZoneEqNum = 0; - DataSizing::NumZoneSizingInput = 0; - DataSizing::CurTermUnitSizingNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->NumZoneSizingInput = 0; + state->dataSize->CurTermUnitSizingNum = 0; // baseFlags.otherEqType = false; set in initialize function based on other flags - EnergyPlus::DataSizing::ZoneEqSizing.deallocate(); - EnergyPlus::DataSizing::FinalZoneSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = false; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = false; // start with a hard-sized value as the user input, no system sizing arrays inputValue = 5.0; // do sizing @@ -215,16 +215,16 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // Test 4 - Airloop Equipment - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizingRunDone = true; - EnergyPlus::DataSizing::FinalSysSizing.allocate(1); - EnergyPlus::DataSizing::SysSizInput.allocate(1); - EnergyPlus::DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -243,7 +243,7 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) // Test 5 - Airloop Equipment // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -258,7 +258,7 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) // Test 5 - Airloop Equipment, failed UA sizing state->dataWaterCoils->WaterCoil(1).InletAirTemp = 61.0; // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; @@ -268,21 +268,21 @@ TEST_F(AutoSizingFixture, WaterHeatingCoilUASizingGauntlet) EXPECT_EQ(AutoSizingResultType::ErrorType1, sizer.errorType); EXPECT_TRUE(sizer.wasAutoSized); EXPECT_TRUE(errorsFound); - EXPECT_TRUE(DataSizing::DataErrorsFound); + EXPECT_TRUE(state->dataSize->DataErrorsFound); EXPECT_TRUE(sizer.dataErrorsFound); EXPECT_NEAR(3.0, sizedValue, 0.01); // 0.1% of 3000 W capacity state->dataWaterCoils->WaterCoil(1).InletAirTemp = 21.0; - DataSizing::DataErrorsFound = false; + state->dataSize->DataErrorsFound = false; sizer.dataErrorsFound = false; errorsFound = false; sizer.autoSizedValue = 0.0; // reset for next test // OUTDOOR AIR SYSTEM EQUIPMENT TESTING // Test 6 - Outdoor Air System Equipment, no DOAS air loop - DataSizing::CurOASysNum = 1; - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->CurOASysNum = 1; + state->dataSize->OASysEqSizing.allocate(1); // start with an auto-sized value as the user input - inputValue = EnergyPlus::DataSizing::AutoSize; + inputValue = DataSizing::AutoSize; // do sizing sizer.wasAutoSized = false; diff --git a/tst/EnergyPlus/unit/BaseboardRadiator.unit.cc b/tst/EnergyPlus/unit/BaseboardRadiator.unit.cc index b619bbdc435..f64e7b8e5cd 100644 --- a/tst/EnergyPlus/unit/BaseboardRadiator.unit.cc +++ b/tst/EnergyPlus/unit/BaseboardRadiator.unit.cc @@ -358,18 +358,18 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest) SurfaceGeometry::GetSurfaceData(*state, errorsFound); ASSERT_FALSE(errorsFound); - ZoneSizingInput.allocate(3); - NumZoneSizingInput = 3; - ZoneSizingInput(1).ZoneNum = 1; - ZoneSizingInput(2).ZoneNum = 2; - ZoneSizingInput(3).ZoneNum = 3; + state->dataSize->ZoneSizingInput.allocate(3); + state->dataSize->NumZoneSizingInput = 3; + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneSizingInput(2).ZoneNum = 2; + state->dataSize->ZoneSizingInput(3).ZoneNum = 3; int TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(TotNumLoops); - PlantSizData.allocate(TotNumLoops); - PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData.allocate(TotNumLoops); + state->dataSize->PlantSizData(1).DeltaT = 10.0; // unit test results are based on a low HW temp at 40 C. Baseboard does not have the capacity to meet the zone load. - PlantSizData(1).ExitTemp = 40.0; + state->dataSize->PlantSizData(1).ExitTemp = 40.0; for (int l = 1; l <= TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); @@ -388,24 +388,24 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest) // get electric baseboard inputs BaseboardRadiator::GetBaseboardInput(*state); - DataSizing::FinalZoneSizing.allocate(3); - DataSizing::ZoneEqSizing.allocate(3); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(3); + state->dataSize->ZoneEqSizing.allocate(3); + state->dataSize->ZoneSizingRunDone = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(3); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(3); BaseboardNum = 1; CntrlZoneNum = 1; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = state->dataBaseboardRadiator->Baseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CntrlZoneNum).RemainingOutputReqToHeatSP = 2000.0; state->dataZoneEnergyDemand->CurDeadBandOrSetback(CntrlZoneNum) = false; - FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; - FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; // do baseboard sizing state->dataBaseboardRadiator->Baseboard(BaseboardNum).LoopNum = 1; state->dataBaseboardRadiator->Baseboard(BaseboardNum).ZonePtr = 1; @@ -423,15 +423,15 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest) BaseboardNum = 2; CntrlZoneNum = 2; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = state->dataBaseboardRadiator->Baseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; state->dataZoneEnergyDemand->CurDeadBandOrSetback(CntrlZoneNum) = false; - FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; - FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; state->dataHeatBal->Zone(CntrlZoneNum).FloorArea = 100.0; // do baseboard sizing state->dataBaseboardRadiator->Baseboard(BaseboardNum).LoopNum = 1; @@ -450,15 +450,15 @@ TEST_F(EnergyPlusFixture, BaseboardConvWater_SizingTest) BaseboardNum = 3; CntrlZoneNum = 3; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = state->dataBaseboardRadiator->Baseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 3000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 3000.0; state->dataZoneEnergyDemand->CurDeadBandOrSetback(CntrlZoneNum) = false; - FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; - FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).ZoneHumRatAtHeatPeak = 0.005; state->dataHeatBal->Zone(CntrlZoneNum).FloorArea = 100.0; // do baseboard sizing state->dataBaseboardRadiator->Baseboard(BaseboardNum).LoopNum = 1; diff --git a/tst/EnergyPlus/unit/BoilerHotWater.unit.cc b/tst/EnergyPlus/unit/BoilerHotWater.unit.cc index 83d2e1ceb63..56e5c3c9052 100644 --- a/tst/EnergyPlus/unit/BoilerHotWater.unit.cc +++ b/tst/EnergyPlus/unit/BoilerHotWater.unit.cc @@ -82,13 +82,13 @@ TEST_F(EnergyPlusFixture, Boiler_HotWaterSizingTest) state->dataBoilers->Boiler(1).VolFlowRateWasAutoSized = false; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); // Hot Water Loop state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantLoop(1).FluidIndex = 1; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; // now call sizing routine state->dataBoilers->Boiler(1).SizeBoiler(*state); @@ -110,7 +110,7 @@ TEST_F(EnergyPlusFixture, Boiler_HotWaterSizingTest) EXPECT_NEAR(state->dataBoilers->Boiler(1).NomCap, 49376304.0, 1.0); // clear state->dataBoilers->Boiler.deallocate(); - DataSizing::PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataPlnt->PlantLoop.deallocate(); } TEST_F(EnergyPlusFixture, Boiler_HotWaterAutoSizeTempTest) @@ -127,13 +127,13 @@ TEST_F(EnergyPlusFixture, Boiler_HotWaterAutoSizeTempTest) state->dataBoilers->Boiler(1).VolFlowRateWasAutoSized = true; state->dataPlnt->PlantLoop.allocate(1); - DataSizing::PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); // Hot Water Loop state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantLoop(1).FluidIndex = 1; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; // calculate nominal capacity at 60.0 C hot water temperature @@ -148,7 +148,7 @@ TEST_F(EnergyPlusFixture, Boiler_HotWaterAutoSizeTempTest) state->dataPlnt->PlantLoop(state->dataBoilers->Boiler(1).LoopNum).FluidIndex, "Boiler_HotWaterAutoSizeTempTest"); - Real64 NomCapBoilerExpected = rho * PlantSizData(1).DesVolFlowRate * Cp * PlantSizData(1).DeltaT * state->dataBoilers->Boiler(1).SizFac; + Real64 NomCapBoilerExpected = rho * state->dataSize->PlantSizData(1).DesVolFlowRate * Cp * state->dataSize->PlantSizData(1).DeltaT * state->dataBoilers->Boiler(1).SizFac; // now call sizing routine state->dataBoilers->Boiler(1).SizeBoiler(*state); @@ -262,9 +262,9 @@ TEST_F(EnergyPlusFixture, Boiler_HotWater_BoilerEfficiency) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = thisBoiler.BoilerInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = thisBoiler.BoilerOutletNodeNum; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.1; - DataSizing::PlantSizData(1).DeltaT = 10; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.1; + state->dataSize->PlantSizData(1).DeltaT = 10; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; diff --git a/tst/EnergyPlus/unit/BoilerSteam.unit.cc b/tst/EnergyPlus/unit/BoilerSteam.unit.cc index 2ee5cc7e8c1..c630e1b3e26 100644 --- a/tst/EnergyPlus/unit/BoilerSteam.unit.cc +++ b/tst/EnergyPlus/unit/BoilerSteam.unit.cc @@ -173,9 +173,9 @@ TEST_F(EnergyPlusFixture, BoilerSteam_BoilerEfficiency) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = thisBoiler.BoilerInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = thisBoiler.BoilerOutletNodeNum; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.1; - DataSizing::PlantSizData(1).DeltaT = 10; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.1; + state->dataSize->PlantSizData(1).DeltaT = 10; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; diff --git a/tst/EnergyPlus/unit/ChillerConstantCOP.unit.cc b/tst/EnergyPlus/unit/ChillerConstantCOP.unit.cc index 66cb204d41f..2d238a18d7c 100644 --- a/tst/EnergyPlus/unit/ChillerConstantCOP.unit.cc +++ b/tst/EnergyPlus/unit/ChillerConstantCOP.unit.cc @@ -132,12 +132,12 @@ TEST_F(EnergyPlusFixture, ChillerConstantCOP_WaterCooled_Autosize) state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumIn = thisChiller.CondInletNodeNum; state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumOut = thisChiller.CondOutletNodeNum; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(1).DeltaT = 5.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(2).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; diff --git a/tst/EnergyPlus/unit/ChillerElectric.unit.cc b/tst/EnergyPlus/unit/ChillerElectric.unit.cc index 3c8b1333390..18e89421c84 100644 --- a/tst/EnergyPlus/unit/ChillerElectric.unit.cc +++ b/tst/EnergyPlus/unit/ChillerElectric.unit.cc @@ -142,12 +142,12 @@ TEST_F(EnergyPlusFixture, ChillerElectric_WaterCooled_Autosize) state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataPlantChillers->ElectricChiller(1).CondInletNodeNum; state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataPlantChillers->ElectricChiller(1).CondOutletNodeNum; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(1).DeltaT = 5.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(2).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; @@ -269,12 +269,12 @@ TEST_F(EnergyPlusFixture, ChillerElectric_WaterCooled_Simulate) state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataPlantChillers->ElectricChiller(1).CondInletNodeNum; state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataPlantChillers->ElectricChiller(1).CondOutletNodeNum; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(1).DeltaT = 5.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(2).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; diff --git a/tst/EnergyPlus/unit/ChillerElectricEIR.unit.cc b/tst/EnergyPlus/unit/ChillerElectricEIR.unit.cc index 834ec48ee88..99058910724 100644 --- a/tst/EnergyPlus/unit/ChillerElectricEIR.unit.cc +++ b/tst/EnergyPlus/unit/ChillerElectricEIR.unit.cc @@ -108,19 +108,19 @@ TEST_F(EnergyPlusFixture, ElectricEIRChiller_HeatRecoveryAutosizeTest) thisEIR.RefCOP = 3.0; state->dataPlnt->PlantLoop.allocate(2); - DataSizing::PlantSizData.allocate(2); + state->dataSize->PlantSizData.allocate(2); // chilled water loop state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantLoop(1).FluidIndex = 1; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(1).DeltaT = 5.0; // condenser water loop state->dataPlnt->PlantLoop(2).PlantSizNum = 2; state->dataPlnt->PlantLoop(2).FluidIndex = 1; state->dataPlnt->PlantLoop(2).FluidName = "WATER"; - DataSizing::PlantSizData(2).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(2).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; @@ -129,7 +129,7 @@ TEST_F(EnergyPlusFixture, ElectricEIRChiller_HeatRecoveryAutosizeTest) // see if heat recovery flow rate is as expected EXPECT_NEAR(thisEIR.DesignHeatRecVolFlowRate, 0.5, 0.00001); - DataSizing::PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataPlnt->PlantLoop.deallocate(); } @@ -218,9 +218,9 @@ TEST_F(EnergyPlusFixture, ChillerElectricEIR_AirCooledChiller) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = thisEIR.EvapInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = thisEIR.EvapOutletNodeNum; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(1).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; @@ -325,9 +325,9 @@ TEST_F(EnergyPlusFixture, ChillerElectricEIR_EvaporativelyCooled_Calculate) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = thisEIRChiller.EvapInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = thisEIRChiller.EvapOutletNodeNum; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.001; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.001; + state->dataSize->PlantSizData(1).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; diff --git a/tst/EnergyPlus/unit/Coils/CoilCoolingDXCurveFitOperatingMode.unit.cc b/tst/EnergyPlus/unit/Coils/CoilCoolingDXCurveFitOperatingMode.unit.cc index ee9eefb2379..c7fb76e32e2 100644 --- a/tst/EnergyPlus/unit/Coils/CoilCoolingDXCurveFitOperatingMode.unit.cc +++ b/tst/EnergyPlus/unit/Coils/CoilCoolingDXCurveFitOperatingMode.unit.cc @@ -122,29 +122,29 @@ TEST_F(CoilCoolingDXTest, CoilCoolingDXCurveFitOperatingMode_Sizing) { EXPECT_EQ(DataSizing::AutoSize, thisMode.nominalEvaporativePumpPower); - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->StdRhoAir = 1.0; // Prevent divide by zero in ReportSizingManager state->dataEnvrn->StdBaroPress = 101325.0; - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; Real64 ratedEvapAirFlowRate = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = ratedEvapAirFlowRate; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = ratedEvapAirFlowRate; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.0006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0006; thisMode.size(*state); diff --git a/tst/EnergyPlus/unit/CondenserLoopTowers.unit.cc b/tst/EnergyPlus/unit/CondenserLoopTowers.unit.cc index 185338c72f1..0df390f8376 100644 --- a/tst/EnergyPlus/unit/CondenserLoopTowers.unit.cc +++ b/tst/EnergyPlus/unit/CondenserLoopTowers.unit.cc @@ -3048,7 +3048,7 @@ TEST_F(EnergyPlusFixture, CondenserLoopTowers_SingleSpeedUser_SizingError_Sizing state->dataPlantMgr->InitLoopEquip = true; // Fake having more than small load - DataSizing::PlantSizData(1).DesVolFlowRate = 1000.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1000.0; state->dataGlobal->DoingSizing = false; state->dataGlobal->KickOffSimulation = true; @@ -3440,7 +3440,6 @@ TEST_F(EnergyPlusFixture, CondenserLoopTowers_SingleSpeedUser_SizingError_UserSp state->dataPlantMgr->InitLoopEquip = true; // Fake having more than small load - // DataSizing::PlantSizData(1).DesVolFlowRate = 1000.0; // SizingManager::ManageSizing(); diff --git a/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc b/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc index 877657b687d..5c05d3ac5fe 100644 --- a/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc +++ b/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc @@ -143,10 +143,10 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) { Node.allocate(10); - ZoneEqSizing.allocate(2); + state->dataSize->ZoneEqSizing.allocate(2); state->dataHeatBal->Zone.allocate(2); - CalcZoneSizing.allocate(1, 2); - CalcFinalZoneSizing.allocate(2); + state->dataSize->CalcZoneSizing.allocate(1, 2); + state->dataSize->CalcFinalZoneSizing.allocate(2); NonAirSystemResponse.allocate(2); SysDepZoneLoads.allocate(2); state->dataZoneEquip->ZoneEquipConfig.allocate(2); @@ -175,14 +175,14 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) ZoneThermostatSetPointLo(2) = 22.; ZoneThermostatSetPointHi(1) = 24.; ZoneThermostatSetPointHi(2) = 24.; - CurOverallSimDay = 1; + state->dataSize->CurOverallSimDay = 1; state->dataZoneEquip->ZoneEquipConfig(1).IsControlled = true; state->dataZoneEquip->ZoneEquipConfig(2).IsControlled = true; - CalcZoneSizing(1, 1).ActualZoneNum = 1; - CalcZoneSizing(1, 2).ActualZoneNum = 2; - CalcZoneSizing(1, 1).AccountForDOAS = true; - CalcZoneSizing(1, 2).AccountForDOAS = true; - CurOverallSimDay = 1; + state->dataSize->CalcZoneSizing(1, 1).ActualZoneNum = 1; + state->dataSize->CalcZoneSizing(1, 2).ActualZoneNum = 2; + state->dataSize->CalcZoneSizing(1, 1).AccountForDOAS = true; + state->dataSize->CalcZoneSizing(1, 2).AccountForDOAS = true; + state->dataSize->CurOverallSimDay = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(2).TotalOutputRequired = -2600; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(2).OutputRequiredToHeatingSP = -21100; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(2).OutputRequiredToCoolingSP = -2600; @@ -215,39 +215,39 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) state->dataZoneEquip->ZoneEquipConfig(2).NumReturnNodes = 0; state->dataZoneEquip->ZoneEquipConfig(1).ActualZoneNum = 1; state->dataZoneEquip->ZoneEquipConfig(2).ActualZoneNum = 2; - CalcZoneSizing(CurOverallSimDay, 1).DOASHighSetpoint = 14.4; - CalcZoneSizing(CurOverallSimDay, 1).DOASLowSetpoint = 12.2; - CalcZoneSizing(CurOverallSimDay, 2).DOASHighSetpoint = 14.4; - CalcZoneSizing(CurOverallSimDay, 2).DOASLowSetpoint = 12.2; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).DOASHighSetpoint = 14.4; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).DOASLowSetpoint = 12.2; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).DOASHighSetpoint = 14.4; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).DOASLowSetpoint = 12.2; state->dataEnvrn->StdBaroPress = 101325.; - CalcFinalZoneSizing(1).MinOA = 0.1; - CalcFinalZoneSizing(2).MinOA = 0.11; - CalcZoneSizing(CurOverallSimDay, 1).DOASControlStrategy = 3; - CalcZoneSizing(CurOverallSimDay, 2).DOASControlStrategy = 3; + state->dataSize->CalcFinalZoneSizing(1).MinOA = 0.1; + state->dataSize->CalcFinalZoneSizing(2).MinOA = 0.11; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).DOASControlStrategy = 3; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).DOASControlStrategy = 3; state->dataEnvrn->OutDryBulbTemp = 28.; state->dataEnvrn->OutHumRat = 0.017; Node(4).Temp = 22; Node(4).HumRat = 0.008; Node(9).Temp = 22.5; Node(9).HumRat = 0.0085; - CalcZoneSizing(CurOverallSimDay, 1).ZnCoolDgnSAMethod = 1; - CalcZoneSizing(CurOverallSimDay, 2).ZnCoolDgnSAMethod = 2; - CalcZoneSizing(CurOverallSimDay, 1).ZnHeatDgnSAMethod = 1; - CalcZoneSizing(CurOverallSimDay, 2).ZnHeatDgnSAMethod = 2; - CalcZoneSizing(CurOverallSimDay, 1).CoolDesTemp = 12.5; - CalcZoneSizing(CurOverallSimDay, 2).CoolDesTemp = 12.5; - CalcZoneSizing(CurOverallSimDay, 1).CoolDesTempDiff = 11.11; - CalcZoneSizing(CurOverallSimDay, 2).CoolDesTempDiff = 11.11; - CalcZoneSizing(CurOverallSimDay, 1).CoolDesHumRat = 0.008; - CalcZoneSizing(CurOverallSimDay, 2).CoolDesHumRat = 0.008; - CalcZoneSizing(CurOverallSimDay, 1).HeatDesHumRat = 0.008; - CalcZoneSizing(CurOverallSimDay, 2).HeatDesHumRat = 0.008; - CalcZoneSizing(CurOverallSimDay, 1).HeatDesTemp = 50.0; - CalcZoneSizing(CurOverallSimDay, 2).HeatDesTemp = 50.0; - CalcZoneSizing(CurOverallSimDay, 1).HeatDesTempDiff = 30.0; - CalcZoneSizing(CurOverallSimDay, 2).HeatDesTempDiff = 30.0; - CalcZoneSizing(CurOverallSimDay, 1).SupplyAirAdjustFactor = 1.0; - CalcZoneSizing(CurOverallSimDay, 2).SupplyAirAdjustFactor = 1.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).ZnCoolDgnSAMethod = 1; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).ZnCoolDgnSAMethod = 2; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).ZnHeatDgnSAMethod = 1; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).ZnHeatDgnSAMethod = 2; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).CoolDesTemp = 12.5; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).CoolDesTemp = 12.5; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).CoolDesTempDiff = 11.11; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).CoolDesTempDiff = 11.11; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).CoolDesHumRat = 0.008; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).CoolDesHumRat = 0.008; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).HeatDesHumRat = 0.008; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).HeatDesHumRat = 0.008; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).HeatDesTemp = 50.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).HeatDesTemp = 50.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).HeatDesTempDiff = 30.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).HeatDesTempDiff = 30.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).SupplyAirAdjustFactor = 1.0; + state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).SupplyAirAdjustFactor = 1.0; state->dataHeatBal->ZoneAirMassFlow.EnforceZoneMassBalance = false; ZoneMassBalanceFlag(1) = false; ZoneMassBalanceFlag(2) = false; @@ -291,34 +291,34 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) state->dataZoneEquipmentManager->SizeZoneEquipmentOneTimeFlag = false; SizeZoneEquipment(*state); - EXPECT_DOUBLE_EQ(12.2, CalcZoneSizing(1, 1).DOASSupTemp); - EXPECT_NEAR(.00795195, CalcZoneSizing(1, 1).DOASSupHumRat, .00000001); - EXPECT_DOUBLE_EQ(0.1, CalcZoneSizing(1, 1).DOASSupMassFlow); - EXPECT_NEAR(-999.229, CalcZoneSizing(1, 1).DOASHeatAdd, .001); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 1).DOASHeatLoad); - EXPECT_NEAR(-999.229, CalcZoneSizing(1, 1).DOASCoolLoad, .001); - EXPECT_NEAR(-1011.442, CalcZoneSizing(1, 1).DOASTotCoolLoad, .001); - EXPECT_NEAR(4599.229, CalcZoneSizing(1, 1).HeatLoad, .001); - EXPECT_NEAR(.161083, CalcZoneSizing(1, 1).HeatMassFlow, .00001); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 1).CoolLoad); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 1).CoolMassFlow); + EXPECT_DOUBLE_EQ(12.2, state->dataSize->CalcZoneSizing(1, 1).DOASSupTemp); + EXPECT_NEAR(.00795195, state->dataSize->CalcZoneSizing(1, 1).DOASSupHumRat, .00000001); + EXPECT_DOUBLE_EQ(0.1, state->dataSize->CalcZoneSizing(1, 1).DOASSupMassFlow); + EXPECT_NEAR(-999.229, state->dataSize->CalcZoneSizing(1, 1).DOASHeatAdd, .001); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 1).DOASHeatLoad); + EXPECT_NEAR(-999.229, state->dataSize->CalcZoneSizing(1, 1).DOASCoolLoad, .001); + EXPECT_NEAR(-1011.442, state->dataSize->CalcZoneSizing(1, 1).DOASTotCoolLoad, .001); + EXPECT_NEAR(4599.229, state->dataSize->CalcZoneSizing(1, 1).HeatLoad, .001); + EXPECT_NEAR(.161083, state->dataSize->CalcZoneSizing(1, 1).HeatMassFlow, .00001); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 1).CoolLoad); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 1).CoolMassFlow); - EXPECT_DOUBLE_EQ(12.2, CalcZoneSizing(1, 2).DOASSupTemp); - EXPECT_NEAR(.00795195, CalcZoneSizing(1, 2).DOASSupHumRat, .00000001); - EXPECT_DOUBLE_EQ(0.11, CalcZoneSizing(1, 2).DOASSupMassFlow); - EXPECT_NEAR(-1155.232, CalcZoneSizing(1, 2).DOASHeatAdd, .001); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 2).DOASHeatLoad); - EXPECT_NEAR(-1155.232, CalcZoneSizing(1, 2).DOASCoolLoad, .001); - EXPECT_NEAR(-1308.522, CalcZoneSizing(1, 2).DOASTotCoolLoad, .001); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 2).HeatLoad); - EXPECT_DOUBLE_EQ(0.0, CalcZoneSizing(1, 2).HeatMassFlow); - EXPECT_NEAR(1444.767, CalcZoneSizing(1, 2).CoolLoad, .001); - EXPECT_NEAR(.127528, CalcZoneSizing(1, 2).CoolMassFlow, .000001); + EXPECT_DOUBLE_EQ(12.2, state->dataSize->CalcZoneSizing(1, 2).DOASSupTemp); + EXPECT_NEAR(.00795195, state->dataSize->CalcZoneSizing(1, 2).DOASSupHumRat, .00000001); + EXPECT_DOUBLE_EQ(0.11, state->dataSize->CalcZoneSizing(1, 2).DOASSupMassFlow); + EXPECT_NEAR(-1155.232, state->dataSize->CalcZoneSizing(1, 2).DOASHeatAdd, .001); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 2).DOASHeatLoad); + EXPECT_NEAR(-1155.232, state->dataSize->CalcZoneSizing(1, 2).DOASCoolLoad, .001); + EXPECT_NEAR(-1308.522, state->dataSize->CalcZoneSizing(1, 2).DOASTotCoolLoad, .001); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 2).HeatLoad); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->CalcZoneSizing(1, 2).HeatMassFlow); + EXPECT_NEAR(1444.767, state->dataSize->CalcZoneSizing(1, 2).CoolLoad, .001); + EXPECT_NEAR(.127528, state->dataSize->CalcZoneSizing(1, 2).CoolMassFlow, .000001); Node.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); state->dataHeatBal->Zone.deallocate(); - CalcZoneSizing.deallocate(); + state->dataSize->CalcZoneSizing.deallocate(); NonAirSystemResponse.deallocate(); SysDepZoneLoads.deallocate(); state->dataZoneEquip->ZoneEquipConfig(1).InletNode.deallocate(); @@ -341,76 +341,76 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) TEST_F(EnergyPlusFixture, TestAutoCalcDOASControlStrategy) { - NumZoneSizingInput = 2; - ZoneSizingInput.allocate(NumZoneSizingInput); - ZoneSizingInput(1).AccountForDOAS = false; - ZoneSizingInput(2).AccountForDOAS = true; + state->dataSize->NumZoneSizingInput = 2; + state->dataSize->ZoneSizingInput.allocate(state->dataSize->NumZoneSizingInput); + state->dataSize->ZoneSizingInput(1).AccountForDOAS = false; + state->dataSize->ZoneSizingInput(2).AccountForDOAS = true; - ZoneSizingInput(2).DOASControlStrategy = DOANeutralSup; - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASControlStrategy = DOANeutralSup; + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(21.1, ZoneSizingInput(2).DOASLowSetpoint); - EXPECT_DOUBLE_EQ(23.9, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = 23.7; + EXPECT_DOUBLE_EQ(21.1, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(23.9, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 23.7; AutoCalcDOASControlStrategy(*state); - EXPECT_NEAR(20.9, ZoneSizingInput(2).DOASLowSetpoint, .000001); - EXPECT_DOUBLE_EQ(23.7, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 21.2; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + EXPECT_NEAR(20.9, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint, .000001); + EXPECT_DOUBLE_EQ(23.7, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 21.2; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_NEAR(24.0, ZoneSizingInput(2).DOASHighSetpoint, .000001); - EXPECT_DOUBLE_EQ(21.2, ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 21.5; - ZoneSizingInput(2).DOASHighSetpoint = 22.6; + EXPECT_NEAR(24.0, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint, .000001); + EXPECT_DOUBLE_EQ(21.2, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 21.5; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 22.6; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(22.6, ZoneSizingInput(2).DOASHighSetpoint); - EXPECT_DOUBLE_EQ(21.5, ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(22.6, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + EXPECT_DOUBLE_EQ(21.5, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput(2).DOASControlStrategy = DOANeutralDehumSup; - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASControlStrategy = DOANeutralDehumSup; + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(14.4, ZoneSizingInput(2).DOASLowSetpoint); - EXPECT_DOUBLE_EQ(22.2, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = 22.4; + EXPECT_DOUBLE_EQ(14.4, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(22.2, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 22.4; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(14.4, ZoneSizingInput(2).DOASLowSetpoint); - EXPECT_DOUBLE_EQ(22.4, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 13.8; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + EXPECT_DOUBLE_EQ(14.4, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(22.4, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 13.8; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(22.2, ZoneSizingInput(2).DOASHighSetpoint); - EXPECT_DOUBLE_EQ(13.8, ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 13.9; - ZoneSizingInput(2).DOASHighSetpoint = 22.6; + EXPECT_DOUBLE_EQ(22.2, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + EXPECT_DOUBLE_EQ(13.8, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 13.9; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 22.6; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(22.6, ZoneSizingInput(2).DOASHighSetpoint); - EXPECT_DOUBLE_EQ(13.9, ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(22.6, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + EXPECT_DOUBLE_EQ(13.9, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput(2).DOASControlStrategy = DOACoolSup; - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASControlStrategy = DOACoolSup; + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(12.2, ZoneSizingInput(2).DOASLowSetpoint); - EXPECT_DOUBLE_EQ(14.4, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = AutoSize; - ZoneSizingInput(2).DOASHighSetpoint = 14.6; + EXPECT_DOUBLE_EQ(12.2, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(14.4, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = AutoSize; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 14.6; AutoCalcDOASControlStrategy(*state); - EXPECT_NEAR(12.4, ZoneSizingInput(2).DOASLowSetpoint, .000001); - EXPECT_DOUBLE_EQ(14.6, ZoneSizingInput(2).DOASHighSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 12.3; - ZoneSizingInput(2).DOASHighSetpoint = AutoSize; + EXPECT_NEAR(12.4, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint, .000001); + EXPECT_DOUBLE_EQ(14.6, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 12.3; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = AutoSize; AutoCalcDOASControlStrategy(*state); - EXPECT_NEAR(14.5, ZoneSizingInput(2).DOASHighSetpoint, .000001); - EXPECT_DOUBLE_EQ(12.3, ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput(2).DOASLowSetpoint = 12.6; - ZoneSizingInput(2).DOASHighSetpoint = 13.8; + EXPECT_NEAR(14.5, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint, .000001); + EXPECT_DOUBLE_EQ(12.3, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); + state->dataSize->ZoneSizingInput(2).DOASLowSetpoint = 12.6; + state->dataSize->ZoneSizingInput(2).DOASHighSetpoint = 13.8; AutoCalcDOASControlStrategy(*state); - EXPECT_DOUBLE_EQ(13.8, ZoneSizingInput(2).DOASHighSetpoint); - EXPECT_DOUBLE_EQ(12.6, ZoneSizingInput(2).DOASLowSetpoint); + EXPECT_DOUBLE_EQ(13.8, state->dataSize->ZoneSizingInput(2).DOASHighSetpoint); + EXPECT_DOUBLE_EQ(12.6, state->dataSize->ZoneSizingInput(2).DOASLowSetpoint); - ZoneSizingInput.deallocate(); + state->dataSize->ZoneSizingInput.deallocate(); } diff --git a/tst/EnergyPlus/unit/DXCoils.unit.cc b/tst/EnergyPlus/unit/DXCoils.unit.cc index 98e5bf41406..6de53920272 100644 --- a/tst/EnergyPlus/unit/DXCoils.unit.cc +++ b/tst/EnergyPlus/unit/DXCoils.unit.cc @@ -281,14 +281,14 @@ TEST_F(EnergyPlusFixture, DXCoils_Test2) int CurveNum; state->dataGlobal->DisplayExtraWarnings = true; - SysSizingRunDone = true; - FinalSysSizing.allocate(1); + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); - CurSysNum = 1; + state->dataSize->CurSysNum = 1; state->dataDXCoils->NumDXCoils = 2; DXCoilNum = 2; - UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); state->dataDXCoils->DXCoil.allocate(state->dataDXCoils->NumDXCoils); state->dataDXCoils->DXCoil(1).DXCoilType_Num = CoilDX_CoolingSingleSpeed; state->dataDXCoils->DXCoil(2).DXCoilType_Num = CoilDX_HeatingEmpirical; @@ -381,8 +381,8 @@ TEST_F(EnergyPlusFixture, DXCoils_Test2) // HSPF {Btu/W-h}, Region Number", " DX Heating Coil Standard Rating Information, Coil:Heating:DX:SingleSpeed, DX Heating coil, 0.0, 0.0, 3.51, 4" // Clean up - UnitarySysEqSizing.deallocate(); - FinalSysSizing.deallocate(); + state->dataSize->UnitarySysEqSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); state->dataAirLoop->AirLoopControlInfo.deallocate(); } @@ -1446,23 +1446,23 @@ TEST_F(EnergyPlusFixture, DXCoil_ValidateADPFunction) GetCurveInput(*state); GetDXCoils(*state); SetPredefinedTables(*state); - CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // Need this to prevent crash in Sizers - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.1; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.1; - DataFlowUsedForSizing = 0.1; - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).CoolingCapacity = true; - ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = state->dataDXCoils->DXCoil(1).RatedTotCap(1); - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - ZoneSizingInput.allocate(1); - ZoneSizingInput(1).ZoneNum = 1; - DataSizing::NumZoneSizingInput = 1; - ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.1; + state->dataSize->DataFlowUsedForSizing = 0.1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingCapacity = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad = state->dataDXCoils->DXCoil(1).RatedTotCap(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneSizingRunDone = true; state->dataEnvrn->StdBaroPress = 101325.0; SizeDXCoil(*state, 1); // normal sizing @@ -2178,37 +2178,37 @@ TEST_F(SQLiteFixture, DXCoils_TestComponentSizingOutput_TwoSpeed) DXCoils::GetDXCoils(*state); EXPECT_EQ(1, state->dataDXCoils->NumDXCoils); - DataSizing::CurZoneEqNum = 0; - DataSizing::CurOASysNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(CurSysNum).CoolSupTemp = 12.0; - DataSizing::FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0085; - DataSizing::FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 28.0; - DataSizing::FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0075; - DataSizing::FinalSysSizing(CurSysNum).DesCoolVolFlow = 1.00; - DataSizing::FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 12.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 28.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0075; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.00; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; - DataSizing::SysSizingRunDone = true; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; state->dataEnvrn->StdBaroPress = 101325.0; Psychrometrics::InitializePsychRoutines(); // Need this to prevent crash in Sizers - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); // Fake having a parent coil setting the size // UnitarySysEqSizing(DXCoilNum).CoolingCapacity = true; - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // We aim to test resulting values that are in this report, so request it // We actually don't need this because ReportSizerOutput also outputs to the "ComponentSizes" table @@ -2404,36 +2404,36 @@ TEST_F(SQLiteFixture, DXCoils_TestComponentSizingOutput_SingleSpeed) EXPECT_EQ(1, state->dataDXCoils->NumDXCoils); // All of this is to basically manage to get RatedTotCap to be autosized - DataSizing::CurZoneEqNum = 0; - DataSizing::CurOASysNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(CurSysNum).CoolSupTemp = 12.0; - DataSizing::FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0085; - DataSizing::FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 28.0; - DataSizing::FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0075; - DataSizing::FinalSysSizing(CurSysNum).DesCoolVolFlow = 1.00; - DataSizing::FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 12.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 28.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0075; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.00; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; - DataSizing::SysSizingRunDone = true; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; state->dataEnvrn->StdBaroPress = 101325.0; Psychrometrics::InitializePsychRoutines(); // Need this to prevent crash in Sizers - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::OASysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); // Get into a block so that it sets the RatedTotCap - DataSizing::CurDuctType = DataHVACGlobals::Cooling; + state->dataSize->CurDuctType = DataHVACGlobals::Cooling; // We aim to test resulting values that are in this report, so request it // We actually don't need this because ReportSizerOutput also outputs to the "ComponentSizes" table @@ -3106,10 +3106,10 @@ TEST_F(EnergyPlusFixture, TestMultiSpeedCoolingCoilTabularReporting) EXPECT_EQ("ASHP CLG COIL", state->dataDXCoils->DXCoil(1).Name); EXPECT_EQ("Coil:Cooling:DX:MultiSpeed", state->dataDXCoils->DXCoil(1).DXCoilType); // coils are in an airloop - DataSizing::CurSysNum = 1; - UnitarySysEqSizing.allocate(CurSysNum); - UnitarySysEqSizing(CurSysNum).CoolingCapacity = false; - UnitarySysEqSizing(CurSysNum).HeatingCapacity = false; + state->dataSize->CurSysNum = 1; + state->dataSize->UnitarySysEqSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).CoolingCapacity = false; + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).HeatingCapacity = false; // coil sizing SizeDXCoil(*state, 1); EXPECT_EQ(14067.4113682534, state->dataDXCoils->DXCoil(1).MSRatedTotCap(2)); @@ -3514,28 +3514,28 @@ TEST_F(EnergyPlusFixture, TestMultiSpeedCoilsAutoSizingOutput) Psychrometrics::InitializePsychRoutines(); // set system sizing parameters - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::FinalSysSizing.allocate(1); - - DataSizing::SysSizingRunDone = true; - DataSizing::FinalSysSizing(CurSysNum).DesMainVolFlow = 1.75; - DataSizing::FinalSysSizing(CurSysNum).CoolSupTemp = 13.0; - DataSizing::FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0080; - DataSizing::FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 24.290004300002032; - DataSizing::FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0095218208835786931; - DataSizing::FinalSysSizing(CurSysNum).OutTempAtCoolPeak = 28.244709704058657; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.75; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 13.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0080; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 24.290004300002032; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0095218208835786931; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutTempAtCoolPeak = 28.244709704058657; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; // Need this to prevent crash in Sizers - DataSizing::UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); SizeDXCoil(*state, 1); // Design flow rate at speed 2 and speed 1 @@ -3766,28 +3766,28 @@ TEST_F(EnergyPlusFixture, TestMultiSpeedCoolingCoilPartialAutoSizeOutput) Psychrometrics::InitializePsychRoutines(); // set system sizing parameters - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::FinalSysSizing.allocate(1); - - DataSizing::SysSizingRunDone = true; - DataSizing::FinalSysSizing(CurSysNum).DesMainVolFlow = 1.75; - DataSizing::FinalSysSizing(CurSysNum).CoolSupTemp = 13.0; - DataSizing::FinalSysSizing(CurSysNum).CoolSupHumRat = 0.0080; - DataSizing::FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 24.290004300002032; - DataSizing::FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.0095218208835786931; - DataSizing::FinalSysSizing(CurSysNum).OutTempAtCoolPeak = 28.244709704058657; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + + state->dataSize->SysSizingRunDone = true; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.75; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 13.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0080; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 24.290004300002032; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0095218208835786931; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).OutTempAtCoolPeak = 28.244709704058657; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; // Need this to prevent crash in Sizers - DataSizing::UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); // test SHR design size when all autosized SizeDXCoil(*state, 1); diff --git a/tst/EnergyPlus/unit/DataSizing.unit.cc b/tst/EnergyPlus/unit/DataSizing.unit.cc index 368f83a0547..e68dd2069f7 100644 --- a/tst/EnergyPlus/unit/DataSizing.unit.cc +++ b/tst/EnergyPlus/unit/DataSizing.unit.cc @@ -61,167 +61,167 @@ using namespace ObjexxFCL; TEST_F(EnergyPlusFixture, DataSizingTest_resetHVACSizingGlobals) { - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; bool FirstPass = true; // set up Data globals to non-initial state to test that they are reset appropriately - DataSizing::DataTotCapCurveIndex = 1; - DataSizing::DataPltSizCoolNum = 1; - DataSizing::DataPltSizHeatNum = 1; - DataSizing::DataWaterLoopNum = 1; - DataSizing::DataCoilNum = 1; - DataSizing::DataFanOpMode = 1; - DataSizing::DataCoilIsSuppHeater = true; - DataSizing::DataIsDXCoil = true; - DataSizing::DataAutosizable = false; - DataSizing::DataEMSOverrideON = true; - DataSizing::DataScalableSizingON = true; - DataSizing::DataScalableCapSizingON = true; - DataSizing::DataSysScalableFlowSizingON = true; - DataSizing::DataSysScalableCapSizingON = true; - DataSizing::DataDesInletWaterTemp = 1.0; - DataSizing::DataDesInletAirHumRat = 1.0; - DataSizing::DataDesInletAirTemp = 1.0; - DataSizing::DataDesOutletAirTemp = 1.0; - DataSizing::DataDesOutletAirHumRat = 1.0; - DataSizing::DataCoolCoilCap = 1.0; - DataSizing::DataFlowUsedForSizing = 1.0; - DataSizing::DataAirFlowUsedForSizing = 1.0; - DataSizing::DataWaterFlowUsedForSizing = 1.0; - DataSizing::DataCapacityUsedForSizing = 1.0; - DataSizing::DataDesignCoilCapacity = 1.0; - DataSizing::DataHeatSizeRatio = 2.0; - DataSizing::DataEMSOverride = 1.0; - DataSizing::DataBypassFrac = 1.0; - DataSizing::DataFracOfAutosizedCoolingAirflow = 2.0; - DataSizing::DataFracOfAutosizedHeatingAirflow = 2.0; - DataSizing::DataFlowPerCoolingCapacity = 1.0; - DataSizing::DataFlowPerHeatingCapacity = 1.0; - DataSizing::DataFracOfAutosizedCoolingCapacity = 2.0; - DataSizing::DataFracOfAutosizedHeatingCapacity = 2.0; - DataSizing::DataAutosizedCoolingCapacity = 1.0; - DataSizing::DataAutosizedHeatingCapacity = 1.0; - DataSizing::DataConstantUsedForSizing = 1.0; - DataSizing::DataFractionUsedForSizing = 1.0; - DataSizing::DataNonZoneNonAirloopValue = 1.0; - DataSizing::DataZoneNumber = 1; - DataSizing::DataFanEnumType = 1; - DataSizing::DataFanIndex = 1; - DataSizing::DataWaterCoilSizCoolDeltaT = 1.0; - DataSizing::DataWaterCoilSizHeatDeltaT = 1.0; - DataSizing::DataNomCapInpMeth = true; - - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).Capacity = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingCapacity = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingCapacity = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).MaxHWVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).MaxCWVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).OAVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesCoolingLoad = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesHeatingLoad = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow = 1.0; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirVolFlow = 1.0; + state->dataSize->DataTotCapCurveIndex = 1; + state->dataSize->DataPltSizCoolNum = 1; + state->dataSize->DataPltSizHeatNum = 1; + state->dataSize->DataWaterLoopNum = 1; + state->dataSize->DataCoilNum = 1; + state->dataSize->DataFanOpMode = 1; + state->dataSize->DataCoilIsSuppHeater = true; + state->dataSize->DataIsDXCoil = true; + state->dataSize->DataAutosizable = false; + state->dataSize->DataEMSOverrideON = true; + state->dataSize->DataScalableSizingON = true; + state->dataSize->DataScalableCapSizingON = true; + state->dataSize->DataSysScalableFlowSizingON = true; + state->dataSize->DataSysScalableCapSizingON = true; + state->dataSize->DataDesInletWaterTemp = 1.0; + state->dataSize->DataDesInletAirHumRat = 1.0; + state->dataSize->DataDesInletAirTemp = 1.0; + state->dataSize->DataDesOutletAirTemp = 1.0; + state->dataSize->DataDesOutletAirHumRat = 1.0; + state->dataSize->DataCoolCoilCap = 1.0; + state->dataSize->DataFlowUsedForSizing = 1.0; + state->dataSize->DataAirFlowUsedForSizing = 1.0; + state->dataSize->DataWaterFlowUsedForSizing = 1.0; + state->dataSize->DataCapacityUsedForSizing = 1.0; + state->dataSize->DataDesignCoilCapacity = 1.0; + state->dataSize->DataHeatSizeRatio = 2.0; + state->dataSize->DataEMSOverride = 1.0; + state->dataSize->DataBypassFrac = 1.0; + state->dataSize->DataFracOfAutosizedCoolingAirflow = 2.0; + state->dataSize->DataFracOfAutosizedHeatingAirflow = 2.0; + state->dataSize->DataFlowPerCoolingCapacity = 1.0; + state->dataSize->DataFlowPerHeatingCapacity = 1.0; + state->dataSize->DataFracOfAutosizedCoolingCapacity = 2.0; + state->dataSize->DataFracOfAutosizedHeatingCapacity = 2.0; + state->dataSize->DataAutosizedCoolingCapacity = 1.0; + state->dataSize->DataAutosizedHeatingCapacity = 1.0; + state->dataSize->DataConstantUsedForSizing = 1.0; + state->dataSize->DataFractionUsedForSizing = 1.0; + state->dataSize->DataNonZoneNonAirloopValue = 1.0; + state->dataSize->DataZoneNumber = 1; + state->dataSize->DataFanEnumType = 1; + state->dataSize->DataFanIndex = 1; + state->dataSize->DataWaterCoilSizCoolDeltaT = 1.0; + state->dataSize->DataWaterCoilSizHeatDeltaT = 1.0; + state->dataSize->DataNomCapInpMeth = true; + + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).Capacity = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingCapacity = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingCapacity = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxHWVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxCWVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesHeatingLoad = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 1.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirVolFlow = 1.0; // test a few to ensure not equal to initial state - EXPECT_NE(DataSizing::DataTotCapCurveIndex, 0); - EXPECT_NE(DataSizing::DataDesInletWaterTemp, 0.0); - EXPECT_NE(DataSizing::DataHeatSizeRatio, 1.0); - EXPECT_NE(DataSizing::DataFanEnumType, -1); - EXPECT_TRUE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirFlow); - EXPECT_FALSE(DataSizing::DataAutosizable); + EXPECT_NE(state->dataSize->DataTotCapCurveIndex, 0); + EXPECT_NE(state->dataSize->DataDesInletWaterTemp, 0.0); + EXPECT_NE(state->dataSize->DataHeatSizeRatio, 1.0); + EXPECT_NE(state->dataSize->DataFanEnumType, -1); + EXPECT_TRUE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirFlow); + EXPECT_FALSE(state->dataSize->DataAutosizable); // function argument initialized to true at beginning of simulation EXPECT_TRUE(FirstPass); // call reset function - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, FirstPass); + DataSizing::resetHVACSizingGlobals(*state, state->dataSize->CurZoneEqNum, 0, FirstPass); // expect function argument to be false after calling resetHVACSizingGlobals EXPECT_FALSE(FirstPass); // expect these to be reset to the initial state as defined in DataSizing.cc and DataSizing.hh - EXPECT_EQ(DataSizing::DataTotCapCurveIndex, 0); - EXPECT_EQ(DataSizing::DataPltSizCoolNum, 0); - EXPECT_EQ(DataSizing::DataPltSizHeatNum, 0); - EXPECT_EQ(DataSizing::DataWaterLoopNum, 0); - EXPECT_EQ(DataSizing::DataCoilNum, 0); - EXPECT_EQ(DataSizing::DataFanOpMode, 0); - EXPECT_FALSE(DataSizing::DataCoilIsSuppHeater); - EXPECT_FALSE(DataSizing::DataIsDXCoil); - EXPECT_TRUE(DataSizing::DataAutosizable); - EXPECT_FALSE(DataSizing::DataEMSOverrideON); - EXPECT_FALSE(DataSizing::DataScalableSizingON); - EXPECT_FALSE(DataSizing::DataScalableCapSizingON); - EXPECT_FALSE(DataSizing::DataSysScalableFlowSizingON); - EXPECT_FALSE(DataSizing::DataSysScalableCapSizingON); - EXPECT_EQ(DataSizing::DataDesInletWaterTemp, 0.0); - EXPECT_EQ(DataSizing::DataDesInletAirHumRat, 0.0); - EXPECT_EQ(DataSizing::DataDesInletAirTemp, 0.0); - EXPECT_EQ(DataSizing::DataDesOutletAirTemp, 0.0); - EXPECT_EQ(DataSizing::DataDesOutletAirHumRat, 0.0); - EXPECT_EQ(DataSizing::DataCoolCoilCap, 0.0); - EXPECT_EQ(DataSizing::DataFlowUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataAirFlowUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataWaterFlowUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataCapacityUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataDesignCoilCapacity, 0.0); - EXPECT_EQ(DataSizing::DataHeatSizeRatio, 1.0); - EXPECT_EQ(DataSizing::DataEMSOverride, 0.0); - EXPECT_EQ(DataSizing::DataBypassFrac, 0.0); - EXPECT_EQ(DataSizing::DataFracOfAutosizedCoolingAirflow, 1.0); - EXPECT_EQ(DataSizing::DataFracOfAutosizedHeatingAirflow, 1.0); - EXPECT_EQ(DataSizing::DataFlowPerCoolingCapacity, 0.0); - EXPECT_EQ(DataSizing::DataFlowPerHeatingCapacity, 0.0); - EXPECT_EQ(DataSizing::DataFracOfAutosizedCoolingCapacity, 1.0); - EXPECT_EQ(DataSizing::DataFracOfAutosizedHeatingCapacity, 1.0); - EXPECT_EQ(DataSizing::DataAutosizedCoolingCapacity, 0.0); - EXPECT_EQ(DataSizing::DataAutosizedHeatingCapacity, 0.0); - EXPECT_EQ(DataSizing::DataConstantUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataFractionUsedForSizing, 0.0); - EXPECT_EQ(DataSizing::DataNonZoneNonAirloopValue, 0.0); - EXPECT_EQ(DataSizing::DataZoneNumber, 0); - EXPECT_EQ(DataSizing::DataFanEnumType, -1); - EXPECT_EQ(DataSizing::DataFanIndex, -1); - EXPECT_EQ(DataSizing::DataWaterCoilSizCoolDeltaT, 0.0); - EXPECT_EQ(DataSizing::DataWaterCoilSizHeatDeltaT, 0.0); - EXPECT_FALSE(DataSizing::DataNomCapInpMeth); - - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirFlow); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirFlow); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirFlow); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirFlow); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).Capacity); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingCapacity); - EXPECT_FALSE(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingCapacity); - - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).AirVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).MaxHWVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).MaxCWVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).OAVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesCoolingLoad, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesHeatingLoad, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).CoolingAirVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).HeatingAirVolFlow, 0.0); - EXPECT_EQ(DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SystemAirVolFlow, 0.0); + EXPECT_EQ(state->dataSize->DataTotCapCurveIndex, 0); + EXPECT_EQ(state->dataSize->DataPltSizCoolNum, 0); + EXPECT_EQ(state->dataSize->DataPltSizHeatNum, 0); + EXPECT_EQ(state->dataSize->DataWaterLoopNum, 0); + EXPECT_EQ(state->dataSize->DataCoilNum, 0); + EXPECT_EQ(state->dataSize->DataFanOpMode, 0); + EXPECT_FALSE(state->dataSize->DataCoilIsSuppHeater); + EXPECT_FALSE(state->dataSize->DataIsDXCoil); + EXPECT_TRUE(state->dataSize->DataAutosizable); + EXPECT_FALSE(state->dataSize->DataEMSOverrideON); + EXPECT_FALSE(state->dataSize->DataScalableSizingON); + EXPECT_FALSE(state->dataSize->DataScalableCapSizingON); + EXPECT_FALSE(state->dataSize->DataSysScalableFlowSizingON); + EXPECT_FALSE(state->dataSize->DataSysScalableCapSizingON); + EXPECT_EQ(state->dataSize->DataDesInletWaterTemp, 0.0); + EXPECT_EQ(state->dataSize->DataDesInletAirHumRat, 0.0); + EXPECT_EQ(state->dataSize->DataDesInletAirTemp, 0.0); + EXPECT_EQ(state->dataSize->DataDesOutletAirTemp, 0.0); + EXPECT_EQ(state->dataSize->DataDesOutletAirHumRat, 0.0); + EXPECT_EQ(state->dataSize->DataCoolCoilCap, 0.0); + EXPECT_EQ(state->dataSize->DataFlowUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataAirFlowUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataWaterFlowUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataCapacityUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataDesignCoilCapacity, 0.0); + EXPECT_EQ(state->dataSize->DataHeatSizeRatio, 1.0); + EXPECT_EQ(state->dataSize->DataEMSOverride, 0.0); + EXPECT_EQ(state->dataSize->DataBypassFrac, 0.0); + EXPECT_EQ(state->dataSize->DataFracOfAutosizedCoolingAirflow, 1.0); + EXPECT_EQ(state->dataSize->DataFracOfAutosizedHeatingAirflow, 1.0); + EXPECT_EQ(state->dataSize->DataFlowPerCoolingCapacity, 0.0); + EXPECT_EQ(state->dataSize->DataFlowPerHeatingCapacity, 0.0); + EXPECT_EQ(state->dataSize->DataFracOfAutosizedCoolingCapacity, 1.0); + EXPECT_EQ(state->dataSize->DataFracOfAutosizedHeatingCapacity, 1.0); + EXPECT_EQ(state->dataSize->DataAutosizedCoolingCapacity, 0.0); + EXPECT_EQ(state->dataSize->DataAutosizedHeatingCapacity, 0.0); + EXPECT_EQ(state->dataSize->DataConstantUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataFractionUsedForSizing, 0.0); + EXPECT_EQ(state->dataSize->DataNonZoneNonAirloopValue, 0.0); + EXPECT_EQ(state->dataSize->DataZoneNumber, 0); + EXPECT_EQ(state->dataSize->DataFanEnumType, -1); + EXPECT_EQ(state->dataSize->DataFanIndex, -1); + EXPECT_EQ(state->dataSize->DataWaterCoilSizCoolDeltaT, 0.0); + EXPECT_EQ(state->dataSize->DataWaterCoilSizHeatDeltaT, 0.0); + EXPECT_FALSE(state->dataSize->DataNomCapInpMeth); + + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirFlow); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirFlow); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirFlow); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirFlow); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).Capacity); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingCapacity); + EXPECT_FALSE(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingCapacity); + + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxHWVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxCWVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesHeatingLoad, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow, 0.0); + EXPECT_EQ(state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SystemAirVolFlow, 0.0); // Test clean return if CurZoneEqNum = 0 FirstPass = true; - DataSizing::CurZoneEqNum = 0; - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, FirstPass); + state->dataSize->CurZoneEqNum = 0; + DataSizing::resetHVACSizingGlobals(*state, state->dataSize->CurZoneEqNum, 0, FirstPass); EXPECT_FALSE(FirstPass); // Test clean return if ZoneEqSizing is not allocated - DataSizing::ZoneEqSizing.deallocate(); - DataSizing::CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->CurZoneEqNum = 1; FirstPass = true; // call reset function - DataSizing::resetHVACSizingGlobals(DataSizing::CurZoneEqNum, 0, FirstPass); + DataSizing::resetHVACSizingGlobals(*state, state->dataSize->CurZoneEqNum, 0, FirstPass); EXPECT_FALSE(FirstPass); } diff --git a/tst/EnergyPlus/unit/DataZoneEquipment.unit.cc b/tst/EnergyPlus/unit/DataZoneEquipment.unit.cc index c714d918cd3..a3f2721445c 100644 --- a/tst/EnergyPlus/unit/DataZoneEquipment.unit.cc +++ b/tst/EnergyPlus/unit/DataZoneEquipment.unit.cc @@ -92,7 +92,7 @@ TEST_F(EnergyPlusFixture, DataZoneEquipment_TestCalcDesignSpecificationOutdoorAi // #6225 state->dataHeatBal->Zone.allocate(1); - DataSizing::OARequirements.allocate(1); + state->dataSize->OARequirements.allocate(1); state->dataHeatBal->ZoneIntGain.allocate(1); state->dataHeatBal->People.allocate(1); state->dataScheduleMgr->Schedule.allocate(2); @@ -115,11 +115,11 @@ TEST_F(EnergyPlusFixture, DataZoneEquipment_TestCalcDesignSpecificationOutdoorAi state->dataContaminantBalance->OutdoorCO2 = 400.0; state->dataContaminantBalance->ZoneCO2GainFromPeople(1) = 3.82E-8 * 5.0; - DataSizing::NumOARequirements = 1; - DataSizing::OARequirements(1).Name = "ZONE OA"; - DataSizing::OARequirements(1).OAFlowMethod = DataSizing::ZOAM_ProportionalControlSchOcc; - DataSizing::OARequirements(1).OAFlowPerPerson = 0.002; - DataSizing::OARequirements(1).OAFlowPerArea = 0.003; + state->dataSize->NumOARequirements = 1; + state->dataSize->OARequirements(1).Name = "ZONE OA"; + state->dataSize->OARequirements(1).OAFlowMethod = DataSizing::ZOAM_ProportionalControlSchOcc; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.002; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.003; state->dataHeatBal->ZoneIntGain(1).NOFOCC = 0.5; state->dataScheduleMgr->Schedule(1).CurrentValue = 1.0; state->dataScheduleMgr->Schedule(2).CurrentValue = 131.881995; @@ -136,19 +136,19 @@ TEST_F(EnergyPlusFixture, DataZoneEquipment_TestCalcDesignSpecificationOutdoorAi // Test ZOAM_ProportionalControlDesOcc state->dataContaminantBalance->ZoneAirCO2(1) = 500.0; - DataSizing::OARequirements(1).OAFlowMethod = DataSizing::ZOAM_ProportionalControlDesOcc; + state->dataSize->OARequirements(1).OAFlowMethod = DataSizing::ZOAM_ProportionalControlDesOcc; OAVolumeFlowRate = CalcDesignSpecificationOutdoorAir(*state, 1, 1, false, false); EXPECT_NEAR(0.0315879, OAVolumeFlowRate, 0.00001); // Test ZOAM_IAQP - DataSizing::OARequirements(1).OAFlowMethod = DataSizing::ZOAM_IAQP; + state->dataSize->OARequirements(1).OAFlowMethod = DataSizing::ZOAM_IAQP; state->dataContaminantBalance->ZoneSysContDemand(1).OutputRequiredToCO2SP = 0.2 * state->dataEnvrn->StdRhoAir; OAVolumeFlowRate = CalcDesignSpecificationOutdoorAir(*state, 1, 1, false, false); EXPECT_NEAR(0.2, OAVolumeFlowRate, 0.00001); // Cleanup state->dataHeatBal->Zone.deallocate(); - DataSizing::OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); state->dataScheduleMgr->Schedule.deallocate(); state->dataHeatBal->People.deallocate(); diff --git a/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc b/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc index 19578f9d233..e1999f50186 100644 --- a/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc +++ b/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc @@ -2823,8 +2823,8 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_OnOASystemTest) state->dataGlobal->SysSizingCalc = true; SizingManager::ManageSizing(*state); - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 1; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 1; GetDesiccantDehumidifierInput(*state); EXPECT_EQ(1, NumDesicDehums); @@ -2835,9 +2835,9 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_OnOASystemTest) CompIndex = NumGenericDesicDehums; SimDesiccantDehumidifier(*state, CompName, FirstHVACIteration, CompIndex); - RegCoilDesInletTemp = FinalSysSizing(DataSizing::CurSysNum).HeatRetTemp; + RegCoilDesInletTemp = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetTemp; RegCoilDesOutletTemp = DesicDehum(DesicDehumNum).RegenSetPointTemp; - RegCoilInletAirMassFlowRate = FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow * state->dataEnvrn->StdRhoAir; + RegCoilInletAirMassFlowRate = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow * state->dataEnvrn->StdRhoAir; RegCoilCapacity = RegCoilInletAirMassFlowRate * PsyCpAirFnW(0.0) * (RegCoilDesOutletTemp - RegCoilDesInletTemp); for (loop = 1; loop <= NumHeatingCoils; ++loop) { @@ -4003,8 +4003,8 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_OnPrimaryAirSystemTest) state->dataGlobal->SysSizingCalc = true; SizingManager::ManageSizing(*state); - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; GetDesiccantDehumidifierInput(*state); EXPECT_EQ(1, NumDesicDehums); @@ -4015,9 +4015,9 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_OnPrimaryAirSystemTest) CompIndex = NumGenericDesicDehums; SimDesiccantDehumidifier(*state, CompName, FirstHVACIteration, CompIndex); - RegCoilDesInletTemp = FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp; + RegCoilDesInletTemp = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp; RegCoilDesOutletTemp = DesicDehum(DesicDehumNum).RegenSetPointTemp; - RegCoilInletAirMassFlowRate = FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + RegCoilInletAirMassFlowRate = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow * state->dataEnvrn->StdRhoAir; RegCoilCapacity = RegCoilInletAirMassFlowRate * PsyCpAirFnW(0.0) * (RegCoilDesOutletTemp - RegCoilDesInletTemp); for (loop = 1; loop <= NumHeatingCoils; ++loop) { @@ -5421,8 +5421,8 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_RegenAirHeaterHWCoilSizingTest) state->dataGlobal->SysSizingCalc = true; SizingManager::ManageSizing(*state); - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; GetDesiccantDehumidifierInput(*state); EXPECT_EQ(1, NumDesicDehums); @@ -5435,10 +5435,10 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_RegenAirHeaterHWCoilSizingTest) CompIndex = NumGenericDesicDehums; // set design parameters and calculate HW coil design capacity RegCoilDesInletTemp = 8.5; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp = RegCoilDesInletTemp; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp = RegCoilDesInletTemp; RegCoilDesOutletTemp = DesiccantDehumidifiers::DesicDehum(DesicDehumNum).RegenSetPointTemp; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow = 1.07; - RegCoilInletAirMassFlowRate = state->dataEnvrn->StdRhoAir * DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.07; + RegCoilInletAirMassFlowRate = state->dataEnvrn->StdRhoAir * state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow; RegCoilCapacity = RegCoilInletAirMassFlowRate * PsyCpAirFnW(0.0) * (RegCoilDesOutletTemp - RegCoilDesInletTemp); // simulate to determine HW coil design capacity @@ -6664,8 +6664,8 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_VSCoolingCoilOnPrimaryAirSystemTest) state->dataGlobal->SysSizingCalc = true; SizingManager::ManageSizing(*state); - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; GetDesiccantDehumidifierInput(*state); EXPECT_EQ(1, NumDesicDehums); @@ -6680,9 +6680,9 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_VSCoolingCoilOnPrimaryAirSystemTest) CompIndex = NumGenericDesicDehums; SimDesiccantDehumidifier(*state, CompName, FirstHVACIteration, CompIndex); - RegCoilDesInletTemp = FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp; + RegCoilDesInletTemp = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp; RegCoilDesOutletTemp = DesicDehum(DesicDehumNum).RegenSetPointTemp; - RegCoilInletAirMassFlowRate = FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + RegCoilInletAirMassFlowRate = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow * state->dataEnvrn->StdRhoAir; RegCoilCapacity = RegCoilInletAirMassFlowRate * PsyCpAirFnW(0.0) * (RegCoilDesOutletTemp - RegCoilDesInletTemp); for (loop = 1; loop <= NumHeatingCoils; ++loop) { diff --git a/tst/EnergyPlus/unit/DualDuct.unit.cc b/tst/EnergyPlus/unit/DualDuct.unit.cc index 964e9975882..4d0a3e5e019 100644 --- a/tst/EnergyPlus/unit/DualDuct.unit.cc +++ b/tst/EnergyPlus/unit/DualDuct.unit.cc @@ -88,7 +88,7 @@ TEST_F(EnergyPlusFixture, TestDualDuctOAMassFlowRateUsingStdRhoAir) int numOfdd_airterminals = 2; state->dataHeatBal->Zone.allocate(1); - DataSizing::OARequirements.allocate(1); + state->dataSize->OARequirements.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); state->dataHeatBal->ZoneIntGain.allocate(1); @@ -114,10 +114,10 @@ TEST_F(EnergyPlusFixture, TestDualDuctOAMassFlowRateUsingStdRhoAir) state->dataAirLoop->AirLoopFlow(1).OAFrac = 0.5; state->dataAirLoop->AirLoopControlInfo(1).AirLoopDCVFlag = true; - DataSizing::OARequirements(1).Name = "CM DSOA WEST ZONE"; - DataSizing::OARequirements(1).OAFlowMethod = DataSizing::OAFlowSum; - DataSizing::OARequirements(1).OAFlowPerPerson = 0.003149; - DataSizing::OARequirements(1).OAFlowPerArea = 0.000407; + state->dataSize->OARequirements(1).Name = "CM DSOA WEST ZONE"; + state->dataSize->OARequirements(1).OAFlowMethod = DataSizing::OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.003149; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.000407; state->dataEnvrn->StdRhoAir = 1.20; state->dataHeatBal->ZoneIntGain(1).NOFOCC = 0.1; @@ -130,7 +130,7 @@ TEST_F(EnergyPlusFixture, TestDualDuctOAMassFlowRateUsingStdRhoAir) // Cleanup state->dataHeatBal->Zone.deallocate(); - DataSizing::OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); state->dataAirLoop->AirLoopControlInfo.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); diff --git a/tst/EnergyPlus/unit/ElectricBaseboardRadiator.unit.cc b/tst/EnergyPlus/unit/ElectricBaseboardRadiator.unit.cc index 0516158469b..bad880c2ac8 100644 --- a/tst/EnergyPlus/unit/ElectricBaseboardRadiator.unit.cc +++ b/tst/EnergyPlus/unit/ElectricBaseboardRadiator.unit.cc @@ -595,18 +595,18 @@ TEST_F(EnergyPlusFixture, ElectricBaseboardRadConv_SizingTest) EXPECT_EQ(ElectricBaseboardRadiator::ElecBaseboard(2).ZonePtr, 2); EXPECT_EQ(ElectricBaseboardRadiator::ElecBaseboard(3).ZonePtr, 3); - DataSizing::FinalZoneSizing.allocate(3); - DataSizing::ZoneEqSizing.allocate(3); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(3); + state->dataSize->ZoneEqSizing.allocate(3); + state->dataSize->ZoneSizingRunDone = true; BaseboardNum = 1; CntrlZoneNum = 1; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = ElectricBaseboardRadiator::ElecBaseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; // do electric baseboard sizing ElectricBaseboardRadiator::SizeElectricBaseboard(*state, BaseboardNum); // check user specified hardsized nominal capacity @@ -619,12 +619,12 @@ TEST_F(EnergyPlusFixture, ElectricBaseboardRadConv_SizingTest) BaseboardNum = 2; CntrlZoneNum = 2; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = ElectricBaseboardRadiator::ElecBaseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 2000.0; state->dataHeatBal->Zone(CntrlZoneNum).FloorArea = 100.0; // do electric baseboard sizing ElectricBaseboardRadiator::SizeElectricBaseboard(*state, BaseboardNum); @@ -639,12 +639,12 @@ TEST_F(EnergyPlusFixture, ElectricBaseboardRadConv_SizingTest) BaseboardNum = 3; CntrlZoneNum = 3; - DataSizing::CurZoneEqNum = CntrlZoneNum; + state->dataSize->CurZoneEqNum = CntrlZoneNum; FirstHVACIteration = true; - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - DataSizing::ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(CntrlZoneNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = ElectricBaseboardRadiator::ElecBaseboard(BaseboardNum).HeatingCapMethod; - DataSizing::FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 3000.0; + state->dataSize->FinalZoneSizing(CntrlZoneNum).NonAirSysDesHeatLoad = 3000.0; state->dataHeatBal->Zone(CntrlZoneNum).FloorArea = 100.0; // do electric baseboard sizing ElectricBaseboardRadiator::SizeElectricBaseboard(*state, BaseboardNum); diff --git a/tst/EnergyPlus/unit/EvaporativeCoolers.unit.cc b/tst/EnergyPlus/unit/EvaporativeCoolers.unit.cc index 5cc4b08bdc2..0317d97510f 100644 --- a/tst/EnergyPlus/unit/EvaporativeCoolers.unit.cc +++ b/tst/EnergyPlus/unit/EvaporativeCoolers.unit.cc @@ -173,24 +173,24 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeIndEvapCoolerTest) Real64 PrimaryAirDesignFlow(0.0); Real64 SecondaryAirDesignFlow(0.0); - DataSizing::SysSizingRunDone = true; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // allocate - DataSizing::CurSysNum = 1; - FinalSysSizing.allocate(CurSysNum); - DataSizing::FinalSysSizing(1).DesMainVolFlow = 1.0; - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.4; - state->dataAirSystemsData->PrimaryAirSystems.allocate(CurSysNum); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp.allocate(1); + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.4; + state->dataAirSystemsData->PrimaryAirSystems.allocate(state->dataSize->CurSysNum); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch.allocate(1); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "INDRDD EVAP COOLER"; // Set Primary Air Data - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumBranches = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).TotalComponents = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumBranches = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).TotalComponents = 1; std::string const idf_objects = delimited_string({ " EvaporativeCooler:Indirect:ResearchSpecial,", @@ -226,12 +226,12 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeIndEvapCoolerTest) GetEvapInput(*state); // Set Parameters for Evap Cooler on Main Air Loop System - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; EvapCond(EvapCoolNum).DesVolFlowRate = DataSizing::AutoSize; EvapCond(EvapCoolNum).IndirectVolFlowRate = DataSizing::AutoSize; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.0; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; - PrimaryAirDesignFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; + PrimaryAirDesignFlow = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow; SecondaryAirDesignFlow = PrimaryAirDesignFlow * EvapCond(EvapCoolNum).IndirectVolFlowScalingFactor; // Test Indirect Evaporative Cooler Primary/Secondary Air Design Flow Rate on Main Air Loop @@ -242,10 +242,10 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeIndEvapCoolerTest) // Set Parameters for Evap Cooler on OA System EvapCond(EvapCoolNum).EvapCoolerName = "EvapCool On OA System", EvapCond(EvapCoolNum).DesVolFlowRate = DataSizing::AutoSize; EvapCond(EvapCoolNum).IndirectVolFlowRate = DataSizing::AutoSize; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.0; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; - PrimaryAirDesignFlow = FinalSysSizing(CurSysNum).DesOutAirVolFlow; - SecondaryAirDesignFlow = max(PrimaryAirDesignFlow, 0.5 * FinalSysSizing(CurSysNum).DesMainVolFlow); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; + PrimaryAirDesignFlow = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow; + SecondaryAirDesignFlow = max(PrimaryAirDesignFlow, 0.5 * state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow); SecondaryAirDesignFlow = SecondaryAirDesignFlow * EvapCond(EvapCoolNum).IndirectVolFlowScalingFactor; // Test Indirect Evaporative Cooler Primary/Secondary Air Design Flow Rate on OA System @@ -255,7 +255,7 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeIndEvapCoolerTest) EvapCond.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - FinalSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); } TEST_F(EnergyPlusFixture, EvapCoolers_SizeDirEvapCoolerTest) @@ -266,23 +266,23 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeDirEvapCoolerTest) Real64 PrimaryAirDesignFlow(0.0); Real64 RecirWaterPumpDesignPower(0.0); - DataSizing::SysSizingRunDone = true; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::CurSysNum = 1; - FinalSysSizing.allocate(CurSysNum); - DataSizing::FinalSysSizing(1).DesMainVolFlow = 1.0; - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.4; - state->dataAirSystemsData->PrimaryAirSystems.allocate(CurSysNum); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp.allocate(1); + state->dataSize->SysSizingRunDone = true; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.4; + state->dataAirSystemsData->PrimaryAirSystems.allocate(state->dataSize->CurSysNum); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch.allocate(1); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "DIRECTEVAPCOOLER"; // Set Primary Air Data - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumBranches = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).TotalComponents = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumBranches = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).TotalComponents = 1; std::string const idf_objects = delimited_string({ " EvaporativeCooler:Direct:ResearchSpecial,", @@ -309,9 +309,9 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeDirEvapCoolerTest) EXPECT_EQ(DataSizing::AutoSize, EvapCond(EvapCoolNum).DesVolFlowRate); EXPECT_EQ(DataSizing::AutoSize, EvapCond(EvapCoolNum).RecircPumpPower); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; - FinalSysSizing(CurSysNum).DesMainVolFlow = 0.50; - PrimaryAirDesignFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 0.50; + PrimaryAirDesignFlow = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow; RecirWaterPumpDesignPower = PrimaryAirDesignFlow * EvapCond(EvapCoolNum).RecircPumpSizingFactor; // Test Direct Evaporative Cooler Primary Air Design Flow Rate sizing @@ -322,7 +322,7 @@ TEST_F(EnergyPlusFixture, EvapCoolers_SizeDirEvapCoolerTest) EvapCond.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - FinalSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); } TEST_F(EnergyPlusFixture, EvaporativeCoolers_CalcSecondaryAirOutletCondition) @@ -483,12 +483,12 @@ TEST_F(EnergyPlusFixture, EvaporativeCoolers_SizeEvapCooler) auto &thisEvapCooler = EvapCond(EvapCoolNum); // set up sizing stuff - DataSizing::SysSizingRunDone = true; - DataSizing::ZoneSizingRunDone = false; - DataSizing::CurSysNum = 1; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = false; + state->dataSize->CurSysNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).NumBranches = 1; state->dataAirSystemsData->PrimaryAirSystems(1).Branch.allocate(1); @@ -496,9 +496,9 @@ TEST_F(EnergyPlusFixture, EvaporativeCoolers_SizeEvapCooler) state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "MyEvapCooler"; thisEvapCooler.EvapCoolerName = "MyEvapCooler"; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(1).DesMainVolFlow = 1.0; - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.4; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.4; // set up the structure to size the flow rates for an RDDSpecial thisEvapCooler.evapCoolerType = EvapCoolerType::IndirectRDDSpecial; @@ -549,9 +549,9 @@ TEST_F(EnergyPlusFixture, EvaporativeCoolers_SizeEvapCooler) // clean up EvapCond.deallocate(); - DataSizing::FinalSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - DataSizing::SysSizInput.deallocate(); + state->dataSize->SysSizInput.deallocate(); } TEST_F(EnergyPlusFixture, DefaultAutosizeIndEvapCoolerTest) @@ -563,24 +563,24 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeIndEvapCoolerTest) Real64 SecondaryFanPower(0.0); Real64 RecirculatingWaterPumpPower(0.0); - DataSizing::SysSizingRunDone = true; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; // allocate - DataSizing::CurSysNum = 1; - FinalSysSizing.allocate(CurSysNum); - DataSizing::FinalSysSizing(1).DesMainVolFlow = 1.0; - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.4; - state->dataAirSystemsData->PrimaryAirSystems.allocate(CurSysNum); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp.allocate(1); + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.4; + state->dataAirSystemsData->PrimaryAirSystems.allocate(state->dataSize->CurSysNum); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch.allocate(1); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "INDRDD EVAP COOLER"; // Set Primary Air Data - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumBranches = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).TotalComponents = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumBranches = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).TotalComponents = 1; std::string const idf_objects = delimited_string({ " EvaporativeCooler:Indirect:ResearchSpecial,", @@ -629,10 +629,10 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeIndEvapCoolerTest) EXPECT_EQ(DataSizing::AutoSize, EvapCond(EvapCoolNum).IndirectRecircPumpPower); // Set Parameters for Evap Cooler on Main Air Loop System - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.0; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.2; - PrimaryAirDesignFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; + PrimaryAirDesignFlow = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow; SecondaryAirDesignFlow = PrimaryAirDesignFlow * EvapCond(EvapCoolNum).IndirectVolFlowScalingFactor; // Test Indirect Evaporative Cooler Primary/Secondary Air Design Flow Rate on Main Air Loop @@ -649,7 +649,7 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeIndEvapCoolerTest) EvapCond.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - FinalSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); } TEST_F(EnergyPlusFixture, DefaultAutosizeDirEvapCoolerTest) @@ -659,23 +659,23 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeDirEvapCoolerTest) Real64 PrimaryAirDesignFlow(0.0); Real64 RecirWaterPumpDesignPower(0.0); - DataSizing::SysSizingRunDone = true; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::CurSysNum = 1; - FinalSysSizing.allocate(CurSysNum); - DataSizing::FinalSysSizing(1).DesMainVolFlow = 1.0; - DataSizing::FinalSysSizing(1).DesOutAirVolFlow = 0.4; - state->dataAirSystemsData->PrimaryAirSystems.allocate(CurSysNum); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp.allocate(1); + state->dataSize->SysSizingRunDone = true; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 0.4; + state->dataAirSystemsData->PrimaryAirSystems.allocate(state->dataSize->CurSysNum); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch.allocate(1); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "DIRECTEVAPCOOLER"; // Set Primary Air Data - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumBranches = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).TotalComponents = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumBranches = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).TotalComponents = 1; std::string const idf_objects = delimited_string({ " EvaporativeCooler:Direct:ResearchSpecial,", @@ -706,9 +706,9 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeDirEvapCoolerTest) EXPECT_EQ(DataSizing::AutoSize, EvapCond(EvapCoolNum).RecircPumpPower); // do local sizing calculations - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; - FinalSysSizing(CurSysNum).DesMainVolFlow = 0.50; - PrimaryAirDesignFlow = FinalSysSizing(CurSysNum).DesMainVolFlow; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 0.50; + PrimaryAirDesignFlow = state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow; RecirWaterPumpDesignPower = PrimaryAirDesignFlow * EvapCond(EvapCoolNum).RecircPumpSizingFactor; // Test Direct Evaporative Cooler Primary Air Design Flow Rate sizing @@ -718,7 +718,7 @@ TEST_F(EnergyPlusFixture, DefaultAutosizeDirEvapCoolerTest) EvapCond.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - FinalSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); } TEST_F(EnergyPlusFixture, DirectEvapCoolerResearchSpecialCalcTest) @@ -822,19 +822,19 @@ TEST_F(EnergyPlusFixture, DirectEvapCoolerAutosizeWithoutSysSizingRunDone) { int const EvapCoolNum(1); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; - - DataSizing::CurSysNum = 1; - state->dataAirSystemsData->PrimaryAirSystems.allocate(CurSysNum); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp.allocate(1); + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; + + state->dataSize->CurSysNum = 1; + state->dataAirSystemsData->PrimaryAirSystems.allocate(state->dataSize->CurSysNum); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch.allocate(1); + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp.allocate(1); state->dataAirSystemsData->PrimaryAirSystems(1).Branch(1).Comp(1).Name = "DIRECTEVAPCOOLER"; // Set Primary Air Data - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).NumBranches = 1; - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).TotalComponents = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumBranches = 1; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).TotalComponents = 1; std::string const idf_objects = delimited_string({ " EvaporativeCooler:Direct:ResearchSpecial,", @@ -857,15 +857,15 @@ TEST_F(EnergyPlusFixture, DirectEvapCoolerAutosizeWithoutSysSizingRunDone) ASSERT_TRUE(process_idf(idf_objects)); GetEvapInput(*state); - + auto &EvapCond(state->dataEvapCoolers->EvapCond); // check blank autosizable input fields default to autosize EXPECT_EQ(DataSizing::AutoSize, EvapCond(EvapCoolNum).DesVolFlowRate); // set component name on primary air branch - state->dataAirSystemsData->PrimaryAirSystems(CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; - DataSizing::SysSizingRunDone = false; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).Branch(1).Comp(1).Name = EvapCond(EvapCoolNum).EvapCoolerName; + state->dataSize->SysSizingRunDone = false; // catch Primary Air Design Flow Rate autosize fatal error message ASSERT_THROW(EvaporativeCoolers::SizeEvapCooler(*state, 1), std::runtime_error); diff --git a/tst/EnergyPlus/unit/EvaporativeFluidCoolers.unit.cc b/tst/EnergyPlus/unit/EvaporativeFluidCoolers.unit.cc index 9a3b3c8c507..da70f136d45 100644 --- a/tst/EnergyPlus/unit/EvaporativeFluidCoolers.unit.cc +++ b/tst/EnergyPlus/unit/EvaporativeFluidCoolers.unit.cc @@ -142,12 +142,12 @@ TEST_F(EvapFluidCoolersFixture, EvapFluidCoolerSpecs_getDesignCapacitiesTest) thisEFC.PerformanceInputMethod_Num = PIM::UFactor; state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantFinalSizesOkayToReport = false; - DataSizing::SaveNumPlantComps = 0; + state->dataSize->SaveNumPlantComps = 0; thisEFC.DesignWaterFlowRate = 0.001; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DeltaT = 5.0; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).ExitTemp = 20.0; + state->dataSize->PlantSizData(1).ExitTemp = 20.0; // Now set the specific data for the actual test MaxLoad = 0.0; diff --git a/tst/EnergyPlus/unit/FanCoilUnits.unit.cc b/tst/EnergyPlus/unit/FanCoilUnits.unit.cc index 7fa1b5c504b..8d4b28e9800 100644 --- a/tst/EnergyPlus/unit/FanCoilUnits.unit.cc +++ b/tst/EnergyPlus/unit/FanCoilUnits.unit.cc @@ -1794,7 +1794,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -2075,23 +2075,23 @@ namespace EnergyPlus { state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 30.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.01; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 20.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRat = 0.005; - FinalZoneSizing(CurZoneEqNum).DesCoolLoad = 4000.0; - FinalZoneSizing(CurZoneEqNum).DesHeatLoad = 4000.0; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolLoad = 4000.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatLoad = 4000.0; state->dataEnvrn->StdRhoAir = 1.2; state->dataGlobal->BeginEnvrnFlag = true; @@ -2496,7 +2496,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -2784,23 +2784,23 @@ namespace EnergyPlus { state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 30.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.01; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 20.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRat = 0.005; - FinalZoneSizing(CurZoneEqNum).DesCoolLoad = 4000.0; - FinalZoneSizing(CurZoneEqNum).DesHeatLoad = 4000.0; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolLoad = 4000.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatLoad = 4000.0; state->dataEnvrn->StdRhoAir = 1.2; state->dataGlobal->BeginEnvrnFlag = true; @@ -2901,7 +2901,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -3197,23 +3197,23 @@ namespace EnergyPlus { state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 30.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.01; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 20.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRat = 0.005; - FinalZoneSizing(CurZoneEqNum).DesCoolLoad = 4000.0; - FinalZoneSizing(CurZoneEqNum).DesHeatLoad = 4000.0; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.01; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolLoad = 4000.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatLoad = 4000.0; state->dataEnvrn->StdRhoAir = 1.2; state->dataGlobal->BeginEnvrnFlag = true; @@ -3305,7 +3305,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -3559,16 +3559,16 @@ namespace EnergyPlus { state->dataEnvrn->HolidayIndex = 0; state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - auto &fZoneSizing(FinalZoneSizing(1)); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + auto &fZoneSizing(state->dataSize->FinalZoneSizing(1)); fZoneSizing.DesCoolVolFlow = 0.5; fZoneSizing.DesHeatVolFlow = 0.5; fZoneSizing.DesCoolCoilInTemp = 30.0; @@ -3672,7 +3672,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -3926,16 +3926,16 @@ namespace EnergyPlus { state->dataEnvrn->HolidayIndex = 0; state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - auto &fZoneSizing(FinalZoneSizing(1)); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + auto &fZoneSizing(state->dataSize->FinalZoneSizing(1)); fZoneSizing.DesCoolVolFlow = 0.5; fZoneSizing.DesHeatVolFlow = 0.5; fZoneSizing.DesCoolCoilInTemp = 30.0; @@ -4039,7 +4039,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); @@ -4293,16 +4293,16 @@ namespace EnergyPlus { state->dataEnvrn->HolidayIndex = 0; state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); - ZoneEqSizing(CurZoneEqNum).SizingMethod = 0; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod = 0; state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(1); - auto &fZoneSizing(FinalZoneSizing(1)); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + auto &fZoneSizing(state->dataSize->FinalZoneSizing(1)); fZoneSizing.DesCoolVolFlow = 0.5; fZoneSizing.DesHeatVolFlow = 0.5; fZoneSizing.DesCoolCoilInTemp = 30.0; @@ -4508,7 +4508,7 @@ namespace EnergyPlus { state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); GetZoneData(*state, ErrorsFound); @@ -4604,12 +4604,12 @@ namespace EnergyPlus { state->dataEnvrn->HolidayIndex = 0; state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; thisFanCoil.DesignHeatingCapacity = 6000.0; diff --git a/tst/EnergyPlus/unit/Fans.unit.cc b/tst/EnergyPlus/unit/Fans.unit.cc index 0d0f0e7bb2b..5ca524fef42 100644 --- a/tst/EnergyPlus/unit/Fans.unit.cc +++ b/tst/EnergyPlus/unit/Fans.unit.cc @@ -65,9 +65,9 @@ using namespace EnergyPlus::Fans; TEST_F(EnergyPlusFixture, Fans_FanSizing) { - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataFans->NumFans = 1; Fan.allocate(state->dataFans->NumFans); FanNumericFields.allocate(state->dataFans->NumFans); @@ -85,15 +85,15 @@ TEST_F(EnergyPlusFixture, Fans_FanSizing) FanNumericFields(FanNum).FieldNames(3) = "Maximum Flow Rate"; - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; // DataNonZoneNonAirloopValue must be set when CurZoneEqNum and CurSysNum = 0 - DataNonZoneNonAirloopValue = 1.00635; + state->dataSize->DataNonZoneNonAirloopValue = 1.00635; SizeFan(*state, FanNum); EXPECT_DOUBLE_EQ(1.00635, Fan(FanNum).MaxAirFlowRate); - DataNonZoneNonAirloopValue = 0.0; + state->dataSize->DataNonZoneNonAirloopValue = 0.0; EXPECT_NEAR(1.0371, Fan(FanNum).DesignPointFEI, 0.0001); } diff --git a/tst/EnergyPlus/unit/FaultsManager.unit.cc b/tst/EnergyPlus/unit/FaultsManager.unit.cc index 8ecf62b2fb0..ad9db9f6218 100644 --- a/tst/EnergyPlus/unit/FaultsManager.unit.cc +++ b/tst/EnergyPlus/unit/FaultsManager.unit.cc @@ -222,12 +222,12 @@ TEST_F(EnergyPlusFixture, FaultsManager_FaultFoulingAirFilters_CheckFaultyAirFil EXPECT_NO_THROW(CheckAndReadFaults(*state)); compare_err_stream("", true); - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; // DataNonZoneNonAirloopValue must be set when CurZoneEqNum and CurSysNum = 0 - DataSizing::DataNonZoneNonAirloopValue = 0.114; + state->dataSize->DataNonZoneNonAirloopValue = 0.114; // We expect this one to throw, I changed the fan design pressure to 400, and made it non autosized. int FanNum = 1; EXPECT_NO_THROW(Fans::SizeFan(*state, FanNum)); @@ -311,12 +311,12 @@ TEST_F(EnergyPlusFixture, FaultsManager_FaultFoulingAirFilters_CheckFaultyAirFil EXPECT_NO_THROW(CheckAndReadFaults(*state)); compare_err_stream("", true); - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; // DataNonZoneNonAirloopValue must be set when CurZoneEqNum and CurSysNum = 0 - DataSizing::DataNonZoneNonAirloopValue = 0.15; + state->dataSize->DataNonZoneNonAirloopValue = 0.15; // We expect this one to throw, I changed the fan design pressure to 400, and made it non autosized. int FanNum = 1; EXPECT_ANY_THROW(Fans::SizeFan(*state, FanNum)); diff --git a/tst/EnergyPlus/unit/HVACControllers.unit.cc b/tst/EnergyPlus/unit/HVACControllers.unit.cc index 46072c84fde..11186559877 100644 --- a/tst/EnergyPlus/unit/HVACControllers.unit.cc +++ b/tst/EnergyPlus/unit/HVACControllers.unit.cc @@ -979,22 +979,22 @@ TEST_F(EnergyPlusFixture, HVACControllers_MaxFlowZero) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = 3; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).Name = "CHILLED WATER COIL"; - DataSizing::NumPltSizInput = 1; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).DeltaT = 5.0; - DataSizing::PlantSizData(1).ExitTemp = 6.0; - DataSizing::PlantSizData(1).PlantLoopName = "CHW LOOP"; - DataSizing::PlantSizData(1).LoopType = DataSizing::CoolingLoop; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).ExitTemp = 6.0; + state->dataSize->PlantSizData(1).PlantLoopName = "CHW LOOP"; + state->dataSize->PlantSizData(1).LoopType = DataSizing::CoolingLoop; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; state->dataPlnt->PlantFirstSizesOkayToReport = true; state->dataPlnt->PlantFinalSizesOkayToReport = true; - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::UnitarySysEqSizing(1).CoolingCapacity = false; - DataSizing::UnitarySysEqSizing(1).HeatingCapacity = false; - DataSizing::UnitarySysEqSizing.deallocate(); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing(1).CoolingCapacity = false; + state->dataSize->UnitarySysEqSizing(1).HeatingCapacity = false; + state->dataSize->UnitarySysEqSizing.deallocate(); bool SimZoneEquipment(false); // compare_err_stream("", true); // reset error stream diff --git a/tst/EnergyPlus/unit/HVACFan.unit.cc b/tst/EnergyPlus/unit/HVACFan.unit.cc index 87591cac2d1..77fcdb67331 100644 --- a/tst/EnergyPlus/unit/HVACFan.unit.cc +++ b/tst/EnergyPlus/unit/HVACFan.unit.cc @@ -93,9 +93,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_TestGetFunctions1) std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); // triggers sizing call Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; // get function @@ -136,14 +136,14 @@ TEST_F(EnergyPlusFixture, SystemFanObj_FanSizing1) state->dataEnvrn->StdRhoAir = 1.0; std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; - DataSizing::DataNonZoneNonAirloopValue = 1.00635; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->DataNonZoneNonAirloopValue = 1.00635; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); // triggers sizing call Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; // get function EXPECT_NEAR(1.00635, locFanSizeVdot, 0.00001); - DataSizing::DataNonZoneNonAirloopValue = 0.0; + state->dataSize->DataNonZoneNonAirloopValue = 0.0; } TEST_F(EnergyPlusFixture, SystemFanObj_TwoSpeedFanPowerCalc1) @@ -185,9 +185,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_TwoSpeedFanPowerCalc1) std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; // get function @@ -257,9 +257,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_TwoSpeedFanPowerCalc2) CurveManager::GetCurveInput(*state); std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; @@ -316,9 +316,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_TwoSpeedFanPowerCalc3) std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; // get function @@ -415,9 +415,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_TwoSpeedFanPowerCalc4) CurveManager::GetCurveInput(*state); std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; @@ -504,9 +504,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_DiscreteMode_noPowerFFlowCurve) ASSERT_TRUE(process_idf(idf_objects)); std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); Real64 locFanSizeVdot = HVACFan::fanObjs[0]->designAirVolFlowRate; @@ -606,9 +606,9 @@ TEST_F(EnergyPlusFixture, SystemFanObj_DiscreteMode_EMSPressureRiseResetTest) std::string fanName = "TEST FAN"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.0; HVACFan::fanObjs[0]->simulate(*state, _, _, _, _); diff --git a/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc b/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc index fbae3638bc5..4f9ef6b14d3 100644 --- a/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc +++ b/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc @@ -386,7 +386,7 @@ TEST_F(EnergyPlusFixture, HXAssistCCUnitarySystem_VStest1) DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -427,7 +427,7 @@ TEST_F(EnergyPlusFixture, HXAssistCCUnitarySystem_VStest1) state->dataEnvrn->OutWetBulbTemp = 30.0; // initialize other incidentals that are used within the UnitarySystem module during calculations - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = 1000.0; // heating load diff --git a/tst/EnergyPlus/unit/HVACSizingSimulationManager.unit.cc b/tst/EnergyPlus/unit/HVACSizingSimulationManager.unit.cc index 2d8322b0a9e..774f5bfd9b1 100644 --- a/tst/EnergyPlus/unit/HVACSizingSimulationManager.unit.cc +++ b/tst/EnergyPlus/unit/HVACSizingSimulationManager.unit.cc @@ -89,15 +89,15 @@ class HVACSizingSimulationManagerTest : public EnergyPlusFixture state->dataWeatherManager->Environment(2).DesignDayNum = 2; // setup plant sizing data structure - NumPltSizInput = 1; - PlantSizData.allocate(NumPltSizInput); - PlantSizData(NumPltSizInput).SizingFactorOption = NoSizingFactorMode; - PlantSizData(NumPltSizInput).DesVolFlowRate = 0.002; - PlantSizData(NumPltSizInput).DeltaT = 10; - PlantSizData(NumPltSizInput).ConcurrenceOption = Coincident; - PlantSizData(NumPltSizInput).NumTimeStepsInAvg = 1; - PlantSizData(NumPltSizInput).PlantLoopName = "Test Plant Loop 1"; - PlantSizData(NumPltSizInput).LoopType = HeatingLoop; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).SizingFactorOption = NoSizingFactorMode; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).DesVolFlowRate = 0.002; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).DeltaT = 10; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).ConcurrenceOption = Coincident; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).NumTimeStepsInAvg = 1; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).PlantLoopName = "Test Plant Loop 1"; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).LoopType = HeatingLoop; // set up a plant loop state->dataPlnt->TotNumLoops = 1; @@ -487,8 +487,8 @@ TEST_F(HVACSizingSimulationManagerTest, TopDownTestSysTimestep1) // to coincident plant sizing with HVAC sizing simulation // this test runs 1 system timestep for each zone timestep - GlobalCoolSizingFactor = 1.0; - PlantSizData(NumPltSizInput).SizingFactorOption = GlobalCoolingSizingFactorMode; + state->dataSize->GlobalCoolSizingFactor = 1.0; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).SizingFactorOption = GlobalCoolingSizingFactorMode; HVACSizingSimulationManager testSizeSimManagerObj; @@ -570,9 +570,9 @@ TEST_F(HVACSizingSimulationManagerTest, VarySysTimesteps) // to coincident plant sizing with HVAC sizing simulation // this test run varies the system timestep some to test irregular - PlantSizData(NumPltSizInput).NumTimeStepsInAvg = 2; - GlobalHeatSizingFactor = 1.0; - PlantSizData(NumPltSizInput).SizingFactorOption = GlobalHeatingSizingFactorMode; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).NumTimeStepsInAvg = 2; + state->dataSize->GlobalHeatSizingFactor = 1.0; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).SizingFactorOption = GlobalHeatingSizingFactorMode; HVACSizingSimulationManager testSizeSimManagerObj; diff --git a/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc b/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc index b393f7c870e..f7b7cf00bcd 100644 --- a/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc +++ b/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc @@ -45,7 +45,7 @@ // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -// EnergyPlus::Standalone ERV Unit Tests +// Standalone ERV Unit Tests // Google Test Headers #include @@ -65,14 +65,14 @@ #include using namespace EnergyPlus; -using namespace EnergyPlus::HVACStandAloneERV; +using namespace HVACStandAloneERV; using namespace ObjexxFCL; -using namespace EnergyPlus::DataHeatBalance; -using namespace EnergyPlus::DataHVACGlobals; -using namespace EnergyPlus::DataZoneEquipment; -using namespace EnergyPlus::DataSizing; -using namespace EnergyPlus::Fans; -using namespace EnergyPlus::ScheduleManager; +using namespace DataHeatBalance; +using namespace DataHVACGlobals; +using namespace DataZoneEquipment; +using namespace DataSizing; +using namespace Fans; +using namespace ScheduleManager; TEST_F(EnergyPlusFixture, HVACStandAloneERV_Test1) { @@ -115,9 +115,9 @@ TEST_F(EnergyPlusFixture, HVACStandAloneERV_Test1) state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; - DataSizing::ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); state->dataHeatBal->TotPeople = 2; // Total number of people statements state->dataHeatBal->People.allocate(state->dataHeatBal->TotPeople); @@ -217,7 +217,7 @@ TEST_F(EnergyPlusFixture, HVACStandAloneERV_Test2) GetFanInput(*state); - EnergyPlus::DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).ZoneName = "Zone 1"; @@ -228,13 +228,13 @@ TEST_F(EnergyPlusFixture, HVACStandAloneERV_Test2) state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).FloorArea = 100.0; - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.0; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.0; state->dataHeatBal->TotPeople = 2; // Total number of people objects state->dataHeatBal->People.allocate(state->dataHeatBal->TotPeople); diff --git a/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc b/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc index 4ddac7cb33e..923cffa9020 100644 --- a/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc +++ b/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc @@ -146,33 +146,33 @@ class CBVAVSys : public EnergyPlusFixture state->dataZoneEquip->ZoneEquipConfig(1).ExhaustNode(1) = 1; state->dataZoneEquip->ZoneEquipConfig(1).EquipListIndex = 1; - DataSizing::CurSysNum = 1; - DataSizing::CurZoneEqNum = 0; - DataSizing::CurOASysNum = 0; - - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesMainVolFlow = 1.5; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesCoolVolFlow = 1.5; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesHeatVolFlow = 1.2; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = 0.3; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).MixTempAtCoolPeak = 25.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).MixHumRatAtCoolPeak = 0.009; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).CoolSupTemp = 15.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).CoolSupHumRat = 0.006; - - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatSupTemp = 35.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatRetTemp = 20.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatRetHumRat = 0.007; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutTemp = 10.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).HeatOutHumRat = 0.004; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).CoolDDNum = 1; - DataSizing::DesDayWeath.allocate(1); - DataSizing::DesDayWeath(1).Temp.allocate(1); - DataSizing::DesDayWeath(1).Temp(1) = 35.0; - - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::ZoneEqSizing(DataSizing::CurSysNum).SizingMethod.allocate(25); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->CurSysNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurOASysNum = 0; + + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.5; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.5; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesHeatVolFlow = 1.2; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.3; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 25.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.009; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 15.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.006; + + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupTemp = 35.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetHumRat = 0.007; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp = 10.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutHumRat = 0.004; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolDDNum = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(1).Temp(1) = 35.0; + + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurSysNum).SizingMethod.allocate(25); + state->dataSize->ZoneSizingRunDone = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).SequencedOutputRequiredToCoolingSP.allocate(1); @@ -240,7 +240,7 @@ class CBVAVSys : public EnergyPlusFixture HeatingCoils::NumHeatingCoils = 1; HeatingCoils::ValidSourceType.dimension(HeatingCoils::NumHeatingCoils, false); HeatingCoils::GetCoilsInputFlag = false; - DataSizing::UnitarySysEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); cbvav.HeatCoilName = "MyHeatingCoil"; cbvav.DXCoolCoilType_Num = DataHVACGlobals::CoilDX_CoolingSingleSpeed; cbvav.HeatCoilType_Num = DataHVACGlobals::Coil_HeatingElectric; @@ -720,9 +720,9 @@ TEST_F(CBVAVSys, UnitaryBypassVAV_AutoSize) // reference CBVAV and FinalSysSizing data auto &cbvav(state->dataHVACUnitaryBypassVAV->CBVAV(1)); - auto &finalSysSizing(DataSizing::FinalSysSizing(DataSizing::CurSysNum)); + auto &finalSysSizing(state->dataSize->FinalSysSizing(state->dataSize->CurSysNum)); - DataSizing::SysSizingRunDone = true; // inform sizing that system sizing run is done + state->dataSize->SysSizingRunDone = true; // inform sizing that system sizing run is done // override CBVAVSys fixture set up of hard sized inputs to AutoSize cbvav.FanVolFlow = DataSizing::AutoSize; cbvav.MaxCoolAirVolFlow = DataSizing::AutoSize; diff --git a/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc b/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc index a0ad59ca379..cf99ab0c939 100644 --- a/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc +++ b/tst/EnergyPlus/unit/HVACVariableRefrigerantFlow.unit.cc @@ -138,9 +138,9 @@ class AirLoopFixture : public EnergyPlusFixture state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, 101325.0, 20.0, 0.0); // initialize StdRhoAir state->dataEnvrn->OutBaroPress = 101325.0; - DataSizing::DesDayWeath.allocate(1); - DataSizing::DesDayWeath(1).Temp.allocate(1); - DataSizing::DesDayWeath(1).Temp(1) = 35.0; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(1).Temp(1) = 35.0; state->dataGlobal->BeginEnvrnFlag = true; state->dataEnvrn->OutDryBulbTemp = 35.0; state->dataEnvrn->OutHumRat = 0.012; @@ -159,17 +159,17 @@ class AirLoopFixture : public EnergyPlusFixture state->dataZoneEquip->ZoneEquipList.allocate(numZones); state->dataZoneEquip->ZoneEquipAvail.dimension(numZones, DataHVACGlobals::NoAction); state->dataZoneEquip->NumOfZoneEquipLists = numZones; - DataSizing::FinalZoneSizing.allocate(numZones); - DataSizing::FinalSysSizing.allocate(numAirloops); - DataSizing::OASysEqSizing.allocate(numAirloops); - DataSizing::OASysEqSizing(1).SizingMethod.allocate(30); - DataSizing::ZoneEqSizing.allocate(numZones); - DataSizing::ZoneEqSizing(1).SizingMethod.allocate(30); - DataSizing::UnitarySysEqSizing.allocate(numZones); - DataSizing::UnitarySysEqSizing(1).SizingMethod.allocate(30); - DataSizing::ZoneHVACSizing.allocate(50); - ZoneHVACSizing(1).MaxCoolAirVolFlow = DataSizing::AutoSize; - ZoneHVACSizing(1).MaxHeatAirVolFlow = DataSizing::AutoSize; + state->dataSize->FinalZoneSizing.allocate(numZones); + state->dataSize->FinalSysSizing.allocate(numAirloops); + state->dataSize->OASysEqSizing.allocate(numAirloops); + state->dataSize->OASysEqSizing(1).SizingMethod.allocate(30); + state->dataSize->ZoneEqSizing.allocate(numZones); + state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(30); + state->dataSize->UnitarySysEqSizing.allocate(numZones); + state->dataSize->UnitarySysEqSizing(1).SizingMethod.allocate(30); + state->dataSize->ZoneHVACSizing.allocate(50); + state->dataSize->ZoneHVACSizing(1).MaxCoolAirVolFlow = DataSizing::AutoSize; + state->dataSize->ZoneHVACSizing(1).MaxHeatAirVolFlow = DataSizing::AutoSize; state->dataDXCoils->DXCoil.allocate(10); state->dataDXCoils->DXCoilOutletTemp.allocate(10); state->dataDXCoils->DXCoilOutletHumRat.allocate(10); @@ -188,9 +188,9 @@ class AirLoopFixture : public EnergyPlusFixture state->dataHeatBal->HeatReclaimDXCoil.allocate(10); state->dataDXCoils->NumDXCoils = 10; state->dataMixedAir->OAMixer.allocate(5); - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = 1; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = 1; state->dataCurveManager->NumCurves = 10; state->dataCurveManager->PerfCurve.allocate(10); state->dataCurveManager->PerfCurve(1).InterpolationType = InterpTypeEnum::EvaluateCurveToLimits; @@ -210,8 +210,8 @@ class AirLoopFixture : public EnergyPlusFixture state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(numZones); - DataSizing::ZoneSizingRunDone = true; - DataSizing::SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up zone 1 @@ -222,9 +222,9 @@ class AirLoopFixture : public EnergyPlusFixture int zoneInletNode1 = 3; int zoneExhNode1 = 4; - DataSizing::ZoneEqSizing(zoneNum).SizingMethod.allocate(25); - ZoneEqSizing(zoneNum).SizingMethod.allocate(25); - ZoneEqSizing(zoneNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing(zoneNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(zoneNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(zoneNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; auto &thisZoneEqConfig(state->dataZoneEquip->ZoneEquipConfig(zoneNum)); thisZoneEqConfig.IsControlled = true; @@ -270,7 +270,7 @@ class AirLoopFixture : public EnergyPlusFixture thisZoneEqList.HeatingPriority(1) = 1; thisZoneEqList.EquipType_Num(1) = DataZoneEquipment::ZoneUnitarySys_Num; - auto &finalZoneSizing(DataSizing::FinalZoneSizing(zoneNum)); + auto &finalZoneSizing(state->dataSize->FinalZoneSizing(zoneNum)); finalZoneSizing.DesCoolVolFlow = 1.5; finalZoneSizing.DesHeatVolFlow = 1.2; finalZoneSizing.DesCoolCoilInTemp = 25.0; @@ -287,7 +287,7 @@ class AirLoopFixture : public EnergyPlusFixture finalZoneSizing.TimeStepNumAtCoolMax = 1; finalZoneSizing.CoolDDNum = 1; - auto &finalSysSizing(DataSizing::FinalSysSizing(thisAirLoop)); + auto &finalSysSizing(state->dataSize->FinalSysSizing(thisAirLoop)); finalSysSizing.DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm finalSysSizing.DesHeatVolFlow = 0.566337; finalSysSizing.CoolSupTemp = 12.7; @@ -319,9 +319,9 @@ class AirLoopFixture : public EnergyPlusFixture // set up plant loop for water equipment state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - DataSizing::PlantSizData.allocate(state->dataPlnt->TotNumLoops); + state->dataSize->PlantSizData.allocate(state->dataPlnt->TotNumLoops); // int NumPltSizInput = DataPlant::TotNumLoops; - DataSizing::NumPltSizInput = 2; + state->dataSize->NumPltSizInput = 2; for (int loopindex = 1; loopindex <= state->dataPlnt->TotNumLoops; ++loopindex) { auto &loop(state->dataPlnt->PlantLoop(loopindex)); @@ -341,13 +341,13 @@ class AirLoopFixture : public EnergyPlusFixture state->dataPlnt->PlantLoop(2).FluidName = "WATER"; state->dataPlnt->PlantLoop(2).FluidIndex = 1; - DataSizing::PlantSizData(1).PlantLoopName = "Hot Water Loop"; - DataSizing::PlantSizData(1).ExitTemp = 80.0; - DataSizing::PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).PlantLoopName = "Hot Water Loop"; + state->dataSize->PlantSizData(1).ExitTemp = 80.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; - DataSizing::PlantSizData(2).PlantLoopName = "Chilled Water Loop"; - DataSizing::PlantSizData(2).ExitTemp = 6.0; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).PlantLoopName = "Chilled Water Loop"; + state->dataSize->PlantSizData(2).ExitTemp = 6.0; + state->dataSize->PlantSizData(2).DeltaT = 5.0; // set up VRF system int numVRFCond = state->dataHVACVarRefFlow->NumVRFCond = 1; // total number of condenser units @@ -529,7 +529,7 @@ TEST_F(AirLoopFixture, VRF_SysModel_inAirloop) static std::string const RoutineName("VRF_SysModel_inAirloop"); state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - int curSysNum = DataSizing::CurSysNum = 1; + int curSysNum = state->dataSize->CurSysNum = 1; int curZoneNum = 1; int curTUNum = 1; @@ -2241,7 +2241,7 @@ TEST_F(EnergyPlusFixture, VRF_FluidTCtrl_VRFOU_Compressor) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); @@ -3696,19 +3696,19 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); - DataSizing::ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -3732,19 +3732,19 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToHeatSP = 0.0; state->dataAirLoop->AirLoopInputsFilled = true; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb Node(state->dataHVACVarRefFlow->VRF(VRFCond).CondenserNodeNum).Temp = 35.0; // AHRI condition at 95 F db Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUOAMixerOANodeNum).Temp = 35.0; // AHRI condition at 95 F db Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUOAMixerOANodeNum).HumRat = 0.01; // don't care - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(1); - DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb bool HeatingActive = false; bool CoolingActive = false; @@ -3757,7 +3757,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -3791,7 +3791,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -3878,7 +3878,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -3964,7 +3964,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -4036,7 +4036,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -4060,7 +4060,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -4077,7 +4077,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -4096,7 +4096,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -4685,19 +4685,19 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_GetInputFailers) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); - ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -5535,19 +5535,19 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm - DataSizing::FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; // 400 cfm * 3 tons = 1200 cfm + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -5584,19 +5584,19 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToCoolSP = 0.0; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToHeatSP = 0.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; - DataSizing::FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb DataLoopNode::Node(state->dataHVACVarRefFlow->VRF(VRFCond).CondenserNodeNum).Temp = 35.0; // AHRI condition at 95 F db DataLoopNode::Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUOAMixerOANodeNum).Temp = 35.0; // AHRI condition at 95 F db DataLoopNode::Node(state->dataHVACVarRefFlow->VRFTU(VRFTUNum).VRFTUOAMixerOANodeNum).HumRat = 0.01; // don't care - DataSizing::FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - DataSizing::FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DataSizing::DesDayWeath.allocate(1); - DataSizing::DesDayWeath(1).Temp.allocate(1); - DataSizing::DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F - DataSizing::FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb SizingManager::GetPlantSizingInput(*state); PlantManager::InitOneTimePlantSizingInfo(*state, 1); @@ -5613,7 +5613,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -5647,7 +5647,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -5659,10 +5659,10 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) EXPECT_NEAR(SysOutputProvided, state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToCoolSP, 1.0); rho = GetDensityGlycol(*state, - state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidName, PlantSizData(1).ExitTemp, state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidIndex, RoutineName); + state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidName, state->dataSize->PlantSizData(1).ExitTemp, state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidIndex, RoutineName); Cp = GetSpecificHeatGlycol(*state, - state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidName, PlantSizData(1).ExitTemp, state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidIndex, RoutineName); - CondVolFlowRate = max(state->dataHVACVarRefFlow->VRF(VRFCond).CoolingCapacity, state->dataHVACVarRefFlow->VRF(VRFCond).HeatingCapacity) / (PlantSizData(1).DeltaT * Cp * rho); + state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidName, state->dataSize->PlantSizData(1).ExitTemp, state->dataPlnt->PlantLoop(state->dataHVACVarRefFlow->VRF(VRFCond).SourceLoopNum).FluidIndex, RoutineName); + CondVolFlowRate = max(state->dataHVACVarRefFlow->VRF(VRFCond).CoolingCapacity, state->dataHVACVarRefFlow->VRF(VRFCond).HeatingCapacity) / (state->dataSize->PlantSizData(1).DeltaT * Cp * rho); EXPECT_DOUBLE_EQ(CondVolFlowRate, state->dataHVACVarRefFlow->VRF(VRFCond).WaterCondVolFlowRate); @@ -5692,7 +5692,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -5714,7 +5714,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -5734,7 +5734,7 @@ TEST_F(EnergyPlusFixture, VRFTest_SysCurve_WaterCooled) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -6428,14 +6428,14 @@ TEST_F(EnergyPlusFixture, VRFTest_TU_NoLoad_OAMassFlowRateTest) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); state->dataGlobal->SysSizingCalc = true; state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); CurveManager::GetCurveInput(*state); // read curves HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data @@ -8096,11 +8096,11 @@ TEST_F(EnergyPlusFixture, VRFTU_CalcVRFSupplementalHeatingCoilWater) state->dataWaterCoils->WaterCoil(CoilNum).WaterLoopBranchNum = 1; state->dataWaterCoils->WaterCoil(CoilNum).WaterLoopCompNum = 1; - NumPltSizInput = 1; - PlantSizData.allocate(NumPltSizInput); - PlantSizData(NumPltSizInput).PlantLoopName = "HotWaterLoop"; - PlantSizData(NumPltSizInput).ExitTemp = 60.0; // hot water coil inlet water temp - PlantSizData(NumPltSizInput).DeltaT = 10.0; // loop temperature difference + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).ExitTemp = 60.0; // hot water coil inlet water temp + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).DeltaT = 10.0; // loop temperature difference // set up plant loop state->dataPlnt->TotNumLoops = 1; @@ -8215,9 +8215,9 @@ TEST_F(EnergyPlusFixture, VRFTU_CalcVRFSupplementalHeatingCoilSteam) state->dataSteamCoils->MySizeFlag.allocate(CoilNum); state->dataSteamCoils->MySizeFlag(CoilNum) = true; - NumPltSizInput = 1; - PlantSizData.allocate(NumPltSizInput); - PlantSizData(NumPltSizInput).PlantLoopName = "SteamLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); + state->dataSize->PlantSizData(state->dataSize->NumPltSizInput).PlantLoopName = "SteamLoop"; // set up plant loop state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); @@ -10587,7 +10587,7 @@ TEST_F(EnergyPlusFixture, VRFFluidControl_FanSysModel_OnOffModeTest) state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = -5000.0; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -7000.0; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToHeatingSP = -7000.0; - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataAirLoop->AirLoopInputsFilled = true; InitVRF(*state, VRFTUNum, ZoneNum, FirstHVACIteration, OnOffAirFlowRatio, QZnReq); EXPECT_EQ(QZnReq, -5000.0); @@ -11166,19 +11166,19 @@ TEST_F(EnergyPlusFixture, VRFTU_SysCurve_ReportOutputVerificationTest) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataAirLoop->AirLoopInputsFilled = true; - ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); ProcessScheduleInput(*state); @@ -11219,15 +11219,15 @@ TEST_F(EnergyPlusFixture, VRFTU_SysCurve_ReportOutputVerificationTest) state->dataEnvrn->WindSpeed = 5.0; state->dataEnvrn->WindDir = 0.0; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(1); - DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0095; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0095; // set pointer to components auto &thisFan(Fan(1)); auto &thisDXCoolingCoil(state->dataDXCoils->DXCoil(1)); @@ -11243,7 +11243,7 @@ TEST_F(EnergyPlusFixture, VRFTU_SysCurve_ReportOutputVerificationTest) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -12897,19 +12897,19 @@ TEST_F(EnergyPlusFixture, VRF_FluidTCtrl_ReportOutputVerificationTest) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataAirLoop->AirLoopInputsFilled = true; - ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); ProcessScheduleInput(*state); @@ -12951,15 +12951,15 @@ TEST_F(EnergyPlusFixture, VRF_FluidTCtrl_ReportOutputVerificationTest) state->dataEnvrn->WindSpeed = 5.0; state->dataEnvrn->WindDir = 0.0; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(1); - DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0095; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0095; // set pointer to components auto &thisFan(Fan(1)); @@ -12976,7 +12976,7 @@ TEST_F(EnergyPlusFixture, VRF_FluidTCtrl_ReportOutputVerificationTest) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, @@ -14950,14 +14950,14 @@ TEST_F(EnergyPlusFixture, VRFTest_TU_NotOnZoneHVACEquipmentList) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); state->dataGlobal->SysSizingCalc = true; state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); CurveManager::GetCurveInput(*state); // read curves HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data @@ -15574,19 +15574,19 @@ TEST_F(EnergyPlusFixture, VRFTU_FanOnOff_Power) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataAirLoop->AirLoopInputsFilled = true; - ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.566337; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.566337; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.566337; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.566337; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); ProcessScheduleInput(*state); @@ -15627,15 +15627,15 @@ TEST_F(EnergyPlusFixture, VRFTU_FanOnOff_Power) state->dataEnvrn->WindSpeed = 5.0; state->dataEnvrn->WindDir = 0.0; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(1); - DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0095; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).Temp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = Node(thisVRFTU.VRFTUInletNodeNum).HumRat; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = state->dataEnvrn->OutDryBulbTemp; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0095; // set pointer to components auto &thisFan(Fan(1)); auto &thisDXCoolingCoil(state->dataDXCoils->DXCoil(1)); @@ -15651,7 +15651,7 @@ TEST_F(EnergyPlusFixture, VRFTU_FanOnOff_Power) state->dataHVACVarRefFlow->VRFTU(VRFTUNum).Name, FirstHVACIteration, CurZoneNum, - state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr), + state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr), HeatingActive, CoolingActive, OAUnitNum, diff --git a/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc b/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc index b2dba3445c2..69622fde193 100644 --- a/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc +++ b/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc @@ -721,7 +721,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfTempCalcHeatBalanceI state->dataZoneEquip->ZoneEquipConfig(1).ReturnNode(1) = 4; state->dataZoneEquip->ZoneEquipConfig(1).FixedReturnFlow.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; state->dataEnvrn->OutBaroPress = 101325.0; DataHeatBalFanSys::MAT.allocate(1); // Zone temperature C @@ -794,7 +794,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfTempCalcHeatBalanceI EXPECT_EQ(24.0, state->dataHeatBal->TempEffBulkAir(3)); state->dataZoneEquip->ZoneEquipConfig.deallocate(); - DataSizing::ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); DataHeatBalFanSys::MAT.deallocate(); // Zone temperature C DataHeatBalFanSys::ZoneAirHumRat.deallocate(); DataLoopNode::Node.deallocate(); @@ -1257,7 +1257,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfPropertyLocalEnv) state->dataZoneEquip->ZoneEquipConfig(1).ReturnNode(1) = 4; state->dataZoneEquip->ZoneEquipConfig(1).FixedReturnFlow.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; state->dataEnvrn->OutBaroPress = 101325.0; DataHeatBalFanSys::MAT.allocate(1); // Zone temperature C @@ -1832,7 +1832,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfPropertySrdSurfLWR) state->dataZoneEquip->ZoneEquipConfig(1).ReturnNode(1) = 4; state->dataZoneEquip->ZoneEquipConfig(1).FixedReturnFlow.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; state->dataEnvrn->OutBaroPress = 101325.0; DataHeatBalFanSys::MAT.allocate(1); // Zone temperature C @@ -2391,7 +2391,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfTempCalcHeatBalanceA state->dataZoneEquip->ZoneEquipConfig(1).ReturnNode(1) = 4; state->dataZoneEquip->ZoneEquipConfig(1).FixedReturnFlow.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; state->dataEnvrn->OutBaroPress = 101325.0; DataHeatBalFanSys::MAT.allocate(1); // Zone temperature C @@ -2466,7 +2466,7 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestSurfTempCalcHeatBalanceA EXPECT_EQ(0.1, DataHeatBalSurface::SurfQAdditionalHeatSourceInside(6)); state->dataZoneEquip->ZoneEquipConfig.deallocate(); - DataSizing::ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); DataHeatBalFanSys::MAT.deallocate(); // Zone temperature C DataHeatBalFanSys::ZoneAirHumRat.deallocate(); DataLoopNode::Node.deallocate(); diff --git a/tst/EnergyPlus/unit/HeatRecovery.unit.cc b/tst/EnergyPlus/unit/HeatRecovery.unit.cc index 81146b03f63..330215cd0da 100644 --- a/tst/EnergyPlus/unit/HeatRecovery.unit.cc +++ b/tst/EnergyPlus/unit/HeatRecovery.unit.cc @@ -86,9 +86,9 @@ using namespace EnergyPlus::SimulationManager; TEST_F(EnergyPlusFixture, HeatRecovery_HRTest) { - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; NumHeatExchangers = 1; ExchCond.allocate(NumHeatExchangers); Node.allocate(4); @@ -107,9 +107,9 @@ TEST_F(EnergyPlusFixture, HeatRecovery_HRTest) Real64 PartLoadRatio = 0.25; int BalDesDehumPerfDataIndex = 1; - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; ExchCond(ExchNum).NomSupAirVolFlow = 1.0; ExchCond(ExchNum).SupInMassFlow = 1.0; @@ -3838,13 +3838,13 @@ TEST_F(EnergyPlusFixture, SizeHeatRecovery) Real64 FaceVelocity; Real64 SysVolFlow; - SysSizingRunDone = true; - DataSizing::NumSysSizInput = 1; - DataSizing::SysSizInput.allocate(NumSysSizInput); - DataSizing::CurSysNum = 1; // primary air system - DataSizing::CurOASysNum = 0; // no OA system - DataSizing::CurZoneEqNum = 0; // size it based on system - DataSizing::SysSizInput(CurSysNum).AirLoopNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput.allocate(state->dataSize->NumSysSizInput); + state->dataSize->CurSysNum = 1; // primary air system + state->dataSize->CurOASysNum = 0; // no OA system + state->dataSize->CurZoneEqNum = 0; // size it based on system + state->dataSize->SysSizInput(state->dataSize->CurSysNum).AirLoopNum = 1; // initialize sizing required variables ExchCond.allocate(ExchNum); @@ -3865,14 +3865,14 @@ TEST_F(EnergyPlusFixture, SizeHeatRecovery) BalDesDehumPerfData(BalDesDehumPerfDataIndex).NomProcAirFaceVel = AutoSize; // initialize sizing variables - DataSizing::CurDuctType = DataHVACGlobals::Main; - FinalSysSizing.allocate(CurSysNum); - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.0; + state->dataSize->CurDuctType = DataHVACGlobals::Main; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.0; // initialize UnitarySysEqSizing capacity flag to false; not unitary system - UnitarySysEqSizing.allocate(CurSysNum); - UnitarySysEqSizing(CurSysNum).CoolingCapacity = false; - UnitarySysEqSizing(CurSysNum).HeatingCapacity = false; + state->dataSize->UnitarySysEqSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).CoolingCapacity = false; + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).HeatingCapacity = false; // calc heat recovery sizing SizeHeatRecovery(*state, ExchNum); @@ -3924,14 +3924,14 @@ TEST_F(EnergyPlusFixture, HeatRecovery_AirFlowSizing) GetHeatRecoveryInput(*state); // initialize - DataSizing::CurZoneEqNum = 1; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; // the HR HX is in Zone Equipment ERV - ZoneEqSizing.allocate(CurZoneEqNum); - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = true; - ZoneEqSizing(CurZoneEqNum).AirVolFlow = 1.0; + state->dataSize->ZoneEqSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 1.0; // size the HX nominal supply air volume flow rate SizeHeatRecovery(*state, ExchNum); @@ -4064,8 +4064,8 @@ TEST_F(EnergyPlusFixture, HeatRecovery_HeatExchangerGenericCalcTest) EXPECT_EQ(1, HeatRecovery::NumAirToAirGenericExchs); EXPECT_EQ(thisHX.Name, "HEATRECOVERY HX GENERIC"); // initialize - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 1; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 1; // check user-inputs EXPECT_EQ(thisOAController.Econo, MixedAir::iEconoOp::NoEconomizer); EXPECT_EQ(thisOAController.Lockout, MixedAir::iLockoutType::NoLockoutPossible); // no lockout @@ -4172,9 +4172,9 @@ TEST_F(EnergyPlusFixture, HeatRecovery_NominalAirFlowAutosizeTest) EXPECT_EQ(thisHX.NomSupAirVolFlow, DataSizing::AutoSize); // set up sizing parameters - DataSizing::SysSizingRunDone = true; - DataSizing::ZoneSizingRunDone = true; - FinalSysSizing.allocate(1); + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalSysSizing.allocate(1); int OAContrllerNum = 1; state->dataMixedAir->OAController.allocate(OAContrllerNum); @@ -4187,11 +4187,11 @@ TEST_F(EnergyPlusFixture, HeatRecovery_NominalAirFlowAutosizeTest) auto &thisOASys = state->dataAirLoop->OutsideAirSys(OASysNum); thisOASys.OAControllerIndex = 1; - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 1; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.0; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.20; - DataSizing::CurDuctType = Main; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 1; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.20; + state->dataSize->CurDuctType = Main; // test 1: the HX is in OA System, no economizer, no-bypass thisOAController.Econo = MixedAir::iEconoOp::NoEconomizer; @@ -4249,8 +4249,8 @@ TEST_F(EnergyPlusFixture, HeatRecovery_NominalAirFlowAutosizeTest) // test 7: the HX is on main air loop thisHX.NomSupAirVolFlow = DataSizing::AutoSize; - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; // run HX sizing calculation SizeHeatRecovery(*state, ExchNum); // check autosized nominal supply flow diff --git a/tst/EnergyPlus/unit/HighTempRadiantSystem.unit.cc b/tst/EnergyPlus/unit/HighTempRadiantSystem.unit.cc index 1b7570b38cf..089603b4200 100644 --- a/tst/EnergyPlus/unit/HighTempRadiantSystem.unit.cc +++ b/tst/EnergyPlus/unit/HighTempRadiantSystem.unit.cc @@ -132,8 +132,8 @@ TEST_F(EnergyPlusFixture, HighTempRadiantSystemTest_SizeHighTempRadiantSystemSca int RadSysNum; int SizingTypesNum; - DataSizing::DataScalableCapSizingON = false; - DataSizing::CurZoneEqNum = 1; + state->dataSize->DataScalableCapSizingON = false; + state->dataSize->CurZoneEqNum = 1; RadSysNum = 1; HighTempRadSys.allocate(RadSysNum); @@ -143,15 +143,15 @@ TEST_F(EnergyPlusFixture, HighTempRadiantSystemTest_SizeHighTempRadiantSystemSca HighTempRadSys(RadSysNum).ZonePtr = 1; HighTempRadSys(RadSysNum).HeatingCapMethod = DataSizing::CapacityPerFloorArea; HighTempRadSys(RadSysNum).ScaledHeatingCapacity = 100.0; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).FloorArea = 10.0; SizingTypesNum = DataHVACGlobals::NumOfSizingTypes; if (SizingTypesNum < 1) SizingTypesNum = 1; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(DataHVACGlobals::NumOfSizingTypes); SizeHighTempRadiantSystem(*state, RadSysNum); - EXPECT_FALSE(DataSizing::DataScalableSizingON); + EXPECT_FALSE(state->dataSize->DataScalableSizingON); } } // namespace EnergyPlus diff --git a/tst/EnergyPlus/unit/Humidifiers.unit.cc b/tst/EnergyPlus/unit/Humidifiers.unit.cc index 062b39a73e2..ea284f901e4 100644 --- a/tst/EnergyPlus/unit/Humidifiers.unit.cc +++ b/tst/EnergyPlus/unit/Humidifiers.unit.cc @@ -72,8 +72,8 @@ namespace EnergyPlus { TEST_F(EnergyPlusFixture, Humidifiers_Sizing) { - SysSizingRunDone = true; - CurSysNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->CurSysNum = 1; NumElecSteamHums = 0; NumGasSteamHums = 1; NumHumidifiers = 1; @@ -89,13 +89,13 @@ TEST_F(EnergyPlusFixture, Humidifiers_Sizing) thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; - FinalSysSizing.allocate(CurSysNum); - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 30.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.090; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.60894; - FinalSysSizing(CurSysNum).HeatMixHumRat = 0.05; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.07; - FinalSysSizing(CurSysNum).HeatSupHumRat = 0.10; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 30.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.090; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.60894; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatMixHumRat = 0.05; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.07; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupHumRat = 0.10; // autosize nominal gas use rate state->dataEnvrn->OutBaroPress = 101325.0; @@ -107,8 +107,8 @@ TEST_F(EnergyPlusFixture, Humidifiers_Sizing) TEST_F(EnergyPlusFixture, Humidifiers_AutoSizing) { - SysSizingRunDone = true; - CurSysNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->CurSysNum = 1; NumElecSteamHums = 0; NumGasSteamHums = 1; NumHumidifiers = 1; @@ -124,18 +124,18 @@ TEST_F(EnergyPlusFixture, Humidifiers_AutoSizing) thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; - FinalSysSizing.allocate(CurSysNum); - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 30.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.090; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.60894; - FinalSysSizing(CurSysNum).HeatMixHumRat = 0.05; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.07; - FinalSysSizing(CurSysNum).HeatSupHumRat = 0.10; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 30.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.090; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.60894; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatMixHumRat = 0.05; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.07; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupHumRat = 0.10; state->dataEnvrn->OutBaroPress = 101325.0; // volumetric capacity autosize unit test thisHum.NomCapVol = AutoSize; - CurZoneEqNum = 0; // size it based on system + state->dataSize->CurZoneEqNum = 0; // size it based on system thisHum.SizeHumidifier(*state); // test autosized nominal capacity EXPECT_NEAR(8.185E-05, thisHum.NomCapVol, 1.0E-06); // m3/s @@ -150,8 +150,8 @@ TEST_F(EnergyPlusFixture, Humidifiers_EnergyUse) HumidifierData thisHum; TimeStepSys = 0.25; - SysSizingRunDone = true; - CurSysNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->CurSysNum = 1; NumElecSteamHums = 0; NumGasSteamHums = 1; @@ -166,13 +166,13 @@ TEST_F(EnergyPlusFixture, Humidifiers_EnergyUse) thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; - FinalSysSizing.allocate(CurSysNum); - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 20.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.00089; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.60894; - FinalSysSizing(CurSysNum).HeatMixHumRat = 0.05; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.07; - FinalSysSizing(CurSysNum).HeatSupHumRat = 0.10; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.00089; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.60894; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatMixHumRat = 0.05; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.07; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupHumRat = 0.10; // resize the humidifier nominal capacity and gas use rate thisHum.NomCapVol = 4.00E-5; @@ -240,8 +240,8 @@ TEST_F(EnergyPlusFixture, Humidifiers_ThermalEfficiency) HumidifierData thisHum; TimeStepSys = 0.25; - SysSizingRunDone = true; - CurSysNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->CurSysNum = 1; NumElecSteamHums = 0; NumGasSteamHums = 1; @@ -257,13 +257,13 @@ TEST_F(EnergyPlusFixture, Humidifiers_ThermalEfficiency) thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; thisHum.SchedPtr = DataGlobalConstants::ScheduleAlwaysOn; - FinalSysSizing.allocate(CurSysNum); - FinalSysSizing(CurSysNum).MixTempAtCoolPeak = 20.0; - FinalSysSizing(CurSysNum).MixHumRatAtCoolPeak = 0.00089; - FinalSysSizing(CurSysNum).DesMainVolFlow = 1.60894; - FinalSysSizing(CurSysNum).HeatMixHumRat = 0.05; - FinalSysSizing(CurSysNum).CoolSupHumRat = 0.07; - FinalSysSizing(CurSysNum).HeatSupHumRat = 0.10; + state->dataSize->FinalSysSizing.allocate(state->dataSize->CurSysNum); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.00089; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 1.60894; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatMixHumRat = 0.05; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.07; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupHumRat = 0.10; // calculate gas use rate and energy at full load thisHum.AirInMassFlowRate = 1.8919; diff --git a/tst/EnergyPlus/unit/HybridModel.unit.cc b/tst/EnergyPlus/unit/HybridModel.unit.cc index c956bcfb27e..787cf385fe2 100644 --- a/tst/EnergyPlus/unit/HybridModel.unit.cc +++ b/tst/EnergyPlus/unit/HybridModel.unit.cc @@ -179,7 +179,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneAirTempTest) state->dataZoneEquip->ZoneEquipConfig(1).ActualZoneNum = 1; state->dataHeatBal->ZoneIntGain.allocate(1); state->dataHeatBal->ZoneIntGain(1).NumberOfDevices = 0; - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // CorrectZoneHumRat variable initialization ZoneLatentGain.allocate(1); @@ -237,7 +237,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneAirTempTest) // Parameter setup state->dataGlobal->NumOfZones = 1; - CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZonePlenum->NumZoneReturnPlenums = 0; state->dataZonePlenum->NumZoneSupplyPlenums = 0; AirflowNetwork::SimulateAirflowNetwork = 0; @@ -592,7 +592,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneAirTempTest) state->dataHeatBal->ZnAirRpt.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); ZoneLatentGain.deallocate(); SumLatentHTRadSys.deallocate(); SumHmARaW.deallocate(); @@ -679,7 +679,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneContaminantsTest) state->dataHeatBal->ZnAirRpt.allocate(1); state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).ActualZoneNum = 1; - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); // CorrectZoneContaminants variable initialization MixingMassFlowZone.allocate(1); @@ -727,7 +727,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneContaminantsTest) // Parameter setup state->dataGlobal->NumOfZones = 1; - CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZonePlenum->NumZoneReturnPlenums = 0; state->dataZonePlenum->NumZoneSupplyPlenums = 0; AirflowNetwork::SimulateAirflowNetwork = 0; @@ -919,7 +919,7 @@ TEST_F(EnergyPlusFixture, HybridModel_CorrectZoneContaminantsTest) state->dataRoomAirMod->ZoneDVMixedFlag.deallocate(); state->dataHeatBal->ZnAirRpt.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); MixingMassFlowZone.deallocate(); ZoneW1.deallocate(); ZoneAirHumRatTemp.deallocate(); diff --git a/tst/EnergyPlus/unit/InternalHeatGains.unit.cc b/tst/EnergyPlus/unit/InternalHeatGains.unit.cc index 0aa2a8da4e1..f02ac3eec80 100644 --- a/tst/EnergyPlus/unit/InternalHeatGains.unit.cc +++ b/tst/EnergyPlus/unit/InternalHeatGains.unit.cc @@ -680,7 +680,7 @@ TEST_F(EnergyPlusFixture, InternalHeatGains_CheckZoneComponentLoadSubtotals) // Check subtotals used in zone component loads state->dataEnvrn->TotDesDays = 1; state->dataEnvrn->TotRunDesPersDays = 0; - DataSizing::CurOverallSimDay = 1; + state->dataSize->CurOverallSimDay = 1; state->dataGlobal->HourOfDay = 1; state->dataGlobal->NumOfTimeStepInHour = 10; state->dataGlobal->TimeStep = 1; @@ -690,13 +690,13 @@ TEST_F(EnergyPlusFixture, InternalHeatGains_CheckZoneComponentLoadSubtotals) state->dataGlobal->CompLoadReportIsReq = true; state->dataGlobal->isPulseZoneSizing = false; InternalHeatGains::GatherComponentLoadsIntGain(*state); - totConvGains = state->dataOutRptTab->peopleInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->lightInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->equipInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->refrigInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->waterUseInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->hvacLossInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum) + - state->dataOutRptTab->powerGenInstantSeq(DataSizing::CurOverallSimDay, timeStepInDay, zoneNum); + totConvGains = state->dataOutRptTab->peopleInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->lightInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->equipInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->refrigInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->waterUseInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->hvacLossInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum) + + state->dataOutRptTab->powerGenInstantSeq(state->dataSize->CurOverallSimDay, timeStepInDay, zoneNum); // Legitimate gain types excluded from this total expectedTotConvGains -= convGains(DataHeatBalance::IntGainTypeOf_ZoneContaminantSourceAndSinkCarbonDioxide); // this is only used for CO2 diff --git a/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc b/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc index b590d3234f7..9e01cc81133 100644 --- a/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc +++ b/tst/EnergyPlus/unit/LowTempRadiantSystem.unit.cc @@ -116,14 +116,14 @@ class LowTempRadiantSystemTest : public EnergyPlusFixture state->dataLowTempRadSys->ElecRadSys.allocate(1); state->dataLowTempRadSys->HydrRadSys.allocate(1); state->dataLowTempRadSys->CFloRadSys.allocate(1); - FinalZoneSizing.allocate(1); - ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataHeatBal->Zone.allocate(1); - CurZoneEqNum = 1; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneSizingRunDone = true; - CurSysNum = 0; + state->dataSize->CurSysNum = 0; RadSysNum = 1; SystemType = LowTempRadiantSystem::SystemType::ElectricSystem; state->dataLowTempRadSys->ElecRadSysNumericFields.allocate(1); @@ -135,8 +135,8 @@ class LowTempRadiantSystemTest : public EnergyPlusFixture // set up plant loop state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(state->dataPlnt->TotNumLoops); - NumPltSizInput = state->dataPlnt->TotNumLoops; + state->dataSize->PlantSizData.allocate(state->dataPlnt->TotNumLoops); + state->dataSize->NumPltSizInput = state->dataPlnt->TotNumLoops; for (int loopindex = 1; loopindex <= state->dataPlnt->TotNumLoops; ++loopindex) { auto &loop(state->dataPlnt->PlantLoop(loopindex)); @@ -156,13 +156,13 @@ class LowTempRadiantSystemTest : public EnergyPlusFixture state->dataPlnt->PlantLoop(2).FluidName = "WATER"; state->dataPlnt->PlantLoop(2).FluidIndex = 1; - PlantSizData(1).PlantLoopName = "Hot Water Loop"; - PlantSizData(1).ExitTemp = 80.0; - PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).PlantLoopName = "Hot Water Loop"; + state->dataSize->PlantSizData(1).ExitTemp = 80.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; - PlantSizData(2).PlantLoopName = "Chilled Water Loop"; - PlantSizData(2).ExitTemp = 6.0; - PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).PlantLoopName = "Chilled Water Loop"; + state->dataSize->PlantSizData(2).ExitTemp = 6.0; + state->dataSize->PlantSizData(2).DeltaT = 5.0; ExpectedResult1 = 0.0; ExpectedResult2 = 0.0; @@ -186,7 +186,7 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantElectric) state->dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower = AutoSize; state->dataLowTempRadSys->ElecRadSys(RadSysNum).HeatingCapMethod = HeatingDesignCapacity; state->dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(1200.0, state->dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower, 0.1); @@ -202,7 +202,7 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantElectric) state->dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower = AutoSize; state->dataLowTempRadSys->ElecRadSys(RadSysNum).HeatingCapMethod = FractionOfAutosizedHeatingCapacity; state->dataLowTempRadSys->ElecRadSys(RadSysNum).ScaledHeatingCapacity = 10.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(8800.0, state->dataLowTempRadSys->ElecRadSys(RadSysNum).MaxElecPower, 0.1); } @@ -229,16 +229,16 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantVariableFlow) state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat = AutoSize; state->dataLowTempRadSys->HydrRadSys(RadSysNum).HeatingCapMethod = HeatingDesignCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; - ExpectedResult1 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - ExpectedResult1 = ExpectedResult1 / (PlantSizData(1).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; + ExpectedResult1 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + ExpectedResult1 = ExpectedResult1 / (state->dataSize->PlantSizData(1).DeltaT * RhoWater * CpWater); state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool = AutoSize; state->dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod = CoolingDesignCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; - ExpectedResult2 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - ExpectedResult2 = ExpectedResult2 / (PlantSizData(2).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; + ExpectedResult2 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + ExpectedResult2 = ExpectedResult2 / (state->dataSize->PlantSizData(2).DeltaT * RhoWater * CpWater); state->dataLowTempRadSys->HydrRadSys(RadSysNum).NumCircCalcMethod = 0; state->dataLowTempRadSys->HydrRadSys(RadSysNum).NumOfSurfaces = 1; @@ -264,13 +264,13 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantVariableFlow) state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity = 10.0; state->dataHeatBal->Zone(1).FloorArea = 500.0; ExpectedResult1 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * state->dataHeatBal->Zone(1).FloorArea; - ExpectedResult1 = ExpectedResult1 / (PlantSizData(1).DeltaT * RhoWater * CpWater); + ExpectedResult1 = ExpectedResult1 / (state->dataSize->PlantSizData(1).DeltaT * RhoWater * CpWater); state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool = AutoSize; state->dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod = CapacityPerFloorArea; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity = 20.0; ExpectedResult2 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * state->dataHeatBal->Zone(1).FloorArea; - ExpectedResult2 = ExpectedResult2 / (PlantSizData(2).DeltaT * RhoWater * CpWater); + ExpectedResult2 = ExpectedResult2 / (state->dataSize->PlantSizData(2).DeltaT * RhoWater * CpWater); SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(ExpectedResult1, state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat, 0.1); @@ -280,16 +280,16 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantVariableFlow) state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat = AutoSize; state->dataLowTempRadSys->HydrRadSys(RadSysNum).HeatingCapMethod = FractionOfAutosizedHeatingCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity = 1.2; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; - ExpectedResult1 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - ExpectedResult1 = ExpectedResult1 / (PlantSizData(1).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; + ExpectedResult1 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + ExpectedResult1 = ExpectedResult1 / (state->dataSize->PlantSizData(1).DeltaT * RhoWater * CpWater); state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxCool = AutoSize; state->dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod = FractionOfAutosizedCoolingCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity = 1.5; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 1200.0; - ExpectedResult2 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - ExpectedResult2 = ExpectedResult2 / (PlantSizData(2).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 1200.0; + ExpectedResult2 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + ExpectedResult2 = ExpectedResult2 / (state->dataSize->PlantSizData(2).DeltaT * RhoWater * CpWater); SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(ExpectedResult1, state->dataLowTempRadSys->HydrRadSys(RadSysNum).WaterVolFlowMaxHeat, 0.1); @@ -317,14 +317,14 @@ TEST_F(LowTempRadiantSystemTest, SizeCapacityLowTempRadiantVariableFlow) // Hydronic - HeatingDesignCapacity/CoolingDesignCapacity Autosize Method state->dataLowTempRadSys->HydrRadSys(RadSysNum).HeatingCapMethod = HeatingDesignCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity = AutoSize; - FinalZoneSizing.allocate(CurZoneEqNum); - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; - ExpectedResult1 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + state->dataSize->FinalZoneSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; + ExpectedResult1 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; state->dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod = CoolingDesignCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; - ExpectedResult2 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; + ExpectedResult2 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; state->dataLowTempRadSys->HydrRadSys(RadSysNum).SurfacePtr.allocate(1); state->dataLowTempRadSys->HydrRadSys(RadSysNum).SurfacePtr(1) = 1; @@ -355,13 +355,13 @@ TEST_F(LowTempRadiantSystemTest, SizeCapacityLowTempRadiantVariableFlow) // Hydronic - FractionOfAutosizedHeating/CoolingCapacity Sizing Method state->dataLowTempRadSys->HydrRadSys(RadSysNum).HeatingCapMethod = FractionOfAutosizedHeatingCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity = 1.2; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; - ExpectedResult1 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 880.0; + ExpectedResult1 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; state->dataLowTempRadSys->HydrRadSys(RadSysNum).CoolingCapMethod = FractionOfAutosizedCoolingCapacity; state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity = 1.5; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 1200.0; - ExpectedResult2 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 1200.0; + ExpectedResult2 = state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(ExpectedResult1, state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity, 0.1); @@ -390,9 +390,9 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantConstantFlow) state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode = 0; state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterOutNode = 0; state->dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; - ExpectedResult1 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad; - ExpectedResult1 = ExpectedResult1 / (PlantSizData(1).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 1200.0; + ExpectedResult1 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad; + ExpectedResult1 = ExpectedResult1 / (state->dataSize->PlantSizData(1).DeltaT * RhoWater * CpWater); state->dataLowTempRadSys->CFloRadSys(RadSysNum).SurfacePtr.allocate(1); state->dataLowTempRadSys->CFloRadSys(RadSysNum).SurfacePtr(1) = 1; @@ -411,9 +411,9 @@ TEST_F(LowTempRadiantSystemTest, SizeLowTempRadiantConstantFlow) state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode = 3; state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterOutNode = 4; state->dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; - ExpectedResult2 = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - ExpectedResult2 = ExpectedResult2 / (PlantSizData(2).DeltaT * RhoWater * CpWater); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 2200.0; + ExpectedResult2 = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + ExpectedResult2 = ExpectedResult2 / (state->dataSize->PlantSizData(2).DeltaT * RhoWater * CpWater); SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); EXPECT_NEAR(ExpectedResult2, state->dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax, 0.001); @@ -1181,20 +1181,20 @@ TEST_F(LowTempRadiantSystemTest, AutosizeLowTempRadiantVariableFlowTest) _); EXPECT_FALSE(ErrorsFound); - DataSizing::CurZoneEqNum = 1; - ZoneSizingRunDone = true; - FinalZoneSizing.allocate(DataSizing::CurZoneEqNum); - ZoneEqSizing.allocate(DataSizing::CurZoneEqNum); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->ZoneEqSizing.allocate(state->dataSize->CurZoneEqNum); - ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = DataSizing::FractionOfAutosizedHeatingCapacity; - ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::CoolingCapacitySizing) = DataSizing::FractionOfAutosizedCoolingCapacity; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingCapacitySizing) = DataSizing::FractionOfAutosizedHeatingCapacity; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::CoolingCapacitySizing) = DataSizing::FractionOfAutosizedCoolingCapacity; // heating capacity sizing calculation - FinalZoneSizing(DataSizing::CurZoneEqNum).NonAirSysDesHeatLoad = 10000.0; - HeatingCapacity = FinalZoneSizing(DataSizing::CurZoneEqNum).NonAirSysDesHeatLoad * state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 10000.0; + HeatingCapacity = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad * state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledHeatingCapacity; // cooling capacity sizing calculation - FinalZoneSizing(DataSizing::CurZoneEqNum).NonAirSysDesCoolLoad = 10000.0; - CoolingCapacity = FinalZoneSizing(DataSizing::CurZoneEqNum).NonAirSysDesCoolLoad * state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 10000.0; + CoolingCapacity = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad * state->dataLowTempRadSys->HydrRadSys(RadSysNum).ScaledCoolingCapacity; // hot water flow rate sizing calculation Density = GetDensityGlycol(*state, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->HydrRadSys(RadSysNum).HWLoopNum).FluidName, 60.0, @@ -1204,7 +1204,7 @@ TEST_F(LowTempRadiantSystemTest, AutosizeLowTempRadiantVariableFlowTest) 60.0, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->HydrRadSys(RadSysNum).HWLoopNum).FluidIndex, "AutosizeLowTempRadiantVariableFlowTest"); - HotWaterFlowRate = HeatingCapacity / (PlantSizData(1).DeltaT * Cp * Density); + HotWaterFlowRate = HeatingCapacity / (state->dataSize->PlantSizData(1).DeltaT * Cp * Density); // chilled water flow rate sizing calculation Density = GetDensityGlycol(*state, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->HydrRadSys(RadSysNum).CWLoopNum).FluidName, 5.05, @@ -1214,7 +1214,7 @@ TEST_F(LowTempRadiantSystemTest, AutosizeLowTempRadiantVariableFlowTest) 5.05, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->HydrRadSys(RadSysNum).CWLoopNum).FluidIndex, "AutosizeLowTempRadiantVariableFlowTest"); - ChilledWaterFlowRate = CoolingCapacity / (PlantSizData(2).DeltaT * Cp * Density); + ChilledWaterFlowRate = CoolingCapacity / (state->dataSize->PlantSizData(2).DeltaT * Cp * Density); // tuble length sizing calculation state->dataLowTempRadSys->HydrRadSys(RadSysNum).TotalSurfaceArea = state->dataSurface->Surface(state->dataLowTempRadSys->HydrRadSys(RadSysNum).SurfacePtr(1)).Area; TubeLengthDes = state->dataLowTempRadSys->HydrRadSys(RadSysNum).TotalSurfaceArea / 0.1524; // tube length uses the construction perpendicular spacing @@ -2610,8 +2610,8 @@ TEST_F(LowTempRadiantSystemTest, LowTempRadConFlowSystemAutoSizeTempTest) state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterInNode = 0; state->dataLowTempRadSys->CFloRadSys(RadSysNum).ColdWaterOutNode = 0; state->dataLowTempRadSys->CFloRadSys(RadSysNum).WaterVolFlowMax = AutoSize; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 1000.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad = 1000.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 1000.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad = 1000.0; // hot water volume flow rate sizing calculation Density = GetDensityGlycol(*state, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->CFloRadSys(RadSysNum).HWLoopNum).FluidName, @@ -2622,8 +2622,8 @@ TEST_F(LowTempRadiantSystemTest, LowTempRadConFlowSystemAutoSizeTempTest) 60.0, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->CFloRadSys(RadSysNum).HWLoopNum).FluidIndex, "LowTempRadConFlowSystemAutoSizeTempTest"); - Real64 HeatingLoad = FinalZoneSizing(1).NonAirSysDesHeatLoad; - Real64 DesHotWaterVolFlowRate = HeatingLoad / (PlantSizData(1).DeltaT * Density * Cp); + Real64 HeatingLoad = state->dataSize->FinalZoneSizing(1).NonAirSysDesHeatLoad; + Real64 DesHotWaterVolFlowRate = HeatingLoad / (state->dataSize->PlantSizData(1).DeltaT * Density * Cp); SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); // check hot water design flow rate calculated here and autosized flow are identical @@ -2645,8 +2645,8 @@ TEST_F(LowTempRadiantSystemTest, LowTempRadConFlowSystemAutoSizeTempTest) 5.05, state->dataPlnt->PlantLoop(state->dataLowTempRadSys->CFloRadSys(RadSysNum).CWLoopNum).FluidIndex, "LowTempRadConFlowSystemAutoSizeTempTest"); - Real64 CoolingLoad = FinalZoneSizing(CurZoneEqNum).NonAirSysDesCoolLoad; - Real64 DesChilledWaterVolFlowRate = CoolingLoad / (PlantSizData(2).DeltaT * Density * Cp); + Real64 CoolingLoad = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesCoolLoad; + Real64 DesChilledWaterVolFlowRate = CoolingLoad / (state->dataSize->PlantSizData(2).DeltaT * Density * Cp); SizeLowTempRadiantSystem(*state, RadSysNum, SystemType); // check chilled water design flow rate calculated here and autosized flow are identical diff --git a/tst/EnergyPlus/unit/MixedAir.unit.cc b/tst/EnergyPlus/unit/MixedAir.unit.cc index 7c829c2782a..47f62eb9bfd 100644 --- a/tst/EnergyPlus/unit/MixedAir.unit.cc +++ b/tst/EnergyPlus/unit/MixedAir.unit.cc @@ -735,15 +735,15 @@ TEST_F(EnergyPlusFixture, CO2ControlDesignOccupancyTest) state->dataAirLoop->AirLoopControlInfo.allocate(1); state->dataAirLoop->AirLoopControlInfo(1).LoopFlowRateSet = true; - OARequirements.allocate(1); - OARequirements(1).Name = "CM DSOA WEST ZONE"; - OARequirements(1).OAFlowMethod = OAFlowSum; - OARequirements(1).OAFlowPerPerson = 0.003149; - OARequirements(1).OAFlowPerArea = 0.000407; + state->dataSize->OARequirements.allocate(1); + state->dataSize->OARequirements(1).Name = "CM DSOA WEST ZONE"; + state->dataSize->OARequirements(1).OAFlowMethod = OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.003149; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.000407; - ZoneAirDistribution.allocate(1); - ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; - ZoneAirDistribution(1).ZoneADEffSchPtr = 4; + state->dataSize->ZoneAirDistribution.allocate(1); + state->dataSize->ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; + state->dataSize->ZoneAirDistribution(1).ZoneADEffSchPtr = 4; state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).Name = "WEST ZONE"; @@ -800,8 +800,8 @@ TEST_F(EnergyPlusFixture, CO2ControlDesignOccupancyTest) EXPECT_NEAR(0.0194359, state->dataMixedAir->OAController(1).OAMassFlow, 0.00001); EXPECT_NEAR(0.009527, state->dataMixedAir->OAController(1).MinOAFracLimit, 0.00001); - OARequirements(1).OAFlowMethod = 9; - state->dataMixedAir->VentilationMechanical(1).ZoneOAFlowMethod(1) = OARequirements(1).OAFlowMethod; + state->dataSize->OARequirements(1).OAFlowMethod = 9; + state->dataMixedAir->VentilationMechanical(1).ZoneOAFlowMethod(1) = state->dataSize->OARequirements(1).OAFlowMethod; state->dataAirLoop->NumOASystems = 1; state->dataAirLoop->OutsideAirSys.allocate(1); @@ -946,10 +946,10 @@ TEST_F(EnergyPlusFixture, MissingDesignOccupancyTest) state->dataAirLoop->AirLoopControlInfo.allocate(1); state->dataAirLoop->AirLoopControlInfo(1).LoopFlowRateSet = true; - OARequirements.allocate(1); - ZoneAirDistribution.allocate(1); - ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; - ZoneAirDistribution(1).ZoneADEffSchPtr = 4; + state->dataSize->OARequirements.allocate(1); + state->dataSize->ZoneAirDistribution.allocate(1); + state->dataSize->ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; + state->dataSize->ZoneAirDistribution(1).ZoneADEffSchPtr = 4; state->dataAirLoop->AirLoopFlow.allocate(1); state->dataAirLoop->AirLoopFlow(1).OAFrac = 0.01; // DataAirLoop variable (AirloopHVAC) @@ -1233,8 +1233,8 @@ TEST_F(EnergyPlusFixture, MixedAir_HumidifierOnOASystemTest) state->dataAirLoop->AirLoopFlow(AirloopNum).DesSupply = 1.0 * state->dataEnvrn->StdRhoAir; state->dataEnvrn->StdRhoAir = 1.2; state->dataEnvrn->OutBaroPress = 101250.0; - DataSizing::SysSizingRunDone = false; - DataSizing::CurSysNum = 1; + state->dataSize->SysSizingRunDone = false; + state->dataSize->CurSysNum = 1; GetOutsideAirSysInputs(*state); EXPECT_EQ(1, state->dataAirLoop->NumOASystems); @@ -5598,16 +5598,16 @@ TEST_F(EnergyPlusFixture, CO2ControlDesignOARateTest) state->dataAirLoop->AirLoopControlInfo.allocate(1); state->dataAirLoop->AirLoopControlInfo(1).LoopFlowRateSet = true; - OARequirements.allocate(1); - OARequirements(1).Name = "CM DSOA WEST ZONE"; - OARequirements(1).OAFlowMethod = OAFlowSum; - OARequirements(1).OAFlowPerPerson = 0.003149; - OARequirements(1).OAFlowPerArea = 0.000407; - OARequirements(1).OAPropCtlMinRateSchPtr = 8; + state->dataSize->OARequirements.allocate(1); + state->dataSize->OARequirements(1).Name = "CM DSOA WEST ZONE"; + state->dataSize->OARequirements(1).OAFlowMethod = OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.003149; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.000407; + state->dataSize->OARequirements(1).OAPropCtlMinRateSchPtr = 8; - ZoneAirDistribution.allocate(1); - ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; - ZoneAirDistribution(1).ZoneADEffSchPtr = 4; + state->dataSize->ZoneAirDistribution.allocate(1); + state->dataSize->ZoneAirDistribution(1).Name = "CM DSZAD WEST ZONE"; + state->dataSize->ZoneAirDistribution(1).ZoneADEffSchPtr = 4; state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).Name = "WEST ZONE"; @@ -5688,8 +5688,8 @@ TEST_F(EnergyPlusFixture, CO2ControlDesignOARateTest) EXPECT_TRUE(compare_err_stream(error_string, true)); state->dataAirLoop->AirLoopControlInfo.deallocate(); - OARequirements.deallocate(); - ZoneAirDistribution.deallocate(); + state->dataSize->OARequirements.deallocate(); + state->dataSize->ZoneAirDistribution.deallocate(); state->dataHeatBal->Zone.deallocate(); state->dataAirLoop->AirLoopFlow.deallocate(); state->dataHeatBal->People.deallocate(); diff --git a/tst/EnergyPlus/unit/OutdoorAirUnit.unit.cc b/tst/EnergyPlus/unit/OutdoorAirUnit.unit.cc index 6ff5773298a..40ca53f5ebe 100644 --- a/tst/EnergyPlus/unit/OutdoorAirUnit.unit.cc +++ b/tst/EnergyPlus/unit/OutdoorAirUnit.unit.cc @@ -290,15 +290,15 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_AutoSize) ASSERT_TRUE(process_idf(idf_objects)); state->dataGlobal->BeginEnvrnFlag = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->OutBaroPress = 101325; // sea level state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); - ZoneEqSizing.allocate(1); - ZoneSizingRunDone = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); @@ -315,19 +315,19 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_AutoSize) state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToCoolSP = 0.0; state->dataZoneEnergyDemand->ZoneSysEnergyDemand(CurZoneNum).RemainingOutputReqToHeatSP = 0.0; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).MinOA = 0.5; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtCoolPeak = 26.66667; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(1); - DesDayWeath(FinalZoneSizing(CurZoneEqNum).CoolDDNum).Temp(FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = 26.66667; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtCoolPeak = 26.66667; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.01117049470250416; // AHRI condition at 80 F db / 67 F wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum).Temp(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax) = 35.0; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.1; // 55.58 F + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.009297628698818194; // humrat at 12.77777 C db / 12.6 C wb ZoneInletNode = OutdoorAirUnit::GetOutdoorAirUnitZoneInletNode(*state, OAUnitNum); @@ -341,12 +341,12 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_AutoSize) SetPredefinedTables(*state); OutdoorAirUnit::SimOutdoorAirUnit(*state, - "ZONE1OUTAIR", CurZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, state->dataZoneEquip->ZoneEquipList(CurZoneEqNum).EquipIndex(EquipPtr)); + "ZONE1OUTAIR", CurZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, state->dataZoneEquip->ZoneEquipList(state->dataSize->CurZoneEqNum).EquipIndex(EquipPtr)); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).MinOA, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OutAirVolFlow); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).MinOA * state->dataEnvrn->StdRhoAir, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OutAirMassFlow); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).MinOA, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).ExtAirVolFlow); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).MinOA * state->dataEnvrn->StdRhoAir, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).ExtAirMassFlow); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OutAirVolFlow); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA * state->dataEnvrn->StdRhoAir, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OutAirMassFlow); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).ExtAirVolFlow); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA * state->dataEnvrn->StdRhoAir, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).ExtAirMassFlow); // test that both fans are included in OA unit fan power report Real64 SAFanPower = Fans::Fan(1).FanPower; @@ -579,8 +579,8 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_WaterCoolingCoilAutoSizeTest) state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - DataSizing::NumPltSizInput = 1; - PlantSizData.allocate(DataSizing::NumPltSizInput); + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); @@ -606,10 +606,10 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_WaterCoolingCoilAutoSizeTest) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(1).WaterInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataWaterCoils->WaterCoil(1).WaterOutletNodeNum; - PlantSizData(1).PlantLoopName = "ChilledWaterLoop"; - PlantSizData(1).ExitTemp = 6.7; - PlantSizData(1).DeltaT = 5.0; - PlantSizData(1).LoopType = DataSizing::CoolingLoop; + state->dataSize->PlantSizData(1).PlantLoopName = "ChilledWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 6.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).LoopType = DataSizing::CoolingLoop; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = true; @@ -625,30 +625,30 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_WaterCoolingCoilAutoSizeTest) UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - DataSizing::CurZoneEqNum = 1; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).MinOA = 0.5; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 30.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.01; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.01; state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 30.0, 0.0); - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 12.8; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0080; - FinalZoneSizing(CurZoneEqNum).DesCoolDens = state->dataEnvrn->StdRhoAir; - FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolDens; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 12.8; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0080; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolDens = state->dataEnvrn->StdRhoAir; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolDens; state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OAEquip(1).MaxVolWaterFlow = DataSizing::AutoSize; @@ -660,18 +660,18 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_WaterCoolingCoilAutoSizeTest) EXPECT_EQ(state->dataWaterCoils->WaterCoil(1).MaxWaterVolFlowRate, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OAEquip(1).MaxVolWaterFlow); // calculate fan heat to get fan air-side delta T - DataSizing::DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; - DataSizing::DataFanIndex = 0; - DataSizing::DataAirFlowUsedForSizing = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow; - Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(*state, DataFanEnumType, DataFanIndex, DataAirFlowUsedForSizing); + state->dataSize->DataFanEnumType = DataAirSystems::objectVectorOOFanSystemModel; + state->dataSize->DataFanIndex = 0; + state->dataSize->DataAirFlowUsedForSizing = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow; + Real64 FanCoolLoad = DataAirSystems::calcFanDesignHeatGain(*state, state->dataSize->DataFanEnumType, state->dataSize->DataFanIndex, state->dataSize->DataAirFlowUsedForSizing); // do water flow rate sizing calculation - Real64 DesAirMassFlow = FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow; - Real64 EnthalpyAirIn = PsyHFnTdbW(FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp, FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat); - Real64 EnthalpyAirOut = PsyHFnTdbW(FinalZoneSizing(CurZoneEqNum).CoolDesTemp, FinalZoneSizing(CurZoneEqNum).CoolDesHumRat); + Real64 DesAirMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow; + Real64 EnthalpyAirIn = PsyHFnTdbW(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat); + Real64 EnthalpyAirOut = PsyHFnTdbW(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat); Real64 DesWaterCoolingCoilLoad = DesAirMassFlow * (EnthalpyAirIn - EnthalpyAirOut) + FanCoolLoad; - Real64 CoilDesWaterDeltaT = PlantSizData(1).DeltaT; + Real64 CoilDesWaterDeltaT = state->dataSize->PlantSizData(1).DeltaT; Real64 Cp = GetSpecificHeatGlycol(*state, state->dataPlnt->PlantLoop(1).FluidName, DataGlobalConstants::CWInitConvTemp, state->dataPlnt->PlantLoop(1).FluidIndex, " "); Real64 rho = GetDensityGlycol(*state, state->dataPlnt->PlantLoop(1).FluidName, DataGlobalConstants::CWInitConvTemp, state->dataPlnt->PlantLoop(1).FluidIndex, " "); Real64 DesCoolingCoilWaterVolFlowRate = DesWaterCoolingCoilLoad / (CoilDesWaterDeltaT * Cp * rho); @@ -885,8 +885,8 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_SteamHeatingCoilAutoSizeTest) state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - DataSizing::NumPltSizInput = 1; - PlantSizData.allocate(DataSizing::NumPltSizInput); + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(state->dataSize->NumPltSizInput); for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); @@ -912,10 +912,10 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_SteamHeatingCoilAutoSizeTest) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataSteamCoils->SteamCoil(1).SteamInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataSteamCoils->SteamCoil(1).SteamOutletNodeNum; - PlantSizData(1).PlantLoopName = "SteamLoop"; - PlantSizData(1).ExitTemp = 100.0; - PlantSizData(1).DeltaT = 5.0; - PlantSizData(1).LoopType = DataSizing::SteamLoop; + state->dataSize->PlantSizData(1).PlantLoopName = "SteamLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 100.0; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).LoopType = DataSizing::SteamLoop; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(2); state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = true; @@ -931,31 +931,31 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_SteamHeatingCoilAutoSizeTest) UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; TempControlType.allocate(1); TempControlType(1) = 4; - ZoneSizingRunDone = true; - DataSizing::CurZoneEqNum = 1; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).MinOA = 0.5; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.5; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 5.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRat = 0.005; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 5.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.005; state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 5.0, 0.0); state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OAEquip(1).MaxVolWaterFlow = DataSizing::AutoSize; - FinalZoneSizing(CurZoneEqNum).HeatDesTemp = 50.0; - FinalZoneSizing(CurZoneEqNum).HeatDesHumRat = 0.0050; - FinalZoneSizing(CurZoneEqNum).DesHeatDens = state->dataEnvrn->StdRhoAir; - FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow * FinalZoneSizing(CurZoneEqNum).DesHeatDens; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 50.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat = 0.0050; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatDens = state->dataEnvrn->StdRhoAir; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatDens; state->dataGlobal->BeginEnvrnFlag = true; bool FirstHVACIteration(true); @@ -964,10 +964,10 @@ TEST_F(EnergyPlusFixture, OutdoorAirUnit_SteamHeatingCoilAutoSizeTest) OutdoorAirUnit::InitOutdoorAirUnit(*state, OAUnitNum, ZoneNum, FirstHVACIteration); EXPECT_EQ(state->dataSteamCoils->SteamCoil(1).MaxSteamVolFlowRate, state->dataOutdoorAirUnit->OutAirUnit(OAUnitNum).OAEquip(1).MaxVolWaterFlow); - Real64 DesCoilInTemp = FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp; - Real64 DesCoilOutTemp = FinalZoneSizing(CurZoneEqNum).HeatDesTemp; - Real64 DesCoilOutHumRat = FinalZoneSizing(CurZoneEqNum).HeatDesHumRat; - Real64 DesAirMassFlow = FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow; + Real64 DesCoilInTemp = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp; + Real64 DesCoilOutTemp = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp; + Real64 DesCoilOutHumRat = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat; + Real64 DesAirMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow; // DesVolFlow = DesMassFlow / RhoAirStd; Real64 CpAirAvg = PsyCpAirFnW(DesCoilOutHumRat); Real64 DesSteamCoilLoad = DesAirMassFlow * CpAirAvg * (DesCoilOutTemp - DesCoilInTemp); diff --git a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc index 308ae56c2a7..531d65de4cf 100644 --- a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc +++ b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc @@ -2469,7 +2469,7 @@ TEST_F(EnergyPlusFixture, AirloopHVAC_ZoneSumTest) state->dataGlobal->KindOfSim = DataGlobalConstants::KindOfSim::RunPeriodWeather; // fake a weather run since a weather file can't be used (could it?) UpdateTabularReports(*state, OutputProcessor::TimeStepType::TimeStepSystem); - EXPECT_NEAR(1.86168, DataSizing::FinalSysSizing(1).DesOutAirVolFlow, 0.0001); + EXPECT_NEAR(1.86168, state->dataSize->FinalSysSizing(1).DesOutAirVolFlow, 0.0001); } // TEST_F( EnergyPlusFixture, AirloopHVAC_VentilationRateProcedure ) @@ -6466,24 +6466,24 @@ TEST_F(EnergyPlusFixture, OutputReportTabularTest_CollectPeakZoneConditions_test state->dataGlobal->NumOfTimeStepInHour = 4; state->dataGlobal->MinutesPerTimeStep = 15; - CoolPeakDateHrMin.allocate(1); - - CalcFinalZoneSizing.allocate(1); - CalcFinalZoneSizing(1).CoolOutTempSeq.allocate(96); - CalcFinalZoneSizing(1).CoolOutTempSeq(63) = 38.; - CalcFinalZoneSizing(1).CoolOutHumRatSeq.allocate(96); - CalcFinalZoneSizing(1).CoolOutHumRatSeq(63) = 0.01459; - CalcFinalZoneSizing(1).CoolZoneTempSeq.allocate(96); - CalcFinalZoneSizing(1).CoolZoneTempSeq(63) = 24.; - CalcFinalZoneSizing(1).CoolZoneHumRatSeq.allocate(96); - CalcFinalZoneSizing(1).CoolZoneHumRatSeq(63) = 0.00979; - CalcFinalZoneSizing(1).DesCoolLoad = 500.; - CalcFinalZoneSizing(1).ZnCoolDgnSAMethod = SupplyAirTemperature; - CalcFinalZoneSizing(1).CoolDesTemp = 13.; - CalcFinalZoneSizing(1).DesCoolVolFlow = 3.3; - - FinalZoneSizing.allocate(1); - FinalZoneSizing(1).DesCoolLoad = 600.; + state->dataSize->CoolPeakDateHrMin.allocate(1); + + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing(1).CoolOutTempSeq.allocate(96); + state->dataSize->CalcFinalZoneSizing(1).CoolOutTempSeq(63) = 38.; + state->dataSize->CalcFinalZoneSizing(1).CoolOutHumRatSeq.allocate(96); + state->dataSize->CalcFinalZoneSizing(1).CoolOutHumRatSeq(63) = 0.01459; + state->dataSize->CalcFinalZoneSizing(1).CoolZoneTempSeq.allocate(96); + state->dataSize->CalcFinalZoneSizing(1).CoolZoneTempSeq(63) = 24.; + state->dataSize->CalcFinalZoneSizing(1).CoolZoneHumRatSeq.allocate(96); + state->dataSize->CalcFinalZoneSizing(1).CoolZoneHumRatSeq(63) = 0.00979; + state->dataSize->CalcFinalZoneSizing(1).DesCoolLoad = 500.; + state->dataSize->CalcFinalZoneSizing(1).ZnCoolDgnSAMethod = SupplyAirTemperature; + state->dataSize->CalcFinalZoneSizing(1).CoolDesTemp = 13.; + state->dataSize->CalcFinalZoneSizing(1).DesCoolVolFlow = 3.3; + + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).DesCoolLoad = 600.; CollectPeakZoneConditions(*state, compLoad, 1, timeOfMax, zoneIndex, isCooling); @@ -6886,18 +6886,18 @@ TEST_F(SQLiteFixture, OutputReportTabular_WriteLoadComponentSummaryTables_AirLoo sqlite->createSQLiteSimulationsRecord(1, "EnergyPlus Version", "Current Time"); DataHVACGlobals::NumPrimaryAirSys = 1; - SysSizPeakDDNum.allocate(DataHVACGlobals::NumPrimaryAirSys); - DataSizing::FinalSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); - DataSizing::CalcSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->SysSizPeakDDNum.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->FinalSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->CalcSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); int numDesDays = 2; state->dataAirLoop->AirToZoneNodeInfo.allocate(DataHVACGlobals::NumPrimaryAirSys); state->dataGlobal->NumOfZones = 0; state->dataOutRptTab->displayAirLoopComponentLoadSummary = true; state->dataGlobal->CompLoadReportIsReq = true; - SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk.allocate(numDesDays); + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk.allocate(numDesDays); - SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TotCoolPeakDD = 0; // set to zero to indicate no design day chosen - SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).HeatPeakDD = 0; // set to zero to indicate no design day chosen + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TotCoolPeakDD = 0; // set to zero to indicate no design day chosen + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).HeatPeakDD = 0; // set to zero to indicate no design day chosen WriteLoadComponentSummaryTables(*state); @@ -6944,12 +6944,10 @@ TEST_F(SQLiteFixture, OutputReportTabular_WriteLoadComponentSummaryTables_AirLoo state->dataWeatherManager->DesDayInput(2).Month = 1; state->dataWeatherManager->DesDayInput(2).DayOfMonth = 21; - state->dataGlobal->NumOfTimeStepInHour = 4; state->dataGlobal->MinutesPerTimeStep = 15; int numTimeStepInDay = 96; - // One Zone state->dataGlobal->NumOfZones = 1; state->dataHeatBal->Zone.allocate(1); @@ -6960,69 +6958,66 @@ TEST_F(SQLiteFixture, OutputReportTabular_WriteLoadComponentSummaryTables_AirLoo state->dataHeatBal->Zone(1).HTSurfaceFirst = 1; state->dataHeatBal->Zone(1).HTSurfaceLast = 0; - - // Cool Peak on 1st DD at 16:00 and Heat Peak on 2nd DD at 1:00 - DataSizing::CalcFinalZoneSizing.allocate(state->dataGlobal->NumOfZones); + state->dataSize->CalcFinalZoneSizing.allocate(state->dataGlobal->NumOfZones); int coolDDNum = 1; int coolTimeOfMax = 64; - DataSizing::CalcFinalZoneSizing(1).CoolDDNum = coolDDNum; - DataSizing::CalcFinalZoneSizing(1).TimeStepNumAtCoolMax = coolTimeOfMax; - DataSizing::CoolPeakDateHrMin.allocate(1); - - DataSizing::CalcFinalZoneSizing(1).CoolOutTempSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).CoolOutTempSeq(coolTimeOfMax) = 38.; - DataSizing::CalcFinalZoneSizing(1).CoolOutHumRatSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).CoolOutHumRatSeq(coolTimeOfMax) = 0.01459; - DataSizing::CalcFinalZoneSizing(1).CoolZoneTempSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).CoolZoneTempSeq(coolTimeOfMax) = 24.; - DataSizing::CalcFinalZoneSizing(1).CoolZoneHumRatSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).CoolZoneHumRatSeq(coolTimeOfMax) = 0.00979; - DataSizing::CalcFinalZoneSizing(1).DesCoolLoad = 500.; - DataSizing::CalcFinalZoneSizing(1).ZnCoolDgnSAMethod = SupplyAirTemperature; - DataSizing::CalcFinalZoneSizing(1).CoolDesTemp = 13.; - DataSizing::CalcFinalZoneSizing(1).DesCoolVolFlow = 3.3; - + state->dataSize->CalcFinalZoneSizing(1).CoolDDNum = coolDDNum; + state->dataSize->CalcFinalZoneSizing(1).TimeStepNumAtCoolMax = coolTimeOfMax; + state->dataSize->CoolPeakDateHrMin.allocate(1); + + state->dataSize->CalcFinalZoneSizing(1).CoolOutTempSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).CoolOutTempSeq(coolTimeOfMax) = 38.; + state->dataSize->CalcFinalZoneSizing(1).CoolOutHumRatSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).CoolOutHumRatSeq(coolTimeOfMax) = 0.01459; + state->dataSize->CalcFinalZoneSizing(1).CoolZoneTempSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).CoolZoneTempSeq(coolTimeOfMax) = 24.; + state->dataSize->CalcFinalZoneSizing(1).CoolZoneHumRatSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).CoolZoneHumRatSeq(coolTimeOfMax) = 0.00979; + state->dataSize->CalcFinalZoneSizing(1).DesCoolLoad = 500.; + state->dataSize->CalcFinalZoneSizing(1).ZnCoolDgnSAMethod = SupplyAirTemperature; + state->dataSize->CalcFinalZoneSizing(1).CoolDesTemp = 13.; + state->dataSize->CalcFinalZoneSizing(1).DesCoolVolFlow = 3.3; int heatDDNum = 2; int heatTimeOfMax = 4; - DataSizing::CalcFinalZoneSizing(1).HeatDDNum = heatDDNum; - DataSizing::CalcFinalZoneSizing(1).TimeStepNumAtHeatMax = heatTimeOfMax; - DataSizing::HeatPeakDateHrMin.allocate(1); + state->dataSize->CalcFinalZoneSizing(1).HeatDDNum = heatDDNum; + state->dataSize->CalcFinalZoneSizing(1).TimeStepNumAtHeatMax = heatTimeOfMax; + state->dataSize->HeatPeakDateHrMin.allocate(1); - DataSizing::CalcFinalZoneSizing(1).HeatOutTempSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).HeatOutTempSeq(heatTimeOfMax) = -17.4; - DataSizing::CalcFinalZoneSizing(1).HeatOutHumRatSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).HeatOutHumRatSeq(heatTimeOfMax) = 0.01459; + state->dataSize->CalcFinalZoneSizing(1).HeatOutTempSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).HeatOutTempSeq(heatTimeOfMax) = -17.4; + state->dataSize->CalcFinalZoneSizing(1).HeatOutHumRatSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).HeatOutHumRatSeq(heatTimeOfMax) = 0.01459; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(1).DesCoolLoad = 600.; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(1).DesCoolLoad = 600.; // One airloop, that serves this zone. DataHVACGlobals::NumPrimaryAirSys = 1; - DataSizing::SysSizPeakDDNum.allocate(DataHVACGlobals::NumPrimaryAirSys); - DataSizing::FinalSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); - DataSizing::CalcSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->SysSizPeakDDNum.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->FinalSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); + state->dataSize->CalcSysSizing.allocate(DataHVACGlobals::NumPrimaryAirSys); state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).IsControlled = true; - DataSizing::CalcFinalZoneSizing(1).HeatZoneTempSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).HeatZoneTempSeq(heatTimeOfMax) = 20.; - DataSizing::CalcFinalZoneSizing(1).HeatZoneHumRatSeq.allocate(numTimeStepInDay); - DataSizing::CalcFinalZoneSizing(1).HeatZoneHumRatSeq(heatTimeOfMax) = 0.00979; - DataSizing::CalcFinalZoneSizing(1).DesHeatLoad = 750.; - DataSizing::CalcFinalZoneSizing(1).ZnHeatDgnSAMethod = SupplyAirTemperature; - DataSizing::CalcFinalZoneSizing(1).HeatDesTemp = 35.; - DataSizing::CalcFinalZoneSizing(1).DesHeatVolFlow = 3.3; + state->dataSize->CalcFinalZoneSizing(1).HeatZoneTempSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).HeatZoneTempSeq(heatTimeOfMax) = 20.; + state->dataSize->CalcFinalZoneSizing(1).HeatZoneHumRatSeq.allocate(numTimeStepInDay); + state->dataSize->CalcFinalZoneSizing(1).HeatZoneHumRatSeq(heatTimeOfMax) = 0.00979; + state->dataSize->CalcFinalZoneSizing(1).DesHeatLoad = 750.; + state->dataSize->CalcFinalZoneSizing(1).ZnHeatDgnSAMethod = SupplyAirTemperature; + state->dataSize->CalcFinalZoneSizing(1).HeatDesTemp = 35.; + state->dataSize->CalcFinalZoneSizing(1).DesHeatVolFlow = 3.3; - DataSizing::CalcZoneSizing.allocate(numDesDays, state->dataGlobal->NumOfZones); - DataSizing::CalcZoneSizing(1, 1).DOASHeatAddSeq.allocate(numTimeStepInDay); - DataSizing::CalcZoneSizing(1, 1).DOASLatAddSeq.allocate(numTimeStepInDay); - DataSizing::CalcZoneSizing(2, 1).DOASHeatAddSeq.allocate(numTimeStepInDay); - DataSizing::CalcZoneSizing(2, 1).DOASLatAddSeq.allocate(numTimeStepInDay); + state->dataSize->CalcZoneSizing.allocate(numDesDays, state->dataGlobal->NumOfZones); + state->dataSize->CalcZoneSizing(1, 1).DOASHeatAddSeq.allocate(numTimeStepInDay); + state->dataSize->CalcZoneSizing(1, 1).DOASLatAddSeq.allocate(numTimeStepInDay); + state->dataSize->CalcZoneSizing(2, 1).DOASHeatAddSeq.allocate(numTimeStepInDay); + state->dataSize->CalcZoneSizing(2, 1).DOASLatAddSeq.allocate(numTimeStepInDay); state->dataAirLoop->AirToZoneNodeInfo.allocate(DataHVACGlobals::NumPrimaryAirSys); state->dataAirLoop->AirToZoneNodeInfo(1).NumZonesCooled = 1; @@ -7034,21 +7029,21 @@ TEST_F(SQLiteFixture, OutputReportTabular_WriteLoadComponentSummaryTables_AirLoo // same Design Days peak and timestep peak as the zone it serves. This is the critical part of the test - DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + state->dataSize->FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TotCoolPeakDD = coolDDNum; - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).HeatPeakDD = heatDDNum; - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk.allocate(numDesDays); - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk(1) = coolTimeOfMax; - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtHeatPk.allocate(numDesDays); - DataSizing::SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtHeatPk(2) = heatTimeOfMax; + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TotCoolPeakDD = coolDDNum; + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).HeatPeakDD = heatDDNum; + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk.allocate(numDesDays); + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtTotCoolPk(1) = coolTimeOfMax; + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtHeatPk.allocate(numDesDays); + state->dataSize->SysSizPeakDDNum(DataHVACGlobals::NumPrimaryAirSys).TimeStepAtHeatPk(2) = heatTimeOfMax; // Set up Facility to peak like the zone too - DataSizing::CalcFinalFacilitySizing.CoolDDNum = coolDDNum; - DataSizing::CalcFinalFacilitySizing.TimeStepNumAtCoolMax = coolTimeOfMax; - DataSizing::CalcFinalFacilitySizing.HeatDDNum = heatDDNum; - DataSizing::CalcFinalFacilitySizing.TimeStepNumAtHeatMax = heatTimeOfMax; + state->dataSize->CalcFinalFacilitySizing.CoolDDNum = coolDDNum; + state->dataSize->CalcFinalFacilitySizing.TimeStepNumAtCoolMax = coolTimeOfMax; + state->dataSize->CalcFinalFacilitySizing.HeatDDNum = heatDDNum; + state->dataSize->CalcFinalFacilitySizing.TimeStepNumAtHeatMax = heatTimeOfMax; AllocateLoadComponentArrays(*state); diff --git a/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc b/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc index ee31471172e..91ba4bf9f09 100644 --- a/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc +++ b/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc @@ -480,19 +480,19 @@ TEST_F(EnergyPlusFixture, PackagedTerminalHP_VSCoils_Sizing) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataVariableSpeedCoils->VarSpeedCoil(2).WaterInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataVariableSpeedCoils->VarSpeedCoil(2).WaterOutletNodeNum; - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneSizingRunDone = true; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 24.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.09; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 12.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.05; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 24.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.09; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 12.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.05; state->dataEnvrn->OutBaroPress = 101325; state->dataEnvrn->StdRhoAir = 1.0; OutputReportPredefined::SetPredefinedTables(*state); - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(16); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(16); SizePTUnit(*state, 1); // This VS coil is rather quirky. It sizes the capacity based on zone sizing air flow rate. @@ -519,7 +519,7 @@ TEST_F(EnergyPlusFixture, PackagedTerminalHP_VSCoils_Sizing) EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).Name, "LOBBY_ZN_1_FLR_2 WSHP HEATING MODE"); // expect coil air flow to equal PTUnit heating air flow - EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedAirVolFlowRate, ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow); + EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedAirVolFlowRate, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow); EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedAirVolFlowRate, state->dataPTHP->PTUnit(1).MaxHeatAirVolFlow); EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(9), state->dataPTHP->PTUnit(1).MaxHeatAirVolFlow); @@ -543,7 +543,7 @@ TEST_F(EnergyPlusFixture, PackagedTerminalHP_VSCoils_Sizing) // Also set BeginEnvrnFlag so code is tested for coil initialization and does not crash state->dataGlobal->BeginEnvrnFlag = true; - InitPTUnit(*state, 1, DataSizing::CurZoneEqNum, true, OnOffAirFlowRatio, ZoneLoad); + InitPTUnit(*state, 1, state->dataSize->CurZoneEqNum, true, OnOffAirFlowRatio, ZoneLoad); // check that an intermediate speed has the correct flow ratio Real64 refAirflowRatio = 0.530468926 / 0.891980668; // speed 4 reference cooling data and full flow rate at speed 9 @@ -559,14 +559,14 @@ TEST_F(EnergyPlusFixture, PackagedTerminalHP_VSCoils_Sizing) // #6028 child components not sizing correctly on air flow rate // VS coils set SystemAirFlow to true and AirVolFlow to a value, all PTUnits set CoolingAirFlow and HeatingAirFlow, and CoolingAirVolFlow and // HeatingAirVolFlow - EXPECT_TRUE(ZoneEqSizing(1).SystemAirFlow); - EXPECT_EQ(ZoneEqSizing(1).AirVolFlow, state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedAirVolFlowRate); - EXPECT_TRUE(ZoneEqSizing(1).CoolingAirFlow); - EXPECT_TRUE(ZoneEqSizing(1).HeatingAirFlow); - EXPECT_EQ(ZoneEqSizing(1).CoolingAirVolFlow, state->dataPTHP->PTUnit(1).MaxCoolAirVolFlow); - EXPECT_EQ(ZoneEqSizing(1).HeatingAirVolFlow, state->dataPTHP->PTUnit(1).MaxHeatAirVolFlow); - EXPECT_EQ(Fan(1).MaxAirFlowRate, ZoneEqSizing(1).AirVolFlow); - EXPECT_EQ(Fan(1).MaxAirFlowRate, max(ZoneEqSizing(1).CoolingAirVolFlow, ZoneEqSizing(1).HeatingAirVolFlow)); + EXPECT_TRUE(state->dataSize->ZoneEqSizing(1).SystemAirFlow); + EXPECT_EQ(state->dataSize->ZoneEqSizing(1).AirVolFlow, state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedAirVolFlowRate); + EXPECT_TRUE(state->dataSize->ZoneEqSizing(1).CoolingAirFlow); + EXPECT_TRUE(state->dataSize->ZoneEqSizing(1).HeatingAirFlow); + EXPECT_EQ(state->dataSize->ZoneEqSizing(1).CoolingAirVolFlow, state->dataPTHP->PTUnit(1).MaxCoolAirVolFlow); + EXPECT_EQ(state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow, state->dataPTHP->PTUnit(1).MaxHeatAirVolFlow); + EXPECT_EQ(Fan(1).MaxAirFlowRate, state->dataSize->ZoneEqSizing(1).AirVolFlow); + EXPECT_EQ(Fan(1).MaxAirFlowRate, max(state->dataSize->ZoneEqSizing(1).CoolingAirVolFlow, state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow)); } TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTAC_HeatingCoilTest) @@ -873,8 +873,8 @@ TEST_F(EnergyPlusFixture, AirTerminalSingleDuctMixer_SimPTAC_HeatingCoilTest) Node(state->dataPTHP->PTUnit(1).AirInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = true; TempControlType.allocate(1); @@ -1219,8 +1219,8 @@ TEST_F(EnergyPlusFixture, SimPTAC_SZVAVTest) Node(state->dataPTHP->PTUnit(1).AirInNode).Enthalpy = Node(state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode).Enthalpy; state->dataPTHP->PTUnit(1).ControlZoneNum = 1; - SysSizingRunDone = true; - ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataGlobal->SysSizingCalc = false; state->dataZoneEquip->ZoneEquipInputsFilled = true; // denotes zone equipment has been read in diff --git a/tst/EnergyPlus/unit/PlantCentralGSHP.unit.cc b/tst/EnergyPlus/unit/PlantCentralGSHP.unit.cc index dcf9755ee60..bb1183adc47 100644 --- a/tst/EnergyPlus/unit/PlantCentralGSHP.unit.cc +++ b/tst/EnergyPlus/unit/PlantCentralGSHP.unit.cc @@ -113,16 +113,16 @@ TEST_F(EnergyPlusFixture, ChillerHeater_Autosize) state->dataPlantCentralGSHP->ChillerHeater.deallocate(); state->dataPlnt->PlantLoop.allocate(2); - DataSizing::PlantSizData.allocate(2); + state->dataSize->PlantSizData.allocate(2); // Chilled Water Loop int PltSizNum = 1; state->dataPlnt->PlantLoop(PltSizNum).PlantSizNum = 1; state->dataPlnt->PlantLoop(PltSizNum).FluidIndex = 1; state->dataPlnt->PlantLoop(PltSizNum).FluidName = "WATER"; - DataSizing::PlantSizData(PltSizNum).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(PltSizNum).DeltaT = 10.0; - DataSizing::PlantSizData(PltSizNum).LoopType = DataSizing::CoolingLoop; + state->dataSize->PlantSizData(PltSizNum).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(PltSizNum).DeltaT = 10.0; + state->dataSize->PlantSizData(PltSizNum).LoopType = DataSizing::CoolingLoop; // Assign to the wrapper state->dataPlantCentralGSHP->Wrapper(1).CWLoopNum = PltSizNum; @@ -131,9 +131,8 @@ TEST_F(EnergyPlusFixture, ChillerHeater_Autosize) state->dataPlnt->PlantLoop(PltSizCondNum).PlantSizNum = PltSizCondNum; state->dataPlnt->PlantLoop(PltSizCondNum).FluidIndex = 1; state->dataPlnt->PlantLoop(PltSizCondNum).FluidName = "WATER"; - // DataSizing::PlantSizData(PltSizCondNum).DesVolFlowRate = 1.5; - DataSizing::PlantSizData(PltSizCondNum).DeltaT = 5.6; - DataSizing::PlantSizData(PltSizCondNum).LoopType = DataSizing::CondenserLoop; + state->dataSize->PlantSizData(PltSizCondNum).DeltaT = 5.6; + state->dataSize->PlantSizData(PltSizCondNum).LoopType = DataSizing::CondenserLoop; // Assign to the wrapper state->dataPlantCentralGSHP->Wrapper(1).GLHELoopNum = PltSizCondNum; @@ -161,14 +160,14 @@ TEST_F(EnergyPlusFixture, ChillerHeater_Autosize) // Note: Each individual chiller heater module is sized to be capable of supporting the total load on the wrapper // Flow is multiplied by the SizFac - Real64 EvapVolFlowRateExpected = DataSizing::PlantSizData(PltSizNum).DesVolFlowRate * state->dataPlantCentralGSHP->Wrapper(1).ChillerHeater(1).SizFac; + Real64 EvapVolFlowRateExpected = state->dataSize->PlantSizData(PltSizNum).DesVolFlowRate * state->dataPlantCentralGSHP->Wrapper(1).ChillerHeater(1).SizFac; - Real64 RefCapCoolingExpected = rho_evap * Cp_evap * EvapVolFlowRateExpected * DataSizing::PlantSizData(PltSizNum).DeltaT; + Real64 RefCapCoolingExpected = rho_evap * Cp_evap * EvapVolFlowRateExpected * state->dataSize->PlantSizData(PltSizNum).DeltaT; Real64 CondVolFlowRateExpected = RefCapCoolingExpected * (1.0 + (1.0 / state->dataPlantCentralGSHP->Wrapper(1).ChillerHeater(1).RefCOPCooling) * state->dataPlantCentralGSHP->Wrapper(1).ChillerHeater(1).OpenMotorEff) / - (rho_cond * Cp_cond * DataSizing::PlantSizData(PltSizCondNum).DeltaT); + (rho_cond * Cp_cond * state->dataSize->PlantSizData(PltSizCondNum).DeltaT); // now call sizing routine state->dataPlnt->PlantFirstSizesOkayToFinalize = true; diff --git a/tst/EnergyPlus/unit/PlantChillers.unit.cc b/tst/EnergyPlus/unit/PlantChillers.unit.cc index e59e7818eaa..0febc4452e7 100644 --- a/tst/EnergyPlus/unit/PlantChillers.unit.cc +++ b/tst/EnergyPlus/unit/PlantChillers.unit.cc @@ -79,12 +79,12 @@ TEST_F(EnergyPlusFixture, GTChiller_HeatRecoveryAutosizeTest) state->dataPlantChillers->GTChiller(1).engineCapacityScalar = 1.0; state->dataPlnt->PlantLoop.allocate(2); - DataSizing::PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantLoop(1).FluidIndex = 1; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(1).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; // now call sizing routine @@ -93,7 +93,7 @@ TEST_F(EnergyPlusFixture, GTChiller_HeatRecoveryAutosizeTest) EXPECT_NEAR(state->dataPlantChillers->GTChiller(1).DesignHeatRecVolFlowRate, 0.5, 0.00001); state->dataPlantChillers->GTChiller.deallocate(); - DataSizing::PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataPlnt->PlantLoop.deallocate(); } @@ -115,12 +115,12 @@ TEST_F(EnergyPlusFixture, EngineDrivenChiller_HeatRecoveryAutosizeTest) state->dataPlantChillers->EngineDrivenChiller(1).COP = 3.0; state->dataPlnt->PlantLoop.allocate(2); - DataSizing::PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataPlnt->PlantLoop(1).PlantSizNum = 1; state->dataPlnt->PlantLoop(1).FluidIndex = 1; state->dataPlnt->PlantLoop(1).FluidName = "WATER"; - DataSizing::PlantSizData(1).DesVolFlowRate = 1.0; - DataSizing::PlantSizData(1).DeltaT = 5.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 1.0; + state->dataSize->PlantSizData(1).DeltaT = 5.0; state->dataPlnt->PlantFirstSizesOkayToFinalize = true; // now call sizing routine @@ -129,7 +129,7 @@ TEST_F(EnergyPlusFixture, EngineDrivenChiller_HeatRecoveryAutosizeTest) EXPECT_NEAR(state->dataPlantChillers->EngineDrivenChiller(1).DesignHeatRecVolFlowRate, 0.5, 0.00001); state->dataPlantChillers->EngineDrivenChiller.deallocate(); - DataSizing::PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataPlnt->PlantLoop.deallocate(); } diff --git a/tst/EnergyPlus/unit/PlantLoopHeatPumpEIR.unit.cc b/tst/EnergyPlus/unit/PlantLoopHeatPumpEIR.unit.cc index 203d7dcef8f..33c52b38dd6 100644 --- a/tst/EnergyPlus/unit/PlantLoopHeatPumpEIR.unit.cc +++ b/tst/EnergyPlus/unit/PlantLoopHeatPumpEIR.unit.cc @@ -580,11 +580,11 @@ TEST_F(EnergyPlusFixture, TestSizing_FullyAutosizedCoolingWithCompanion_WaterSou Real64 const plantSizingLoadVolFlow = 0.01; Real64 const plantSizingLoadDeltaT = 1.0; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.010; - DataSizing::PlantSizData(1).DeltaT = 1.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.030; - DataSizing::PlantSizData(2).DeltaT = 1.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.010; + state->dataSize->PlantSizData(1).DeltaT = 1.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.030; + state->dataSize->PlantSizData(2).DeltaT = 1.0; auto &loop1supplyComponent1 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(1); auto &loop2demandComponent1 = state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1); @@ -666,7 +666,7 @@ TEST_F(EnergyPlusFixture, TestSizing_FullyAutosizedCoolingWithCompanion_WaterSou thisCoolingPLHP->loadSideDesignVolFlowRate = DataSizing::AutoSize; thisCoolingPLHP->sourceSideDesignVolFlowRate = DataSizing::AutoSize; thisCoolingPLHP->referenceCapacity = DataSizing::AutoSize; - DataSizing::PlantSizData(1).DesVolFlowRate = 0.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.0; thisCoolingPLHP->sizeLoadSide(*state); thisCoolingPLHP->sizeSrcSideWSHP(*state); EXPECT_NEAR(0.0, thisCoolingPLHP->loadSideDesignVolFlowRate, 0.0001); @@ -766,11 +766,11 @@ TEST_F(EnergyPlusFixture, TestSizing_FullyHardsizedHeatingWithCompanion) state->dataPlnt->PlantLoop(2).LoopSide(2).Branch(1).Comp.allocate(1); state->dataPlnt->PlantLoop(2).PlantSizNum = 2; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.020; - DataSizing::PlantSizData(1).DeltaT = 1.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.030; - DataSizing::PlantSizData(2).DeltaT = 1.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.020; + state->dataSize->PlantSizData(1).DeltaT = 1.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.030; + state->dataSize->PlantSizData(2).DeltaT = 1.0; auto &loop1supplyComponent1 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(1); auto &loop2demandComponent1 = state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1); @@ -2348,11 +2348,11 @@ TEST_F(EnergyPlusFixture, TestSizing_FullyAutosizedCoolingWithCompanion_AirSourc Real64 const COP = 1; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.01; - DataSizing::PlantSizData(1).DeltaT = 1.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.03; - DataSizing::PlantSizData(2).DeltaT = 1.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.01; + state->dataSize->PlantSizData(1).DeltaT = 1.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.03; + state->dataSize->PlantSizData(2).DeltaT = 1.0; auto &loop1supplyComponent1 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(1); auto &loop1supplyComponent2 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(2); @@ -2413,7 +2413,7 @@ TEST_F(EnergyPlusFixture, TestSizing_FullyAutosizedCoolingWithCompanion_AirSourc thisCoolingPLHP->loadSideDesignVolFlowRate = DataSizing::AutoSize; thisCoolingPLHP->sourceSideDesignVolFlowRate = DataSizing::AutoSize; thisCoolingPLHP->referenceCapacity = DataSizing::AutoSize; - DataSizing::PlantSizData(1).DesVolFlowRate = 0.0; + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.0; thisCoolingPLHP->sizeLoadSide(*state); thisCoolingPLHP->sizeSrcSideASHP(*state); EXPECT_NEAR(0.0, thisCoolingPLHP->loadSideDesignVolFlowRate, 0.0001); @@ -2508,11 +2508,11 @@ TEST_F(EnergyPlusFixture, TestSizing_HardsizedFlowAutosizedCoolingWithCompanion_ Real64 const plantSizingLoadVolFlow = 0.01; Real64 const plantSizingLoadDeltaT = 1.0; - DataSizing::PlantSizData.allocate(2); - DataSizing::PlantSizData(1).DesVolFlowRate = 0.01; - DataSizing::PlantSizData(1).DeltaT = 1.0; - DataSizing::PlantSizData(2).DesVolFlowRate = 0.03; - DataSizing::PlantSizData(2).DeltaT = 1.0; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.01; + state->dataSize->PlantSizData(1).DeltaT = 1.0; + state->dataSize->PlantSizData(2).DesVolFlowRate = 0.03; + state->dataSize->PlantSizData(2).DeltaT = 1.0; auto &loop1supplyComponent1 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(1); auto &loop1supplyComponent2 = state->dataPlnt->PlantLoop(1).LoopSide(2).Branch(1).Comp(2); diff --git a/tst/EnergyPlus/unit/PlantUtilities.unit.cc b/tst/EnergyPlus/unit/PlantUtilities.unit.cc index df78370b2d1..89e7f18913a 100644 --- a/tst/EnergyPlus/unit/PlantUtilities.unit.cc +++ b/tst/EnergyPlus/unit/PlantUtilities.unit.cc @@ -70,22 +70,22 @@ TEST_F(EnergyPlusFixture, PlantUtilities_RegisterPlantCompDesignFlowTest1) // first call just puts first value in array int TestNodeNum1 = 123; Real64 TestFlowRate1 = 45.6; - SaveNumPlantComps = 0; - RegisterPlantCompDesignFlow(TestNodeNum1, TestFlowRate1); - EXPECT_EQ(TestNodeNum1, CompDesWaterFlow(1).SupNode); - EXPECT_EQ(TestFlowRate1, CompDesWaterFlow(1).DesVolFlowRate); + state->dataSize->SaveNumPlantComps = 0; + RegisterPlantCompDesignFlow(*state, TestNodeNum1, TestFlowRate1); + EXPECT_EQ(TestNodeNum1, state->dataSize->CompDesWaterFlow(1).SupNode); + EXPECT_EQ(TestFlowRate1, state->dataSize->CompDesWaterFlow(1).DesVolFlowRate); // second call searches array and since node not found adds an entry to array int TestNodeNum2 = 234; Real64 TestFlowRate2 = 56.7; - RegisterPlantCompDesignFlow(TestNodeNum2, TestFlowRate2); - EXPECT_EQ(TestNodeNum2, CompDesWaterFlow(2).SupNode); - EXPECT_EQ(TestFlowRate2, CompDesWaterFlow(2).DesVolFlowRate); + RegisterPlantCompDesignFlow(*state, TestNodeNum2, TestFlowRate2); + EXPECT_EQ(TestNodeNum2, state->dataSize->CompDesWaterFlow(2).SupNode); + EXPECT_EQ(TestFlowRate2, state->dataSize->CompDesWaterFlow(2).DesVolFlowRate); // third call searches array and since node was found adds an entry to array Real64 TestFlowRate3 = 67.8; - RegisterPlantCompDesignFlow(TestNodeNum1, TestFlowRate3); - EXPECT_EQ(TestFlowRate3, CompDesWaterFlow(1).DesVolFlowRate); + RegisterPlantCompDesignFlow(*state, TestNodeNum1, TestFlowRate3); + EXPECT_EQ(TestFlowRate3, state->dataSize->CompDesWaterFlow(1).DesVolFlowRate); } TEST_F(EnergyPlusFixture, TestRegulateCondenserCompFlowReqOp) diff --git a/tst/EnergyPlus/unit/PoweredInductionUnits.unit.cc b/tst/EnergyPlus/unit/PoweredInductionUnits.unit.cc index 509c8930079..a45715d544f 100644 --- a/tst/EnergyPlus/unit/PoweredInductionUnits.unit.cc +++ b/tst/EnergyPlus/unit/PoweredInductionUnits.unit.cc @@ -564,29 +564,29 @@ TEST_F(EnergyPlusFixture, PIUArrayOutOfBounds) { state->dataPowerInductionUnits->PIU(PIUNum).MaxVolHotWaterFlow = AutoSize; state->dataPowerInductionUnits->PIU(PIUNum).MaxVolHotSteamFlow = AutoSize; - DataSizing::CurSysNum = 0; - DataSizing::SysSizingRunDone = false; - DataSizing::ZoneSizingRunDone = true; + state->dataSize->CurSysNum = 0; + state->dataSize->SysSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = true; // Test array out of bounds error. Notice that CurZoneEqNum is 2, while CurTermUnitSizingNum is 1 // CurZoneEqNum = Current Zone Equipment index (0 if not simulating ZoneEq) // CurTermUnitSizingNum = Current terminal unit sizing index for TermUnitSizing and TermUnitFinalZoneSizing - DataSizing::CurZoneEqNum = 2; - DataSizing::FinalZoneSizing.allocate(2); - DataSizing::FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 2.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 1.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 10.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; - DataSizing::FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; - DataSizing::FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; - - DataSizing::CurTermUnitSizingNum = 1; - DataSizing::TermUnitSizing.allocate(1); - DataSizing::TermUnitFinalZoneSizing.allocate(1); - DataSizing::TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = 1.0; - DataSizing::TermUnitSizing(CurTermUnitSizingNum).MinFlowFrac = 0.5; - DataSizing::TermUnitSingDuct = true; - DataSizing::TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->CurZoneEqNum = 2; + state->dataSize->FinalZoneSizing.allocate(2); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 2.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 10.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; + + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = 1.0; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).MinFlowFrac = 0.5; + state->dataSize->TermUnitSingDuct = true; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); // Call the sizing routine now PoweredInductionUnits::SizePIU(*state, PIUNum); diff --git a/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc b/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc index 89cebc5dab0..640aba1a978 100644 --- a/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc +++ b/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc @@ -105,12 +105,12 @@ class ZoneIdealLoadsTest : public EnergyPlusFixture DataHeatBalFanSys::ZoneThermostatSetPointLo.allocate(1); DataHeatBalFanSys::ZoneThermostatSetPointLo(1) = 23.0; // 73.4F - FinalZoneSizing.allocate(1); - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; - CurSysNum = 0; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - ZoneSizingRunDone = true; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneSizingRunDone = true; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).TotalOutputRequired = 1000.0; @@ -147,29 +147,29 @@ TEST_F(EnergyPlusFixture, SizePurchasedAirTest_Test1) { int PurchAirNum = 1; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->StdRhoAir = 1.0; // Prevent divide by zero in Sizer - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(24); - CurSysNum = 0; - - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).MinOA = 0.0; - FinalZoneSizing(CurZoneEqNum).OutTempAtHeatPeak = 5.0; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 1.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 30.0; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 30.0; - FinalZoneSizing(CurZoneEqNum).HeatDesTemp = 80.0; - FinalZoneSizing(CurZoneEqNum).HeatDesHumRat = 0.008; - FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; - - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 2.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 60.0; - FinalZoneSizing(CurZoneEqNum).OutTempAtCoolPeak = 70.0; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 50.0; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.010; - FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(24); + state->dataSize->CurSysNum = 0; + + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA = 0.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutTempAtHeatPeak = 5.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 80.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 2.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 60.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutTempAtCoolPeak = 70.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 50.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.010; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; state->dataPurchasedAirMgr->PurchAir.allocate(10); state->dataPurchasedAirMgr->PurchAirNumericFields.allocate(10); @@ -179,7 +179,7 @@ TEST_F(EnergyPlusFixture, SizePurchasedAirTest_Test1) state->dataPurchasedAirMgr->PurchAirNumericFields(PurchAirNum).FieldNames(7) = "Maximum Cooling Air Flow Rate"; state->dataPurchasedAirMgr->PurchAirNumericFields(PurchAirNum).FieldNames(8) = "Maximum Total Cooling Capacity"; - ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataPurchasedAirMgr->PurchAir(PurchAirNum).HeatingLimit = LimitType::LimitFlowRateAndCapacity; state->dataPurchasedAirMgr->PurchAir(PurchAirNum).MaxHeatVolFlowRate = AutoSize; @@ -201,29 +201,29 @@ TEST_F(EnergyPlusFixture, SizePurchasedAirTest_Test2) { int PurchAirNum = 1; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->StdRhoAir = 1.0; // Prevent divide by zero in Sizer - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(24); - CurSysNum = 0; - - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).MinOA = 0.5; - FinalZoneSizing(CurZoneEqNum).OutTempAtHeatPeak = 5.0; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 1.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTemp = 30.0; // this isn't used so don't change it - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 30.0; - FinalZoneSizing(CurZoneEqNum).HeatDesTemp = 80.0; - FinalZoneSizing(CurZoneEqNum).HeatDesHumRat = 0.008; - FinalZoneSizing(CurZoneEqNum).DesHeatMassFlow = FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; - - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 2.0; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 65.0; // this is used, so make it higher - FinalZoneSizing(CurZoneEqNum).OutTempAtCoolPeak = 70.0; // this is not currently used for cooling - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 50.0; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.010; - FinalZoneSizing(CurZoneEqNum).DesCoolMassFlow = FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(24); + state->dataSize->CurSysNum = 0; + + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).MinOA = 0.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutTempAtHeatPeak = 5.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 30.0; // this isn't used so don't change it + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 80.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 2.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 65.0; // this is used, so make it higher + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).OutTempAtCoolPeak = 70.0; // this is not currently used for cooling + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 50.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.010; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMassFlow = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataEnvrn->StdRhoAir; state->dataPurchasedAirMgr->PurchAir.allocate(10); state->dataPurchasedAirMgr->PurchAirNumericFields.allocate(10); @@ -233,7 +233,7 @@ TEST_F(EnergyPlusFixture, SizePurchasedAirTest_Test2) state->dataPurchasedAirMgr->PurchAirNumericFields(PurchAirNum).FieldNames(7) = "Maximum Cooling Air Flow Rate"; state->dataPurchasedAirMgr->PurchAirNumericFields(PurchAirNum).FieldNames(8) = "Maximum Total Cooling Capacity"; - ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataPurchasedAirMgr->PurchAir(PurchAirNum).HeatingLimit = LimitType::LimitFlowRateAndCapacity; state->dataPurchasedAirMgr->PurchAir(PurchAirNum).MaxHeatVolFlowRate = AutoSize; diff --git a/tst/EnergyPlus/unit/ReportCoilSelection.unit.cc b/tst/EnergyPlus/unit/ReportCoilSelection.unit.cc index 1aec1400fe9..2e28cd2d39e 100644 --- a/tst/EnergyPlus/unit/ReportCoilSelection.unit.cc +++ b/tst/EnergyPlus/unit/ReportCoilSelection.unit.cc @@ -137,9 +137,9 @@ TEST_F(EnergyPlusFixture, ReportCoilSelection_ChWCoil) EXPECT_EQ("No", c2->coilWaterFlowAutoMsg); // Now add a plant sizing object - DataSizing::NumPltSizInput = 1; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).PlantLoopName = "Chilled Water Loop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).PlantLoopName = "Chilled Water Loop"; isAutoSized = true; // true if autosized coilSelectionReportObj->setCoilWaterFlowNodeNums(*state, coil1Name, coil1Type, waterVdot, isAutoSized, chWInletNodeNum, chWOutletNodeNum, loopNum); auto &c1b(coilSelectionReportObj->coilSelectionDataObjs[0]); @@ -271,10 +271,10 @@ TEST_F(EnergyPlusFixture, ReportCoilSelection_SteamCoil) EXPECT_EQ("No", c1->coilWaterFlowAutoMsg); // Now add a plant sizing object - DataSizing::NumPltSizInput = 1; - DataSizing::PlantSizData.allocate(1); - DataSizing::PlantSizData(1).PlantLoopName = "Steam Loop"; - DataSizing::PlantSizData(1).LoopType = DataSizing::SteamLoop; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData.allocate(1); + state->dataSize->PlantSizData(1).PlantLoopName = "Steam Loop"; + state->dataSize->PlantSizData(1).LoopType = DataSizing::SteamLoop; isAutoSized = true; // true if autosized coilSelectionReportObj->setCoilWaterFlowNodeNums(*state, coil1Name, coil1Type, waterVdot, isAutoSized, wInletNodeNum, wOutletNodeNum, loopNum); auto &c1b(coilSelectionReportObj->coilSelectionDataObjs[0]); @@ -449,31 +449,31 @@ TEST_F(EnergyPlusFixture, ReportCoilSelection_ZoneEqCoil) // Test coil reporting curZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::TermUnitFinalZoneSizing.allocate(1); - DataSizing::CurTermUnitSizingNum = curZoneEqNum; - DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInTempTU = RatedCoilInDb; - DataSizing::TermUnitFinalZoneSizing(DataSizing::CurTermUnitSizingNum).DesHeatCoilInHumRatTU = RatedCoilInHumRat; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CurTermUnitSizingNum = curZoneEqNum; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatCoilInTempTU = RatedCoilInDb; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatCoilInHumRatTU = RatedCoilInHumRat; state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ActualZoneNum = 1; state->dataZoneEquip->ZoneEquipConfig(curZoneEqNum).ZoneName = state->dataHeatBal->Zone(1).Name; - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesDay = "Heat Design Day"; - DataSizing::FinalZoneSizing(curZoneEqNum).DesHeatLoad = RatedCoilSensCap; - DataSizing::FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak = RatedCoilOutDb; - DataSizing::FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak = RatedCoilOutHumRat; - DataSizing::FinalZoneSizing(curZoneEqNum).ZoneRetTempAtHeatPeak = 21.6; - DataSizing::FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak = 0.007; - DataSizing::FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak = 21.0; - DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesTemp = 30.0; - DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesHumRat = 0.007; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(curZoneEqNum).HeatDesDay = "Heat Design Day"; + state->dataSize->FinalZoneSizing(curZoneEqNum).DesHeatLoad = RatedCoilSensCap; + state->dataSize->FinalZoneSizing(curZoneEqNum).OutTempAtHeatPeak = RatedCoilOutDb; + state->dataSize->FinalZoneSizing(curZoneEqNum).OutHumRatAtHeatPeak = RatedCoilOutHumRat; + state->dataSize->FinalZoneSizing(curZoneEqNum).ZoneRetTempAtHeatPeak = 21.6; + state->dataSize->FinalZoneSizing(curZoneEqNum).ZoneHumRatAtHeatPeak = 0.007; + state->dataSize->FinalZoneSizing(curZoneEqNum).ZoneTempAtHeatPeak = 21.0; + state->dataSize->FinalZoneSizing(curZoneEqNum).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(curZoneEqNum).HeatDesHumRat = 0.007; Real64 fanHeatGain = 1.3; Real64 coilCapFunTempFac = 1.0; Real64 DXFlowPerCapMinRatio = 0.00004; Real64 DXFlowPerCapMaxRatio = 0.00006; state->dataEnvrn->StdRhoAir = 1.2; - DataSizing::DataFlowUsedForSizing = airFlowRate / state->dataEnvrn->StdRhoAir; + state->dataSize->DataFlowUsedForSizing = airFlowRate / state->dataEnvrn->StdRhoAir; // setCoilHeatingCapacity will not overwrite previously set temperature data coilSelectionReportObj->setCoilHeatingCapacity(*state, @@ -497,7 +497,7 @@ TEST_F(EnergyPlusFixture, ReportCoilSelection_ZoneEqCoil) EXPECT_EQ(entAirDryBulbTemp, c1->coilDesEntTemp); EXPECT_EQ(lvgAirDryBulbTemp, c1->coilDesLvgTemp); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; // now reset entering/leaving air temps so that setCoilHeatingCapacity will initialize any uninitialized temperature data // for example if a non-water coil is used in a terminal unit and setCoilEntAirTemp is not called c1->coilDesEntTemp = -999.0; @@ -518,6 +518,6 @@ TEST_F(EnergyPlusFixture, ReportCoilSelection_ZoneEqCoil) DXFlowPerCapMaxRatio); EXPECT_EQ(RatedCoilInDb, c1->coilDesEntTemp); EXPECT_EQ(RatedCoilInHumRat, c1->coilDesEntHumRat); - EXPECT_EQ(DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesTemp, c1->coilDesLvgTemp); - EXPECT_EQ(DataSizing::FinalZoneSizing(curZoneEqNum).HeatDesHumRat, c1->coilDesLvgHumRat); + EXPECT_EQ(state->dataSize->FinalZoneSizing(curZoneEqNum).HeatDesTemp, c1->coilDesLvgTemp); + EXPECT_EQ(state->dataSize->FinalZoneSizing(curZoneEqNum).HeatDesHumRat, c1->coilDesLvgHumRat); } diff --git a/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc b/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc index 1a760e6d4f2..1dbe0d8ff54 100644 --- a/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc +++ b/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc @@ -92,9 +92,9 @@ class RoomAirflowNetworkTest : public EnergyPlusFixture { EnergyPlusFixture::SetUp(); // Sets up the base fixture first. - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataGlobal->NumOfZones = 1; NumOfNodes = 5; state->dataGlobal->BeginEnvrnFlag = true; diff --git a/tst/EnergyPlus/unit/SZVAVModel.unit.cc b/tst/EnergyPlus/unit/SZVAVModel.unit.cc index b7f4eb2b2fb..f96bb759235 100644 --- a/tst/EnergyPlus/unit/SZVAVModel.unit.cc +++ b/tst/EnergyPlus/unit/SZVAVModel.unit.cc @@ -166,9 +166,9 @@ TEST_F(EnergyPlusFixture, SZVAV_PTUnit_Testing) ASSERT_TRUE(process_idf(idf_objects)); state->dataEnvrn->StdRhoAir = 1.0; - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; DataLoopNode::Node.allocate(10); PTUnitData thisUnit; @@ -430,7 +430,7 @@ TEST_F(EnergyPlusFixture, SZVAV_FanCoilUnit_Testing) state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; std::string const idf_objects = delimited_string({ @@ -557,7 +557,7 @@ TEST_F(EnergyPlusFixture, SZVAV_FanCoilUnit_Testing) state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->TimeStep = 1; state->dataGlobal->MinutesPerTimeStep = 60; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; InitializePsychRoutines(); GetZoneData(*state, ErrorsFound); EXPECT_EQ("WEST ZONE", state->dataHeatBal->Zone(1).Name); @@ -649,8 +649,8 @@ TEST_F(EnergyPlusFixture, SZVAV_FanCoilUnit_Testing) state->dataEnvrn->HolidayIndex = 0; state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); UpdateScheduleValues(*state); - ZoneEqSizing.allocate(1); - ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneSizingRunDone = true; thisFanCoil.DesignHeatingCapacity = 10000.0; state->dataGlobal->BeginEnvrnFlag = true; state->dataGlobal->SysSizingCalc = true; diff --git a/tst/EnergyPlus/unit/SimAirServingZones.unit.cc b/tst/EnergyPlus/unit/SimAirServingZones.unit.cc index b105d5b1eae..24983e25e9b 100644 --- a/tst/EnergyPlus/unit/SimAirServingZones.unit.cc +++ b/tst/EnergyPlus/unit/SimAirServingZones.unit.cc @@ -88,9 +88,9 @@ TEST_F(EnergyPlusFixture, SimAirServingZones_ReheatCoilSizing) int CtrlZoneNum; // index of zones // Allocate - CalcSysSizing.allocate(NumPrimaryAirSys); - FinalSysSizing.allocate(NumPrimaryAirSys); - FinalZoneSizing.allocate(NumPrimaryAirSys); + state->dataSize->CalcSysSizing.allocate(NumPrimaryAirSys); + state->dataSize->FinalSysSizing.allocate(NumPrimaryAirSys); + state->dataSize->FinalZoneSizing.allocate(NumPrimaryAirSys); state->dataAirSystemsData->PrimaryAirSystems.allocate(NumPrimaryAirSys); // Inputs: system configurations: @@ -116,58 +116,58 @@ TEST_F(EnergyPlusFixture, SimAirServingZones_ReheatCoilSizing) // Inputs: sizing parameters for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { - FinalSysSizing(AirLoopNum).DesOutAirVolFlow = 0.25; - FinalSysSizing(AirLoopNum).DesHeatVolFlow = 0.50; - - FinalSysSizing(AirLoopNum).PreheatTemp = 7; - FinalSysSizing(AirLoopNum).HeatRetTemp = 22; - FinalSysSizing(AirLoopNum).HeatMixTemp = 10; - CalcSysSizing(AirLoopNum).HeatSupTemp = 17; - - FinalSysSizing(AirLoopNum).PreheatHumRat = 0.003; - FinalSysSizing(AirLoopNum).HeatRetHumRat = 0.008; - FinalSysSizing(AirLoopNum).HeatMixHumRat = 0.004; - CalcSysSizing(AirLoopNum).HeatSupHumRat = 0.006; + state->dataSize->FinalSysSizing(AirLoopNum).DesOutAirVolFlow = 0.25; + state->dataSize->FinalSysSizing(AirLoopNum).DesHeatVolFlow = 0.50; + + state->dataSize->FinalSysSizing(AirLoopNum).PreheatTemp = 7; + state->dataSize->FinalSysSizing(AirLoopNum).HeatRetTemp = 22; + state->dataSize->FinalSysSizing(AirLoopNum).HeatMixTemp = 10; + state->dataSize->CalcSysSizing(AirLoopNum).HeatSupTemp = 17; + + state->dataSize->FinalSysSizing(AirLoopNum).PreheatHumRat = 0.003; + state->dataSize->FinalSysSizing(AirLoopNum).HeatRetHumRat = 0.008; + state->dataSize->FinalSysSizing(AirLoopNum).HeatMixHumRat = 0.004; + state->dataSize->CalcSysSizing(AirLoopNum).HeatSupHumRat = 0.006; } // Run for (AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum) { CtrlZoneNum = AirLoopNum; - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTempTU = GetHeatingSATempForSizing(*state, AirLoopNum); - FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRatTU = GetHeatingSATempHumRatForSizing(*state, AirLoopNum); + state->dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInTempTU = GetHeatingSATempForSizing(*state, AirLoopNum); + state->dataSize->FinalZoneSizing(CtrlZoneNum).DesHeatCoilInHumRatTU = GetHeatingSATempHumRatForSizing(*state, AirLoopNum); } // Check - EXPECT_EQ(17.0, FinalZoneSizing(1).DesHeatCoilInTempTU); - EXPECT_NEAR(14.5, FinalZoneSizing(2).DesHeatCoilInTempTU, 0.05); - EXPECT_NEAR(14.5, FinalZoneSizing(3).DesHeatCoilInTempTU, 0.05); - EXPECT_EQ(10.0, FinalZoneSizing(4).DesHeatCoilInTempTU); - EXPECT_EQ(0.006, FinalZoneSizing(1).DesHeatCoilInHumRatTU); - EXPECT_EQ(0.0055, FinalZoneSizing(2).DesHeatCoilInHumRatTU); - EXPECT_EQ(0.0055, FinalZoneSizing(3).DesHeatCoilInHumRatTU); - EXPECT_EQ(0.004, FinalZoneSizing(4).DesHeatCoilInHumRatTU); + EXPECT_EQ(17.0, state->dataSize->FinalZoneSizing(1).DesHeatCoilInTempTU); + EXPECT_NEAR(14.5, state->dataSize->FinalZoneSizing(2).DesHeatCoilInTempTU, 0.05); + EXPECT_NEAR(14.5, state->dataSize->FinalZoneSizing(3).DesHeatCoilInTempTU, 0.05); + EXPECT_EQ(10.0, state->dataSize->FinalZoneSizing(4).DesHeatCoilInTempTU); + EXPECT_EQ(0.006, state->dataSize->FinalZoneSizing(1).DesHeatCoilInHumRatTU); + EXPECT_EQ(0.0055, state->dataSize->FinalZoneSizing(2).DesHeatCoilInHumRatTU); + EXPECT_EQ(0.0055, state->dataSize->FinalZoneSizing(3).DesHeatCoilInHumRatTU); + EXPECT_EQ(0.004, state->dataSize->FinalZoneSizing(4).DesHeatCoilInHumRatTU); // Clean up - CalcSysSizing.deallocate(); - FinalSysSizing.deallocate(); - FinalZoneSizing.deallocate(); + state->dataSize->CalcSysSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); } TEST_F(EnergyPlusFixture, SimAirServingZones_LimitZoneVentEff) { int CtrlZoneNum = 1; - TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); // Test case 1, low OA, low zoneventilationeff, no change in SysCoolingEv Real64 StartingDesCoolVolFlow = 1.0; Real64 StartingDesCoolVolFlowMin = 0.2; Real64 UncorrectedOAFlow = 0.1; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.5; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.5; Real64 Xs = 0.25; // uncorrected system outdoor air fraction Real64 VozClg = UncorrectedOAFlow; // corrected (for ventilation efficiency) zone outside air flow rate [m3/s] Real64 ZoneOAFrac = UncorrectedOAFlow / StartingDesCoolVolFlowMin; // zone OA fraction @@ -177,17 +177,17 @@ TEST_F(EnergyPlusFixture, SimAirServingZones_LimitZoneVentEff) Real64 StartingSysCoolingEv = SysCoolingEv; LimitZoneVentEff(*state, Xs, VozClg, CtrlZoneNum, SysCoolingEv); EXPECT_EQ(StartingSysCoolingEv, SysCoolingEv); - EXPECT_EQ(StartingDesCoolVolFlow, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); - EXPECT_EQ(StartingDesCoolVolFlowMin, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin); + EXPECT_EQ(StartingDesCoolVolFlow, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); + EXPECT_EQ(StartingDesCoolVolFlowMin, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin); // Test case 2, low OA, high zoneventilationeff, increase SysCoolingEv and DesCoolVolFlowMin StartingDesCoolVolFlow = 1.0; StartingDesCoolVolFlowMin = 0.2; UncorrectedOAFlow = 0.1; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.9; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.9; Xs = 0.25; // uncorrected system outdoor air fraction VozClg = UncorrectedOAFlow; // corrected (for ventilation efficiency) zone outside air flow rate [m3/s] ZoneOAFrac = UncorrectedOAFlow / StartingDesCoolVolFlowMin; // zone OA fraction @@ -196,18 +196,18 @@ TEST_F(EnergyPlusFixture, SimAirServingZones_LimitZoneVentEff) // call to LimitZoneVentEff) StartingSysCoolingEv = SysCoolingEv; LimitZoneVentEff(*state, Xs, VozClg, CtrlZoneNum, SysCoolingEv); - EXPECT_EQ(TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff, SysCoolingEv); - EXPECT_EQ(StartingDesCoolVolFlow, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); - EXPECT_NEAR(0.2857, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.001); + EXPECT_EQ(state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff, SysCoolingEv); + EXPECT_EQ(StartingDesCoolVolFlow, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow); + EXPECT_NEAR(0.2857, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.001); // Test case 3, high OA, high zoneventilationeff, increase SysCoolingEv, DesCoolVolFlowMin, and DesCoolVolFlow StartingDesCoolVolFlow = 1.0; StartingDesCoolVolFlowMin = 0.8; UncorrectedOAFlow = 0.8; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; - TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.9; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow = StartingDesCoolVolFlow; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin = StartingDesCoolVolFlowMin; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneSecondaryRecirculation = 0.0; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.9; Xs = 0.25; // uncorrected system outdoor air fraction VozClg = UncorrectedOAFlow; // corrected (for ventilation efficiency) zone outside air flow rate [m3/s] ZoneOAFrac = UncorrectedOAFlow / StartingDesCoolVolFlowMin; // zone OA fraction @@ -216,9 +216,9 @@ TEST_F(EnergyPlusFixture, SimAirServingZones_LimitZoneVentEff) // call to LimitZoneVentEff) StartingSysCoolingEv = SysCoolingEv; LimitZoneVentEff(*state, Xs, VozClg, CtrlZoneNum, SysCoolingEv); - EXPECT_EQ(TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff, SysCoolingEv); - EXPECT_NEAR(2.2857, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 0.001); - EXPECT_NEAR(2.2857, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.001); + EXPECT_EQ(state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff, SysCoolingEv); + EXPECT_NEAR(2.2857, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlow, 0.001); + EXPECT_NEAR(2.2857, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.001); } TEST_F(EnergyPlusFixture, SizingSystem_FlowPerCapacityMethodTest1) @@ -230,32 +230,32 @@ TEST_F(EnergyPlusFixture, SizingSystem_FlowPerCapacityMethodTest1) Real64 ScaledHeatDesignFlowRate(0.0); // system heating design flow rate AirLoopNum = 1; - CalcSysSizing.allocate(AirLoopNum); - FinalSysSizing.allocate(AirLoopNum); + state->dataSize->CalcSysSizing.allocate(AirLoopNum); + state->dataSize->FinalSysSizing.allocate(AirLoopNum); // set system flow sizing method for cooling - FinalSysSizing(AirLoopNum).ScaleCoolSAFMethod = FlowPerCoolingCapacity; - FinalSysSizing(AirLoopNum).CoolingCapMethod = CoolingDesignCapacity; - FinalSysSizing(AirLoopNum).ScaledCoolingCapacity = 12500.0; - FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity = 0.00006041; + state->dataSize->FinalSysSizing(AirLoopNum).ScaleCoolSAFMethod = FlowPerCoolingCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).CoolingCapMethod = CoolingDesignCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).ScaledCoolingCapacity = 12500.0; + state->dataSize->FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity = 0.00006041; // scale cooling flow rate using user input capacity - ScaledCoolDesignFlowRate = FinalSysSizing(AirLoopNum).ScaledCoolingCapacity * FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity; + ScaledCoolDesignFlowRate = state->dataSize->FinalSysSizing(AirLoopNum).ScaledCoolingCapacity * state->dataSize->FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity; // do scalable flow sizing UpdateSysSizingForScalableInputs(*state, AirLoopNum); EXPECT_DOUBLE_EQ(0.755125, ScaledCoolDesignFlowRate); - EXPECT_DOUBLE_EQ(0.755125, FinalSysSizing(AirLoopNum).InpDesCoolAirFlow); + EXPECT_DOUBLE_EQ(0.755125, state->dataSize->FinalSysSizing(AirLoopNum).InpDesCoolAirFlow); // set system flow sizing method for heating - FinalSysSizing(AirLoopNum).ScaleHeatSAFMethod = FlowPerHeatingCapacity; - FinalSysSizing(AirLoopNum).HeatingCapMethod = HeatingDesignCapacity; - FinalSysSizing(AirLoopNum).ScaledHeatingCapacity = 14400.0; - FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity = 0.00006041; + state->dataSize->FinalSysSizing(AirLoopNum).ScaleHeatSAFMethod = FlowPerHeatingCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).HeatingCapMethod = HeatingDesignCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).ScaledHeatingCapacity = 14400.0; + state->dataSize->FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity = 0.00006041; // scale heating flow rate using user input capacity - ScaledHeatDesignFlowRate = FinalSysSizing(AirLoopNum).ScaledHeatingCapacity * FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity; + ScaledHeatDesignFlowRate = state->dataSize->FinalSysSizing(AirLoopNum).ScaledHeatingCapacity * state->dataSize->FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity; // do scalable flow sizing UpdateSysSizingForScalableInputs(*state, AirLoopNum); EXPECT_DOUBLE_EQ(0.869904, ScaledHeatDesignFlowRate); - EXPECT_DOUBLE_EQ(0.869904, FinalSysSizing(AirLoopNum).InpDesHeatAirFlow); + EXPECT_DOUBLE_EQ(0.869904, state->dataSize->FinalSysSizing(AirLoopNum).InpDesHeatAirFlow); } TEST_F(EnergyPlusFixture, SizingSystem_FlowPerCapacityMethodTest2) @@ -269,36 +269,36 @@ TEST_F(EnergyPlusFixture, SizingSystem_FlowPerCapacityMethodTest2) Real64 ScaledHeatDesignCapacity(0.0); // system heating design capacity AirLoopNum = 1; - CalcSysSizing.allocate(AirLoopNum); - FinalSysSizing.allocate(AirLoopNum); + state->dataSize->CalcSysSizing.allocate(AirLoopNum); + state->dataSize->FinalSysSizing.allocate(AirLoopNum); // set system flow sizing method for cooling - FinalSysSizing(AirLoopNum).ScaleCoolSAFMethod = FlowPerCoolingCapacity; - FinalSysSizing(AirLoopNum).CoolingCapMethod = CapacityPerFloorArea; - FinalSysSizing(AirLoopNum).ScaledCoolingCapacity = 10.4732; // Watts per m2 floor area - FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity = 0.00006041; - FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled = 61.450534421531373; + state->dataSize->FinalSysSizing(AirLoopNum).ScaleCoolSAFMethod = FlowPerCoolingCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).CoolingCapMethod = CapacityPerFloorArea; + state->dataSize->FinalSysSizing(AirLoopNum).ScaledCoolingCapacity = 10.4732; // Watts per m2 floor area + state->dataSize->FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity = 0.00006041; + state->dataSize->FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled = 61.450534421531373; // scale cooling capacity using floor area - ScaledCoolDesignCapacity = FinalSysSizing(AirLoopNum).ScaledCoolingCapacity * FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled; - ScaledCoolDesignFlowRate = FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity * ScaledCoolDesignCapacity; + ScaledCoolDesignCapacity = state->dataSize->FinalSysSizing(AirLoopNum).ScaledCoolingCapacity * state->dataSize->FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled; + ScaledCoolDesignFlowRate = state->dataSize->FinalSysSizing(AirLoopNum).FlowPerCoolingCapacity * ScaledCoolDesignCapacity; // do scalable flow sizing UpdateSysSizingForScalableInputs(*state, AirLoopNum); EXPECT_DOUBLE_EQ(0.038878893558427413, ScaledCoolDesignFlowRate); - EXPECT_DOUBLE_EQ(0.038878893558427413, FinalSysSizing(AirLoopNum).InpDesCoolAirFlow); + EXPECT_DOUBLE_EQ(0.038878893558427413, state->dataSize->FinalSysSizing(AirLoopNum).InpDesCoolAirFlow); // set system flow sizing method for heating - FinalSysSizing(AirLoopNum).ScaleHeatSAFMethod = FlowPerHeatingCapacity; - FinalSysSizing(AirLoopNum).HeatingCapMethod = CapacityPerFloorArea; - FinalSysSizing(AirLoopNum).ScaledHeatingCapacity = 32.0050; // Watts per m2 floor area - FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity = 0.00006041; - FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled = 61.450534421531373; + state->dataSize->FinalSysSizing(AirLoopNum).ScaleHeatSAFMethod = FlowPerHeatingCapacity; + state->dataSize->FinalSysSizing(AirLoopNum).HeatingCapMethod = CapacityPerFloorArea; + state->dataSize->FinalSysSizing(AirLoopNum).ScaledHeatingCapacity = 32.0050; // Watts per m2 floor area + state->dataSize->FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity = 0.00006041; + state->dataSize->FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled = 61.450534421531373; // scale heating capacity using floor area - ScaledHeatDesignCapacity = FinalSysSizing(AirLoopNum).ScaledHeatingCapacity * FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled; - ScaledHeatDesignFlowRate = FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity * ScaledHeatDesignCapacity; + ScaledHeatDesignCapacity = state->dataSize->FinalSysSizing(AirLoopNum).ScaledHeatingCapacity * state->dataSize->FinalSysSizing(AirLoopNum).FloorAreaOnAirLoopCooled; + ScaledHeatDesignFlowRate = state->dataSize->FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity * ScaledHeatDesignCapacity; // do scalable flow sizing UpdateSysSizingForScalableInputs(*state, AirLoopNum); EXPECT_DOUBLE_EQ(0.11880981823487276, ScaledHeatDesignFlowRate); - EXPECT_DOUBLE_EQ(0.11880981823487276, FinalSysSizing(AirLoopNum).InpDesHeatAirFlow); + EXPECT_DOUBLE_EQ(0.11880981823487276, state->dataSize->FinalSysSizing(AirLoopNum).InpDesHeatAirFlow); } TEST_F(EnergyPlusFixture, GetAirPathData_ControllerLockout1) diff --git a/tst/EnergyPlus/unit/SingleDuct.unit.cc b/tst/EnergyPlus/unit/SingleDuct.unit.cc index 7afef3cbb3c..33d66793628 100644 --- a/tst/EnergyPlus/unit/SingleDuct.unit.cc +++ b/tst/EnergyPlus/unit/SingleDuct.unit.cc @@ -1259,14 +1259,14 @@ TEST_F(EnergyPlusFixture, SingleDuct_ZeroFloorAreaTest) // zone floor area of zone 1 = 0, zone 2 > 0. Expect TU MaxAirVolFlowRateDuringReheat = 0 only for zone 1. // this test isn't relevant anymore since defaulting is done differently - Real64 MaxAirVolFlowRateDuringReheatDes = min(FinalZoneSizing(1).DesHeatVolFlowMax, state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRate); + Real64 MaxAirVolFlowRateDuringReheatDes = min(state->dataSize->FinalZoneSizing(1).DesHeatVolFlowMax, state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRate); // Real64 MaxAirVolFlowRateDuringReheatDes = min( 0.002032 * state->dataSingleDuct->sd_airterminal( 1 ).ZoneFloorArea, state->dataSingleDuct->sd_airterminal( 1 ).MaxAirVolFlowRate ); // apply limit based on min stop MaxAirVolFlowRateDuringReheatDes = max(MaxAirVolFlowRateDuringReheatDes, (state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRate * state->dataSingleDuct->sd_airterminal(1).ZoneMinAirFrac)); // This isn't relevant any more since the default is calculated differently - Real64 MaxAirVolFractionDuringReheatDes = min(1.0, (FinalZoneSizing(1).DesHeatVolFlowMax / state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRate)); + Real64 MaxAirVolFractionDuringReheatDes = min(1.0, (state->dataSize->FinalZoneSizing(1).DesHeatVolFlowMax / state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRate)); // Real64 MaxAirVolFractionDuringReheatDes = min( 1.0, ( 0.002032 * state->dataSingleDuct->sd_airterminal( 1 ).ZoneFloorArea / state->dataSingleDuct->sd_airterminal( 1 ).MaxAirVolFlowRate ) // ); apply limit based on min stop MaxAirVolFractionDuringReheatDes = max(MaxAirVolFractionDuringReheatDes, state->dataSingleDuct->sd_airterminal(1).ZoneMinAirFrac); @@ -1279,10 +1279,10 @@ TEST_F(EnergyPlusFixture, SingleDuct_ZeroFloorAreaTest) EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(1).MaxAirVolFlowRateDuringReheat, MaxAirVolFlowRateDuringReheatDes, 0.0000000000001); EXPECT_NEAR(MaxAirVolFractionDuringReheatDes, state->dataSingleDuct->sd_airterminal(1).MaxAirVolFractionDuringReheat, 0.0000000000001); - MaxAirVolFlowRateDuringReheatDes = min(FinalZoneSizing(2).DesHeatVolFlowMax, state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate); + MaxAirVolFlowRateDuringReheatDes = min(state->dataSize->FinalZoneSizing(2).DesHeatVolFlowMax, state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate); MaxAirVolFlowRateDuringReheatDes = max(MaxAirVolFlowRateDuringReheatDes, (state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate * state->dataSingleDuct->sd_airterminal(2).ZoneMinAirFrac)); - MaxAirVolFractionDuringReheatDes = min(1.0, (FinalZoneSizing(2).DesHeatVolFlowMax / state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate)); + MaxAirVolFractionDuringReheatDes = min(1.0, (state->dataSize->FinalZoneSizing(2).DesHeatVolFlowMax / state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate)); MaxAirVolFractionDuringReheatDes = max(MaxAirVolFractionDuringReheatDes, state->dataSingleDuct->sd_airterminal(2).ZoneMinAirFrac); MaxAirVolFlowRateDuringReheatDes = min(max(MaxAirVolFlowRateDuringReheatDes, MaxAirVolFractionDuringReheatDes * state->dataSingleDuct->sd_airterminal(2).MaxAirVolFlowRate), @@ -1309,7 +1309,7 @@ TEST_F(EnergyPlusFixture, TestOAMassFlowRateUsingStdRhoAir) state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataAirLoop->AirLoopFlow.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); - DataSizing::OARequirements.allocate(1); + state->dataSize->OARequirements.allocate(1); state->dataHeatBal->ZoneIntGain.allocate(1); state->dataHeatBal->Zone(1).FloorArea = 10.0; @@ -1324,10 +1324,10 @@ TEST_F(EnergyPlusFixture, TestOAMassFlowRateUsingStdRhoAir) state->dataAirLoop->AirLoopFlow(1).OAFrac = 0.4; state->dataAirLoop->AirLoopControlInfo(1).AirLoopDCVFlag = true; - DataSizing::OARequirements(1).Name = "CM DSOA WEST ZONE"; - DataSizing::OARequirements(1).OAFlowMethod = DataSizing::OAFlowSum; - DataSizing::OARequirements(1).OAFlowPerPerson = 0.003149; - DataSizing::OARequirements(1).OAFlowPerArea = 0.000407; + state->dataSize->OARequirements(1).Name = "CM DSOA WEST ZONE"; + state->dataSize->OARequirements(1).OAFlowMethod = DataSizing::OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.003149; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.000407; state->dataEnvrn->StdRhoAir = 1.20; state->dataHeatBal->ZoneIntGain(1).NOFOCC = 0.1; @@ -1341,7 +1341,7 @@ TEST_F(EnergyPlusFixture, TestOAMassFlowRateUsingStdRhoAir) state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataAirLoop->AirLoopFlow.deallocate(); state->dataAirLoop->AirLoopControlInfo.deallocate(); - DataSizing::OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); } @@ -2469,11 +2469,11 @@ TEST_F(EnergyPlusFixture, SingleDuct_VAVWaterCoilSizing) // " Until: 24:00, 10.0; !- Field 23", state->dataEnvrn->StdRhoAir = 1.2027389349552706; - Real64 CoilInTemp = TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU; - Real64 DesMassFlow = state->dataEnvrn->StdRhoAir * TermUnitSizing(1).AirVolFlow; - Real64 DesZoneHeatLoad = FinalZoneSizing(1).DesHeatLoad * FinalZoneSizing(1).HeatSizingFactor; - Real64 ZoneDesTemp = FinalZoneSizing(1).ZoneTempAtHeatPeak; - Real64 ZoneDesHumRat = FinalZoneSizing(1).ZoneHumRatAtHeatPeak; + Real64 CoilInTemp = state->dataSize->TermUnitFinalZoneSizing(1).DesHeatCoilInTempTU; + Real64 DesMassFlow = state->dataEnvrn->StdRhoAir * state->dataSize->TermUnitSizing(1).AirVolFlow; + Real64 DesZoneHeatLoad = state->dataSize->FinalZoneSizing(1).DesHeatLoad * state->dataSize->FinalZoneSizing(1).HeatSizingFactor; + Real64 ZoneDesTemp = state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak; + Real64 ZoneDesHumRat = state->dataSize->FinalZoneSizing(1).ZoneHumRatAtHeatPeak; Real64 DesCoilLoad = DesZoneHeatLoad + Psychrometrics::PsyCpAirFnW(ZoneDesHumRat) * DesMassFlow * (ZoneDesTemp - CoilInTemp); @@ -2498,7 +2498,7 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest) state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataAirLoop->AirLoopFlow.allocate(1); DataLoopNode::Node.allocate(3); - DataSizing::OARequirements.allocate(1); + state->dataSize->OARequirements.allocate(1); state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->ZoneIntGain.allocate(1); @@ -2514,9 +2514,9 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest) state->dataAirLoop->AirLoopFlow(1).OAFrac = 1.0; state->dataHeatBal->Zone(1).FloorArea = 10.0; - OARequirements(1).OAFlowMethod = OAFlowSum; - OARequirements(1).OAFlowPerZone = 0.1; - OARequirements(1).OAFlowPerPerson = 0.1; + state->dataSize->OARequirements(1).OAFlowMethod = OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerZone = 0.1; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.1; DataLoopNode::Node(2).Press = 101325.0; DataLoopNode::Node(2).Temp = 23.0; @@ -2543,7 +2543,7 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest) state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataAirLoop->AirLoopFlow.deallocate(); DataLoopNode::Node.deallocate(); - DataSizing::OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); state->dataHeatBal->Zone.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); } @@ -2561,7 +2561,7 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest2) state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataAirLoop->AirLoopFlow.allocate(1); DataLoopNode::Node.allocate(3); - DataSizing::OARequirements.allocate(1); + state->dataSize->OARequirements.allocate(1); state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->ZoneIntGain.allocate(1); @@ -2580,11 +2580,11 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest2) state->dataAirLoop->AirLoopFlow(1).OAFrac = 1.0; state->dataHeatBal->Zone(1).FloorArea = 10.0; - OARequirements(1).OAFlowMethod = OAFlowSum; - OARequirements(1).OAFlowPerZone = 0.5; - OARequirements(1).OAFlowPerPerson = 0.0; - OARequirements(1).OAFlowPerArea = 0.0; - OARequirements(1).OAFlowACH = 0.0; + state->dataSize->OARequirements(1).OAFlowMethod = OAFlowSum; + state->dataSize->OARequirements(1).OAFlowPerZone = 0.5; + state->dataSize->OARequirements(1).OAFlowPerPerson = 0.0; + state->dataSize->OARequirements(1).OAFlowPerArea = 0.0; + state->dataSize->OARequirements(1).OAFlowACH = 0.0; DataLoopNode::Node(2).Press = 101325.0; DataLoopNode::Node(2).Temp = 23.0; @@ -2626,7 +2626,7 @@ TEST_F(EnergyPlusFixture, TerminalUnitMixerInitTest2) state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataAirLoop->AirLoopFlow.deallocate(); DataLoopNode::Node.deallocate(); - DataSizing::OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); state->dataHeatBal->Zone.deallocate(); state->dataHeatBal->ZoneIntGain.deallocate(); } @@ -2690,9 +2690,9 @@ TEST_F(EnergyPlusFixture, VAVReheatTerminal_SizeMinFrac) HeatBalanceManager::GetZoneData(*state, ErrorsFound); ASSERT_FALSE(ErrorsFound); DataZoneEquipment::GetZoneEquipmentData(*state); - DataSizing::TermUnitFinalZoneSizing.allocate(1); - DataSizing::TermUnitSizing.allocate(1); - DataSizing::FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); ZoneAirLoopEquipmentManager::GetZoneAirLoopEquipment(*state); SingleDuct::GetSysInput(*state); EXPECT_TRUE(compare_err_stream("")); @@ -2700,19 +2700,19 @@ TEST_F(EnergyPlusFixture, VAVReheatTerminal_SizeMinFrac) int SysNum = 1; // First test - design min flow < max flow - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; - DataSizing::TermUnitFinalZoneSizing(1).DesCoolVolFlowMin = 0.5; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitFinalZoneSizing(1).DesCoolVolFlowMin = 0.5; state->dataSingleDuct->sd_airterminal(SysNum).SizeSys(*state); EXPECT_EQ(0.5, state->dataSingleDuct->sd_airterminal(SysNum).ZoneMinAirFracDes); // Second test - design min flow > max flow - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; state->dataSingleDuct->sd_airterminal(SysNum).ZoneMinAirFracDes = AutoSize; // need to reset this so it sizes again - DataSizing::TermUnitFinalZoneSizing(1).DesCoolVolFlowMin = 1.5; + state->dataSize->TermUnitFinalZoneSizing(1).DesCoolVolFlowMin = 1.5; state->dataSingleDuct->sd_airterminal(SysNum).SizeSys(*state); EXPECT_EQ(1.0, state->dataSingleDuct->sd_airterminal(SysNum).ZoneMinAirFracDes); } @@ -2722,31 +2722,31 @@ TEST_F(EnergyPlusFixture, setATMixerSizingProperties_Test) state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).InletNodeAirLoopNum.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).InletNodeAirLoopNum(1) = 1; - SysSizingRunDone = true; - SysSizInput.allocate(1); - NumSysSizInput = 1; - SysSizInput(1).AirLoopNum = 1; - SysSizInput(1).AirPriLoopName = "MyAirLoop"; - FinalSysSizing.allocate(1); - FinalSysSizing(1).AirPriLoopName = "MyAirLoop"; - FinalSysSizing(1).PreheatTemp = 15.0; - FinalSysSizing(1).PreheatHumRat = 0.005; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatRetHumRat = 0.007; - FinalSysSizing(1).PrecoolTemp = 18.0; - FinalSysSizing(1).PrecoolHumRat = 0.008; - FinalSysSizing(1).RetTempAtCoolPeak = 24.0; - FinalSysSizing(1).RetHumRatAtCoolPeak = 0.01; - FinalSysSizing(1).OutTempAtCoolPeak = 32.0; - FinalSysSizing(1).OutHumRatAtCoolPeak = 0.012; - FinalSysSizing(1).HeatOutTemp = 10.0; - FinalSysSizing(1).HeatOutHumRat = 0.003; - FinalSysSizing(1).DesMainVolFlow = 1.2345; - FinalSysSizing(1).DesOutAirVolFlow = 1.2345; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->NumSysSizInput = 1; + state->dataSize->SysSizInput(1).AirLoopNum = 1; + state->dataSize->SysSizInput(1).AirPriLoopName = "MyAirLoop"; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(1).AirPriLoopName = "MyAirLoop"; + state->dataSize->FinalSysSizing(1).PreheatTemp = 15.0; + state->dataSize->FinalSysSizing(1).PreheatHumRat = 0.005; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatRetHumRat = 0.007; + state->dataSize->FinalSysSizing(1).PrecoolTemp = 18.0; + state->dataSize->FinalSysSizing(1).PrecoolHumRat = 0.008; + state->dataSize->FinalSysSizing(1).RetTempAtCoolPeak = 24.0; + state->dataSize->FinalSysSizing(1).RetHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).OutTempAtCoolPeak = 32.0; + state->dataSize->FinalSysSizing(1).OutHumRatAtCoolPeak = 0.012; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 10.0; + state->dataSize->FinalSysSizing(1).HeatOutHumRat = 0.003; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.2345; + state->dataSize->FinalSysSizing(1).DesOutAirVolFlow = 1.2345; state->dataSingleDuct->SysATMixer.allocate(1); state->dataSingleDuct->SysATMixer(1).CtrlZoneInNodeIndex = 1; - state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate = FinalSysSizing(1).DesMainVolFlow; + state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate = state->dataSize->FinalSysSizing(1).DesMainVolFlow; state->dataSingleDuct->SysATMixer(1).MixerType = DataHVACGlobals::ATMixer_InletSide; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); @@ -2755,47 +2755,47 @@ TEST_F(EnergyPlusFixture, setATMixerSizingProperties_Test) state->dataAirSystemsData->PrimaryAirSystems(1).NumOAHeatCoils = 1; state->dataAirSystemsData->PrimaryAirSystems(1).NumOACoolCoils = 1; - ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); int ATMixerIndex = 1; int ControlledZoneNum = 1; - CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; // set ATMixer properties used for sizing - SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, state->dataSize->CurZoneEqNum); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerVolFlow, state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerCoolPriDryBulb, FinalSysSizing(1).CoolSupTemp); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerCoolPriHumRat, FinalSysSizing(1).CoolSupHumRat); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerHeatPriDryBulb, FinalSysSizing(1).HeatSupTemp); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerHeatPriHumRat, FinalSysSizing(1).HeatSupHumRat); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerVolFlow, state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb, state->dataSize->FinalSysSizing(1).CoolSupTemp); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat, state->dataSize->FinalSysSizing(1).CoolSupHumRat); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb, state->dataSize->FinalSysSizing(1).HeatSupTemp); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat, state->dataSize->FinalSysSizing(1).HeatSupHumRat); state->dataAirSystemsData->PrimaryAirSystems(1).CentralCoolCoilExists = false; state->dataAirSystemsData->PrimaryAirSystems(1).CentralHeatCoilExists = false; // set ATMixer properties used for sizing - SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, state->dataSize->CurZoneEqNum); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerCoolPriDryBulb, FinalSysSizing(1).PrecoolTemp); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerCoolPriHumRat, FinalSysSizing(1).PrecoolHumRat); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerHeatPriDryBulb, FinalSysSizing(1).PreheatTemp); - EXPECT_DOUBLE_EQ(ZoneEqSizing(1).ATMixerHeatPriHumRat, FinalSysSizing(1).PreheatHumRat); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb, state->dataSize->FinalSysSizing(1).PrecoolTemp); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat, state->dataSize->FinalSysSizing(1).PrecoolHumRat); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb, state->dataSize->FinalSysSizing(1).PreheatTemp); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat, state->dataSize->FinalSysSizing(1).PreheatHumRat); // set ATMixer properties used for sizing state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate /= 2.0; - SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, state->dataSize->CurZoneEqNum); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerCoolPriDryBulb, FinalSysSizing(1).PrecoolTemp, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerCoolPriHumRat, FinalSysSizing(1).PrecoolHumRat, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerHeatPriDryBulb, FinalSysSizing(1).PreheatTemp, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerHeatPriHumRat, FinalSysSizing(1).PreheatHumRat, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb, state->dataSize->FinalSysSizing(1).PrecoolTemp, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat, state->dataSize->FinalSysSizing(1).PrecoolHumRat, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb, state->dataSize->FinalSysSizing(1).PreheatTemp, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat, state->dataSize->FinalSysSizing(1).PreheatHumRat, 0.0000001); state->dataAirSystemsData->PrimaryAirSystems(1).NumOAHeatCoils = 0; state->dataAirSystemsData->PrimaryAirSystems(1).NumOACoolCoils = 0; state->dataSingleDuct->SysATMixer(1).DesignPrimaryAirVolRate *= 2.0; - SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, CurZoneEqNum); + SingleDuct::setATMixerSizingProperties(*state, ATMixerIndex, ControlledZoneNum, state->dataSize->CurZoneEqNum); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerCoolPriDryBulb, FinalSysSizing(1).OutTempAtCoolPeak, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerCoolPriHumRat, FinalSysSizing(1).OutHumRatAtCoolPeak, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerHeatPriDryBulb, FinalSysSizing(1).HeatOutTemp, 0.0000001); - EXPECT_NEAR(ZoneEqSizing(1).ATMixerHeatPriHumRat, FinalSysSizing(1).HeatOutHumRat, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriDryBulb, state->dataSize->FinalSysSizing(1).OutTempAtCoolPeak, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerCoolPriHumRat, state->dataSize->FinalSysSizing(1).OutHumRatAtCoolPeak, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriDryBulb, state->dataSize->FinalSysSizing(1).HeatOutTemp, 0.0000001); + EXPECT_NEAR(state->dataSize->ZoneEqSizing(1).ATMixerHeatPriHumRat, state->dataSize->FinalSysSizing(1).HeatOutHumRat, 0.0000001); } diff --git a/tst/EnergyPlus/unit/SizeWaterHeatingCoil.unit.cc b/tst/EnergyPlus/unit/SizeWaterHeatingCoil.unit.cc index d682127e31d..07022866b1c 100644 --- a/tst/EnergyPlus/unit/SizeWaterHeatingCoil.unit.cc +++ b/tst/EnergyPlus/unit/SizeWaterHeatingCoil.unit.cc @@ -220,17 +220,17 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils1) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); - ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); - NumPltSizInput = 1; + state->dataSize->NumPltSizInput = 1; for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); loop.LoopSide.allocate(2); @@ -255,7 +255,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils1) state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; GetSysInput(*state); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -271,46 +271,46 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils1) state->dataSingleDuct->sd_airterminal(1).HWLoopNum = 1; state->dataSingleDuct->sd_airterminal(1).HWLoopSide = 1; state->dataSingleDuct->sd_airterminal(1).HWBranchIndex = 1; - PlantSizData(1).DeltaT = 11.0; - PlantSizData(1).ExitTemp = 82; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).LoopType = 1; - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurSysNum = 0; + state->dataSize->PlantSizData(1).DeltaT = 11.0; + state->dataSize->PlantSizData(1).ExitTemp = 82; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).LoopType = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; state->dataHeatBal->Zone(1).FloorArea = 99.16; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - CurTermUnitSizingNum = 1; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 16.7; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 16.6; - TermUnitSizing(CurZoneEqNum).AirVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 16.7; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 16.6; + state->dataSize->TermUnitSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; OutputReportPredefined::SetPredefinedTables(*state); state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); @@ -320,14 +320,14 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils1) Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); state->dataPlnt->PlantLoop.deallocate(); - PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataWaterCoils->MySizeFlag.deallocate(); state->dataWaterCoils->MyUAAndFlowCalcFlag.deallocate(); } @@ -458,17 +458,17 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils2) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); - ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); - NumPltSizInput = 1; + state->dataSize->NumPltSizInput = 1; for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); loop.LoopSide.allocate(2); @@ -493,7 +493,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils2) state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; GetSysInput(*state); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -509,45 +509,45 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils2) state->dataSingleDuct->sd_airterminal(1).HWLoopNum = 1; state->dataSingleDuct->sd_airterminal(1).HWLoopSide = 1; state->dataSingleDuct->sd_airterminal(1).HWBranchIndex = 1; - PlantSizData(1).DeltaT = 11.0; - PlantSizData(1).ExitTemp = 82; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).LoopType = 1; - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurSysNum = 0; + state->dataSize->PlantSizData(1).DeltaT = 11.0; + state->dataSize->PlantSizData(1).ExitTemp = 82; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).LoopType = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; state->dataHeatBal->Zone(1).FloorArea = 99.16; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - CurTermUnitSizingNum = 1; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 16.6; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 16.6; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); @@ -558,14 +558,14 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils2) Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); state->dataPlnt->PlantLoop.deallocate(); - PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataWaterCoils->MySizeFlag.deallocate(); state->dataWaterCoils->MyUAAndFlowCalcFlag.deallocate(); } @@ -695,17 +695,17 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils3) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); - ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); - NumPltSizInput = 1; + state->dataSize->NumPltSizInput = 1; for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); loop.LoopSide.allocate(2); @@ -730,7 +730,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils3) state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; GetSysInput(*state); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -746,45 +746,45 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils3) state->dataSingleDuct->sd_airterminal(1).HWLoopNum = 1; state->dataSingleDuct->sd_airterminal(1).HWLoopSide = 1; state->dataSingleDuct->sd_airterminal(1).HWBranchIndex = 1; - PlantSizData(1).DeltaT = 11.0; - PlantSizData(1).ExitTemp = 82; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).LoopType = 1; - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurSysNum = 0; + state->dataSize->PlantSizData(1).DeltaT = 11.0; + state->dataSize->PlantSizData(1).ExitTemp = 82; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).LoopType = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; state->dataHeatBal->Zone(1).FloorArea = 99.16; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - CurTermUnitSizingNum = 1; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow = 0.28794; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 16.6; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesCoolVolFlow = 0.28794; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 16.6; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); SizeWaterCoil(*state, 1); @@ -794,14 +794,14 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils3) Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); state->dataPlnt->PlantLoop.deallocate(); - PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataWaterCoils->MySizeFlag.deallocate(); state->dataWaterCoils->MyUAAndFlowCalcFlag.deallocate(); } @@ -932,17 +932,17 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils4) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); - ZoneEqSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); - NumPltSizInput = 1; + state->dataSize->NumPltSizInput = 1; for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); loop.LoopSide.allocate(2); @@ -967,7 +967,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils4) state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; GetSysInput(*state); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -983,45 +983,45 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils4) state->dataSingleDuct->sd_airterminal(1).HWLoopNum = 1; state->dataSingleDuct->sd_airterminal(1).HWLoopSide = 1; state->dataSingleDuct->sd_airterminal(1).HWBranchIndex = 1; - PlantSizData(1).DeltaT = 11.0; - PlantSizData(1).ExitTemp = 82; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).LoopType = 1; - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurSysNum = 0; + state->dataSize->PlantSizData(1).DeltaT = 11.0; + state->dataSize->PlantSizData(1).ExitTemp = 82; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).LoopType = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; state->dataHeatBal->Zone(1).FloorArea = 99.16; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(25); - CurTermUnitSizingNum = 1; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow = 0.28794; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 16.6; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.28794; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = 0.12046; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesCoolVolFlow = 0.28794; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 16.6; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.008; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.28794; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).NonAirSysDesHeatLoad = 3191.7; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.099; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.0038485; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = 0.12046; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); SizeWaterCoil(*state, 1); @@ -1031,14 +1031,14 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils4) Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); - ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.deallocate(); state->dataPlnt->PlantLoop.deallocate(); - PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataWaterCoils->MySizeFlag.deallocate(); state->dataWaterCoils->MyUAAndFlowCalcFlag.deallocate(); } @@ -1134,16 +1134,16 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils5) ASSERT_TRUE(process_idf(idf_objects)); - FinalSysSizing.allocate(1); - UnitarySysEqSizing.allocate(1); + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); - NumPltSizInput = 1; + state->dataSize->NumPltSizInput = 1; for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { auto &loop(state->dataPlnt->PlantLoop(l)); loop.LoopSide.allocate(2); @@ -1162,7 +1162,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils5) state->dataWaterCoils->GetWaterCoilsInputFlag = false; state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -1175,26 +1175,26 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils5) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil_SimpleHeating; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(1).WaterInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataWaterCoils->WaterCoil(1).WaterOutletNodeNum; - PlantSizData(1).DeltaT = 11.0; - PlantSizData(1).ExitTemp = 82; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).LoopType = 1; - ZoneSizingRunDone = true; - SysSizingRunDone = true; - CurZoneEqNum = 0; - CurSysNum = 1; - CurDuctType = 1; + state->dataSize->PlantSizData(1).DeltaT = 11.0; + state->dataSize->PlantSizData(1).ExitTemp = 82; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).LoopType = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurDuctType = 1; state->dataHeatBal->Zone(1).FloorArea = 99.16; - FinalSysSizing(CurSysNum).HeatingCapMethod = 9; - FinalSysSizing(CurSysNum).HeatingTotalCapacity = 12000.; - FinalSysSizing(CurSysNum).SysAirMinFlowRat = 0.3; - FinalSysSizing(CurSysNum).DesMainVolFlow = 3.4; - FinalSysSizing(CurSysNum).DesOutAirVolFlow = 0.49; - FinalSysSizing(CurSysNum).HeatOutTemp = -17.3; - FinalSysSizing(CurSysNum).HeatRetTemp = 21.3; - FinalSysSizing(CurSysNum).HeatSupTemp = 16.7; - UnitarySysEqSizing(CurSysNum).CoolingCapacity = false; - UnitarySysEqSizing(CurSysNum).HeatingCapacity = false; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatingCapMethod = 9; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatingTotalCapacity = 12000.; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).SysAirMinFlowRat = 0.3; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesMainVolFlow = 3.4; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.49; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatOutTemp = -17.3; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatRetTemp = 21.3; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).HeatSupTemp = 16.7; + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).CoolingCapacity = false; + state->dataSize->UnitarySysEqSizing(state->dataSize->CurSysNum).HeatingCapacity = false; DataHVACGlobals::NumPrimaryAirSys = 1; SizeWaterCoil(*state, 1); EXPECT_NEAR(state->dataWaterCoils->WaterCoil(1).MaxWaterMassFlowRate, .258323, 0.00001); @@ -1203,11 +1203,11 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils5) Node.deallocate(); state->dataHeatBal->Zone.deallocate(); state->dataPlnt->PlantLoop.deallocate(); - PlantSizData.deallocate(); + state->dataSize->PlantSizData.deallocate(); state->dataWaterCoils->MySizeFlag.deallocate(); state->dataWaterCoils->MyUAAndFlowCalcFlag.deallocate(); - FinalSysSizing.deallocate(); - UnitarySysEqSizing.deallocate(); + state->dataSize->FinalSysSizing.deallocate(); + state->dataSize->UnitarySysEqSizing.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); state->dataAirLoop->AirLoopControlInfo.deallocate(); } @@ -1349,7 +1349,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils6) ASSERT_TRUE(process_idf(idf_objects)); - TermUnitSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); state->dataWaterCoils->MySizeFlag.allocate(1); @@ -1378,7 +1378,7 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils6) state->dataWaterCoils->MySizeFlag(1) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag(1) = false; GetSysInput(*state); - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopBranchNum = 1; @@ -1394,9 +1394,9 @@ TEST_F(EnergyPlusFixture, TestSizingRoutineForHotWaterCoils6) state->dataSingleDuct->sd_airterminal(1).HWLoopNum = 1; state->dataSingleDuct->sd_airterminal(1).HWLoopSide = 1; state->dataSingleDuct->sd_airterminal(1).HWBranchIndex = 1; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; - CurSysNum = 0; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->CurSysNum = 0; state->dataHeatBal->Zone(1).FloorArea = 99.16; state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; diff --git a/tst/EnergyPlus/unit/SizingAnalysisObjects.unit.cc b/tst/EnergyPlus/unit/SizingAnalysisObjects.unit.cc index 020b2acb13c..e05741b9b51 100644 --- a/tst/EnergyPlus/unit/SizingAnalysisObjects.unit.cc +++ b/tst/EnergyPlus/unit/SizingAnalysisObjects.unit.cc @@ -112,11 +112,11 @@ class SizingAnalysisObjectsTest : public EnergyPlusFixture OutputProcessor::SetupTimePointers(*state, "ZONE", state->dataGlobal->TimeStepZone); OutputProcessor::SetupTimePointers(*state, "HVAC", DataHVACGlobals::TimeStepSys); - PlantSizData.allocate(1); + state->dataSize->PlantSizData.allocate(1); - PlantSizData(1).SizingFactorOption = NoSizingFactorMode; - PlantSizData(1).DesVolFlowRate = 0.002; - PlantSizData(1).DeltaT = 10; + state->dataSize->PlantSizData(1).SizingFactorOption = NoSizingFactorMode; + state->dataSize->PlantSizData(1).DesVolFlowRate = 0.002; + state->dataSize->PlantSizData(1).DeltaT = 10; state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); diff --git a/tst/EnergyPlus/unit/SizingManager.unit.cc b/tst/EnergyPlus/unit/SizingManager.unit.cc index 154e5e948d8..25bbf18a935 100644 --- a/tst/EnergyPlus/unit/SizingManager.unit.cc +++ b/tst/EnergyPlus/unit/SizingManager.unit.cc @@ -77,7 +77,7 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) std::string CurrentModuleObject = "DesignSpecification:OutdoorAir"; int NumOARequirements = 6; - OARequirements.allocate(NumOARequirements); + state->dataSize->OARequirements.allocate(NumOARequirements); Array1D_string Alphas; // Alpha input items for object Array1D_string cAlphaFields; // Alpha field names @@ -108,11 +108,11 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlowPerArea, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.2, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlowPerArea, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.2, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Flow/Person OAIndex = 2; @@ -129,11 +129,11 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlowPPer, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.1, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlowPPer, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.1, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Flow/Zone OAIndex = 3; @@ -150,11 +150,11 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlow, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.3, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlow, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.3, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Flow/Zone OAIndex = 4; @@ -171,11 +171,11 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlowACH, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.0, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.4, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlowACH, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.0, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.4, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Sum OAIndex = 5; @@ -192,11 +192,11 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlowSum, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.1, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.2, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.3, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.4, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlowSum, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.1, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.2, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.3, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.4, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Maximum OAIndex = 6; @@ -213,14 +213,14 @@ TEST_F(EnergyPlusFixture, GetOARequirementsTest_DSOA1) EXPECT_FALSE(ErrorsFound); - EXPECT_EQ(OAFlowMax, OARequirements(OAIndex).OAFlowMethod); - EXPECT_EQ(0.1, OARequirements(OAIndex).OAFlowPerPerson); - EXPECT_EQ(0.2, OARequirements(OAIndex).OAFlowPerArea); - EXPECT_EQ(0.3, OARequirements(OAIndex).OAFlowPerZone); - EXPECT_EQ(0.4, OARequirements(OAIndex).OAFlowACH); + EXPECT_EQ(OAFlowMax, state->dataSize->OARequirements(OAIndex).OAFlowMethod); + EXPECT_EQ(0.1, state->dataSize->OARequirements(OAIndex).OAFlowPerPerson); + EXPECT_EQ(0.2, state->dataSize->OARequirements(OAIndex).OAFlowPerArea); + EXPECT_EQ(0.3, state->dataSize->OARequirements(OAIndex).OAFlowPerZone); + EXPECT_EQ(0.4, state->dataSize->OARequirements(OAIndex).OAFlowACH); // Clean up - OARequirements.deallocate(); + state->dataSize->OARequirements.deallocate(); Alphas.deallocate(); cAlphaFields.deallocate(); cNumericFields.deallocate(); @@ -309,15 +309,15 @@ TEST_F(EnergyPlusFixture, SizingManager_DOASControlStrategyDefaultSpecificationT ASSERT_FALSE(ErrorsFound); SizingManager::GetOARequirements(*state); SizingManager::GetZoneSizingInput(*state); - ASSERT_EQ(1, NumZoneSizingInput); - ASSERT_EQ(DOANeutralSup, ZoneSizingInput(1).DOASControlStrategy); - ASSERT_EQ(DataSizing::AutoSize, ZoneSizingInput(1).DOASLowSetpoint); - ASSERT_EQ(DataSizing::AutoSize, ZoneSizingInput(1).DOASHighSetpoint); + ASSERT_EQ(1, state->dataSize->NumZoneSizingInput); + ASSERT_EQ(DOANeutralSup, state->dataSize->ZoneSizingInput(1).DOASControlStrategy); + ASSERT_EQ(DataSizing::AutoSize, state->dataSize->ZoneSizingInput(1).DOASLowSetpoint); + ASSERT_EQ(DataSizing::AutoSize, state->dataSize->ZoneSizingInput(1).DOASHighSetpoint); // set default DOAS control strategy setpoint values ZoneEquipmentManager::AutoCalcDOASControlStrategy(*state); // check default low and high set point values - ASSERT_EQ(21.1, ZoneSizingInput(1).DOASLowSetpoint); - ASSERT_EQ(23.9, ZoneSizingInput(1).DOASHighSetpoint); + ASSERT_EQ(21.1, state->dataSize->ZoneSizingInput(1).DOASLowSetpoint); + ASSERT_EQ(23.9, state->dataSize->ZoneSizingInput(1).DOASHighSetpoint); } TEST_F(EnergyPlusFixture, SizingManager_DOASControlStrategyDefaultSpecificationTest2) @@ -378,15 +378,15 @@ TEST_F(EnergyPlusFixture, SizingManager_DOASControlStrategyDefaultSpecificationT ASSERT_FALSE(ErrorsFound); SizingManager::GetOARequirements(*state); SizingManager::GetZoneSizingInput(*state); - ASSERT_EQ(1, NumZoneSizingInput); - ASSERT_EQ(DOANeutralSup, ZoneSizingInput(1).DOASControlStrategy); - ASSERT_EQ(DataSizing::AutoSize, ZoneSizingInput(1).DOASLowSetpoint); - ASSERT_EQ(DataSizing::AutoSize, ZoneSizingInput(1).DOASHighSetpoint); + ASSERT_EQ(1, state->dataSize->NumZoneSizingInput); + ASSERT_EQ(DOANeutralSup, state->dataSize->ZoneSizingInput(1).DOASControlStrategy); + ASSERT_EQ(DataSizing::AutoSize, state->dataSize->ZoneSizingInput(1).DOASLowSetpoint); + ASSERT_EQ(DataSizing::AutoSize, state->dataSize->ZoneSizingInput(1).DOASHighSetpoint); // set default DOAS control strategy setpoint values ZoneEquipmentManager::AutoCalcDOASControlStrategy(*state); // check default low and high set point values - ASSERT_EQ(21.1, ZoneSizingInput(1).DOASLowSetpoint); - ASSERT_EQ(23.9, ZoneSizingInput(1).DOASHighSetpoint); + ASSERT_EQ(21.1, state->dataSize->ZoneSizingInput(1).DOASLowSetpoint); + ASSERT_EQ(23.9, state->dataSize->ZoneSizingInput(1).DOASHighSetpoint); } TEST_F(EnergyPlusFixture, SizingManager_CalcdoLoadComponentPulseNowTest) diff --git a/tst/EnergyPlus/unit/SwimmingPool.unit.cc b/tst/EnergyPlus/unit/SwimmingPool.unit.cc index c0c54ebd23e..1a6ca15b0a4 100644 --- a/tst/EnergyPlus/unit/SwimmingPool.unit.cc +++ b/tst/EnergyPlus/unit/SwimmingPool.unit.cc @@ -216,26 +216,26 @@ TEST_F(EnergyPlusFixture, SwimmingPool_InitSwimmingPoolPlantNodeFlow) state->dataSwimmingPools->Pool(1).WaterMassFlowRateMax = 0.75; state->dataSwimmingPools->Pool(1).WaterVolFlowMax = 0.00075; state->dataSwimmingPools->Pool(1).MyPlantScanFlagPool = false; - DataSizing::SaveNumPlantComps = 0; - DataSizing::CompDesWaterFlow.deallocate(); + state->dataSize->SaveNumPlantComps = 0; + state->dataSize->CompDesWaterFlow.deallocate(); DataLoopNode::Node(1).MassFlowRate = 0.0; DataLoopNode::Node(1).MassFlowRateMax = 0.0; - thisPool.initSwimmingPoolPlantNodeFlow(); - EXPECT_EQ(DataSizing::CompDesWaterFlow(1).SupNode, 1); - EXPECT_EQ(DataSizing::CompDesWaterFlow(1).DesVolFlowRate, 0.00075); + thisPool.initSwimmingPoolPlantNodeFlow(*state); + EXPECT_EQ(state->dataSize->CompDesWaterFlow(1).SupNode, 1); + EXPECT_EQ(state->dataSize->CompDesWaterFlow(1).DesVolFlowRate, 0.00075); // Test 2 state->dataSwimmingPools->Pool(1).WaterMassFlowRate = 0.5; state->dataSwimmingPools->Pool(1).WaterMassFlowRateMax = 2.0; state->dataSwimmingPools->Pool(1).WaterVolFlowMax = 0.002; state->dataSwimmingPools->Pool(1).MyPlantScanFlagPool = false; - DataSizing::SaveNumPlantComps = 0; - DataSizing::CompDesWaterFlow.deallocate(); + state->dataSize->SaveNumPlantComps = 0; + state->dataSize->CompDesWaterFlow.deallocate(); DataLoopNode::Node(1).MassFlowRate = 0.0; DataLoopNode::Node(1).MassFlowRateMax = 0.0; - thisPool.initSwimmingPoolPlantNodeFlow(); - EXPECT_EQ(DataSizing::CompDesWaterFlow(1).SupNode, 1); - EXPECT_EQ(DataSizing::CompDesWaterFlow(1).DesVolFlowRate, 0.002); + thisPool.initSwimmingPoolPlantNodeFlow(*state); + EXPECT_EQ(state->dataSize->CompDesWaterFlow(1).SupNode, 1); + EXPECT_EQ(state->dataSize->CompDesWaterFlow(1).DesVolFlowRate, 0.002); } diff --git a/tst/EnergyPlus/unit/UnitHeater.unit.cc b/tst/EnergyPlus/unit/UnitHeater.unit.cc index 4b607d160e8..d269dcbe90d 100644 --- a/tst/EnergyPlus/unit/UnitHeater.unit.cc +++ b/tst/EnergyPlus/unit/UnitHeater.unit.cc @@ -1123,8 +1123,8 @@ TEST_F(EnergyPlusFixture, UnitHeater_HWHeatingCoilUAAutoSizingTest) EXPECT_EQ("ZONE2UNITHEAT", state->dataUnitHeaters->UnitHeat(1).Name); ErrorsFound = false; - ZoneEqUnitHeater = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->ZoneEqUnitHeater = true; + state->dataSize->CurZoneEqNum = 1; InitUnitHeater(*state, UnitHeatNum, ZoneNum, FirstHVACIteration); InitWaterCoil(*state, CoilNum, FirstHVACIteration); // init hot water heating coil @@ -1146,7 +1146,7 @@ TEST_F(EnergyPlusFixture, UnitHeater_HWHeatingCoilUAAutoSizingTest) DataGlobalConstants::HWInitConvTemp, state->dataPlnt->PlantLoop(state->dataUnitHeaters->UnitHeat(UnitHeatNum).HWLoopNum).FluidIndex, "xxx"); - HWPlantDeltaTDesign = PlantSizData(PltSizHeatNum).DeltaT; + HWPlantDeltaTDesign = state->dataSize->PlantSizData(PltSizHeatNum).DeltaT; // calculate hot water coil design capacity HWCoilDesignCapacity = HWMaxVolFlowRate * HWDensity * CpHW * HWPlantDeltaTDesign; EXPECT_NEAR(HWCoilDesignCapacity, state->dataWaterCoils->WaterCoil(CoilNum).DesWaterHeatingCoilRate, 1.0); @@ -1300,8 +1300,8 @@ TEST_F(EnergyPlusFixture, UnitHeater_SimUnitHeaterTest) EXPECT_EQ("ZONE2UNITHEAT", state->dataUnitHeaters->UnitHeat(1).Name); ErrorsFound = false; - ZoneEqUnitHeater = true; - DataSizing::CurZoneEqNum = 1; + state->dataSize->ZoneEqUnitHeater = true; + state->dataSize->CurZoneEqNum = 1; state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); @@ -1329,9 +1329,9 @@ TEST_F(EnergyPlusFixture, UnitHeater_SimUnitHeaterTest) state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = 2000.0; - ZoneSizingRunDone = true; - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; state->dataGlobal->DoingSizing = true; ZoneCompTurnFansOn = true; @@ -1356,10 +1356,10 @@ TEST_F(EnergyPlusFixture, UnitHeater_SimUnitHeaterTest) UHAirInletNode = state->dataUnitHeaters->UnitHeat(UnitHeatNum).AirInNode; UHAirOutletNode = state->dataUnitHeaters->UnitHeat(UnitHeatNum).AirOutNode; - SimUnitHeater(*state, state->dataUnitHeaters->UnitHeat(UnitHeatNum).Name, ZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, CurZoneEqNum); + SimUnitHeater(*state, state->dataUnitHeaters->UnitHeat(UnitHeatNum).Name, ZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, state->dataSize->CurZoneEqNum); // SimUnitHeater does not converge on the first call: the unit heater deliveres more than required heating load. But it meets // on the second call (iteration). I suspect it may be an initialization issue related to ControlCompOutput routine - SimUnitHeater(*state, state->dataUnitHeaters->UnitHeat(UnitHeatNum).Name, ZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, CurZoneEqNum); + SimUnitHeater(*state, state->dataUnitHeaters->UnitHeat(UnitHeatNum).Name, ZoneNum, FirstHVACIteration, SysOutputProvided, LatOutputProvided, state->dataSize->CurZoneEqNum); // verify the total heat rate deleivered by the unit heater UHAirMassFlowRate = Node(UHAirInletNode).MassFlowRate; UHEnteringAirEnthalpy = PsyHFnTdbW(Node(UHAirInletNode).Temp, Node(UHAirInletNode).HumRat); diff --git a/tst/EnergyPlus/unit/UnitarySystem.unit.cc b/tst/EnergyPlus/unit/UnitarySystem.unit.cc index c3ee03b75f9..feeebc4065a 100644 --- a/tst/EnergyPlus/unit/UnitarySystem.unit.cc +++ b/tst/EnergyPlus/unit/UnitarySystem.unit.cc @@ -164,42 +164,42 @@ class ZoneUnitarySysTest : public EnergyPlusFixture state->dataZoneEquip->ZoneEquipConfig(1).ExhaustNode(1) = 1; state->dataZoneEquip->ZoneEquipConfig(1).EquipListIndex = 1; - DataSizing::CurSysNum = 0; - DataSizing::CurZoneEqNum = 1; - - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.5; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 1.2; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 25.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneTempAtCoolPeak = 25.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.009; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.009; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.006; - - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInTemp = 20.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneTempAtHeatPeak = 20.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesHumRat = 0.007; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow = - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; - - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).TimeStepNumAtCoolMax = 1; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDDNum = 1; - DataSizing::DesDayWeath.allocate(1); - DataSizing::DesDayWeath(1).Temp.allocate(1); - DataSizing::DesDayWeath(1).Temp(1) = 35.0; - - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->CurSysNum = 0; + state->dataSize->CurZoneEqNum = 1; + + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.2; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 25.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtCoolPeak = 25.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.009; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.009; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.006; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat = 0.007; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(1).Temp(1) = 35.0; + + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneSizingRunDone = true; // set up plant loop state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - DataSizing::PlantSizData.allocate(state->dataPlnt->TotNumLoops); + state->dataSize->PlantSizData.allocate(state->dataPlnt->TotNumLoops); // int NumPltSizInput = DataPlant::TotNumLoops; - DataSizing::NumPltSizInput = 2; + state->dataSize->NumPltSizInput = 2; for (int loopindex = 1; loopindex <= state->dataPlnt->TotNumLoops; ++loopindex) { auto &loop(state->dataPlnt->PlantLoop(loopindex)); @@ -219,13 +219,13 @@ class ZoneUnitarySysTest : public EnergyPlusFixture state->dataPlnt->PlantLoop(2).FluidName = "WATER"; state->dataPlnt->PlantLoop(2).FluidIndex = 1; - DataSizing::PlantSizData(1).PlantLoopName = "Hot Water Loop"; - DataSizing::PlantSizData(1).ExitTemp = 80.0; - DataSizing::PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).PlantLoopName = "Hot Water Loop"; + state->dataSize->PlantSizData(1).ExitTemp = 80.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; - DataSizing::PlantSizData(2).PlantLoopName = "Chilled Water Loop"; - DataSizing::PlantSizData(2).ExitTemp = 6.0; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->PlantSizData(2).PlantLoopName = "Chilled Water Loop"; + state->dataSize->PlantSizData(2).ExitTemp = 6.0; + state->dataSize->PlantSizData(2).DeltaT = 5.0; } virtual void TearDown() @@ -250,9 +250,9 @@ class AirloopUnitarySysTest : public EnergyPlusFixture { EnergyPlusFixture::SetUp(); // Sets up individual test cases. - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataWaterCoils->NumWaterCoils = 2; state->dataWaterCoils->WaterCoil.allocate(state->dataWaterCoils->NumWaterCoils); state->dataWaterCoils->WaterCoilNumericFields.allocate(state->dataWaterCoils->NumWaterCoils); @@ -261,21 +261,21 @@ class AirloopUnitarySysTest : public EnergyPlusFixture } state->dataPlnt->TotNumLoops = 2; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - DataSizing::PlantSizData.allocate(2); - DataSizing::ZoneEqSizing.allocate(2); - DataSizing::UnitarySysEqSizing.allocate(2); - DataSizing::OASysEqSizing.allocate(2); - DataSizing::SysSizInput.allocate(1); - DataSizing::ZoneSizingInput.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); - DataSizing::SysSizPeakDDNum(1).SensCoolPeakDD = 1; - DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = 1; - DataSizing::SysSizPeakDDNum(1).TotCoolPeakDD = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalZoneSizing.allocate(1); + state->dataSize->PlantSizData.allocate(2); + state->dataSize->ZoneEqSizing.allocate(2); + state->dataSize->UnitarySysEqSizing.allocate(2); + state->dataSize->OASysEqSizing.allocate(2); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).SensCoolPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).TotCoolPeakDD = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); DataHVACGlobals::NumPrimaryAirSys = 1; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); @@ -287,14 +287,6 @@ class AirloopUnitarySysTest : public EnergyPlusFixture { EnergyPlusFixture::TearDown(); // Remember to tear down the base fixture after cleaning up derived fixture! - DataSizing::PlantSizData.clear(); - DataSizing::ZoneEqSizing.clear(); - DataSizing::UnitarySysEqSizing.clear(); - DataSizing::OASysEqSizing.clear(); - DataSizing::SysSizInput.clear(); - DataSizing::SysSizPeakDDNum.clear(); - DataSizing::FinalSysSizing.clear(); - DataSizing::SysSizPeakDDNum.clear(); DataHVACGlobals::NumPrimaryAirSys = 0; Psychrometrics::cached_Twb.clear(); Psychrometrics::cached_Psat.clear(); @@ -312,13 +304,13 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - DataSizing::SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - DataSizing::NumPltSizInput = 2; - DataSizing::PlantSizData(1).PlantLoopName = "ColdWaterLoop"; - DataSizing::PlantSizData(2).PlantLoopName = "HotWaterLoop"; - DataSizing::CurDuctType = DataHVACGlobals::Main; + state->dataSize->NumPltSizInput = 2; + state->dataSize->PlantSizData(1).PlantLoopName = "ColdWaterLoop"; + state->dataSize->PlantSizData(2).PlantLoopName = "HotWaterLoop"; + state->dataSize->CurDuctType = DataHVACGlobals::Main; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -344,15 +336,15 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) state->dataPlnt->PlantLoop(2).FluidIndex = 1; // set up sizing data - DataSizing::FinalSysSizing(1).MixTempAtCoolPeak = 20.0; - DataSizing::FinalSysSizing(1).CoolSupTemp = 10.0; - DataSizing::FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; - DataSizing::FinalSysSizing(1).DesMainVolFlow = 0.159; - DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.159; - DataSizing::FinalSysSizing(1).DesHeatVolFlow = 0.159; - DataSizing::FinalSysSizing(1).HeatSupTemp = 25.0; - DataSizing::FinalSysSizing(1).HeatOutTemp = 5.0; - DataSizing::FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.159; + state->dataSize->FinalSysSizing(1).DesCoolVolFlow = 0.159; + state->dataSize->FinalSysSizing(1).DesHeatVolFlow = 0.159; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 25.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; // set up water coil int CoilNum = 1; @@ -379,18 +371,18 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) state->dataWaterCoils->WaterCoil(CoilNum).AirOutletNodeNum = 4; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 1; - DataSizing::CurOASysNum = 0; - DataSizing::FinalSysSizing(1).SysAirMinFlowRat = 0.3; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->FinalSysSizing(1).SysAirMinFlowRat = 0.3; Real64 heatFlowRat = 0.3; - DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VAV; - DataSizing::PlantSizData(1).ExitTemp = 5.7; - DataSizing::PlantSizData(1).DeltaT = 5.0; - DataSizing::FinalSysSizing(1).MassFlowAtCoolPeak = DataSizing::FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->SysSizInput(1).CoolCapControl = DataSizing::VAV; + state->dataSize->PlantSizData(1).ExitTemp = 5.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil(CoilNum).WaterCoilType_Num; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).Name = state->dataWaterCoils->WaterCoil(CoilNum).Name; - DataSizing::DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; FluidProperties::NumOfGlycols = 1; createCoilSelectionReportObj(); @@ -415,7 +407,7 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) // size heating coil CoilNum = 2; - DataSizing::FinalSysSizing(1).MassFlowAtCoolPeak = DataSizing::FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; state->dataAirLoop->AirLoopControlInfo(1).UnitarySys = true; state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 5; state->dataWaterCoils->WaterCoil(CoilNum).WaterOutletNodeNum = 6; @@ -439,8 +431,8 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).TypeOf_Num = state->dataWaterCoils->WaterCoil(CoilNum).WaterCoilType_Num; state->dataPlnt->PlantLoop(2).LoopSide(1).Branch(1).Comp(1).Name = state->dataWaterCoils->WaterCoil(CoilNum).Name; - DataSizing::DataWaterLoopNum = 2; - DataSizing::PlantSizData(2).DeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 2; + state->dataSize->PlantSizData(2).DeltaT = 5.0; WaterCoils::SizeWaterCoil(*state, CoilNum); @@ -528,8 +520,8 @@ TEST_F(AirloopUnitarySysTest, MultipleWaterCoolingCoilSizing) // the water cooling coil sizes are only different by the air density used in capacity calculation // water coils use StdRhoAir and UnitarySystem coils use actual air density - Real64 CoilInTemp = DataSizing::FinalSysSizing(1).MixTempAtCoolPeak; - Real64 CoilInHumRat = DataSizing::FinalSysSizing(1).MixHumRatAtCoolPeak; + Real64 CoilInTemp = state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak; + Real64 CoilInHumRat = state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak; Real64 rhoair = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->StdBaroPress, CoilInTemp, CoilInHumRat); // this is the ratio of UnitarySystem cooling coil size to coil-on-branch water cooling coil size Real64 rhoRatio = state->dataEnvrn->StdRhoAir / rhoair; @@ -997,9 +989,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_TwoSpeedDXCoolCoil_Only) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -1009,7 +1001,7 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_TwoSpeedDXCoolCoil_Only) state->dataGlobal->BeginEnvrnFlag = false; // overwrite outdoor weather temp to variable speed coil rated water temp until this gets fixed - DataSizing::DesDayWeath(1).Temp(1) = 29.4; + state->dataSize->DesDayWeath(1).Temp(1) = 29.4; // test #6274 where coil inlet air flow rate was non-zero prior to sizing // this simulates another UnitarySystem upstream of this UnitarySystem that ran before this system coil was sized (and placed a non-zero air flow @@ -1280,9 +1272,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoolCoil_Only) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -1292,7 +1284,7 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoolCoil_Only) state->dataGlobal->BeginEnvrnFlag = false; // overwrite outdoor weather temp to variable speed coil rated water temp until this gets fixed - DataSizing::DesDayWeath(1).Temp(1) = 29.4; + state->dataSize->DesDayWeath(1).Temp(1) = 29.4; // test #6274 where coil inlet air flow rate was non-zero prior to sizing // this simulates another UnitarySystem upstream of this UnitarySystem that ran before this system coil was sized (and placed a non-zero air flow @@ -1502,9 +1494,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageGasHeatCoil_Only) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -1740,9 +1732,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageElecHeatCoil_Only) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -1974,9 +1966,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_ElecHeatCoil_Only) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -2190,9 +2182,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageGasHeatCoil_Only_ContFan UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -2684,9 +2676,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultispeedPerformance) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors // Verify UnitarySystem air flow rates are read in as AutoSized EXPECT_EQ(thisSys->m_MaxCoolAirVolFlow, DataSizing::AutoSize); @@ -2822,11 +2814,14 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultispeedPerformance) // TotCapTempModFac is evaluated at the OutTemp which is 35°C // In the Fixture's SetUp: `DataSizing::DesDayWeath(1).Temp(1) = 35.0` - Real64 RatedSourceTempCool = DataSizing::DesDayWeath(1).Temp(1); + Real64 RatedSourceTempCool = state->dataSize->DesDayWeath(1).Temp(1); EXPECT_EQ(RatedSourceTempCool, 35.0); Real64 CoolCoolCapAtPeak = 32454.876753104443; Real64 TotCapTempModFac = CurveManager::CurveValue( - *state, state->dataVariableSpeedCoils->VarSpeedCoil(1).MSCCapFTemp(state->dataVariableSpeedCoils->VarSpeedCoil(1).NormSpedLevel), 17.410329442560833, RatedSourceTempCool); + *state, + state->dataVariableSpeedCoils->VarSpeedCoil(1).MSCCapFTemp(state->dataVariableSpeedCoils->VarSpeedCoil(1).NormSpedLevel), + 17.410329442560833, + RatedSourceTempCool); EXPECT_NEAR(TotCapTempModFac, 0.930018048445091, 0.001); Real64 RatedCapCoolTotalDes = CoolCoolCapAtPeak / TotCapTempModFac; @@ -2838,10 +2833,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultispeedPerformance) EXPECT_EQ(thisSys->m_DesignHeatingCapacity, state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedCapHeat); // variable speed coils size air flow differently than other models. The design air volume flow rate is back calculated from design capacity EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedAirVolFlowRate, - state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedCapCoolTotal * state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowPerRatedTotCap(10)); + state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedCapCoolTotal * + state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowPerRatedTotCap(10)); Real64 fullFlow = 1.949442; - EXPECT_NEAR(state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedAirVolFlowRate, fullFlow, 0.00001); // different than unitary system air volume flow rate - EXPECT_NEAR(state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedAirVolFlowRate, 1.70, 0.01); // VS DX heating coil was not autosized + EXPECT_NEAR( + state->dataVariableSpeedCoils->VarSpeedCoil(1).RatedAirVolFlowRate, fullFlow, 0.00001); // different than unitary system air volume flow rate + EXPECT_NEAR(state->dataVariableSpeedCoils->VarSpeedCoil(2).RatedAirVolFlowRate, 1.70, 0.01); // VS DX heating coil was not autosized // checks on autosized cooling air flow rates EXPECT_NEAR(thisSys->m_CoolVolumeFlowRate[1], fullFlow * 0.1, 0.000001); @@ -2888,8 +2885,10 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultispeedPerformance) EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(10), thisSys->m_HeatVolumeFlowRate[10]); // spot check MSHP volume flow rate data. NOTE: design spec object is 0 based - EXPECT_EQ(thisSys->m_CoolVolumeFlowRate[7], thisSys->m_CoolVolumeFlowRate[10] * state->dataUnitarySystems->designSpecMSHP[0].coolingVolFlowRatio[6]); - EXPECT_EQ(thisSys->m_HeatVolumeFlowRate[7], thisSys->m_HeatVolumeFlowRate[10] * state->dataUnitarySystems->designSpecMSHP[0].heatingVolFlowRatio[6]); + EXPECT_EQ(thisSys->m_CoolVolumeFlowRate[7], + thisSys->m_CoolVolumeFlowRate[10] * state->dataUnitarySystems->designSpecMSHP[0].coolingVolFlowRatio[6]); + EXPECT_EQ(thisSys->m_HeatVolumeFlowRate[7], + thisSys->m_HeatVolumeFlowRate[10] * state->dataUnitarySystems->designSpecMSHP[0].heatingVolFlowRatio[6]); } TEST_F(ZoneUnitarySysTest, UnitarySystemModel_WaterCoilSPControl) @@ -3059,9 +3058,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_WaterCoilSPControl) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors // Verify UnitarySystem air flow rates are read in as input EXPECT_EQ(thisSys->m_MaxCoolAirVolFlow, 1.6); @@ -3423,9 +3422,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_WaterCoilSPControl_Latent) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors auto unitarySystemAirInletNodeIndex = UtilityRoutines::FindItemInList("WATER COOLING COIL AIR INLET NODE", DataLoopNode::NodeID); // was Node 1 auto coolingCoilAirInletNodeIndex = UtilityRoutines::FindItemInList("WATER COOLING COIL AIR INLET NODE", DataLoopNode::NodeID); // was Node 3 @@ -3879,11 +3878,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_SetOnOffMassFlowRateTest) state->dataUnitarySystems->HeatingLoad = false; state->dataUnitarySystems->CoolingLoad = true; thisSys.setOnOffMassFlowRate(*state, OnOffAirFlowRatio, PartLoadRatio); - EXPECT_EQ(0.21, DataHVACGlobals::MSHPMassFlowRateLow); + EXPECT_EQ(0.3, DataHVACGlobals::MSHPMassFlowRateLow); EXPECT_EQ(0.3, DataHVACGlobals::MSHPMassFlowRateHigh); thisSys.setSpeedVariables(*state, state->dataUnitarySystems->CoolingLoad, PartLoadRatio); - EXPECT_EQ(0.21, DataHVACGlobals::MSHPMassFlowRateLow); + EXPECT_EQ(0.3, DataHVACGlobals::MSHPMassFlowRateLow); EXPECT_EQ(0.3, DataHVACGlobals::MSHPMassFlowRateHigh); // and flip back to constant fan and both variables should be the same @@ -3924,13 +3923,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) // int const FractionOfAutosizedCoolingCapacity( 11 ); // int const FractionOfAutosizedHeatingCapacity( 12 ); - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::ZoneEqSizing.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 1; state->dataEnvrn->StdRhoAir = 1.0; // Prevent divide by zero in Sizer UnitarySys thisSys; @@ -3943,21 +3942,21 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) thisSys.UnitarySystemType_Num = DataHVACGlobals::UnitarySys_AnyCoilType; thisSys.m_RequestAutoSize = true; - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; // test cooling only sizing thisSys.m_FanExists = true; thisSys.m_CoolCoilExists = true; thisSys.m_HeatCoilExists = false; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.0006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0006; for (int iSizingType = DataSizing::None; iSizingType <= DataSizing::FlowPerCoolingCapacity; ++iSizingType) { @@ -3974,7 +3973,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) // for FractionOfAutosizedCoolingAirflow, set sizing data to 1.005 and UnitarySystem MaxCoolAirVolFlow to 1, they will multiply and // yield 1.005 if (iSizingType == DataSizing::FractionOfAutosizedCoolingAirflow) - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.005; if (iSizingType == DataSizing::FractionOfAutosizedCoolingAirflow) thisSys.m_MaxCoolAirVolFlow = 1.0; // for FlowPerCoolingCapacity, do the division so sizing will yield 1.005 if (iSizingType == DataSizing::FlowPerCoolingCapacity) thisSys.m_MaxCoolAirVolFlow = 1.005 / 18827.616766698276; @@ -3985,7 +3984,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) EXPECT_EQ(1.005, thisSys.m_MaxCoolAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxHeatAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxNoCoolHeatAirVolFlow); - EXPECT_EQ(18827.616766698276, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesCoolingLoad); + EXPECT_EQ(18827.616766698276, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad); } // #6200 defect file shows fan flow rate when cooling coil is off and no cooling coil exists. Allow user to set flow rate = 0 when coil does not @@ -4004,19 +4003,19 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) EXPECT_EQ(1.005, thisSys.m_MaxCoolAirVolFlow); EXPECT_EQ(0.0, thisSys.m_MaxHeatAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxNoCoolHeatAirVolFlow); - EXPECT_EQ(18827.616766698276, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesCoolingLoad); + EXPECT_EQ(18827.616766698276, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad); // continue with unit testing of heating only system thisSys.m_CoolCoilExists = false; thisSys.m_HeatCoilExists = true; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneTempAtHeatPeak = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 30.0; for (int iSizingType = DataSizing::None; iSizingType <= DataSizing::FlowPerHeatingCapacity; ++iSizingType) { @@ -4034,7 +4033,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) // for FractionOfAutosizedHeatingAirflow, set sizing data to 1.005 and UnitarySystem MaxHeatAirVolFlow to 1, they will multiply and // yield 1.005 if (iSizingType == DataSizing::FractionOfAutosizedHeatingAirflow) - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.005; if (iSizingType == DataSizing::FractionOfAutosizedHeatingAirflow) thisSys.m_MaxHeatAirVolFlow = 1.0; // for FlowPerHeatingCapacity, do the division so sizing will yield 1.005 if (iSizingType == DataSizing::FlowPerHeatingCapacity) thisSys.m_MaxHeatAirVolFlow = 1.005 / 15148.243236712493; @@ -4045,7 +4044,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) EXPECT_NEAR(1.005, thisSys.m_MaxCoolAirVolFlow, 0.0000000001); EXPECT_EQ(1.005, thisSys.m_MaxHeatAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxNoCoolHeatAirVolFlow); - EXPECT_NEAR(15148.243236712493, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesHeatingLoad, 0.0000000001); + EXPECT_NEAR(15148.243236712493, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesHeatingLoad, 0.0000000001); } // #6200 defect file shows fan flow rate when cooling coil is off and no cooling coil exists. Allow user to set flow rate = 0 when coil does not @@ -4064,22 +4063,22 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) EXPECT_EQ(0.0, thisSys.m_MaxCoolAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxHeatAirVolFlow); EXPECT_EQ(1.005, thisSys.m_MaxNoCoolHeatAirVolFlow); - EXPECT_NEAR(15148.243236712493, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesHeatingLoad, 0.0000000001); + EXPECT_NEAR(15148.243236712493, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesHeatingLoad, 0.0000000001); // continue with unit testing of cooling and heating system thisSys.m_CoolCoilExists = true; thisSys.m_HeatCoilExists = true; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 0.095; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow = 0.095; - - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.0006; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.095; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = 0.095; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 30.0; for (int iSizingType = DataSizing::None; iSizingType <= DataSizing::FlowPerHeatingCapacity; ++iSizingType) { @@ -4102,14 +4101,14 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) // for FractionOfAutosizedCoolingAirflow, set sizing data to 1.005 and UnitarySystem MaxCoolAirVolFlow to 1, they will multiply and // yield 1.005 if (iCoolingSizingType == DataSizing::FractionOfAutosizedCoolingAirflow) - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.005; if (iCoolingSizingType == DataSizing::FractionOfAutosizedCoolingAirflow) thisSys.m_MaxCoolAirVolFlow = 1.0; // for FlowPerCoolingCapacity, do the division so sizing will yield 1.005 if (iCoolingSizingType == DataSizing::FlowPerCoolingCapacity) thisSys.m_MaxCoolAirVolFlow = 1.005 / 18827.616766698276; // for FractionOfAutosizedHeatingAirflow, set sizing data to 1.005 and UnitarySystem MaxHeatAirVolFlow to 1, they will multiply and // yield 1.005 if (iHeatingSizingType == DataSizing::FractionOfAutosizedHeatingAirflow) - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.005; if (iHeatingSizingType == DataSizing::FractionOfAutosizedHeatingAirflow) thisSys.m_MaxHeatAirVolFlow = 1.0; // for FlowPerHeatingCapacity, do the division so sizing will yield 1.005 if (iHeatingSizingType == DataSizing::FlowPerHeatingCapacity) thisSys.m_MaxHeatAirVolFlow = 1.005 / 1431.9234900374995; @@ -4120,8 +4119,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ConfirmUnitarySystemSizingTest) EXPECT_NEAR(1.005, thisSys.m_MaxCoolAirVolFlow, 0.0000000001); EXPECT_NEAR(1.005, thisSys.m_MaxHeatAirVolFlow, 0.0000000001); EXPECT_NEAR(1.005, thisSys.m_MaxNoCoolHeatAirVolFlow, 0.0000000001); - EXPECT_EQ(18827.616766698276, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesCoolingLoad); - EXPECT_NEAR(1431.9234900374995, DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesHeatingLoad, 0.0000000001); + EXPECT_EQ(18827.616766698276, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesCoolingLoad); + EXPECT_NEAR(1431.9234900374995, state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesHeatingLoad, 0.0000000001); } } @@ -4212,8 +4211,10 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_CalcUnitaryHeatingSystem) state->dataWaterCoils->WaterCoil(1).AirOutletNodeNum = 5; DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp = 10.0; DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy = 18000; - DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).HumRat = Psychrometrics::PsyWFnTdbH(*state, - DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp, DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy); + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).HumRat = + Psychrometrics::PsyWFnTdbH(*state, + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp, + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy); DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).MassFlowRate = AirMassFlowRate; DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).MassFlowRateMax = AirMassFlowRate; @@ -4368,8 +4369,10 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_CalcUnitaryCoolingSystem) DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).MassFlowRateMax = AirMassFlowRate; DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp = 30.0; DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy = 53000; - DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).HumRat = Psychrometrics::PsyWFnTdbH(*state, - DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp, DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy); + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).HumRat = + Psychrometrics::PsyWFnTdbH(*state, + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Temp, + DataLoopNode::Node(state->dataWaterCoils->WaterCoil(1).AirInletNodeNum).Enthalpy); state->dataWaterCoils->WaterCoil(1).WaterLoopNum = 1; state->dataWaterCoils->WaterCoil(1).WaterLoopSide = 1; @@ -4425,11 +4428,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) bool ErrorsFound(false); bool FirstHVACIteration(false); - Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone - Real64 ZoneTemp(0.0); // control zone temperature - int InletNode(0); // UnitarySystem inlet node number - int OutletNode(0); // UnitarySystem outlet node number - int ControlZoneNum(0); // index to control zone + Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone + Real64 ZoneTemp(0.0); // control zone temperature + int InletNode(0); // UnitarySystem inlet node number + int OutletNode(0); // UnitarySystem outlet node number + int ControlZoneNum(0); // index to control zone std::string const idf_objects = delimited_string({ "Zone,", @@ -4633,11 +4636,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -4648,9 +4651,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) UnitarySystems::UnitarySys::factory(*state, compTypeOfNum, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors ASSERT_EQ(1, state->dataUnitarySystems->numUnitarySystems); // only 1 unitary system above so expect 1 as number of unitary system objects EXPECT_EQ(thisSys->UnitType, DataHVACGlobals::cFurnaceTypes(compTypeOfNum)); // compare UnitarySystem type string to valid type @@ -4670,7 +4673,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) DataLoopNode::Node(ControlZoneNum).Temp = 20.0; // set zone temperature during heating season used to determine system delivered capacity // initialize other incidentals that are used within the UnitarySystem module during calculations - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = 1000.0; // heating load @@ -4732,7 +4735,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, thisSys->m_SensibleLoadMet, 0.01); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); EXPECT_DOUBLE_EQ(thisSys->m_MoistureLoadPredicted, 0.0); // dehumidification control type = none so MoistureLoad reset o 0 @@ -4750,12 +4753,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 24.0; // set zone temperature during cooling season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; - state->dataDXCoils->DXCoil(1).RatedCBF(1) = 0.1; // autosizing is disabled so initialize coil bypass factor - state->dataDXCoils->DXCoil(1).RatedAirMassFlowRate(1) = 1.9268939689375426; // autosizing is disabled so initialize cooling coil rated air mass flow rate + state->dataDXCoils->DXCoil(1).RatedCBF(1) = 0.1; // autosizing is disabled so initialize coil bypass factor + state->dataDXCoils->DXCoil(1).RatedAirMassFlowRate(1) = + 1.9268939689375426; // autosizing is disabled so initialize cooling coil rated air mass flow rate thisSys->simulate(*state, thisSys->Name, @@ -4777,7 +4781,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, thisSys->m_SensibleLoadMet, 0.025); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // new tests for #5287, need to add an air loop to do this unit test justice @@ -4806,8 +4810,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, thisSys->m_SensibleLoadMet, 0.025); // Watts // test simulate function return value for sysOutputRequired - EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, sensOut, 0.025); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan + EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, sensOut, 0.025); // Watts + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // turn on dehumidification control and check that moisture load is < 0 @@ -5178,7 +5182,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VSDXCoilSizing) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects @@ -5203,11 +5207,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils) bool ErrorsFound(false); bool FirstHVACIteration(false); - Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone - Real64 ZoneTemp(0.0); // control zone temperature - int InletNode(0); // UnitarySystem inlet node number - int OutletNode(0); // UnitarySystem outlet node number - int ControlZoneNum(0); // index to control zone + Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone + Real64 ZoneTemp(0.0); // control zone temperature + int InletNode(0); // UnitarySystem inlet node number + int OutletNode(0); // UnitarySystem outlet node number + int ControlZoneNum(0); // index to control zone std::string const idf_objects = delimited_string({ "Zone,", @@ -5513,11 +5517,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -5548,13 +5552,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils) DataLoopNode::Node(ControlZoneNum).Temp = DataLoopNode::Node(InletNode).Temp; // set zone temperature, used to determine system delivered capacity DataLoopNode::Node(ControlZoneNum).HumRat = DataLoopNode::Node(InletNode).HumRat; // set zone humidity ratio, used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; // initialize other incidentals that are used within the UnitarySystem module during calculations - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = 1000.0; // heating load @@ -5615,7 +5619,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 0.01); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow); // constant fan + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow); // constant fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = -1000.0; // cooling load @@ -5630,7 +5634,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 24.0; // set zone temperature during cooling season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; @@ -5664,11 +5668,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils_CyclingFan) bool ErrorsFound(false); bool FirstHVACIteration(false); - Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone - Real64 ZoneTemp(0.0); // control zone temperature - int InletNode(0); // UnitarySystem inlet node number - int OutletNode(0); // UnitarySystem outlet node number - int ControlZoneNum(0); // index to control zone + Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone + Real64 ZoneTemp(0.0); // control zone temperature + int InletNode(0); // UnitarySystem inlet node number + int OutletNode(0); // UnitarySystem outlet node number + int ControlZoneNum(0); // index to control zone std::string const idf_objects = delimited_string({ @@ -5975,11 +5979,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils_CyclingFan) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -6008,13 +6012,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils_CyclingFan) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 20.0; // set zone temperature during heating season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; // initialize other incidentals that are used within the UnitarySystem module during calculations - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = 1000.0; // heating load @@ -6073,8 +6077,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils_CyclingFan) DataLoopNode::Node(OutletNode).Temp, DataLoopNode::Node(OutletNode).HumRat, ZoneTemp, DataLoopNode::Node(ControlZoneNum).HumRat); // test model performance - EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 0.01); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan + EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 0.01); // Watts + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // compare fan RTF with fan PLR and global PLF @@ -6096,7 +6100,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_VarSpeedCoils_CyclingFan) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 24.0; // set zone temperature during cooling season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; @@ -6300,7 +6304,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetBadSupplyAirMethodInput) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects @@ -6510,6 +6514,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetBadSupplyAirMethodInputSZVAV) EXPECT_EQ(thisSys->m_MaxCoolAirVolFlow, DataSizing::AutoSize); EXPECT_EQ(thisSys->m_MaxHeatAirVolFlow, DataSizing::AutoSize); EXPECT_EQ(thisSys->m_MaxNoCoolHeatAirVolFlow, DataSizing::AutoSize); + } TEST_F(EnergyPlusFixture, UnitarySystemModel_ReportingTest) @@ -6932,9 +6937,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ReportingTest) state->dataGlobal->MinutesPerTimeStep = 60; // must initialize this to get schedules initialized ScheduleManager::ProcessScheduleInput(*state); - HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors - DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment + HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data + EXPECT_FALSE(ErrorsFound); // expect no errors + DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment std::string compName = "UNITARY SYSTEM MODEL"; int compTypeOfNum = DataHVACGlobals::UnitarySys_AnyCoilType; @@ -7668,8 +7673,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXCoilSizing) SizingManager::ManageSizing(*state); state->dataGlobal->DoingSizing = false; state->dataGlobal->SysSizingCalc = false; - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; @@ -7682,10 +7687,10 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXCoilSizing) OutputReportPredefined::SetPredefinedTables(*state); - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; bool FirstHVACIteration = true; int AirLoopNum = 0; @@ -7752,11 +7757,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) bool ErrorsFound(false); bool FirstHVACIteration(false); - Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone - Real64 ZoneTemp(0.0); // control zone temperature - int InletNode(0); // UnitarySystem inlet node number - int OutletNode(0); // UnitarySystem outlet node number - int ControlZoneNum(0); // index to control zone + Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone + Real64 ZoneTemp(0.0); // control zone temperature + int InletNode(0); // UnitarySystem inlet node number + int OutletNode(0); // UnitarySystem outlet node number + int ControlZoneNum(0); // index to control zone std::string const idf_objects = delimited_string({ @@ -7980,7 +7985,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " TotCoolCapCurve, ! Curve Name", " -0.68126221, ! CoefficientC1", @@ -7998,7 +8003,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " CoolPowCurve, ! Curve Name", " -3.20456384, ! CoefficientC1", @@ -8016,7 +8021,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " HeatCapCurve, ! Curve Name", " -5.50102734, ! CoefficientC1", @@ -8057,11 +8062,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -8101,7 +8106,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) state->dataZoneEquip->ZoneEquipInputsFilled = true; thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors ASSERT_EQ(1, state->dataUnitarySystems->numUnitarySystems); // only 1 unitary system above so expect 1 as number of unitary system objects EXPECT_EQ(thisSys->UnitType, DataHVACGlobals::cFurnaceTypes(compTypeOfNum)); // compare UnitarySystem type string to valid type @@ -8120,13 +8125,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 20.0; // set zone temperature during heating season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; // initialize other incidentals that are used within the UnitarySystem module during calculations - DataSizing::CurZoneEqNum = 1; + state->dataSize->CurZoneEqNum = 1; state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = 1000.0; // heating load @@ -8186,8 +8191,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) DataLoopNode::Node(OutletNode).Temp, DataLoopNode::Node(OutletNode).HumRat, ZoneTemp, DataLoopNode::Node(ControlZoneNum).HumRat); // test model performance - EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 0.01); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan + EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 0.01); // Watts + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxHeatAirMassFlow * thisSys->m_PartLoadFrac); // cycling fan EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = -1000.0; // cooling load @@ -8202,7 +8207,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_WaterToAirHeatPump) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 24.0; // set zone temperature during cooling season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; @@ -8242,11 +8247,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) bool ErrorsFound(false); bool FirstHVACIteration(false); - Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone - Real64 ZoneTemp(0.0); // control zone temperature - int InletNode(0); // UnitarySystem inlet node number - int OutletNode(0); // UnitarySystem outlet node number - int ControlZoneNum(0); // index to control zone + Real64 Qsens_sys(0.0); // UnitarySystem delivered sensible capacity wrt zone + Real64 ZoneTemp(0.0); // control zone temperature + int InletNode(0); // UnitarySystem inlet node number + int OutletNode(0); // UnitarySystem outlet node number + int ControlZoneNum(0); // index to control zone std::string const idf_objects = delimited_string({ @@ -8390,12 +8395,12 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -8437,7 +8442,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) state->dataZoneEquip->ZoneEquipInputsFilled = true; thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors ASSERT_EQ(1, state->dataUnitarySystems->numUnitarySystems); // only 1 unitary system above so expect 1 as number of unitary system objects EXPECT_EQ(thisSys->UnitType, DataHVACGlobals::cFurnaceTypes(compTypeOfNum)); // compare UnitarySystem type string to valid type @@ -8456,7 +8461,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 20.0; // set zone temperature during heating season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; @@ -8546,9 +8551,10 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) DataLoopNode::Node(OutletNode).Temp, DataLoopNode::Node(OutletNode).HumRat, ZoneTemp, DataLoopNode::Node(ControlZoneNum).HumRat); // test model performance - EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 2.0); // Watts (2.0 = 0.001 * load) - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxNoCoolHeatAirMassFlow); // low speed fan flow - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate + EXPECT_NEAR( + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 2.0); // Watts (2.0 = 0.001 * load) + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxNoCoolHeatAirMassFlow); // low speed fan flow + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate // these next 2 variables are used to modulate the coil PLR irrespective of the fan PLR - they are non-zero when the model is called and CAN be 0 // when load exceeds capacity the ASHRAE model is the only model that uses these variables, and flow is determined by Heat/CoolWaterFlowRatio * // max other models will show 0 here and in this case water flow will equal max flow * PartLoadRatio @@ -8662,7 +8668,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 10.0); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate EXPECT_NEAR(thisSys->HeatCoilWaterFlowRatio, 0.2532, 0.001); // heating coil water flow ratio, heating coil is on EXPECT_NEAR(thisSys->CoolCoilWaterFlowRatio, 0.0, 0.0001); // cooling coil water flow ratio, cooling coil is off EXPECT_EQ(thisSys->FanPartLoadRatio, 1.0); // fan PLR at maximum speed (0-1 means fraction between no load flow and full flow) @@ -8699,9 +8705,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) DataLoopNode::Node(OutletNode).Temp, DataLoopNode::Node(OutletNode).HumRat, ZoneTemp, DataLoopNode::Node(ControlZoneNum).HumRat); // test model performance - EXPECT_GT(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys); // Watts - system CANNOT meet load - EXPECT_NEAR(Qsens_sys, 11316.64, 0.1); // system maxed out on capacity - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate + EXPECT_GT(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys); // Watts - system CANNOT meet load + EXPECT_NEAR(Qsens_sys, 11316.64, 0.1); // system maxed out on capacity + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate EXPECT_EQ(DataLoopNode::Node(thisSys->HeatCoilFluidInletNode).MassFlowRate, thisSys->MaxHeatCoilFluidFlow); // water coil water flow rate at max EXPECT_NEAR(thisSys->HeatCoilWaterFlowRatio, 0.0, @@ -8753,8 +8759,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) // test model performance EXPECT_NEAR(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys, 3.0); // Watts - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxNoCoolHeatAirMassFlow); // low speed fan flow - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxNoCoolHeatAirMassFlow); // low speed fan flow + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate EXPECT_NEAR(thisSys->HeatCoilWaterFlowRatio, 0.0, 0.0001); // heating coil water flow ratio, heating coil is off EXPECT_NEAR(thisSys->CoolCoilWaterFlowRatio, 0.103, 0.001); // cooling coil water flow ratio, cooling coil is on EXPECT_NEAR(thisSys->FanPartLoadRatio, thisSys->MaxNoCoolHeatAirMassFlow / thisSys->MaxCoolAirMassFlow, @@ -8896,9 +8902,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_ASHRAEModel_WaterCoils) DataLoopNode::Node(OutletNode).Temp, DataLoopNode::Node(OutletNode).HumRat, ZoneTemp, DataLoopNode::Node(ControlZoneNum).HumRat); // test model performance - EXPECT_LT(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys); // Watts - system CANNOT meet load - EXPECT_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow); // air flow at high speed fan flow - EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate + EXPECT_LT(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired, Qsens_sys); // Watts - system CANNOT meet load + EXPECT_EQ(DataLoopNode::Node(InletNode).MassFlowRate, thisSys->MaxCoolAirMassFlow); // air flow at high speed fan flow + EXPECT_DOUBLE_EQ(DataLoopNode::Node(InletNode).MassFlowRate, DataLoopNode::Node(OutletNode).MassFlowRate); // inlet = outlet flow rate EXPECT_EQ(DataLoopNode::Node(thisSys->CoolCoilFluidInletNode).MassFlowRate, thisSys->MaxCoolCoilFluidFlow); // water coil water flow rate at max EXPECT_NEAR(thisSys->HeatCoilWaterFlowRatio, 0.0, 0.0001); // heating coil water flow ratio, heating coil is off EXPECT_NEAR(thisSys->CoolCoilWaterFlowRatio, @@ -9411,8 +9417,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXHeatingCoilOnly) SizingManager::ManageSizing(*state); state->dataGlobal->DoingSizing = false; state->dataGlobal->SysSizingCalc = false; - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; @@ -9422,14 +9428,14 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXHeatingCoilOnly) state->dataZoneEquip->ZoneEquipInputsFilled = true; thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; bool FirstHVACIteration = true; int AirLoopNum = 0; @@ -10181,13 +10187,13 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects DataLoopNode::Node.allocate(10); - DataSizing::ZoneEqSizing.deallocate(); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.deallocate(); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipConfig.allocate(1); state->dataZoneEquip->ZoneEquipConfig(1).ActualZoneNum = 1; HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects ZoneAirLoopEquipmentManager::GetZoneAirLoopEquipment(*state); @@ -10243,7 +10249,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) // set zone temperature DataLoopNode::Node(ControlZoneNum).Temp = 24.0; // set zone temperature during cooling season used to determine system delivered capacity DataLoopNode::Node(ControlZoneNum).HumRat = 0.001; // set zone temperature during cooling season used to determine system delivered capacity - state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather state->dataEnvrn->OutHumRat = 0.1; state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->OutWetBulbTemp = 30.0; @@ -10255,8 +10261,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) state->dataScheduleMgr->Schedule(thisSys->m_SysAvailSchedPtr).CurrentValue = 1.0; - DataSizing::CurSysNum = 1; - DataSizing::UnitarySysEqSizing.allocate(1); + state->dataSize->CurSysNum = 1; + state->dataSize->UnitarySysEqSizing.allocate(1); int Iter; state->dataEnvrn->StdRhoAir = 1.2; @@ -10266,29 +10272,37 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) thisSys->m_CoolMassFlowRate[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] * state->dataEnvrn->StdRhoAir; thisSys->m_MSCoolingSpeedRatio[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] / thisSys->m_CoolVolumeFlowRate[state->dataUnitarySystems->designSpecMSHP[0].numOfSpeedCooling]; - state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; - state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; Iter = 1; thisSys->m_CoolVolumeFlowRate[Iter] = thisSys->m_MaxCoolAirVolFlow * state->dataUnitarySystems->designSpecMSHP[0].coolingVolFlowRatio[Iter - 1]; thisSys->m_CoolMassFlowRate[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] * state->dataEnvrn->StdRhoAir; thisSys->m_MSCoolingSpeedRatio[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] / thisSys->m_CoolVolumeFlowRate[state->dataUnitarySystems->designSpecMSHP[0].numOfSpeedCooling]; - state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; - state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; Iter = 2; thisSys->m_CoolVolumeFlowRate[Iter] = thisSys->m_MaxCoolAirVolFlow * state->dataUnitarySystems->designSpecMSHP[0].coolingVolFlowRatio[Iter - 1]; thisSys->m_CoolMassFlowRate[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] * state->dataEnvrn->StdRhoAir; thisSys->m_MSCoolingSpeedRatio[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] / thisSys->m_CoolVolumeFlowRate[state->dataUnitarySystems->designSpecMSHP[0].numOfSpeedCooling]; - state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; - state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; Iter = 3; thisSys->m_CoolVolumeFlowRate[Iter] = thisSys->m_MaxCoolAirVolFlow * state->dataUnitarySystems->designSpecMSHP[0].coolingVolFlowRatio[Iter - 1]; thisSys->m_CoolMassFlowRate[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] * state->dataEnvrn->StdRhoAir; thisSys->m_MSCoolingSpeedRatio[Iter] = thisSys->m_CoolVolumeFlowRate[Iter] / thisSys->m_CoolVolumeFlowRate[state->dataUnitarySystems->designSpecMSHP[0].numOfSpeedCooling]; - state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; - state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(1).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(1).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; + state->dataDXCoils->DXCoil(2).MSRatedAirMassFlowRate(Iter) = + state->dataDXCoils->DXCoil(2).MSRatedAirVolFlowRate(Iter) * state->dataEnvrn->StdRhoAir; Iter = 4; thisSys->m_HeatVolumeFlowRate[Iter] = thisSys->m_MaxHeatAirVolFlow * state->dataUnitarySystems->designSpecMSHP[0].heatingVolFlowRatio[Iter - 1]; @@ -10414,6 +10428,47 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) EXPECT_NEAR(0.920083, thisSys->m_CycRatio, 0.0001); // cycling ratio EXPECT_EQ(3, thisSys->m_HeatingSpeedNum); EXPECT_EQ(1.0, thisSys->m_HeatingSpeedRatio); + + // Issue #8335 + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired = -2500.0; // cooling load + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).OutputRequiredToCoolingSP = -2500.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).OutputRequiredToHeatingSP = -5000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).SequencedOutputRequired(1) = + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).RemainingOutputRequired; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).SequencedOutputRequiredToCoolingSP(1) = + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).OutputRequiredToCoolingSP; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).SequencedOutputRequiredToHeatingSP(1) = + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ControlZoneNum).OutputRequiredToHeatingSP; + + HeatActive = false; + CoolActive = true; + + state->dataEnvrn->OutDryBulbTemp = 35.0; // initialize weather + state->dataEnvrn->OutHumRat = 0.1; + state->dataEnvrn->OutBaroPress = 101325.0; + state->dataEnvrn->OutWetBulbTemp = 30.0; + thisSys->m_SingleMode = 0; + + thisSys->simulate(*state, + thisSys->Name, + FirstHVACIteration, + AirLoopNum, + CompIndex, + HeatActive, + CoolActive, + ZoneOAUnitNum, + OAUCoilOutTemp, + ZoneEquipment, + sensOut, + latOut); + EXPECT_NEAR(0.528942, thisSys->m_CycRatio, 0.0001); // cycling ratio + EXPECT_EQ(1, thisSys->m_CoolingSpeedNum); // Speed number + EXPECT_NEAR(1.02, + state->dataCurveManager->PerfCurve(21).CurveInput1, + 0.0001); // Speed 1 Total Cooling Capacity Function of Flow Fraction Curve input value + EXPECT_NEAR(1.02, state->dataCurveManager->PerfCurve(22).CurveInput1, + 0.0001); // Speed 1 Total EIR Function of Flow Fraction Curve input value + EXPECT_NEAR(0.4896, DataHVACGlobals::MSHPMassFlowRateLow, 0.0001); // cycling ratio } TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXCoilHeatRecoveryHandling) @@ -11300,8 +11355,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXCoilHeatRecoveryHandlin SizingManager::ManageSizing(*state); state->dataGlobal->DoingSizing = false; state->dataGlobal->SysSizingCalc = false; - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; @@ -11313,8 +11368,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultispeedDXCoilHeatRecoveryHandlin thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above ASSERT_FALSE(state->dataDXCoils->DXCoil(1).MSHPHeatRecActive); // electricity - ASSERT_TRUE(state->dataDXCoils->DXCoil(2).MSHPHeatRecActive); // natural gas - // Minimum Outdoor Temperature for Compressor Operation blank field defaults to -25.0 C + ASSERT_TRUE( + state->dataDXCoils->DXCoil(2).MSHPHeatRecActive); // natural gas + // Minimum Outdoor Temperature for Compressor Operation blank field defaults to -25.0 C EXPECT_EQ(state->dataDXCoils->DXCoil(1).MinOATCompressor, -25.0); // Minimum Outdoor Temperature for Compressor read from input field as -8.0 C EXPECT_EQ(state->dataDXCoils->DXCoil(2).MinOATCompressor, -8.0); @@ -11400,11 +11456,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_SizingWithFans) fanName = "TEST FAN 3"; HVACFan::fanObjs.emplace_back(new HVACFan::FanSystem(*state, fanName)); // call constructor - DataSizing::CurZoneEqNum = 0; - DataSizing::CurSysNum = 0; - DataSizing::CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataEnvrn->StdRhoAir = 1.2; - HVACFan::fanObjs[2]->simulate(*state, _, _, _, _); // triggers sizing call + HVACFan::fanObjs[2]->simulate(*state, _, _, _, _); // triggers sizing call Real64 locFanSizeVdot = HVACFan::fanObjs[2]->designAirVolFlowRate; // get function Real64 locDesignHeatGain3 = HVACFan::fanObjs[2]->getFanDesignHeatGain(*state, locFanSizeVdot); EXPECT_NEAR(locDesignHeatGain3, 402.0, 0.1); @@ -11413,36 +11469,36 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_SizingWithFans) Real64 locDesignHeatGain4 = Fans::FanDesHeatGain(*state, 1, locFanSizeVdot); EXPECT_NEAR(locDesignHeatGain4, 50.25, 0.1); - DataSizing::DataTotCapCurveIndex = 0; - DataSizing::DataDesOutletAirTemp = 0.0; + state->dataSize->DataTotCapCurveIndex = 0; + state->dataSize->DataDesOutletAirTemp = 0.0; - DataSizing::CurSysNum = 1; - DataSizing::FinalSysSizing.allocate(1); - DataSizing::FinalSysSizing(DataSizing::CurSysNum).CoolSupTemp = 12.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).CoolSupHumRat = 0.0085; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).MixTempAtCoolPeak = 28.0; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).MixHumRatAtCoolPeak = 0.0075; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesCoolVolFlow = 1.005; - DataSizing::FinalSysSizing(DataSizing::CurSysNum).DesOutAirVolFlow = 0.2; + state->dataSize->CurSysNum = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupTemp = 12.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixTempAtCoolPeak = 28.0; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).MixHumRatAtCoolPeak = 0.0075; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalSysSizing(state->dataSize->CurSysNum).DesOutAirVolFlow = 0.2; state->dataAirSystemsData->PrimaryAirSystems.allocate(1); - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).NumOACoolCoils = 0; - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).SupFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).RetFanNum = 0; - state->dataAirSystemsData->PrimaryAirSystems(DataSizing::CurSysNum).supFanModelTypeEnum = DataAirSystems::fanModelTypeNotYetSet; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).NumOACoolCoils = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).SupFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).RetFanNum = 0; + state->dataAirSystemsData->PrimaryAirSystems(state->dataSize->CurSysNum).supFanModelTypeEnum = DataAirSystems::fanModelTypeNotYetSet; - DataSizing::SysSizingRunDone = true; - DataSizing::SysSizInput.allocate(1); - DataSizing::SysSizInput(1).AirLoopNum = DataSizing::CurSysNum; - DataSizing::NumSysSizInput = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->SysSizInput.allocate(1); + state->dataSize->SysSizInput(1).AirLoopNum = state->dataSize->CurSysNum; + state->dataSize->NumSysSizInput = 1; state->dataEnvrn->StdBaroPress = 101325.0; Psychrometrics::InitializePsychRoutines(); // Need this to prevent crash in Sizers - DataSizing::UnitarySysEqSizing.allocate(1); - DataSizing::OASysEqSizing.allocate(1); - DataSizing::SysSizPeakDDNum.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); int AirLoopNum(1); bool FirstHVACIteration(true); @@ -11499,12 +11555,12 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_SizingWithFans) EXPECT_NEAR(expectedSize, thisSys.m_DesignCoolingCapacity, 0.001); // clean - DataSizing::NumSysSizInput = 0; - DataSizing::FinalSysSizing.deallocate(); + state->dataSize->NumSysSizInput = 0; + state->dataSize->FinalSysSizing.deallocate(); state->dataAirSystemsData->PrimaryAirSystems.deallocate(); - DataSizing::SysSizInput.deallocate(); - DataSizing::UnitarySysEqSizing.deallocate(); - DataSizing::OASysEqSizing.deallocate(); + state->dataSize->SysSizInput.deallocate(); + state->dataSize->UnitarySysEqSizing.deallocate(); + state->dataSize->OASysEqSizing.deallocate(); } TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputATMixerInlet) @@ -11643,8 +11699,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputATMixerInlet) std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; UnitarySys mySys; - HVACSystemData *thisSys = state->dataZoneEquip->ZoneEquipList(1).compPointer[2]; // UnitarySystem is the 2nd in the zone equipment list - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + HVACSystemData *thisSys = state->dataZoneEquip->ZoneEquipList(1).compPointer[2]; // UnitarySystem is the 2nd in the zone equipment list + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available mySys.getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above mySys = state->dataUnitarySystems->unitarySys[0]; @@ -11792,8 +11848,8 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputATMixerSupply) std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; UnitarySys mySys; - HVACSystemData *thisSys = state->dataZoneEquip->ZoneEquipList(1).compPointer[2]; // UnitarySystem is the 2nd in the zone equipment list - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + HVACSystemData *thisSys = state->dataZoneEquip->ZoneEquipList(1).compPointer[2]; // UnitarySystem is the 2nd in the zone equipment list + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available mySys.getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above mySys = state->dataUnitarySystems->unitarySys[0]; EXPECT_TRUE(thisSys); @@ -11921,7 +11977,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputZoneEquipment) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input EXPECT_FALSE(ErrorsFound); // expect no errors @@ -12049,7 +12105,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputZoneEquipmentBlankCtrlZone) std::string compName = "UNITARY SYSTEM MODEL"; bool zoneEquipment = true; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys.getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input EXPECT_TRUE(ErrorsFound); // expect errors when control zone name is blank and Control Type = Load } @@ -12163,12 +12219,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_FractionOfAutoSizedCoolingValueTes UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; // DataSizing::NumPltSizInput = 2; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).Name = state->dataWaterCoils->WaterCoil(1).Name; @@ -12305,12 +12361,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_FlowPerCoolingCapacityTest) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); - DataSizing::ZoneSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).Name = state->dataWaterCoils->WaterCoil(1).Name; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).TypeOf_Num = DataPlant::TypeOf_CoilWaterSimpleHeating; @@ -12476,9 +12532,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_getUnitarySystemInputDataTest) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors // check each input fields of unitary system EXPECT_EQ("UNITARY SYSTEM MODEL", thisSys->Name); // checks object name EXPECT_EQ(UnitarySys::ControlType::Load, thisSys->m_ControlType); // checks control type @@ -12732,11 +12788,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputwithTradeOff) ASSERT_TRUE(process_idf(idf_objects)); // read idf objects HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -12748,9 +12804,9 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInputwithTradeOff) UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; state->dataGlobal->DoCoilDirectSolutions = true; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors // Issue 7777 std::string const error_string = delimited_string({ @@ -12969,7 +13025,7 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_AllFlowFieldsBlankInputTest) HeatBalanceManager::GetZoneData(*state, ErrorsFound); EXPECT_FALSE(ErrorsFound); DataZoneEquipment::GetZoneEquipmentData(*state); - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; @@ -13005,28 +13061,28 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_AllFlowFieldsBlankInputTest) EXPECT_EQ(thisSys->m_DesignCoolingCapacity, DataSizing::AutoSize); EXPECT_EQ(thisSys->m_DesignHeatingCapacity, DataSizing::AutoSize); - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).DesignSizeFromParent = false; - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolVolFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesCoolCoilInHumRat = 0.001; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesTemp = 15.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).CoolDesHumRat = 0.0006; - - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow = 1.005; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatCoilInTemp = 20.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).ZoneTempAtHeatPeak = 20.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesTemp = 30.0; - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).HeatDesHumRat = 0.007; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = false; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.001; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 15.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0006; + + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.005; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTemp = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).HeatDesHumRat = 0.007; state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, 101325.0, 20.0, 0.0); - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatMassFlow = - DataSizing::FinalZoneSizing(DataSizing::CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMassFlow = + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow * state->dataEnvrn->StdRhoAir; int AirLoopNum(0); bool FirstHVACIteration(true); @@ -14349,7 +14405,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) state->dataZoneEquip->ZoneEquipInputsFilled = true; thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - // verify the size of the vector and the processed names + // verify the size of the vector and the processed names // 1 UnitarySystem objects EXPECT_EQ(1u, state->dataUnitarySystems->unitarySys.size()); @@ -14363,7 +14419,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) int OAUnitNum = 0; Real64 OAUCoilOutTemp = 0.0; state->dataGlobal->SysSizingCalc = false; - DataSizing::CurSysNum = 1; + state->dataSize->CurSysNum = 1; bool ZoneEquipFlag = false; // simulate function is overloaded, but only to report back SysOutputProvided and LatOutputProvided. Either signature should give same result. // thisSys->m_OKToPrintSizing = true; @@ -14687,11 +14743,11 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_GetInput_Autosizing) bool ErrorsFound(false); HeatBalanceManager::GetZoneData(*state, ErrorsFound); // read zone data - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors DataZoneEquipment::GetZoneEquipmentData(*state); // read zone equipment configuration and list objects - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex.allocate(1); state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; // initialize equipment index for ZoneHVAC @@ -14945,9 +15001,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_VariableSpeedDXCoilsNoLoadFlowRate UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors ; // Verify UnitarySystem air flow rates are read in as AutoSized EXPECT_EQ(thisSys->m_MaxCoolAirVolFlow, DataSizing::AutoSize); @@ -14964,10 +15020,10 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_VariableSpeedDXCoilsNoLoadFlowRate EXPECT_EQ(1.500, thisSys->m_MaxCoolAirVolFlow); EXPECT_EQ(1.500, thisSys->m_MaxHeatAirVolFlow); - Real64 results_noLoadHeatingFlowRatio = - state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowRate(1) / state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowRate(5); - Real64 results_noLoadCoolingFlowRatio = - state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(1) / state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(5); + Real64 results_noLoadHeatingFlowRatio = state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowRate(1) / + state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowRate(5); + Real64 results_noLoadCoolingFlowRatio = state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(1) / + state->dataVariableSpeedCoils->VarSpeedCoil(2).MSRatedAirVolFlowRate(5); Real64 results_noLoadFlowRatioMin = min(results_noLoadHeatingFlowRatio, results_noLoadCoolingFlowRatio); EXPECT_NEAR(results_noLoadFlowRatioMin, thisSys->m_NoLoadAirFlowRateRatio, 0.00001); @@ -15253,9 +15309,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsNoLoadFlowRateSiz UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors // Verify UnitarySystem air flow rates are read in as AutoSized EXPECT_EQ(thisSys->m_MaxCoolAirVolFlow, DataSizing::AutoSize); EXPECT_EQ(thisSys->m_MaxHeatAirVolFlow, DataSizing::AutoSize); @@ -15562,9 +15618,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors FirstHVACIteration = false; state->dataGlobal->BeginEnvrnFlag = false; @@ -15573,44 +15629,44 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes thisSys->sizeSystem(*state, FirstHVACIteration, AirLoopNum); // Test direct solution - state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); - state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); - DataLoopNode::Node.redimension(7); - DataLoopNode::Node(1).Temp = 24.0; // 24C db - DataLoopNode::Node(1).HumRat = 0.01522; // 17C wb - DataLoopNode::Node(1).Enthalpy = Psychrometrics::PsyHFnTdbW(DataLoopNode::Node(1).Temp, DataLoopNode::Node(1).HumRat); - DataHeatBalFanSys::ZoneAirHumRat.allocate(1); - DataHeatBalFanSys::MAT.allocate(1); - DataHeatBalFanSys::ZoneAirHumRat(1) = DataLoopNode::Node(1).HumRat; - DataHeatBalFanSys::MAT(1) = DataLoopNode::Node(1).Temp; - state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; - state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); - - state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; - DataHeatBalFanSys::TempControlType.allocate(1); - DataHeatBalFanSys::TempControlType(1) = 4; - DataLoopNode::Node(7).FluidType = 1; - DataLoopNode::Node(7).Temp = 24.0; // 24C db - DataLoopNode::Node(7).HumRat = 0.01522; // 17C wb - DataLoopNode::Node(7).Enthalpy = DataLoopNode::Node(1).Enthalpy; // www.sugartech.com/psychro/index.php - thisSys->NodeNumOfControlledZone = 7; - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -227.705; - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -227.705; - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -50.0; - state->dataZoneEnergyDemand->ZoneSysMoistureDemand(1).RemainingOutputReqToDehumidSP = -0.007806893; - state->dataEnvrn->StdRhoAir = 1.2043; - DataLoopNode::Node(3).MassFlowRateMax = 1.5 * state->dataEnvrn->StdRhoAir; - int CompIndex = 1; - bool HeatActive = false; - bool CoolActive = true; - int const ZoneOAUnitNum = 0; - Real64 const OAUCoilOutTemp = 0.0; - bool const ZoneEquipment = true; - Real64 sensOut = 0.0; - Real64 latOut = 0.0; - - //Speed 1 - thisSys->simulate(*state, + state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(1); + state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(1); + DataLoopNode::Node.redimension(7); + DataLoopNode::Node(1).Temp = 24.0; // 24C db + DataLoopNode::Node(1).HumRat = 0.01522; // 17C wb + DataLoopNode::Node(1).Enthalpy = Psychrometrics::PsyHFnTdbW(DataLoopNode::Node(1).Temp, DataLoopNode::Node(1).HumRat); + DataHeatBalFanSys::ZoneAirHumRat.allocate(1); + DataHeatBalFanSys::MAT.allocate(1); + DataHeatBalFanSys::ZoneAirHumRat(1) = DataLoopNode::Node(1).HumRat; + DataHeatBalFanSys::MAT(1) = DataLoopNode::Node(1).Temp; + state->dataZoneEquip->ZoneEquipList(1).EquipIndex(1) = 1; + state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(1); + + state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = false; + DataHeatBalFanSys::TempControlType.allocate(1); + DataHeatBalFanSys::TempControlType(1) = 4; + DataLoopNode::Node(7).FluidType = 1; + DataLoopNode::Node(7).Temp = 24.0; // 24C db + DataLoopNode::Node(7).HumRat = 0.01522; // 17C wb + DataLoopNode::Node(7).Enthalpy = DataLoopNode::Node(1).Enthalpy; // www.sugartech.com/psychro/index.php + thisSys->NodeNumOfControlledZone = 7; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -227.705; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -227.705; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -50.0; + state->dataZoneEnergyDemand->ZoneSysMoistureDemand(1).RemainingOutputReqToDehumidSP = -0.007806893; + state->dataEnvrn->StdRhoAir = 1.2043; + DataLoopNode::Node(3).MassFlowRateMax = 1.5 * state->dataEnvrn->StdRhoAir; + int CompIndex = 1; + bool HeatActive = false; + bool CoolActive = true; + int const ZoneOAUnitNum = 0; + Real64 const OAUCoilOutTemp = 0.0; + bool const ZoneEquipment = true; + Real64 sensOut = 0.0; + Real64 latOut = 0.0; + + // Speed 1 + thisSys->simulate(*state, thisSys->Name, FirstHVACIteration, AirLoopNum, @@ -15622,11 +15678,11 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes ZoneEquipment, sensOut, latOut); - EXPECT_NEAR(thisSys->m_CycRatio, 0.02422, 0.001); - EXPECT_NEAR(sensOut, -227.705, 0.1); - state->dataGlobal->DoCoilDirectSolutions = true; - thisSys->FullOutput.resize(3); - thisSys->simulate(*state, + EXPECT_NEAR(thisSys->m_CycRatio, 0.02422, 0.001); + EXPECT_NEAR(sensOut, -227.705, 0.1); + state->dataGlobal->DoCoilDirectSolutions = true; + thisSys->FullOutput.resize(3); + thisSys->simulate(*state, thisSys->Name, FirstHVACIteration, AirLoopNum, @@ -15638,14 +15694,14 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes ZoneEquipment, sensOut, latOut); - EXPECT_NEAR(thisSys->m_CycRatio, 0.02422, 0.001); - EXPECT_NEAR(sensOut, -227.705, 0.1); + EXPECT_NEAR(thisSys->m_CycRatio, 0.02422, 0.001); + EXPECT_NEAR(sensOut, -227.705, 0.1); // speed 2 - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -12000.0; - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -12000.0; - state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -5000.0; - state->dataGlobal->DoCoilDirectSolutions = false; - thisSys->simulate(*state, + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputRequired = -12000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToCoolSP = -12000.0; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).RemainingOutputReqToHeatSP = -5000.0; + state->dataGlobal->DoCoilDirectSolutions = false; + thisSys->simulate(*state, thisSys->Name, FirstHVACIteration, AirLoopNum, @@ -15657,12 +15713,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes ZoneEquipment, sensOut, latOut); - EXPECT_NEAR(thisSys->m_CycRatio, 1.000, 0.001); - EXPECT_NEAR(thisSys->m_SpeedRatio, 0.228062, 0.001); - EXPECT_NEAR(sensOut, -11998.0, 3.0); + EXPECT_NEAR(thisSys->m_CycRatio, 1.000, 0.001); + EXPECT_NEAR(thisSys->m_SpeedRatio, 0.228062, 0.001); + EXPECT_NEAR(sensOut, -11998.0, 3.0); - state->dataGlobal->DoCoilDirectSolutions = true; - thisSys->simulate(*state, + state->dataGlobal->DoCoilDirectSolutions = true; + thisSys->simulate(*state, thisSys->Name, FirstHVACIteration, AirLoopNum, @@ -15674,9 +15730,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes ZoneEquipment, sensOut, latOut); - EXPECT_NEAR(thisSys->m_CycRatio, 1.000, 0.001); - EXPECT_NEAR(thisSys->m_SpeedRatio, 0.228062, 0.02); - EXPECT_NEAR(sensOut, -11998.0, 210.0); + EXPECT_NEAR(thisSys->m_CycRatio, 1.000, 0.001); + EXPECT_NEAR(thisSys->m_SpeedRatio, 0.228062, 0.02); + EXPECT_NEAR(sensOut, -11998.0, 210.0); } TEST_F(EnergyPlusFixture, UnitarySystemModel_reportUnitarySystemAncillaryPowerTest) { @@ -16016,11 +16072,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_SetpointControlCyclingFan) state->dataGlobal->NumOfTimeStepInHour = 1; state->dataGlobal->MinutesPerTimeStep = 60; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - std::string const error_string = delimited_string({ - " ** Severe ** AirLoopHVAC:UnitarySystem = UNITARY SYSTEM MODEL\n ** ~~~ ** For FAN:ONOFF = SUPPLY FAN 1\n ** ~~~ ** Fan operating mode must be continuous (fan operating mode schedule values > 0).\n ** ~~~ ** Error found in Supply Air Fan Operating Mode Schedule Name ALWAYSZERO\n ** ~~~ ** ...schedule values must be (>0., <=1.)" - }); + std::string const error_string = + delimited_string({" ** Severe ** AirLoopHVAC:UnitarySystem = UNITARY SYSTEM MODEL\n ** ~~~ ** For FAN:ONOFF = SUPPLY FAN 1\n ** " + "~~~ ** Fan operating mode must be continuous (fan operating mode schedule values > 0).\n ** ~~~ ** Error found in " + "Supply Air Fan Operating Mode Schedule Name ALWAYSZERO\n ** ~~~ ** ...schedule values must be (>0., <=1.)"}); EXPECT_TRUE(compare_err_stream(error_string, true)); } @@ -16146,9 +16203,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_FuelHeatCoilStptNodeTest) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -16342,9 +16399,9 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_ElecHeatCoilStptNodeTest) UnitarySystems::UnitarySys::factory(*state, DataHVACGlobals::UnitarySys_AnyCoilType, compName, zoneEquipment, 0); UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); @@ -16364,17 +16421,17 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_ElecHeatCoilStptNodeTest) Real64 latOut = 0.0; thisSys->simulate(*state, - thisSys->Name, - FirstHVACIteration, - AirLoopNum, - CompIndex, - HeatActive, - CoolActive, - ZoneOAUnitNum, - OAUCoilOutTemp, - ZoneEquipment, - sensOut, - latOut); + thisSys->Name, + FirstHVACIteration, + AirLoopNum, + CompIndex, + HeatActive, + CoolActive, + ZoneOAUnitNum, + OAUCoilOutTemp, + ZoneEquipment, + sensOut, + latOut); // set up node conditions to test UnitarySystem set point based control // Unitary system air inlet node = 1 @@ -16399,17 +16456,17 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_ElecHeatCoilStptNodeTest) // Heating mode thisSys->simulate(*state, - thisSys->Name, - FirstHVACIteration, - AirLoopNum, - CompIndex, - HeatActive, - CoolActive, - ZoneOAUnitNum, - OAUCoilOutTemp, - ZoneEquipment, - sensOut, - latOut); + thisSys->Name, + FirstHVACIteration, + AirLoopNum, + CompIndex, + HeatActive, + CoolActive, + ZoneOAUnitNum, + OAUCoilOutTemp, + ZoneEquipment, + sensOut, + latOut); // check that heating coil air outlet node is at set point EXPECT_NEAR(DataLoopNode::Node(2).Temp, DataLoopNode::Node(2).TempSetPoint, 0.001); @@ -16645,7 +16702,7 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_DesuperHeatCoilStptNodeTest) UnitarySystems::UnitarySys *thisSys = &state->dataUnitarySystems->unitarySys[0]; thisSys->AirInNode = 3; - state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available + state->dataZoneEquip->ZoneEquipInputsFilled = true; // indicate zone data is available DataLoopNode::NodeID.allocate(20); DataLoopNode::NodeID(20) = "East Zone Air Node"; state->dataHeatBal->ZoneIntGain.allocate(1); @@ -16653,12 +16710,12 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_DesuperHeatCoilStptNodeTest) state->dataHeatBal->RefrigCaseCredit.allocate(1); state->dataHeatBal->RefrigCaseCredit(1).SenCaseCreditToZone = 0; DataLoopNode::Node.allocate(20); - DataLoopNode::Node(20).Temp = 24.0; // 24C db - DataLoopNode::Node(20).HumRat = 0.00922; // 17C wb + DataLoopNode::Node(20).Temp = 24.0; // 24C db + DataLoopNode::Node(20).HumRat = 0.00922; // 17C wb RefrigeratedCase::ManageRefrigeratedCaseRacks(*state); thisSys->getUnitarySystemInputData(*state, compName, zoneEquipment, 0, ErrorsFound); // get UnitarySystem input from object above - EXPECT_FALSE(ErrorsFound); // expect no errors + EXPECT_FALSE(ErrorsFound); // expect no errors OutputReportPredefined::SetPredefinedTables(*state); diff --git a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc index 7d09f256823..360977928c0 100644 --- a/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc +++ b/tst/EnergyPlus/unit/VAVDefMinMaxFlow.unit.cc @@ -94,27 +94,27 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestVentEffLimit) Real64 SysCoolingEv; // system ventilation effectiveness int CtrlZoneNum; // controlled zone number - TermUnitFinalZoneSizing.allocate(2); + state->dataSize->TermUnitFinalZoneSizing.allocate(2); Xs = 0.2516; ZoneOAFrac = 0.8265; VozClg = .06245; SysCoolingEv = 1.0 + Xs - ZoneOAFrac; CtrlZoneNum = 1; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.7; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.7; LimitZoneVentEff(*state, Xs, VozClg, CtrlZoneNum, SysCoolingEv); EXPECT_DOUBLE_EQ(0.7, SysCoolingEv); - EXPECT_NEAR(0.5516, TermUnitFinalZoneSizing(CtrlZoneNum).ZpzClgByZone, 0.0001); - EXPECT_NEAR(0.1132, TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.0001); + EXPECT_NEAR(0.5516, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZpzClgByZone, 0.0001); + EXPECT_NEAR(0.1132, state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).DesCoolVolFlowMin, 0.0001); ZoneOAFrac = 0.4894; VozClg = 0.02759; SysCoolingEv = 1.0 + Xs - ZoneOAFrac; CtrlZoneNum = 2; - TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.7; + state->dataSize->TermUnitFinalZoneSizing(CtrlZoneNum).ZoneVentilationEff = 0.7; LimitZoneVentEff(*state, Xs, VozClg, CtrlZoneNum, SysCoolingEv); EXPECT_NEAR(0.7622, SysCoolingEv, .0001); - TermUnitFinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); } TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing1) { @@ -233,11 +233,11 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing1) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - NumAirTerminalSizingSpec = 1; - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->NumAirTerminalSizingSpec = 1; + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); GetZoneData(*state, ErrorsFound); EXPECT_EQ("SPACE3-1", state->dataHeatBal->Zone(1).Name); GetOARequirements(*state); // get the OA requirements object @@ -248,52 +248,52 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing1) state->dataScheduleMgr->ScheduleInputProcessed = true; GetZoneAirLoopEquipment(*state); GetSysInput(*state); - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.21081; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - CalcFinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - EXPECT_DOUBLE_EQ(ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac, 0.22); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, 0.0, 0.000001); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin, 0.22 * 0.21081, 0.000001); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.4); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax, 0.084324, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac, 0.22); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, 0.0, 0.000001); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin, 0.22 * 0.21081, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.4); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax, 0.084324, 0.000001); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; UpdateTermUnitFinalZoneSizing(*state); // Fills the TermUnitFinalZoneSizing array state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); - EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).ZoneMinAirFracDes, 0.22); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.084324, 0.000001); + EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).ZoneMinAirFracDes, 0.22); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.084324, 0.000001); Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); } @@ -413,11 +413,11 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing2) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - NumAirTerminalSizingSpec = 1; - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->NumAirTerminalSizingSpec = 1; + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); GetZoneData(*state, ErrorsFound); EXPECT_EQ("SPACE3-1", state->dataHeatBal->Zone(1).Name); GetOARequirements(*state); // get the OA requirements object @@ -428,52 +428,52 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing2) state->dataScheduleMgr->ScheduleInputProcessed = true; GetZoneAirLoopEquipment(*state); GetSysInput(*state); - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.21081; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - CalcFinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - EXPECT_DOUBLE_EQ(ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac, 0.2); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, 0.1415762); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.3); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea, .002032); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, 0.196047, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac, 0.2); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, 0.1415762); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.3); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea, .002032); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, 0.196047, 0.000001); // EXPECT_NEAR( FinalZoneSizing( CurZoneEqNum ).DesHeatVolFlowMax, 0.084324, 0.000001 ); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; UpdateTermUnitFinalZoneSizing(*state); // Fills the TermUnitFinalZoneSizing array state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).ZoneMinAirFracDes, 0.348739, 0.000001); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.196047, 0.000001); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).ZoneMinAirFracDes, 0.348739, 0.000001); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.196047, 0.000001); Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); } @@ -593,10 +593,10 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing3) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); GetZoneData(*state, ErrorsFound); EXPECT_EQ("SPACE3-1", state->dataHeatBal->Zone(1).Name); GetOARequirements(*state); // get the OA requirements object @@ -607,53 +607,53 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing3) state->dataScheduleMgr->ScheduleInputProcessed = true; GetZoneAirLoopEquipment(*state); GetSysInput(*state); - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesCoolVolFlow = 0.21081; - TermUnitFinalZoneSizing(CurTermUnitSizingNum).DesHeatVolFlow = 0.11341; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.21081; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - CalcFinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - EXPECT_DOUBLE_EQ(ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac, 0.18); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, 0.11); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax, 0.11); + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesCoolVolFlow = 0.21081; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum).DesHeatVolFlow = 0.11341; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac, 0.18); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, 0.11); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax, 0.11); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); - EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).ZoneMinAirFracDes, 0.22); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.092756, 0.000001); + EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).ZoneMinAirFracDes, 0.22); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.092756, 0.000001); Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); } @@ -774,10 +774,10 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing4) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); GetZoneData(*state, ErrorsFound); EXPECT_EQ("SPACE3-1", state->dataHeatBal->Zone(1).Name); // GetOARequirements(*state); // get the OA requirements object @@ -788,21 +788,21 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing4) state->dataScheduleMgr->ScheduleInputProcessed = true; GetZoneAirLoopEquipment(*state); GetSysInput(*state); - ZoneSizingRunDone = false; - CurZoneEqNum = 1; + state->dataSize->ZoneSizingRunDone = false; + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).ZoneMinAirFracDes, 0.348739, 0.000001); - EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.196047, 0.000001); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).ZoneMinAirFracDes, 0.348739, 0.000001); + EXPECT_NEAR(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.196047, 0.000001); Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); } @@ -923,11 +923,11 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing5) ASSERT_TRUE(process_idf(idf_objects)); - FinalZoneSizing.allocate(1); - NumAirTerminalSizingSpec = 1; - TermUnitFinalZoneSizing.allocate(1); - CalcFinalZoneSizing.allocate(1); - TermUnitSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->NumAirTerminalSizingSpec = 1; + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->CalcFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing.allocate(1); GetZoneData(*state, ErrorsFound); EXPECT_EQ("SPACE3-1", state->dataHeatBal->Zone(1).Name); GetOARequirements(*state); // get the OA requirements object @@ -938,52 +938,52 @@ TEST_F(EnergyPlusFixture, VAVDefMinMaxFlowTestSizing5) state->dataScheduleMgr->ScheduleInputProcessed = true; GetZoneAirLoopEquipment(*state); GetSysInput(*state); - ZoneSizingRunDone = true; - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; state->dataHeatBal->Zone(1).FloorArea = 96.48; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.21081; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - CalcFinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.11341; - CalcFinalZoneSizing(CurZoneEqNum).HeatSizingFactor = 1.0; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlow; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin = - max(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow * FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac); - EXPECT_DOUBLE_EQ(ZoneSizingInput(CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlowFrac, 0.2); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); - EXPECT_NEAR(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlow; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowFrac; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea; - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2 = ZoneSizingInput(CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax = - max(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, - max(FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow, FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow) * - FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow, 0.08); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); - EXPECT_DOUBLE_EQ(FinalZoneSizing(CurZoneEqNum).DesHeatVolFlowMax, 0.08); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.21081; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.11341; + state->dataSize->CalcFinalZoneSizing(state->dataSize->CurZoneEqNum).HeatSizingFactor = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow * state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowPerArea, 0.000762); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlowFrac, 0.2); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolMinAirFlow2, .07351776, 0.000001); + EXPECT_NEAR(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlowMin, .07351776, 0.000001); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2 = state->dataSize->ZoneSizingInput(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea * state->dataHeatBal->Zone(1).FloorArea; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax = + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, + max(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow) * + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow, 0.08); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowFrac, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlowPerArea, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatMaxAirFlow2, 0.0); + EXPECT_DOUBLE_EQ(state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlowMax, 0.08); state->dataSingleDuct->sd_airterminal(1).ZoneFloorArea = state->dataHeatBal->Zone(1).FloorArea; UpdateTermUnitFinalZoneSizing(*state); // Fills the TermUnitFinalZoneSizing array state->dataSingleDuct->sd_airterminal(1).SizeSys(*state); - EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).ZoneMinAirFracDes, 0.07351776 / 0.21081); - EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.08); + EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).ZoneMinAirFracDes, 0.07351776 / 0.21081); + EXPECT_DOUBLE_EQ(state->dataSingleDuct->sd_airterminal(state->dataSize->CurZoneEqNum).MaxAirVolFlowRateDuringReheat, 0.08); Node.deallocate(); state->dataZoneEquip->ZoneEquipConfig.deallocate(); state->dataHeatBal->Zone.deallocate(); - FinalZoneSizing.deallocate(); - TermUnitFinalZoneSizing.deallocate(); - CalcFinalZoneSizing.deallocate(); - TermUnitSizing.deallocate(); + state->dataSize->FinalZoneSizing.deallocate(); + state->dataSize->TermUnitFinalZoneSizing.deallocate(); + state->dataSize->CalcFinalZoneSizing.deallocate(); + state->dataSize->TermUnitSizing.deallocate(); state->dataSingleDuct->sd_airterminal.deallocate(); } diff --git a/tst/EnergyPlus/unit/VentilatedSlab.unit.cc b/tst/EnergyPlus/unit/VentilatedSlab.unit.cc index 1763878c19a..99350168c82 100644 --- a/tst/EnergyPlus/unit/VentilatedSlab.unit.cc +++ b/tst/EnergyPlus/unit/VentilatedSlab.unit.cc @@ -2306,8 +2306,8 @@ TEST_F(EnergyPlusFixture, VentilatedSlab_InitVentilatedSlabTest) }); ASSERT_TRUE(process_idf(idf_objects)); - DataSizing::CurZoneEqNum = 1; - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); state->dataGlobal->NumOfTimeStepInHour = 1; // must initialize this to get schedules initialized state->dataGlobal->MinutesPerTimeStep = 60; // must initialize this to get schedules initialized ProcessScheduleInput(*state); // read schedule data diff --git a/tst/EnergyPlus/unit/WaterCoils.unit.cc b/tst/EnergyPlus/unit/WaterCoils.unit.cc index ec0f9588579..02668f1a30a 100644 --- a/tst/EnergyPlus/unit/WaterCoils.unit.cc +++ b/tst/EnergyPlus/unit/WaterCoils.unit.cc @@ -130,30 +130,30 @@ class WaterCoilsTest : public EnergyPlusFixture { EnergyPlusFixture::SetUp(); // Sets up individual test cases. - CurZoneEqNum = 0; - CurSysNum = 0; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 0; + state->dataSize->CurOASysNum = 0; state->dataWaterCoils->NumWaterCoils = 1; state->dataWaterCoils->WaterCoil.allocate(state->dataWaterCoils->NumWaterCoils); state->dataWaterCoils->WaterCoilNumericFields.allocate(state->dataWaterCoils->NumWaterCoils); state->dataWaterCoils->WaterCoilNumericFields(state->dataWaterCoils->NumWaterCoils).FieldNames.allocate(17); // max N fields for water coil state->dataPlnt->TotNumLoops = 1; state->dataPlnt->PlantLoop.allocate(state->dataPlnt->TotNumLoops); - PlantSizData.allocate(1); - ZoneEqSizing.allocate(1); - UnitarySysEqSizing.allocate(1); - OASysEqSizing.allocate(1); - SysSizInput.allocate(1); - ZoneSizingInput.allocate(1); - SysSizPeakDDNum.allocate(1); - SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); - SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); - SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); - SysSizPeakDDNum(1).SensCoolPeakDD = 1; - SysSizPeakDDNum(1).CoolFlowPeakDD = 1; - SysSizPeakDDNum(1).TotCoolPeakDD = 1; - FinalSysSizing.allocate(1); - FinalZoneSizing.allocate(1); + state->dataSize->PlantSizData.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->UnitarySysEqSizing.allocate(1); + state->dataSize->OASysEqSizing.allocate(1); + state->dataSize->SysSizInput.allocate(1); + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->SysSizPeakDDNum.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); + state->dataSize->SysSizPeakDDNum(1).SensCoolPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).CoolFlowPeakDD = 1; + state->dataSize->SysSizPeakDDNum(1).TotCoolPeakDD = 1; + state->dataSize->FinalSysSizing.allocate(1); + state->dataSize->FinalZoneSizing.allocate(1); state->dataAirSystemsData->PrimaryAirSystems.allocate(1); state->dataAirLoop->AirLoopControlInfo.allocate(1); InitializePsychRoutines(); @@ -163,14 +163,6 @@ class WaterCoilsTest : public EnergyPlusFixture { EnergyPlusFixture::TearDown(); // Remember to tear down the base fixture after cleaning up derived fixture! - PlantSizData.clear(); - ZoneEqSizing.clear(); - UnitarySysEqSizing.clear(); - OASysEqSizing.clear(); - SysSizInput.clear(); - SysSizPeakDDNum.clear(); - FinalSysSizing.clear(); - SysSizPeakDDNum.clear(); cached_Twb.clear(); cached_Psat.clear(); } @@ -182,11 +174,11 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "WaterLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "WaterLoop"; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -206,13 +198,13 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).MixTempAtCoolPeak = 20.0; - FinalSysSizing(1).CoolSupTemp = 10.0; - FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; - FinalSysSizing(1).DesMainVolFlow = 0.00159; - FinalSysSizing(1).HeatSupTemp = 25.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.00159; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 25.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; // set up water coil int CoilNum = 1; @@ -232,14 +224,14 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - SysSizInput(1).CoolCapControl = VAV; - PlantSizData(1).ExitTemp = 5.7; - PlantSizData(1).DeltaT = 5.0; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; - DataWaterLoopNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->SysSizInput(1).CoolCapControl = VAV; + state->dataSize->PlantSizData(1).ExitTemp = 5.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; createCoilSelectionReportObj(); @@ -247,23 +239,23 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) EXPECT_DOUBLE_EQ(0.00159, state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate); // Check that all Data* variables have been reset - EXPECT_EQ(0, DataPltSizCoolNum); - EXPECT_EQ(0, DataWaterLoopNum); - EXPECT_DOUBLE_EQ(0.0, DataConstantUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFractionUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataAirFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataWaterFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataCapacityUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletWaterTemp); + EXPECT_EQ(0, state->dataSize->DataPltSizCoolNum); + EXPECT_EQ(0, state->dataSize->DataWaterLoopNum); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataConstantUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFractionUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataAirFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataWaterFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataCapacityUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletWaterTemp); // set second cooling coil to size at a different air flow, adjust sizing data, and autosize input data - FinalSysSizing(1).DesMainVolFlow = 0.00259; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.00259; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; state->dataWaterCoils->WaterCoil(CoilNum).Name = "Test Water Cooling Coil 2"; state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = AutoSize; @@ -277,26 +269,26 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) SizeWaterCoil(*state, CoilNum); EXPECT_DOUBLE_EQ(0.00259, state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate); - EXPECT_EQ(0, DataPltSizCoolNum); - EXPECT_EQ(0, DataWaterLoopNum); - EXPECT_DOUBLE_EQ(0.0, DataConstantUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFractionUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataAirFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataWaterFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataCapacityUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletWaterTemp); + EXPECT_EQ(0, state->dataSize->DataPltSizCoolNum); + EXPECT_EQ(0, state->dataSize->DataWaterLoopNum); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataConstantUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFractionUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataAirFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataWaterFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataCapacityUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletWaterTemp); // size heating coil - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - FinalSysSizing(1).DesMainVolFlow = 0.00359; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.00359; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; state->dataAirLoop->AirLoopControlInfo(1).UnitarySys = true; state->dataWaterCoils->WaterCoil(CoilNum).Name = "Test Water Heating Coil"; @@ -312,23 +304,23 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) SizeWaterCoil(*state, CoilNum); EXPECT_DOUBLE_EQ(0.00359, state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate); - EXPECT_EQ(0, DataPltSizCoolNum); - EXPECT_EQ(0, DataWaterLoopNum); - EXPECT_DOUBLE_EQ(0.0, DataConstantUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFractionUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataAirFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataWaterFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataCapacityUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletWaterTemp); + EXPECT_EQ(0, state->dataSize->DataPltSizCoolNum); + EXPECT_EQ(0, state->dataSize->DataWaterLoopNum); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataConstantUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFractionUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataAirFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataWaterFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataCapacityUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletWaterTemp); // size 2nd heating coil - FinalSysSizing(1).DesMainVolFlow = 0.00459; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 0.00459; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; state->dataWaterCoils->WaterCoil(CoilNum).Name = "Test Water Heating Coil 2"; state->dataWaterCoils->WaterCoil(CoilNum).WaterCoilType = state->dataWaterCoils->CoilType_Heating; @@ -343,39 +335,39 @@ TEST_F(WaterCoilsTest, WaterCoolingCoilSizing) SizeWaterCoil(*state, CoilNum); EXPECT_DOUBLE_EQ(0.00459, state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate); - EXPECT_EQ(0, DataPltSizCoolNum); - EXPECT_EQ(0, DataWaterLoopNum); - EXPECT_DOUBLE_EQ(0.0, DataConstantUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFractionUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataAirFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataWaterFlowUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataCapacityUsedForSizing); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirTemp); - EXPECT_DOUBLE_EQ(0.0, DataDesOutletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletAirHumRat); - EXPECT_DOUBLE_EQ(0.0, DataDesInletWaterTemp); + EXPECT_EQ(0, state->dataSize->DataPltSizCoolNum); + EXPECT_EQ(0, state->dataSize->DataWaterLoopNum); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataConstantUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFractionUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataAirFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataWaterFlowUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataCapacityUsedForSizing); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirTemp); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesOutletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletAirHumRat); + EXPECT_DOUBLE_EQ(0.0, state->dataSize->DataDesInletWaterTemp); // size zone water heating coil - CurZoneEqNum = 1; - CurSysNum = 0; - PlantSizData(1).ExitTemp = 60.0; - DataSizing::NumZoneSizingInput = 1; - DataSizing::ZoneSizingRunDone = true; - ZoneSizingInput(1).ZoneNum = CurZoneEqNum; - ZoneEqSizing(1).SizingMethod.allocate(25); - ZoneEqSizing(1).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; - FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; - FinalZoneSizing(1).OutTempAtHeatPeak = -20.0; - FinalZoneSizing(1).DesHeatCoilInTemp = -20.0; // simulates zone heating air flow rate <= zone OA flow rate - FinalZoneSizing(1).DesHeatCoilInHumRat = 0.005; - FinalZoneSizing(1).HeatDesTemp = 30.0; - FinalZoneSizing(1).HeatDesHumRat = 0.005; - ZoneEqSizing(1).OAVolFlow = 0.01; - ZoneEqSizing(1).HeatingAirFlow = true; - ZoneEqSizing(1).HeatingAirVolFlow = 0.1; - FinalZoneSizing(1).DesHeatMassFlow = state->dataEnvrn->StdRhoAir * ZoneEqSizing(1).HeatingAirVolFlow; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->PlantSizData(1).ExitTemp = 60.0; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneSizingInput(1).ZoneNum = state->dataSize->CurZoneEqNum; + state->dataSize->ZoneEqSizing(1).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(1).SizingMethod(DataHVACGlobals::SystemAirflowSizing) = DataSizing::SupplyAirFlowRate; + state->dataSize->FinalZoneSizing(1).ZoneTempAtHeatPeak = 20.0; + state->dataSize->FinalZoneSizing(1).OutTempAtHeatPeak = -20.0; + state->dataSize->FinalZoneSizing(1).DesHeatCoilInTemp = -20.0; // simulates zone heating air flow rate <= zone OA flow rate + state->dataSize->FinalZoneSizing(1).DesHeatCoilInHumRat = 0.005; + state->dataSize->FinalZoneSizing(1).HeatDesTemp = 30.0; + state->dataSize->FinalZoneSizing(1).HeatDesHumRat = 0.005; + state->dataSize->ZoneEqSizing(1).OAVolFlow = 0.01; + state->dataSize->ZoneEqSizing(1).HeatingAirFlow = true; + state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow = 0.1; + state->dataSize->FinalZoneSizing(1).DesHeatMassFlow = state->dataEnvrn->StdRhoAir * state->dataSize->ZoneEqSizing(1).HeatingAirVolFlow; state->dataWaterCoils->MySizeFlag.allocate(1); state->dataWaterCoils->MySizeFlag(CoilNum) = true; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); @@ -416,13 +408,13 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizing) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).ExitTemp = 60.0; - PlantSizData(1).DeltaT = 10.0; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 60.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -442,11 +434,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).HeatSupTemp = 40.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatOAOption = 1; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 40.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOAOption = 1; // set up water coil int CoilNum = 1; @@ -472,10 +464,10 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - DataWaterLoopNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); @@ -515,15 +507,15 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizing) EXPECT_NEAR(1435.01, state->dataWaterCoils->WaterCoil(CoilNum).UACoil, 0.01); // test single zone VAV reheat coil sizing - CurZoneEqNum = 1; - CurTermUnitSizingNum = 1; - CurSysNum = 0; - TermUnitSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate / 3.0; // DesAirVolFlowRate = 1.0 - TermUnitSizing(CurTermUnitSizingNum).MaxHWVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate / 3.0; - TermUnitSizing(CurTermUnitSizingNum).MinFlowFrac = 0.5; - DataSizing::TermUnitSingDuct = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate / 3.0; // DesAirVolFlowRate = 1.0 + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).MaxHWVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate / 3.0; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).MinFlowFrac = 0.5; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = AutoSize; state->dataWaterCoils->WaterCoil(CoilNum).UACoil = AutoSize; @@ -535,24 +527,24 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizing) state->dataWaterCoils->WaterCoil(CoilNum).DesInletAirHumRat = AutoSize; state->dataWaterCoils->WaterCoil(CoilNum).DesOutletAirHumRat = AutoSize; - SysSizingRunDone = false; - ZoneSizingRunDone = true; - NumZoneSizingInput = 1; - ZoneSizingInput.allocate(1); - ZoneSizingInput(1).ZoneNum = 1; - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(20); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingAirflowSizing) = DataHVACGlobals::HeatingAirflowSizing; - ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow = 0.0; - ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow = 1.0; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.0; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 1.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 10.0; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->SysSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(20); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingAirflowSizing) = DataHVACGlobals::HeatingAirflowSizing; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 1.0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 1.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 10.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataWaterCoils->MySizeFlag(1) = true; // run water coil sizing @@ -568,13 +560,13 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterLowAirFlowUASizing) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).ExitTemp = 60.0; - PlantSizData(1).DeltaT = 10.0; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 60.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -594,11 +586,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterLowAirFlowUASizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).HeatSupTemp = 40.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatOAOption = 1; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 40.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOAOption = 1; // set up water coil int CoilNum = 1; @@ -624,10 +616,10 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterLowAirFlowUASizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - DataWaterLoopNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); @@ -667,16 +659,16 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterLowAirFlowUASizing) EXPECT_NEAR(1435.01, state->dataWaterCoils->WaterCoil(CoilNum).UACoil, 0.01); // test single zone VAV reheat coil sizing - CurZoneEqNum = 1; - CurSysNum = 0; - CurTermUnitSizingNum = 1; - TermUnitSizing.allocate(1); - TermUnitFinalZoneSizing.allocate(1); - TermUnitSizing(CurTermUnitSizingNum).AirVolFlow = + state->dataSize->CurZoneEqNum = 1; + state->dataSize->CurSysNum = 0; + state->dataSize->CurTermUnitSizingNum = 1; + state->dataSize->TermUnitSizing.allocate(1); + state->dataSize->TermUnitFinalZoneSizing.allocate(1); + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).AirVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate / 1500.0; // DesAirVolFlowRate = 1.0 so TU air flow = 0.00067 (lower than 0.001) - TermUnitSizing(CurTermUnitSizingNum).MaxHWVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate / 1500.0; - TermUnitSizing(CurTermUnitSizingNum).MinFlowFrac = 0.5; - DataSizing::TermUnitSingDuct = true; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).MaxHWVolFlow = state->dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate / 1500.0; + state->dataSize->TermUnitSizing(state->dataSize->CurTermUnitSizingNum).MinFlowFrac = 0.5; + state->dataSize->TermUnitSingDuct = true; state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate = AutoSize; state->dataWaterCoils->WaterCoil(CoilNum).UACoil = AutoSize; @@ -688,24 +680,24 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterLowAirFlowUASizing) state->dataWaterCoils->WaterCoil(CoilNum).DesInletAirHumRat = AutoSize; state->dataWaterCoils->WaterCoil(CoilNum).DesOutletAirHumRat = AutoSize; - SysSizingRunDone = false; - ZoneSizingRunDone = true; - NumZoneSizingInput = 1; - ZoneSizingInput.allocate(1); - ZoneSizingInput(1).ZoneNum = 1; - ZoneEqSizing.allocate(1); - ZoneEqSizing(CurZoneEqNum).SizingMethod.allocate(20); - ZoneEqSizing(CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingAirflowSizing) = DataHVACGlobals::HeatingAirflowSizing; - ZoneEqSizing(CurZoneEqNum).CoolingAirVolFlow = 0.0; - ZoneEqSizing(CurZoneEqNum).HeatingAirVolFlow = 1.0; - FinalZoneSizing.allocate(1); - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.0; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.00095; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInTempTU = 10.0; - FinalZoneSizing(CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; - FinalZoneSizing(CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; - TermUnitFinalZoneSizing(CurTermUnitSizingNum) = FinalZoneSizing(CurZoneEqNum); + state->dataSize->SysSizingRunDone = false; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->NumZoneSizingInput = 1; + state->dataSize->ZoneSizingInput.allocate(1); + state->dataSize->ZoneSizingInput(1).ZoneNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(20); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(DataHVACGlobals::HeatingAirflowSizing) = DataHVACGlobals::HeatingAirflowSizing; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).CoolingAirVolFlow = 0.0; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).HeatingAirVolFlow = 1.0; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.00095; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInTempTU = 10.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneTempAtHeatPeak = 21.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatCoilInHumRatTU = 0.006; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtHeatPeak = 0.008; + state->dataSize->TermUnitFinalZoneSizing(state->dataSize->CurTermUnitSizingNum) = state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum); state->dataWaterCoils->MySizeFlag(1) = true; // run water coil sizing @@ -724,13 +716,13 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizingLowHwaterInletTemp) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).ExitTemp = 40.0; // low heating coil inlet water temp - PlantSizData(1).DeltaT = 10.0; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 40.0; // low heating coil inlet water temp + state->dataSize->PlantSizData(1).DeltaT = 10.0; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -750,11 +742,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizingLowHwaterInletTemp) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).HeatSupTemp = 40.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatOAOption = 1; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 40.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOAOption = 1; // set up water coil int CoilNum = 1; @@ -780,11 +772,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizingLowHwaterInletTemp) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; - DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); @@ -829,7 +821,7 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterUASizingLowHwaterInletTemp) // check if coil design inlet water temperature is increased above the plant loop exit temp EstimateCoilInletWaterTemp(*state, CoilNum, DataFanOpMode, 1.0, UAMax, DesCoilInletWaterTempUsed); - EXPECT_GT(DesCoilInletWaterTempUsed, PlantSizData(1).ExitTemp); + EXPECT_GT(DesCoilInletWaterTempUsed, state->dataSize->PlantSizData(1).ExitTemp); EXPECT_NEAR(48.73, DesCoilInletWaterTempUsed, 0.01); } @@ -841,11 +833,11 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterSimpleSizing) ShowMessage(*state, "Begin Test: state->dataWaterCoils->WaterCoilsTest, CoilCoolingWaterSimpleSizing"); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "WaterLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "WaterLoop"; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -865,12 +857,12 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterSimpleSizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).MixTempAtCoolPeak = 20.0; - FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; - FinalSysSizing(1).CoolSupTemp = 10.0; - FinalSysSizing(1).CoolSupHumRat = 0.0085; - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10.0; + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; // set up water coil int CoilNum = 1; @@ -896,14 +888,14 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterSimpleSizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - SysSizInput(1).CoolCapControl = VAV; - PlantSizData(1).ExitTemp = 5.7; - PlantSizData(1).DeltaT = 5.0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->SysSizInput(1).CoolCapControl = VAV; + state->dataSize->PlantSizData(1).ExitTemp = 5.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; - DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; // run water coil sizing @@ -942,11 +934,11 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailedSizing) ShowMessage(*state, "Begin Test: state->dataWaterCoils->WaterCoilsTest, CoilCoolingWaterDetailedSizing"); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "WaterLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "WaterLoop"; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -966,12 +958,12 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailedSizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).MixTempAtCoolPeak = 20.0; - FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; - FinalSysSizing(1).CoolSupTemp = 10.0; - FinalSysSizing(1).CoolSupHumRat = 0.0085; - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10.0; + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; // set up water coil int CoilNum = 1; @@ -1013,13 +1005,13 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailedSizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - SysSizInput(1).CoolCapControl = VAV; - PlantSizData(1).ExitTemp = 5.7; - PlantSizData(1).DeltaT = 5.0; - DataWaterLoopNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->SysSizInput(1).CoolCapControl = VAV; + state->dataSize->PlantSizData(1).ExitTemp = 5.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; // run water coil sizing @@ -1031,8 +1023,8 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailedSizing) Real64 CoilInEnth = 0.0; Real64 CoilOutEnth = 0.0; - CoilInEnth = PsyHFnTdbW(FinalSysSizing(1).MixTempAtCoolPeak, FinalSysSizing(1).MixHumRatAtCoolPeak); - CoilOutEnth = PsyHFnTdbW(FinalSysSizing(1).CoolSupTemp, FinalSysSizing(1).CoolSupHumRat); + CoilInEnth = PsyHFnTdbW(state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak, state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak); + CoilOutEnth = PsyHFnTdbW(state->dataSize->FinalSysSizing(1).CoolSupTemp, state->dataSize->FinalSysSizing(1).CoolSupHumRat); DesCoilCoolingLoad = state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate * state->dataEnvrn->StdRhoAir * (CoilInEnth - CoilOutEnth); // check cooling coil design load EXPECT_DOUBLE_EQ(DesCoilCoolingLoad, state->dataWaterCoils->WaterCoil(CoilNum).DesWaterCoolingCoilRate); @@ -1055,11 +1047,11 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailed_WarningMath) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "WaterLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "WaterLoop"; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -1079,12 +1071,12 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailed_WarningMath) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).MixTempAtCoolPeak = 20.0; - FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; - FinalSysSizing(1).CoolSupTemp = 10.0; - FinalSysSizing(1).CoolSupHumRat = 0.0085; - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).MassFlowAtCoolPeak = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak = 20.0; + state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak = 0.01; + state->dataSize->FinalSysSizing(1).CoolSupTemp = 10.0; + state->dataSize->FinalSysSizing(1).CoolSupHumRat = 0.0085; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).MassFlowAtCoolPeak = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; // set up water coil int CoilNum = 1; @@ -1136,13 +1128,13 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailed_WarningMath) state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(1).WaterInletNodeNum; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumOut = state->dataWaterCoils->WaterCoil(1).WaterOutletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; - SysSizInput(1).CoolCapControl = VAV; - PlantSizData(1).ExitTemp = 5.7; - PlantSizData(1).DeltaT = 5.0; - DataWaterLoopNum = 1; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; + state->dataSize->SysSizInput(1).CoolCapControl = VAV; + state->dataSize->PlantSizData(1).ExitTemp = 5.7; + state->dataSize->PlantSizData(1).DeltaT = 5.0; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; OutputReportPredefined::SetPredefinedTables(*state); @@ -1156,8 +1148,8 @@ TEST_F(WaterCoilsTest, CoilCoolingWaterDetailed_WarningMath) Real64 CoilInEnth = 0.0; Real64 CoilOutEnth = 0.0; - CoilInEnth = PsyHFnTdbW(FinalSysSizing(1).MixTempAtCoolPeak, FinalSysSizing(1).MixHumRatAtCoolPeak); - CoilOutEnth = PsyHFnTdbW(FinalSysSizing(1).CoolSupTemp, FinalSysSizing(1).CoolSupHumRat); + CoilInEnth = PsyHFnTdbW(state->dataSize->FinalSysSizing(1).MixTempAtCoolPeak, state->dataSize->FinalSysSizing(1).MixHumRatAtCoolPeak); + CoilOutEnth = PsyHFnTdbW(state->dataSize->FinalSysSizing(1).CoolSupTemp, state->dataSize->FinalSysSizing(1).CoolSupHumRat); DesCoilCoolingLoad = state->dataWaterCoils->WaterCoil(CoilNum).DesAirVolFlowRate * state->dataEnvrn->StdRhoAir * (CoilInEnth - CoilOutEnth); // check cooling coil design load EXPECT_DOUBLE_EQ(DesCoilCoolingLoad, state->dataWaterCoils->WaterCoil(CoilNum).DesWaterCoolingCoilRate); @@ -1238,11 +1230,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterSimpleSizing) ShowMessage(*state, "Begin Test: state->dataWaterCoils->WaterCoilsTest, CoilHeatingWaterSimpleSizing"); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "WaterLoop"; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "WaterLoop"; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -1262,11 +1254,11 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterSimpleSizing) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).HeatSupTemp = 40.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatOAOption = 1; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 40.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOAOption = 1; // set up water coil int CoilNum = 1; @@ -1291,14 +1283,14 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterSimpleSizing) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; - PlantSizData(1).ExitTemp = 60.0; - PlantSizData(1).DeltaT = 10.0; + state->dataSize->PlantSizData(1).ExitTemp = 60.0; + state->dataSize->PlantSizData(1).DeltaT = 10.0; - DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; // run water coil sizing @@ -1311,7 +1303,7 @@ TEST_F(WaterCoilsTest, CoilHeatingWaterSimpleSizing) Real64 DesCoilHeatingLoad = 0.0; CpAirStd = PsyCpAirFnW(0.0); - DesMassFlow = FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; + DesMassFlow = state->dataSize->FinalSysSizing(1).DesMainVolFlow * state->dataEnvrn->StdRhoAir; DesCoilHeatingLoad = CpAirStd * DesMassFlow * (40.0 - 5.0); // check heating coil design load @@ -1334,13 +1326,13 @@ TEST_F(WaterCoilsTest, HotWaterHeatingCoilAutoSizeTempTest) state->dataEnvrn->StdRhoAir = PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); // set up sizing flags - SysSizingRunDone = true; + state->dataSize->SysSizingRunDone = true; // set up plant sizing - NumPltSizInput = 1; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).ExitTemp = 60.0; // hot water coil inlet water temp - PlantSizData(1).DeltaT = 10.0; + state->dataSize->NumPltSizInput = 1; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 60.0; // hot water coil inlet water temp + state->dataSize->PlantSizData(1).DeltaT = 10.0; // set up plant loop for (int l = 1; l <= state->dataPlnt->TotNumLoops; ++l) { @@ -1360,11 +1352,11 @@ TEST_F(WaterCoilsTest, HotWaterHeatingCoilAutoSizeTempTest) state->dataPlnt->PlantLoop(1).FluidIndex = 1; // set up sizing data - FinalSysSizing(1).DesMainVolFlow = 1.00; - FinalSysSizing(1).HeatSupTemp = 40.0; - FinalSysSizing(1).HeatOutTemp = 5.0; - FinalSysSizing(1).HeatRetTemp = 20.0; - FinalSysSizing(1).HeatOAOption = 1; + state->dataSize->FinalSysSizing(1).DesMainVolFlow = 1.00; + state->dataSize->FinalSysSizing(1).HeatSupTemp = 40.0; + state->dataSize->FinalSysSizing(1).HeatOutTemp = 5.0; + state->dataSize->FinalSysSizing(1).HeatRetTemp = 20.0; + state->dataSize->FinalSysSizing(1).HeatOAOption = 1; // set up water coil int CoilNum = 1; @@ -1390,11 +1382,11 @@ TEST_F(WaterCoilsTest, HotWaterHeatingCoilAutoSizeTempTest) state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum = 1; state->dataPlnt->PlantLoop(1).LoopSide(1).Branch(1).Comp(1).NodeNumIn = state->dataWaterCoils->WaterCoil(CoilNum).WaterInletNodeNum; - CurZoneEqNum = 0; - CurSysNum = 1; - CurOASysNum = 0; + state->dataSize->CurZoneEqNum = 0; + state->dataSize->CurSysNum = 1; + state->dataSize->CurOASysNum = 0; - DataWaterLoopNum = 1; + state->dataSize->DataWaterLoopNum = 1; NumOfGlycols = 1; state->dataWaterCoils->MyUAAndFlowCalcFlag.allocate(1); @@ -1425,7 +1417,7 @@ TEST_F(WaterCoilsTest, HotWaterHeatingCoilAutoSizeTempTest) // now size heating coil hot water flow rate at 60.0C Cp = GetSpecificHeatGlycol(*state, state->dataPlnt->PlantLoop(1).FluidName, 60.0, state->dataPlnt->PlantLoop(1).FluidIndex, "Unit Test"); rho = GetDensityGlycol(*state, state->dataPlnt->PlantLoop(1).FluidName, 60.0, state->dataPlnt->PlantLoop(1).FluidIndex, "Unit Test"); - DesWaterFlowRate = DesCoilHeatingLoad / (PlantSizData(1).DeltaT * Cp * rho); + DesWaterFlowRate = DesCoilHeatingLoad / (state->dataSize->PlantSizData(1).DeltaT * Cp * rho); // check heating coil design water flow rate calculated here and sizing results are identical EXPECT_DOUBLE_EQ(DesWaterFlowRate, state->dataWaterCoils->WaterCoil(CoilNum).MaxWaterVolFlowRate); @@ -1433,15 +1425,15 @@ TEST_F(WaterCoilsTest, HotWaterHeatingCoilAutoSizeTempTest) TEST_F(WaterCoilsTest, FanCoilCoolingWaterFlowTest) { - PlantSizData.allocate(2); - NumPltSizInput = 2; - - PlantSizData(2).PlantLoopName = "ChilledWaterLoop"; - PlantSizData(2).ExitTemp = 7.22; // chilled water coil inlet water temp - PlantSizData(2).DeltaT = 6.67; - PlantSizData(1).PlantLoopName = "HotWaterLoop"; - PlantSizData(1).ExitTemp = 60; // hot water coil inlet water temp - PlantSizData(1).DeltaT = 12; + state->dataSize->PlantSizData.allocate(2); + state->dataSize->NumPltSizInput = 2; + + state->dataSize->PlantSizData(2).PlantLoopName = "ChilledWaterLoop"; + state->dataSize->PlantSizData(2).ExitTemp = 7.22; // chilled water coil inlet water temp + state->dataSize->PlantSizData(2).DeltaT = 6.67; + state->dataSize->PlantSizData(1).PlantLoopName = "HotWaterLoop"; + state->dataSize->PlantSizData(1).ExitTemp = 60; // hot water coil inlet water temp + state->dataSize->PlantSizData(1).DeltaT = 12; int FanCoilNum(1); int ZoneNum(1); int ControlledZoneNum(1); @@ -1746,20 +1738,20 @@ TEST_F(WaterCoilsTest, FanCoilCoolingWaterFlowTest) state->dataGlobal->DoingSizing = true; - CurZoneEqNum = 1; - ZoneSizingRunDone = true; - DataSizing::ZoneEqSizing.allocate(CurZoneEqNum); - DataSizing::ZoneEqSizing(DataSizing::CurZoneEqNum).SizingMethod.allocate(25); - DataSizing::ZoneEqSizing(CurZoneEqNum).SizingMethod(25) = 0; - ZoneEqFanCoil = true; - ZoneEqSizing(CurZoneEqNum).DesignSizeFromParent = true; + state->dataSize->CurZoneEqNum = 1; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->ZoneEqSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod.allocate(25); + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).SizingMethod(25) = 0; + state->dataSize->ZoneEqFanCoil = true; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).DesignSizeFromParent = true; // User-specified air volume flow rate from the ZoneHVAC:FourPipeFanCoil object - DataSizing::ZoneEqSizing(CurZoneEqNum).AirVolFlow = 0.5; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).AirVolFlow = 0.5; // User-specified water flow rate from the ZoneHVAC:FourPipeFanCoil object - DataSizing::ZoneEqSizing(CurZoneEqNum).MaxCWVolFlow = 0.0002; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxCWVolFlow = 0.0002; // User-specified water flow rate from the ZoneHVAC:FourPipeFanCoil object - DataSizing::ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow = 0.0002; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).MaxHWVolFlow = 0.0002; // Initial design air volume flow rate based on the design conditions state->dataWaterCoils->WaterCoil(2).DesAirVolFlowRate = DataSizing::AutoSize; diff --git a/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc b/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc index 3d91d7e7882..589dae7f423 100644 --- a/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc +++ b/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc @@ -85,16 +85,16 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimpleTest_SizeHVACWaterToAir) int HPNum(1); int CurveNum; - SysSizingRunDone = true; - ZoneSizingRunDone = true; - CurSysNum = 0; - CurZoneEqNum = 1; + state->dataSize->SysSizingRunDone = true; + state->dataSize->ZoneSizingRunDone = true; + state->dataSize->CurSysNum = 0; + state->dataSize->CurZoneEqNum = 1; state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP.allocate(HPNum); - FinalZoneSizing.allocate(CurZoneEqNum); - ZoneEqSizing.allocate(CurZoneEqNum); - DesDayWeath.allocate(1); - DesDayWeath(1).Temp.allocate(24); + state->dataSize->FinalZoneSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->ZoneEqSizing.allocate(state->dataSize->CurZoneEqNum); + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(24); state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WatertoAirHPType = "COOLING"; state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedAirVolFlowRate = AutoSize; @@ -102,18 +102,18 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimpleTest_SizeHVACWaterToAir) state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolSens = AutoSize; state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedWaterVolFlowRate = 0.0; - FinalZoneSizing(CurZoneEqNum).DesCoolVolFlow = 0.20; - FinalZoneSizing(CurZoneEqNum).DesHeatVolFlow = 0.20; - FinalZoneSizing(CurZoneEqNum).CoolDesTemp = 13.0; - FinalZoneSizing(CurZoneEqNum).CoolDesHumRat = 0.0075; - FinalZoneSizing(CurZoneEqNum).TimeStepNumAtCoolMax = 15; - FinalZoneSizing(CurZoneEqNum).CoolDDNum = 1; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInTemp = 25.5; - FinalZoneSizing(CurZoneEqNum).DesCoolCoilInHumRat = 0.0045; - FinalZoneSizing(CurZoneEqNum).ZoneRetTempAtCoolPeak = 25.5; - FinalZoneSizing(CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.0045; - ZoneEqSizing(CurZoneEqNum).OAVolFlow = 0.0; - + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolVolFlow = 0.20; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesHeatVolFlow = 0.20; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesTemp = 13.0; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat = 0.0075; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).TimeStepNumAtCoolMax = 15; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDDNum = 1; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInTemp = 25.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).DesCoolCoilInHumRat = 0.0045; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneRetTempAtCoolPeak = 25.5; + state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).ZoneHumRatAtCoolPeak = 0.0045; + state->dataSize->ZoneEqSizing(state->dataSize->CurZoneEqNum).OAVolFlow = 0.0; + state->dataCurveManager->NumCurves = 2; state->dataCurveManager->PerfCurve.allocate(state->dataCurveManager->NumCurves); @@ -162,14 +162,14 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimpleTest_SizeHVACWaterToAir) state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCOPCool = 5.12; - DesDayWeath(1).Temp(15) = 32.0; + state->dataSize->DesDayWeath(1).Temp(15) = 32.0; state->dataEnvrn->StdBaroPress = 101325.0; - ZoneEqDXCoil = true; + state->dataSize->ZoneEqDXCoil = true; WaterToAirHeatPumpSimple::SizeHVACWaterToAir(*state, HPNum); - // check that the design oulet air humidity ratio did not change - EXPECT_DOUBLE_EQ(0.0075, FinalZoneSizing(CurZoneEqNum).CoolDesHumRat); + // check that the design outlet air humidity ratio did not change + EXPECT_DOUBLE_EQ(0.0075, state->dataSize->FinalZoneSizing(state->dataSize->CurZoneEqNum).CoolDesHumRat); // check that the total cooling capacity is >= the sensible cooling capacity EXPECT_GE(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolTotal, state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedCapCoolSens); @@ -237,7 +237,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " TotCoolCapCurve, ! Curve Name", " -0.68126221, ! CoefficientC1", @@ -255,7 +255,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " CoolPowCurve, ! Curve Name", " -3.20456384, ! CoefficientC1", @@ -273,7 +273,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", - + "Curve:QuadLinear,", " HeatCapCurve, ! Curve Name", " -5.50102734, ! CoefficientC1", @@ -313,7 +313,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) }); ASSERT_TRUE(process_idf(idf_objects)); - + GetCurveInput(*state); GetSimpleWatertoAirHPInput(*state); diff --git a/tst/EnergyPlus/unit/ZoneContaminantPredictorCorrector.unit.cc b/tst/EnergyPlus/unit/ZoneContaminantPredictorCorrector.unit.cc index 712e081a12d..89ed4b6faf2 100644 --- a/tst/EnergyPlus/unit/ZoneContaminantPredictorCorrector.unit.cc +++ b/tst/EnergyPlus/unit/ZoneContaminantPredictorCorrector.unit.cc @@ -191,8 +191,8 @@ TEST_F(EnergyPlusFixture, ZoneContaminantPredictorCorrector_AddMDotOATest) state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; @@ -348,8 +348,8 @@ TEST_F(EnergyPlusFixture, ZoneContaminantPredictorCorrector_CorrectZoneContamina state->dataHeatBal->Zone.allocate(1); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; @@ -523,8 +523,8 @@ TEST_F(EnergyPlusFixture, ZoneContaminantPredictorCorrector_MultiZoneCO2ControlT state->dataHeatBal->Zone.allocate(3); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; - ZoneEqSizing.allocate(3); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(3); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; @@ -731,8 +731,8 @@ TEST_F(EnergyPlusFixture, ZoneContaminantPredictorCorrector_MultiZoneGCControlTe state->dataHeatBal->Zone.allocate(3); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; - ZoneEqSizing.allocate(3); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(3); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; diff --git a/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc b/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc index e2644362f15..182fab310f2 100644 --- a/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc +++ b/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc @@ -1319,10 +1319,10 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeUniformPLR) auto &energy(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ZoneNum)); // Set up capacities for PLR calcs - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad = 4000; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad = 4000; // For finalzonesizing, desing cooling load is positive - DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad = 2500; + state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad = 2500; auto &thisZEqList(state->dataZoneEquip->ZoneEquipList(ZoneNum)); thisZEqList.HeatingCapacity(1) = 2000.0; thisZEqList.HeatingCapacity(2) = 1000.0; @@ -1342,15 +1342,15 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeUniformPLR) bool firstHVACIteration = true; InitSystemOutputRequired(*state, ZoneNum, firstHVACIteration); DistributeSystemOutputRequired(*state, ZoneNum, firstHVACIteration); - EXPECT_EQ(energy.SequencedOutputRequired(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequired(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequired(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); // Check sequenced load processing for unitary systems // EquipIndex doesn't get set until the units are simulated, so hard-wire them here ZoneAirLoopEquipmentManager::GetZoneAirLoopEquipment(*state); @@ -1400,15 +1400,15 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeUniformPLR) firstHVACIteration = true; InitSystemOutputRequired(*state, ZoneNum, firstHVACIteration); DistributeSystemOutputRequired(*state, ZoneNum, firstHVACIteration); - EXPECT_EQ(energy.SequencedOutputRequired(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequired(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequired(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); // UniformPLR Test 4 - Cooling, FirstHVACIteration = false, only 2 pieces of equipment are active for cooling firstHVACIteration = false; @@ -1537,10 +1537,10 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeSequentialUniformPLR) auto &energy(state->dataZoneEnergyDemand->ZoneSysEnergyDemand(ZoneNum)); // Set up capacities for PLR calcs - DataSizing::FinalZoneSizing.allocate(1); - DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad = 4000; + state->dataSize->FinalZoneSizing.allocate(1); + state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad = 4000; // For finalzonesizing, desing cooling load is positive - DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad = 2500; + state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad = 2500; auto &thisZEqList(state->dataZoneEquip->ZoneEquipList(ZoneNum)); thisZEqList.HeatingCapacity(1) = 2000.0; thisZEqList.HeatingCapacity(2) = 1000.0; @@ -1560,15 +1560,15 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeSequentialUniformPLR) bool firstHVACIteration = true; InitSystemOutputRequired(*state, ZoneNum, firstHVACIteration); DistributeSystemOutputRequired(*state, ZoneNum, firstHVACIteration); - EXPECT_EQ(energy.SequencedOutputRequired(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequired(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequired(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), DataSizing::FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequired(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), state->dataSize->FinalZoneSizing(ZoneNum).DesHeatLoad); // Check sequenced load processing for unitary systems // EquipIndex doesn't get set until the units are simulated, so hard-wire them here ZoneAirLoopEquipmentManager::GetZoneAirLoopEquipment(*state); @@ -1666,15 +1666,15 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_DistributeSequentialUniformPLR) firstHVACIteration = true; InitSystemOutputRequired(*state, ZoneNum, firstHVACIteration); DistributeSystemOutputRequired(*state, ZoneNum, firstHVACIteration); - EXPECT_EQ(energy.SequencedOutputRequired(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequired(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequired(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); - EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), -DataSizing::FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequired(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToHeatingSP(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(1), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(2), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); + EXPECT_EQ(energy.SequencedOutputRequiredToCoolingSP(3), -state->dataSize->FinalZoneSizing(ZoneNum).DesCoolLoad); // SequentialUniformPLR Test 4a - Cooling, FirstHVACIteration = false, low load requiring 1 equipment firstHVACIteration = false; @@ -2172,14 +2172,14 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_RezeroZoneSizingArrays) { int totDesDays = state->dataEnvrn->TotDesDays + state->dataEnvrn->TotRunDesPersDays; state->dataGlobal->NumOfZones = 5; state->dataZoneEquipmentManager->NumOfTimeStepInDay = 4; - DataSizing::ZoneSizing.allocate(totDesDays, state->dataGlobal->NumOfZones); - DataSizing::CalcZoneSizing.allocate(totDesDays, state->dataGlobal->NumOfZones); - DataSizing::FinalZoneSizing.allocate(state->dataGlobal->NumOfZones); - DataSizing::CalcFinalZoneSizing.allocate(state->dataGlobal->NumOfZones); + state->dataSize->ZoneSizing.allocate(totDesDays, state->dataGlobal->NumOfZones); + state->dataSize->CalcZoneSizing.allocate(totDesDays, state->dataGlobal->NumOfZones); + state->dataSize->FinalZoneSizing.allocate(state->dataGlobal->NumOfZones); + state->dataSize->CalcFinalZoneSizing.allocate(state->dataGlobal->NumOfZones); for (int CtrlZoneNum = 1; CtrlZoneNum <= state->dataGlobal->NumOfZones; ++CtrlZoneNum) { for (int DesDayNum = 1; DesDayNum <= state->dataEnvrn->TotDesDays + state->dataEnvrn->TotRunDesPersDays; ++DesDayNum) { - auto &thisSizingType(DataSizing::ZoneSizing(DesDayNum, CtrlZoneNum)); + auto &thisSizingType(state->dataSize->ZoneSizing(DesDayNum, CtrlZoneNum)); thisSizingType.ZoneName = "test"; thisSizingType.ADUName = "test"; thisSizingType.CoolDesDay = "test"; @@ -2376,7 +2376,7 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_RezeroZoneSizingArrays) { thisSizingType.CoolOutHumRatSeq(TimeStepIndex) = 1.0; } - auto &thisSizingType2(DataSizing::CalcZoneSizing(DesDayNum, CtrlZoneNum)); + auto &thisSizingType2(state->dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum)); thisSizingType2.ZoneName = "test"; thisSizingType2.ADUName = "test"; thisSizingType2.CoolDesDay = "test"; @@ -2579,7 +2579,7 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_RezeroZoneSizingArrays) { for ( int CtrlZoneNum = 1; CtrlZoneNum <= state->dataGlobal->NumOfZones; ++CtrlZoneNum ) { for ( int DesDayNum = 1; DesDayNum <= state->dataEnvrn->TotDesDays + state->dataEnvrn->TotRunDesPersDays; ++DesDayNum ) { - auto &thisSizingType(DataSizing::ZoneSizing(DesDayNum, CtrlZoneNum)); + auto &thisSizingType(state->dataSize->ZoneSizing(DesDayNum, CtrlZoneNum)); //EXPECT_EQ(thisSizingType.ZoneName, ""); //EXPECT_EQ(thisSizingType.ADUName, ""); EXPECT_EQ(thisSizingType.CoolDesDay, ""); @@ -2747,7 +2747,7 @@ TEST_F(EnergyPlusFixture, ZoneEquipmentManager_RezeroZoneSizingArrays) { EXPECT_EQ(thisSizingType.CoolOutHumRatSeq(TimeStepIndex), 0.0); } - auto &thisSizingType2(DataSizing::CalcZoneSizing(DesDayNum, CtrlZoneNum)); + auto &thisSizingType2(state->dataSize->CalcZoneSizing(DesDayNum, CtrlZoneNum)); //EXPECT_EQ(thisSizingType2.ZoneName, ""); //EXPECT_EQ(thisSizingType2.ADUName, ""); EXPECT_EQ(thisSizingType2.CoolDesDay, ""); diff --git a/tst/EnergyPlus/unit/ZoneHVACEvaporativeCooler.unit.cc b/tst/EnergyPlus/unit/ZoneHVACEvaporativeCooler.unit.cc index aa515984e05..8155b0308f1 100644 --- a/tst/EnergyPlus/unit/ZoneHVACEvaporativeCooler.unit.cc +++ b/tst/EnergyPlus/unit/ZoneHVACEvaporativeCooler.unit.cc @@ -84,7 +84,7 @@ class ZoneHVACEvapCoolerUnitTest : public EnergyPlusFixture { EnergyPlusFixture::SetUp(); // Sets up the base fixture first. - DataSizing::ZoneEqSizing.allocate(1); + state->dataSize->ZoneEqSizing.allocate(1); state->dataEnvrn->OutBaroPress = 101325.0; state->dataEnvrn->StdRhoAir = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, 20.0, 0.0); diff --git a/tst/EnergyPlus/unit/ZoneTempPredictorCorrector.unit.cc b/tst/EnergyPlus/unit/ZoneTempPredictorCorrector.unit.cc index ba0c368a313..0270fe491f8 100644 --- a/tst/EnergyPlus/unit/ZoneTempPredictorCorrector.unit.cc +++ b/tst/EnergyPlus/unit/ZoneTempPredictorCorrector.unit.cc @@ -125,8 +125,8 @@ TEST_F(EnergyPlusFixture, ZoneTempPredictorCorrector_CorrectZoneHumRatTest) HybridModelZone.allocate(1); state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5; @@ -982,8 +982,8 @@ TEST_F(EnergyPlusFixture, ZoneTempPredictorCorrector_CalcZoneSums_SurfConvection state->dataHeatBal->Zone(1).Name = state->dataZoneEquip->ZoneEquipConfig(1).ZoneName; state->dataHeatBal->Zone(1).ZoneEqNum = 1; state->dataHeatBal->Zone(1).IsControlled = true; - ZoneEqSizing.allocate(1); - CurZoneEqNum = 1; + state->dataSize->ZoneEqSizing.allocate(1); + state->dataSize->CurZoneEqNum = 1; state->dataHeatBal->Zone(1).Multiplier = 1.0; state->dataHeatBal->Zone(1).Volume = 1000.0; state->dataHeatBal->Zone(1).SystemZoneNodeNumber = 5;