Skip to content

Commit f53594d

Browse files
authored
Merge pull request #11517 from NatLabRockies/ReportCoil
Coil API Refactor (Part II -- simplify ReportCoilSelection)
2 parents 38ec889 + f4b7983 commit f53594d

64 files changed

Lines changed: 3791 additions & 4045 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/configure-and-build/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ runs:
104104
../
105105
106106
if [ "${{ inputs.minimal-targets }}" == "true" ]; then
107-
begin_group "Builing only energyplus and fortran targets"
107+
begin_group "Building only energyplus and Fortran targets"
108108
ninja energyplus ExpandObjects ReadVarsESO Slab Basement AppGPostProcess ParametricPreprocessor
109109
echo "::endgroup::"
110110
else
111-
begin_group "Builing full energyplus"
111+
begin_group "Building full energyplus"
112112
ninja
113113
echo "::endgroup::"
114114
fi;

.github/workflows/run_and_cache_regressions_develop.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,29 @@ jobs:
2020
matrix:
2121
include:
2222
- os: macos-14
23-
macos_dev_target: 13.0
23+
macos_dev_target: 14.0
2424
arch: arm64
2525
python-arch: arm64
2626
pretty: "Mac arm64"
27-
python-version: 3.12.3 # 3.12.2 not available on Ubuntu 24 GHA
27+
python-version: 3.12.3
2828
allow_failure: false
2929
- os: ubuntu-24.04
3030
arch: x86_64
3131
python-arch: x64
3232
pretty: "Ubuntu 24.04"
33-
python-version: 3.12.3 # 3.12.2 not available on Ubuntu 24 GHA
33+
python-version: 3.12.3
3434
allow_failure: false
3535
- os: windows-2022
3636
arch: x86_64
3737
python-arch: x64
3838
pretty: "Windows x64"
39-
python-version: 3.12.3 # 3.12.2 not available on Ubuntu 24 GHA
39+
python-version: 3.12.3
4040
allow_failure: false
4141
- os: ubuntu-24.04-arm
4242
arch: arm64
4343
python-arch: arm64
4444
pretty: "Ubuntu 24.04 arm64"
45-
python-version: 3.12.3 # 3.12.2 not available on Ubuntu 24 GHA
45+
python-version: 3.12.3
4646
allow_failure: true
4747
- os: windows-11-arm
4848
arch: arm64

src/EnergyPlus/Autosizing/All_Simple_Sizing.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,7 @@ Real64 HeatingCoilDesAirInletTempSizer::size(EnergyPlusData &state, Real64 _orig
321321
}
322322
this->selectSizerOutput(state, errorsFound);
323323
if (this->isCoilReportObject) {
324-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirTemp(
325-
state, this->compName, this->compType, this->autoSizedValue, this->curSysNum, this->curZoneEqNum);
324+
ReportCoilSelection::setCoilEntAirTemp(state, this->coilReportNum, this->autoSizedValue, this->curSysNum, this->curZoneEqNum);
326325
}
327326
return this->autoSizedValue;
328327
}
@@ -355,7 +354,7 @@ Real64 HeatingCoilDesAirOutletTempSizer::size(EnergyPlusData &state, Real64 _ori
355354
}
356355
this->selectSizerOutput(state, errorsFound);
357356
if (this->isCoilReportObject) {
358-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilLvgAirTemp(state, this->compName, this->compType, this->autoSizedValue);
357+
ReportCoilSelection::setCoilLvgAirTemp(state, this->coilReportNum, this->autoSizedValue);
359358
}
360359
return this->autoSizedValue;
361360
}
@@ -392,7 +391,7 @@ Real64 HeatingCoilDesAirInletHumRatSizer::size(EnergyPlusData &state, Real64 _or
392391
}
393392
this->selectSizerOutput(state, errorsFound);
394393
if (this->isCoilReportObject) {
395-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirHumRat(state, this->compName, this->compType, this->autoSizedValue);
394+
ReportCoilSelection::setCoilEntAirHumRat(state, this->coilReportNum, this->autoSizedValue);
396395
}
397396
return this->autoSizedValue;
398397
}

