Skip to content

Commit cd4d0d2

Browse files
author
Yujie Xu
committed
Merge remote-tracking branch 'origin/develop' into refactorGOTO
2 parents 069595a + 77d3641 commit cd4d0d2

File tree

150 files changed

+5950
-6403
lines changed

Some content is hidden

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

150 files changed

+5950
-6403
lines changed

scripts/dev/check_for_malformed_enums.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def process_enum_str(input_str: str, file_name: str, line_no: int, print_errors:
167167
error_str += "\tenum keys must begin with upper case letter\n"
168168

169169
if difflib.get_close_matches(name, keys, cutoff=0.7):
170-
exceptions = ["DataGlobalConstants.hh:HeatOrCool"]
170+
exceptions = ["DataGlobalConstants.hh:HeatOrCool", "DataHVACGlobals.hh:UnitarySysType"]
171171
if f"{file_name}:{name}" not in exceptions:
172172
error_str += "\tenum keys are too similar to enum name\n"
173173

src/EnergyPlus/AirLoopHVACDOAS.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ namespace AirLoopHVACDOAS {
632632
if (thisOutsideAirSys.compPointer[CompNum] == nullptr) {
633633
UnitarySystems::UnitarySys thisSys;
634634
thisOutsideAirSys.compPointer[CompNum] =
635-
UnitarySystems::UnitarySys::factory(state, HVAC::UnitarySys_AnyCoilType, CompName, false, 0);
635+
UnitarySystems::UnitarySys::factory(state, HVAC::UnitarySysType::Unitary_AnyCoilType, CompName, false, 0);
636636
}
637637
thisOutsideAirSys.InletNodeNum(CompNum) =
638638
thisOutsideAirSys.compPointer[CompNum]->getAirInNode(state, CompName, 0, InletNodeErrFlag);

src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Solver.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
#include <EnergyPlus/Data/BaseData.hh>
6565
#include <EnergyPlus/EPVector.hh>
6666
#include <EnergyPlus/EnergyPlus.hh>
67+
#include <EnergyPlus/SystemAvailabilityManager.hh>
6768

6869
namespace EnergyPlus {
6970

@@ -324,8 +325,8 @@ namespace AirflowNetwork {
324325
Array1D<Real64> MA;
325326
Array1D<Real64> MV;
326327
Array1D_int IVEC;
327-
int VentilationCtrl = 0; // Hybrid ventilation control type
328-
int NumOfExhaustFans = 0; // Number of exhaust fans
328+
Avail::VentCtrlStatus ventCtrlStatus = Avail::VentCtrlStatus::NoAction; // Hybrid ventilation control type
329+
int NumOfExhaustFans = 0; // Number of exhaust fans
329330
int NumAirflowNetwork = 0;
330331
int AirflowNetworkNumOfDetOpenings = 0;
331332
int AirflowNetworkNumOfSimOpenings = 0;
@@ -548,7 +549,7 @@ namespace AirflowNetwork {
548549
MA.deallocate();
549550
MV.deallocate();
550551
IVEC.deallocate();
551-
VentilationCtrl = 0;
552+
ventCtrlStatus = Avail::VentCtrlStatus::NoAction;
552553
NumOfExhaustFans = 0;
553554
NumAirflowNetwork = 0;
554555
AirflowNetworkNumOfDetOpenings = 0;

src/EnergyPlus/AirflowNetwork/src/Elements.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -715,10 +715,10 @@ namespace AirflowNetwork {
715715
int AirLoopNum = state.afn->AirflowNetworkLinkageData(i).AirLoopNum;
716716

717717
if (fanType == HVAC::FanType::OnOff) {
718-
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
718+
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
719719
state.dataLoopNodes->Node(InletNode).MassFlowRate == 0.0) {
720720
NF = GenericDuct(0.1, 0.001, LFLAG, PDROP, propN, propM, F, DF);
721-
} else if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
721+
} else if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
722722
state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopSystemOnMassFlowrate > 0.0) {
723723
F[0] = state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopSystemOnMassFlowrate;
724724
} else {
@@ -3293,7 +3293,7 @@ namespace AirflowNetwork {
32933293
// Treat the component as an exhaust fan
32943294
F[0] = state.dataLoopNodes->Node(InletNode).MassFlowRate;
32953295
DF[0] = 0.0;
3296-
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
3296+
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
32973297
state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio > 0.0) {
32983298
F[0] = F[0] / state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
32993299
}
@@ -3413,7 +3413,7 @@ namespace AirflowNetwork {
34133413
F[0] = state.afn->ReliefMassFlowRate;
34143414
} else {
34153415
F[0] = state.dataLoopNodes->Node(OutletNode).MassFlowRate;
3416-
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
3416+
if (state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
34173417
state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio > 0.0) {
34183418
F[0] = F[0] / state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
34193419
}

src/EnergyPlus/AirflowNetwork/src/Solver.cpp

Lines changed: 26 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,6 @@ namespace AirflowNetwork {
138138
using DataSurfaces::OtherSideCoefNoCalcExt;
139139
using DataSurfaces::SurfaceClass;
140140
using Fans::GetFanIndex;
141-
using HVAC::ContFanCycCoil;
142-
using HVAC::CycFanCycCoil;
143141
using Psychrometrics::PsyCpAirFnW;
144142
using Psychrometrics::PsyHFnTdbW;
145143
using Psychrometrics::PsyRhoAirFnPbTdbW;
@@ -207,7 +205,7 @@ namespace AirflowNetwork {
207205
}
208206
}
209207
Real64 FanMassFlowRate = 0.0;
210-
int FanOperModeCyc = 0;
208+
HVAC::FanOp FanOperModeCyc = HVAC::FanOp::Invalid;
211209
AFNSupplyFanType = HVAC::FanType::Invalid;
212210

213211
for (i = 1; i <= DisSysNumOfCVFs; i++) {
@@ -218,9 +216,10 @@ namespace AirflowNetwork {
218216
AFNSupplyFanType = DisSysCompCVFData(i).fanType;
219217
break;
220218
}
221-
if (FanMassFlowRate > HVAC::VerySmallMassFlow && m_state.dataAirLoop->AirLoopAFNInfo(i).LoopFanOperationMode == CycFanCycCoil &&
219+
if (FanMassFlowRate > HVAC::VerySmallMassFlow &&
220+
m_state.dataAirLoop->AirLoopAFNInfo(i).LoopFanOperationMode == HVAC::FanOp::Cycling &&
222221
m_state.dataAirLoop->AirLoopAFNInfo(i).LoopSystemOnMassFlowrate > 0.0) {
223-
FanOperModeCyc = CycFanCycCoil;
222+
FanOperModeCyc = HVAC::FanOp::Cycling;
224223
AFNSupplyFanType = DisSysCompCVFData(i).fanType;
225224
if (AFNSupplyFanType == HVAC::FanType::OnOff) {
226225
break;
@@ -229,7 +228,7 @@ namespace AirflowNetwork {
229228
}
230229
// Revised to meet heat exchanger requirement
231230
if ((FanMassFlowRate > HVAC::VerySmallMassFlow) && (!FirstHVACIteration)) {
232-
if (AFNSupplyFanType == HVAC::FanType::OnOff && FanOperModeCyc == CycFanCycCoil) {
231+
if (AFNSupplyFanType == HVAC::FanType::OnOff && FanOperModeCyc == HVAC::FanOp::Cycling) {
233232
AirflowNetworkFanActivated = true;
234233
} else if (AFNSupplyFanType == HVAC::FanType::VAV) {
235234
if (present(Iter) && Iter > 1) AirflowNetworkFanActivated = true;
@@ -240,11 +239,11 @@ namespace AirflowNetwork {
240239
}
241240
}
242241
}
243-
if (allocated(m_state.dataZoneEquip->ZoneEquipConfig) && m_state.dataHVACGlobal->NumHybridVentSysAvailMgrs > 0 &&
242+
if (allocated(m_state.dataZoneEquip->ZoneEquipConfig) && m_state.dataAvail->NumHybridVentSysAvailMgrs > 0 &&
244243
allocated(m_state.dataAirSystemsData->PrimaryAirSystems)) {
245244
hybrid_ventilation_control();
246245
}
247-
if (VentilationCtrl == 1 && m_state.dataHVACGlobal->NumHybridVentSysAvailMgrs > 0) {
246+
if (ventCtrlStatus == Avail::VentCtrlStatus::Open && m_state.dataAvail->NumHybridVentSysAvailMgrs > 0) {
248247
AirflowNetworkFanActivated = false;
249248
}
250249

@@ -6535,7 +6534,7 @@ namespace AirflowNetwork {
65356534
AirLoopNum = AirflowNetworkNodeData(PressureControllerData(1).AFNNodeNum).AirLoopNum;
65366535
MinExhaustMassFlowrate = 2.0 * VerySmallMassFlow;
65376536
MaxExhaustMassFlowrate = Node(PressureControllerData(1).OANodeNum).MassFlowRate;
6538-
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
6537+
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
65396538
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio > 0.0) {
65406539
MaxExhaustMassFlowrate = MaxExhaustMassFlowrate / m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
65416540
}
@@ -6622,7 +6621,7 @@ namespace AirflowNetwork {
66226621
AirLoopNum = AirflowNetworkNodeData(PressureControllerData(1).AFNNodeNum).AirLoopNum;
66236622
MinReliefMassFlowrate = 2.0 * VerySmallMassFlow;
66246623
MaxReliefMassFlowrate = Node(PressureControllerData(1).OANodeNum).MassFlowRate;
6625-
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycComp &&
6624+
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling &&
66266625
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio > 0.0) {
66276626
MaxReliefMassFlowrate = MaxReliefMassFlowrate / m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
66286627
}
@@ -9527,7 +9526,7 @@ namespace AirflowNetwork {
95279526
// Calculate the part load ratio, can't be greater than 1 for a simple ONOFF fan
95289527
if (DisSysCompCVFData(FanNum).fanType == HVAC::FanType::OnOff &&
95299528
Node(DisSysCompCVFData(FanNum).InletNode).MassFlowRate > VerySmallMassFlow &&
9530-
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycCoil) {
9529+
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling) {
95319530
// Hard code here
95329531
PartLoadRatio = m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
95339532
LoopPartLoadRatio(AirLoopNum) = m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopOnOffFanPartLoadRatio;
@@ -9568,7 +9567,7 @@ namespace AirflowNetwork {
95689567
if (DisSysCompCVFData(FanNum).AirLoopNum == AirLoopNum) break;
95699568
}
95709569
if (DisSysCompCVFData(FanNum).fanType == HVAC::FanType::OnOff &&
9571-
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == ContFanCycCoil) {
9570+
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Continuous) {
95729571
OnOffRatio = std::abs((m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopSystemOnMassFlowrate -
95739572
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopSystemOffMassFlowrate) /
95749573
m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopSystemOnMassFlowrate);
@@ -9810,7 +9809,7 @@ namespace AirflowNetwork {
98109809
exchangeData(i).SumMMHrGC *= OnOffFanRunTimeFraction;
98119810
}
98129811
}
9813-
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == CycFanCycCoil) {
9812+
if (m_state.dataAirLoop->AirLoopAFNInfo(AirLoopNum).LoopFanOperationMode == HVAC::FanOp::Cycling) {
98149813
for (int i = 1; i <= m_state.dataGlobal->NumOfZones; ++i) {
98159814
exchangeData(i).SumMCp += multiExchangeData(i).SumMCp * (1.0 - OnOffFanRunTimeFraction);
98169815
exchangeData(i).SumMCpT += multiExchangeData(i).SumMCpT * (1.0 - OnOffFanRunTimeFraction);
@@ -11243,16 +11242,7 @@ namespace AirflowNetwork {
1124311242
// PURPOSE OF THIS SUBROUTINE:
1124411243
// This subroutine performs hybrid ventilation control
1124511244

11246-
auto &HybridVentSysAvailActualZoneNum = m_state.dataHVACGlobal->HybridVentSysAvailActualZoneNum;
11247-
auto &HybridVentSysAvailAirLoopNum = m_state.dataHVACGlobal->HybridVentSysAvailAirLoopNum;
11248-
auto &HybridVentSysAvailANCtrlStatus = m_state.dataHVACGlobal->HybridVentSysAvailANCtrlStatus;
11249-
auto &HybridVentSysAvailMaster = m_state.dataHVACGlobal->HybridVentSysAvailMaster;
11250-
auto &HybridVentSysAvailVentCtrl = m_state.dataHVACGlobal->HybridVentSysAvailVentCtrl;
11251-
auto &HybridVentSysAvailWindModifier = m_state.dataHVACGlobal->HybridVentSysAvailWindModifier;
11252-
auto &NumHybridVentSysAvailMgrs = m_state.dataHVACGlobal->NumHybridVentSysAvailMgrs;
11253-
1125411245
// SUBROUTINE PARAMETER DEFINITIONS:
11255-
int constexpr HybridVentCtrl_Close(2); // Open windows or doors
1125611246
int constexpr IndividualCtrlType(0); // Individual window or door control
1125711247
int constexpr GlobalCtrlType(1); // Global window or door control
1125811248
static constexpr std::string_view RoutineName("AirflowNetwork::Solver::hybrid_ventilation_control: "); // include trailing blank space
@@ -11272,11 +11262,12 @@ namespace AirflowNetwork {
1127211262
}
1127311263
ControlType = IndividualCtrlType;
1127411264

11275-
for (SysAvailNum = 1; SysAvailNum <= NumHybridVentSysAvailMgrs; ++SysAvailNum) {
11276-
int AirLoopNum = HybridVentSysAvailAirLoopNum(SysAvailNum);
11277-
VentilationCtrl = HybridVentSysAvailVentCtrl(SysAvailNum);
11278-
if (HybridVentSysAvailANCtrlStatus(SysAvailNum) > 0) {
11279-
ControlType = static_cast<int>(GetCurrentScheduleValue(m_state, HybridVentSysAvailANCtrlStatus(SysAvailNum)));
11265+
for (SysAvailNum = 1; SysAvailNum <= m_state.dataAvail->NumHybridVentSysAvailMgrs; ++SysAvailNum) {
11266+
auto &hybridVentMgr = m_state.dataAvail->HybridVentData(SysAvailNum);
11267+
int AirLoopNum = hybridVentMgr.AirLoopNum;
11268+
ventCtrlStatus = hybridVentMgr.ctrlStatus;
11269+
if (hybridVentMgr.ANCtrlStatus > 0) {
11270+
ControlType = static_cast<int>(GetCurrentScheduleValue(m_state, hybridVentMgr.ANCtrlStatus));
1128011271
}
1128111272
bool Found = false; // Logical to indicate whether a master surface is found or not
1128211273
int ActualZoneNum = 0;
@@ -11290,8 +11281,8 @@ namespace AirflowNetwork {
1129011281
break;
1129111282
}
1129211283
} else {
11293-
if (HybridVentSysAvailActualZoneNum(SysAvailNum) == ControlledZoneNum) {
11294-
ActualZoneNum = HybridVentSysAvailActualZoneNum(SysAvailNum);
11284+
if (hybridVentMgr.ControlledZoneNum == ControlledZoneNum) {
11285+
ActualZoneNum = hybridVentMgr.ControlledZoneNum;
1129511286
}
1129611287
}
1129711288
}
@@ -11301,15 +11292,15 @@ namespace AirflowNetwork {
1130111292
auto const &surf = m_state.dataSurface->Surface(SurfNum);
1130211293

1130311294
if (surf.Zone == ActualZoneNum) {
11304-
if (VentilationCtrl == HybridVentCtrl_Close) {
11295+
if (ventCtrlStatus == Avail::VentCtrlStatus::Close) {
1130511296
MultizoneSurfaceData(ANSurfaceNum).HybridVentClose = true;
1130611297
} else {
11307-
if (HybridVentSysAvailWindModifier(SysAvailNum) >= 0) {
11308-
MultizoneSurfaceData(ANSurfaceNum).WindModifier = HybridVentSysAvailWindModifier(SysAvailNum);
11298+
if (hybridVentMgr.WindModifier >= 0) {
11299+
MultizoneSurfaceData(ANSurfaceNum).WindModifier = hybridVentMgr.WindModifier;
1130911300
}
1131011301
if (ControlType == GlobalCtrlType) {
1131111302
MultizoneSurfaceData(ANSurfaceNum).HybridCtrlGlobal = true;
11312-
if (HybridVentSysAvailMaster(SysAvailNum) == ActualZoneNum) {
11303+
if (hybridVentMgr.Master == ActualZoneNum) {
1131311304
if ((surf.OriginalClass == SurfaceClass::Window || surf.OriginalClass == SurfaceClass::Door ||
1131411305
surf.OriginalClass == SurfaceClass::GlassDoor) &&
1131511306
surf.ExtBoundCond == ExternalEnvironment) {
@@ -11323,13 +11314,13 @@ namespace AirflowNetwork {
1132311314
}
1132411315
}
1132511316
}
11326-
if (ControlType == GlobalCtrlType && !Found && !m_state.dataGlobal->WarmupFlag && VentilationCtrl != HybridVentCtrl_Close) {
11317+
if (ControlType == GlobalCtrlType && !Found && !m_state.dataGlobal->WarmupFlag && ventCtrlStatus != Avail::VentCtrlStatus::Close) {
1132711318
++HybridGlobalErrCount;
1132811319
if (HybridGlobalErrCount < 2) {
1132911320
ShowWarningError(m_state,
1133011321
format("{}The hybrid ventilation control schedule value indicates global control in the controlled zone = {}",
1133111322
RoutineName,
11332-
m_state.dataHeatBal->Zone(HybridVentSysAvailMaster(SysAvailNum)).Name));
11323+
m_state.dataHeatBal->Zone(hybridVentMgr.Master).Name));
1133311324
ShowContinueError(m_state,
1133411325
"The exterior surface containing an opening component in the controlled zone is not found. No global control "
1133511326
"will not be modeled.");

src/EnergyPlus/Autosizing/Base.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ void BaseSizer::initializeWithinEP(EnergyPlusData &state,
153153

154154
this->dataNomCapInpMeth = state.dataSize->DataNomCapInpMeth;
155155
this->dataCoilNum = state.dataSize->DataCoilNum;
156-
this->dataFanOpMode = state.dataSize->DataFanOpMode;
156+
this->dataFanOp = state.dataSize->DataFanOp;
157157
this->dataDesignCoilCapacity = state.dataSize->DataDesignCoilCapacity;
158158
this->dataErrorsFound = state.dataSize->DataErrorsFound;
159159
this->dataBypassFrac = state.dataSize->DataBypassFrac;
@@ -799,7 +799,7 @@ void BaseSizer::clearState()
799799
dataDesicDehumNum = 0;
800800
dataNomCapInpMeth = false;
801801
dataCoilNum = 0;
802-
dataFanOpMode = 0;
802+
dataFanOp = HVAC::FanOp::Invalid;
803803
dataDesignCoilCapacity = 0.0;
804804
dataErrorsFound = false;
805805
dataBypassFrac = 0.0;

src/EnergyPlus/Autosizing/Base.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ struct BaseSizer
235235
// WaterHeatingCoilUASizing
236236
bool dataNomCapInpMeth = false;
237237
int dataCoilNum = 0;
238-
int dataFanOpMode = 0;
238+
HVAC::FanOp dataFanOp = HVAC::FanOp::Invalid;
239239
Real64 dataDesignCoilCapacity = 0.0;
240240
bool dataErrorsFound = false;
241241

0 commit comments

Comments
 (0)