src/EnergyPlus/Autosizing/Base.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ void BaseSizer::initializeWithinEP(EnergyPlusData &state,
108108
this->airloopDOAS = state.dataAirLoopHVACDOAS->airloopDOAS;
109109
if (EnergyPlus::BaseSizer::isValidCoilType(this->compType)) { // coil reports fail if compType is not one of HVAC::cAllCoilTypes
110110
this->isCoilReportObject = true;
111+
this->coilReportNum = ReportCoilSelection::getReportIndex(state, this->compName, this->coilType);
111112
}
112113
if (EnergyPlus::BaseSizer::isValidFanType(this->compType)) { // fan reports fail if compType is not a valid fan type
113114
this->isFanReportObject = true;

src/EnergyPlus/Autosizing/Base.hh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ struct BaseSizer
123123
bool dataScalableSizingON = false;
124124
bool dataScalableCapSizingON = false;
125125
bool isCoilReportObject = false; // provides access to coil reporting
126+
int coilReportNum = -1; // Coil report number for direct access
126127
bool isFanReportObject = false; // provides access to fan reporting
127128
bool initialized = false; // indicates initializeWithinEP was called
128129
AutoSizingResultType errorType = AutoSizingResultType::NoError;

src/EnergyPlus/Autosizing/BaseSizerWithScalableInputs.cc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,11 @@ void BaseSizerWithScalableInputs::initializeWithinEP(EnergyPlusData &state,
101101

102102
// This should work for both fan types
103103
if (this->primaryAirSystem(this->curSysNum).supFanNum > 0) {
104-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilSupplyFanInfo(
105-
state,
106-
this->compName,
107-
this->compType,
108-
state.dataFans->fans(this->primaryAirSystem(this->curSysNum).supFanNum)->Name,
109-
state.dataFans->fans(this->primaryAirSystem(this->curSysNum).supFanNum)->type,
110-
this->primaryAirSystem(this->curSysNum).supFanNum);
104+
ReportCoilSelection::setCoilSupplyFanInfo(state,
105+
this->coilReportNum,
106+
state.dataFans->fans(this->primaryAirSystem(this->curSysNum).supFanNum)->Name,
107+
state.dataFans->fans(this->primaryAirSystem(this->curSysNum).supFanNum)->type,
108+
this->primaryAirSystem(this->curSysNum).supFanNum);
111109
}
112110
}
113111

src/EnergyPlus/Autosizing/CoolingAirFlowSizing.cc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -378,8 +378,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b
378378

379379
if (this->isCoilReportObject) {
380380
// SizingResult is airflow in m3/s
381-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilAirFlow(
382-
state, this->compName, this->compType, this->autoSizedValue, this->wasAutoSized);
381+
ReportCoilSelection::setCoilAirFlow(state, this->coilReportNum, this->autoSizedValue, this->wasAutoSized);
383382
}
384383
if (this->isFanReportObject) {
385384
// fill fan peak day and time here
@@ -397,8 +396,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b
397396
EnergyPlus::format("{}/{} {}",
398397
state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).Month,
399398
state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).CoolDDNum).DayOfMonth,
400-
state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
401-
state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
399+
ReportCoilSelection::getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtCoolMax));
402400
}
403401
} else if (heatingFlow) {
404402
if (this->finalZoneSizing(this->curZoneEqNum).HeatDDNum > 0 &&
@@ -408,8 +406,7 @@ Real64 CoolingAirFlowSizer::size(EnergyPlusData &state, Real64 _originalValue, b
408406
EnergyPlus::format("{}/{} {}",
409407
state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).Month,
410408
state.dataWeather->DesDayInput(this->finalZoneSizing(this->curZoneEqNum).HeatDDNum).DayOfMonth,
411-
state.dataRptCoilSelection->coilSelectionReportObj->getTimeText(
412-
state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
409+
ReportCoilSelection::getTimeText(state, this->finalZoneSizing(this->curZoneEqNum).TimeStepNumAtHeatMax));
413410
}
414411
}
415412
}

src/EnergyPlus/Autosizing/CoolingCapacitySizing.cc

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,11 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue,
275275
CoilOutHumRat = state.dataSize->DataCoilSizingAirOutHumRat;
276276
FanCoolLoad = state.dataSize->DataCoilSizingFanCoolLoad;
277277
TotCapTempModFac = state.dataSize->DataCoilSizingCapFT;
278-
if (state.dataRptCoilSelection->coilSelectionReportObj->isCompTypeCoil(this->compType)) {
279-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirHumRat(state, this->compName, this->compType, CoilInHumRat);
280-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirTemp(
281-
state, this->compName, this->compType, CoilInTemp, this->curSysNum, this->curZoneEqNum);
282-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilLvgAirTemp(state, this->compName, this->compType, CoilOutTemp);
283-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilLvgAirHumRat(state, this->compName, this->compType, CoilOutHumRat);
278+
if (ReportCoilSelection::isCompTypeCoil(this->compType)) {
279+
ReportCoilSelection::setCoilEntAirHumRat(state, this->coilReportNum, CoilInHumRat);
280+
ReportCoilSelection::setCoilEntAirTemp(state, this->coilReportNum, CoilInTemp, this->curSysNum, this->curZoneEqNum);
281+
ReportCoilSelection::setCoilLvgAirTemp(state, this->coilReportNum, CoilOutTemp);
282+
ReportCoilSelection::setCoilLvgAirHumRat(state, this->coilReportNum, CoilOutHumRat);
284283
}
285284
} else if (this->curOASysNum > 0 && this->outsideAirSys(this->curOASysNum).AirLoopDOASNum > -1) {
286285
auto &thisAirloopDOAS = this->airloopDOAS[this->outsideAirSys(this->curOASysNum).AirLoopDOASNum];
@@ -569,26 +568,24 @@ Real64 CoolingCapacitySizer::size(EnergyPlusData &state, Real64 _originalValue,
569568

570569
if (this->isCoilReportObject && this->curSysNum <= state.dataHVACGlobal->NumPrimaryAirSys) {
571570
if (CoilInTemp > -999.0) { // set inlet air properties used during capacity sizing if available, allow for negative winter temps
572-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirTemp(
573-
state, this->compName, this->compType, CoilInTemp, this->curSysNum, this->curZoneEqNum);
574-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirHumRat(state, this->compName, this->compType, CoilInHumRat);
571+
ReportCoilSelection::setCoilEntAirTemp(state, this->coilReportNum, CoilInTemp, this->curSysNum, this->curZoneEqNum);
572+
ReportCoilSelection::setCoilEntAirHumRat(state, this->coilReportNum, CoilInHumRat);
575573
}
576574
if (CoilOutTemp > -999.0) { // set outlet air properties used during capacity sizing if available
577-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilLvgAirTemp(state, this->compName, this->compType, CoilOutTemp);
578-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilLvgAirHumRat(state, this->compName, this->compType, CoilOutHumRat);
575+
ReportCoilSelection::setCoilLvgAirTemp(state, this->coilReportNum, CoilOutTemp);
576+
ReportCoilSelection::setCoilLvgAirHumRat(state, this->coilReportNum, CoilOutHumRat);
579577
}
580-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilCoolingCapacity(state,
581-
this->compName,
582-
this->compType,
583-
this->autoSizedValue,
584-
this->wasAutoSized,
585-
this->curSysNum,
586-
this->curZoneEqNum,
587-
this->curOASysNum,
588-
FanCoolLoad,
589-
TotCapTempModFac,
590-
DXFlowPerCapMinRatio,
591-
DXFlowPerCapMaxRatio);
578+
ReportCoilSelection::setCoilCoolingCapacity(state,
579+
this->coilReportNum,
580+
this->autoSizedValue,
581+
this->wasAutoSized,
582+
this->curSysNum,
583+
this->curZoneEqNum,
584+
this->curOASysNum,
585+
FanCoolLoad,
586+
TotCapTempModFac,
587+
DXFlowPerCapMinRatio,
588+
DXFlowPerCapMaxRatio);
592589
}
593590
return this->autoSizedValue;
594591
}

src/EnergyPlus/Autosizing/CoolingWaterDesAirInletHumRatSizing.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Real64 CoolingWaterDesAirInletHumRatSizer::size(EnergyPlusData &state, Real64 _o
107107
}
108108
this->selectSizerOutput(state, errorsFound);
109109
if (this->isCoilReportObject) {
110-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirHumRat(state, this->compName, this->compType, this->autoSizedValue);
110+
ReportCoilSelection::setCoilEntAirHumRat(state, this->coilReportNum, this->autoSizedValue);
111111
}
112112
return this->autoSizedValue;
113113
}

src/EnergyPlus/Autosizing/CoolingWaterDesAirInletTempSizing.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ Real64 CoolingWaterDesAirInletTempSizer::size(EnergyPlusData &state, Real64 _ori
132132
this->selectSizerOutput(state, errorsFound);
133133
if (this->isCoilReportObject) {
134134
if (this->curSysNum <= this->numPrimaryAirSys) {
135-
state.dataRptCoilSelection->coilSelectionReportObj->setCoilEntAirTemp(
136-
state, this->compName, this->compType, this->autoSizedValue, this->curSysNum, this->curZoneEqNum);
135+
ReportCoilSelection::setCoilEntAirTemp(state, this->coilReportNum, this->autoSizedValue, this->curSysNum, this->curZoneEqNum);
137136
}
138137
}
139138
return this->autoSizedValue;

0 commit comments

Comments
 (0)