Skip to content

Commit c3342e5

Browse files
committed
Merge remote-tracking branch 'origin/develop' into MacBuildsOnGHA
2 parents 4fedbab + 54f875d commit c3342e5

Some content is hidden

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

43 files changed

+833
-1484
lines changed

doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2431,7 +2431,7 @@ \subsubsection{Outputs}\label{outputs-indoorlivingwall}
24312431
\item
24322432
Zone,Average,Indoor Living Wall Evapotranspiration Rate {[}\si{\evapotranspirationRate}{]}
24332433
\item
2434-
Zone,Average,Indoor Living Wall Energy Required For Evapotranspiration Per Unit Area {[}\si{\watt\per\area}{]}
2434+
Zone,Average,Indoor Living Wall Energy Rate Required For Evapotranspiration Per Unit Area {[}\si{\watt\per\area}{]}
24352435
\item
24362436
Zone,Average,Indoor Living Wall LED Operational PPFD {[}\si{\umolperAreaperSecond}{]}
24372437
\item
@@ -2446,7 +2446,50 @@ \subsubsection{Outputs}\label{outputs-indoorlivingwall}
24462446
Zone,Sum,Indoor Living Wall LED Electricity Energy {[}J{]}
24472447
\end{itemize}
24482448

2449+
\paragraph{Indoor Living Wall Plant Surface Temperature {[}C{]}}\label{indoor-living-wall-plant-surface-temperature-c}
24492450

2451+
This output is the plant surface temperature in C. Plant surface temperature is determined using surface heat balance of indoor living walls.
2452+
2453+
\paragraph{Indoor Living Wall Sensible Heat Gain Rate {[}W{]}}\label{indoor-living-wall-sensible-heat-gain-rate-w}
2454+
2455+
This output is the sensible heat gain rate from indoor living walls in W and determined by surface heat balance. Positive sign represents heat loss from plants or heat gain to indoor space; negative sign represents heat gain to plants or heat loss from indoor space.
2456+
2457+
\paragraph{Indoor Living Wall Latent Heat Gain Rate {[}W{]}}\label{indoor-living-wall-latent-heat-gain-rate-w}
2458+
2459+
This output is the latent heat gain rate from indoor living walls in W. Latent heat gain is determined based on the increase of enthalpy due to the increase of absolute humidity (or humidity ratio) from plant evapotranspiration.
2460+
2461+
\paragraph{Indoor Living Wall Evapotranspiration Rate {[}\si{\evapotranspirationRate}{]}}\label{indoor-living-wall-evapotranspiration-rate}
2462+
2463+
This output is evapotranspiration (ET) rate of indoor living walls in \si{\evapotranspirationRate}. The ET rate is directly calculated by ET models(Penman-Monteith model, Stanghellini model or ET model from users).
2464+
2465+
\paragraph{Indoor Living Wall Energy Rate Required For Evapotranspiration Per Unit Area {[}\si{\watt\per\area}{]}}\label{indoor-living-wall-evapotranspiration-per-unit-area}
2466+
2467+
This output is energy rate per unit area required for plant evapotranspiration (ET) of indoor living walls in \si{\watt\per\area}. The energy rate per unit area for ET is determined by latent heat of vaporization for total ET over time period and surface area.
2468+
2469+
\paragraph{Indoor Living Wall LED Operational PPFD {[}\si{\umolperAreaperSecond}{]}}\label{indoor-living-wall-led-operational-ppfd}
2470+
2471+
This output is operational photosynthetic photon flux density (PPFD) of LED light in \si{\umolperAreaperSecond}. The operational PPFD of LED light is determined based on lighting method. If lighting method is Daylight, the operational LED PPFD is zero. If lighting method is LED, the operational LED PPFD is nominal LED PPFD. If lighting method is LED-Daylight, the operational LED PPFD is calculated based on targeted PPFD and daylighting level with the consideration of nominal LED PPFD.
2472+
2473+
\paragraph{Indoor Living Wall PPFD {[}\si{\umolperAreaperSecond}{]}}\label{indoor-living-wall-ppfd}
2474+
2475+
This output is the actual PPFD including LED and/or daylight for indoor living walls in \si{\umolperAreaperSecond}.
2476+
2477+
\paragraph{Indoor Living Wall Vapor Pressure Deficit {[}Pa{]}}\label{indoor-living-wall-vpd-pa}
2478+
2479+
This output is the vapor pressure deficit in Pa. The output represents the difference between saturated vapor pressure and vapor pressure of the moist air of current condition.
2480+
2481+
\paragraph{Indoor Living Wall LED Sensible Heat Gain Rate {[}W{]}}\label{indoor-living-wall-led-sensible-heat-gain-rate-w}
2482+
2483+
This output is the LED sensible heat gain rate for indoor living walls in W. The output determines convective heat gain from LED lights when LED lights are on.
2484+
2485+
\paragraph{Indoor Living Wall LED Operational Power {[}W{]}}\label{indoor-living-wall-led-operational-power-w}
2486+
2487+
This output is LED operational power for indoor living walls in W. The LED operational power is determined by LED nominal power in proportion to the ratio of LED operational PPFD to LED nominal PPFD.
2488+
2489+
\paragraph{Indoor Living Wall LED Electricity Energy {[}J{]}}\label{indoor-living-wall-led-electricity-energy-j}
2490+
2491+
This output is LED electricity energy for indoor living walls in J. The LED electricity energy is calculated by LED operational power multiplied by time period.
2492+
24502493
\subsection{ElectricEquipment:ITE:AirCooled}\label{electricequipmentiteaircooled}
24512494

24522495
This object describes air-cooled electric information technology equipment (ITE) which has variable power consumption as a function of loading and temperature.

src/EnergyPlus/AirLoopHVACDOAS.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,6 @@ namespace AirLoopHVACDOAS {
999999
state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = sizingMassFlow;
10001000
state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = sizingMassFlow;
10011001
}
1002-
bool errorsFound = false;
10031002
if (this->m_FanIndex > 0 && this->m_FanTypeNum == SimAirServingZones::CompType::Fan_ComponentModel) {
10041003
state.dataFans->fans(this->m_FanIndex)->maxAirFlowRate = sizingMassFlow / state.dataEnvrn->StdRhoAir;
10051004
state.dataFans->fans(this->m_FanIndex)->minAirFlowRate = 0.0;
@@ -1008,9 +1007,7 @@ namespace AirLoopHVACDOAS {
10081007
state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = sizingMassFlow;
10091008
state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = sizingMassFlow;
10101009
}
1011-
if (errorsFound) {
1012-
ShowFatalError(state, "Preceding sizing errors cause program termination");
1013-
}
1010+
10141011
state.dataSize->CurSysNum = state.dataHVACGlobal->NumPrimaryAirSys + this->m_AirLoopDOASNum + 1;
10151012
state.dataSize->CurOASysNum = this->m_OASystemNum;
10161013
}

src/EnergyPlus/AirflowNetwork/src/Solver.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,12 +470,8 @@ namespace AirflowNetwork {
470470

471471
Real64 flowRate = fan->maxAirFlowRate;
472472
flowRate *= m_state.dataEnvrn->StdRhoAir;
473-
bool nodeErrorsFound{false};
474473
int inletNode = fan->inletNodeNum;
475474
int outletNode = fan->outletNodeNum;
476-
if (nodeErrorsFound) {
477-
success = false;
478-
}
479475
HVAC::FanType fanType = fan->type;
480476
if (fanType != HVAC::FanType::Exhaust) {
481477
ShowSevereError(m_state,
@@ -4607,7 +4603,7 @@ namespace AirflowNetwork {
46074603
int compnum = compnum_iter->second;
46084604
AirflowNetworkLinkageData(count).CompNum = compnum;
46094605

4610-
auto &surf = m_state.dataSurface->Surface(MultizoneSurfaceData(count).SurfNum);
4606+
auto const &surf = m_state.dataSurface->Surface(MultizoneSurfaceData(count).SurfNum);
46114607

46124608
switch (AirflowNetworkLinkageData(count).element->type()) {
46134609
case ComponentType::DOP: {

src/EnergyPlus/BranchInputManager.cc

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,6 @@ namespace BranchInputManager {
10261026
int NumNumbers; // Used to retrieve numbers from IDF
10271027
int NumAlphas; // Used to retrieve names from IDF
10281028
int NumParams;
1029-
bool ErrFound = false;
10301029
state.dataInputProcessing->inputProcessor->getObjectDefMaxArgs(state, "NodeList", NumParams, NumAlphas, NumNumbers);
10311030
NodeNums.dimension(NumParams, 0);
10321031
state.dataInputProcessing->inputProcessor->getObjectDefMaxArgs(state, CurrentModuleObject, NumParams, NumAlphas, NumNumbers);
@@ -1063,12 +1062,6 @@ namespace BranchInputManager {
10631062
cNumericFields.deallocate();
10641063
lAlphaBlanks.deallocate();
10651064
lNumericBlanks.deallocate();
1066-
if (ErrFound) {
1067-
ShowSevereError(
1068-
state,
1069-
format("{} Invalid {} Input, preceding condition(s) will likely cause termination.", RoutineName, CurrentModuleObject));
1070-
state.dataBranchInputManager->InvalidBranchDefinitions = true;
1071-
}
10721065
TestInletOutletNodes(state);
10731066
state.dataBranchInputManager->GetBranchInputOneTimeFlag = false;
10741067
}

src/EnergyPlus/ChillerElectricEIR.cc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2403,16 +2403,16 @@ void ElectricEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoad, b
24032403
}
24042404
} break;
24052405
case DataPlant::CondenserFlowControl::ModulatedDeltaTemperature: {
2406-
Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state,
2407-
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidName,
2408-
this->CondInletTemp,
2409-
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidIndex,
2410-
RoutineName);
2406+
Real64 CpCond = FluidProperties::GetSpecificHeatGlycol(state,
2407+
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidName,
2408+
this->CondInletTemp,
2409+
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidIndex,
2410+
RoutineName);
24112411
Real64 condDT = 0.0;
24122412
if (this->CondDTScheduleNum > 0) {
24132413
condDT = ScheduleManager::GetCurrentScheduleValue(state, this->CondDTScheduleNum);
24142414
}
2415-
this->CondMassFlowRate = this->QCondenser / (Cp * condDT);
2415+
this->CondMassFlowRate = this->QCondenser / (CpCond * condDT);
24162416
} break;
24172417
default: {
24182418
this->CondMassFlowRate = this->CondMassFlowRateMax;
@@ -2431,13 +2431,13 @@ void ElectricEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoad, b
24312431
if (this->CondMassFlowRate > DataBranchAirLoopPlant::MassFlowTolerance) {
24322432
// If Heat Recovery specified for this vapor compression chiller, then Qcondenser will be adjusted by this subroutine
24332433
if (this->HeatRecActive) this->calcHeatRecovery(state, this->QCondenser, this->CondMassFlowRate, condInletTemp, this->QHeatRecovered);
2434-
Cp = FluidProperties::GetSpecificHeatGlycol(state,
2435-
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidName,
2436-
condInletTemp,
2437-
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidIndex,
2438-
RoutineName);
2434+
Real64 CpCond = FluidProperties::GetSpecificHeatGlycol(state,
2435+
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidName,
2436+
condInletTemp,
2437+
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidIndex,
2438+
RoutineName);
24392439

2440-
this->CondOutletTemp = this->QCondenser / this->CondMassFlowRate / Cp + condInletTemp;
2440+
this->CondOutletTemp = this->QCondenser / this->CondMassFlowRate / CpCond + condInletTemp;
24412441
} else {
24422442
ShowSevereError(state, format("CalcElectricEIRChillerModel: Condenser flow = 0, for ElectricEIRChiller={}", this->Name));
24432443
ShowContinueErrorTimeStamp(state, "");
@@ -2457,8 +2457,8 @@ void ElectricEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoad, b
24572457
if (this->HeatRecActive) this->calcHeatRecovery(state, this->QCondenser, this->CondMassFlowRate, condInletTemp, this->QHeatRecovered);
24582458

24592459
if (CondMassFlowRate > 0.0) {
2460-
Cp = Psychrometrics::PsyCpAirFnW(state.dataLoopNodes->Node(this->CondInletNodeNum).HumRat);
2461-
CondOutletTemp = CondInletTemp + QCondenser / CondMassFlowRate / Cp;
2460+
Real64 CpCond = Psychrometrics::PsyCpAirFnW(state.dataLoopNodes->Node(this->CondInletNodeNum).HumRat);
2461+
CondOutletTemp = CondInletTemp + QCondenser / CondMassFlowRate / CpCond;
24622462
} else {
24632463
this->CondOutletTemp = condInletTemp;
24642464
}

src/EnergyPlus/ChillerReformulatedEIR.cc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2545,16 +2545,16 @@ void ReformulatedEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoa
25452545
}
25462546
} break;
25472547
case DataPlant::CondenserFlowControl::ModulatedDeltaTemperature: {
2548-
Real64 Cp = FluidProperties::GetSpecificHeatGlycol(state,
2549-
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidName,
2550-
this->CondInletTemp,
2551-
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidIndex,
2552-
RoutineName);
2548+
Real64 CpCond = FluidProperties::GetSpecificHeatGlycol(state,
2549+
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidName,
2550+
this->CondInletTemp,
2551+
state.dataPlnt->PlantLoop(this->CWPlantLoc.loopNum).FluidIndex,
2552+
RoutineName);
25532553
Real64 condDT = 0.0;
25542554
if (this->CondDTScheduleNum > 0) {
25552555
condDT = ScheduleManager::GetCurrentScheduleValue(state, this->CondDTScheduleNum);
25562556
}
2557-
this->CondMassFlowRate = this->QCondenser / (Cp * condDT);
2557+
this->CondMassFlowRate = this->QCondenser / (CpCond * condDT);
25582558
} break;
25592559
default: {
25602560
this->CondMassFlowRate = this->CondMassFlowRateMax;
@@ -2573,12 +2573,12 @@ void ReformulatedEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoa
25732573
if (this->CondMassFlowRate > DataBranchAirLoopPlant::MassFlowTolerance) {
25742574
// If Heat Recovery specified for this vapor compression chiller, then Qcondenser will be adjusted by this subroutine
25752575
if (this->HeatRecActive) this->calcHeatRecovery(state, this->QCondenser, this->CondMassFlowRate, condInletTemp, this->QHeatRecovery);
2576-
Cp = FluidProperties::GetSpecificHeatGlycol(state,
2577-
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidName,
2578-
condInletTemp,
2579-
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidIndex,
2580-
RoutineName);
2581-
this->CondOutletTemp = this->QCondenser / this->CondMassFlowRate / Cp + condInletTemp;
2576+
Real64 CpCond = FluidProperties::GetSpecificHeatGlycol(state,
2577+
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidName,
2578+
condInletTemp,
2579+
state.dataPlnt->PlantLoop(this->CDPlantLoc.loopNum).FluidIndex,
2580+
RoutineName);
2581+
this->CondOutletTemp = this->QCondenser / this->CondMassFlowRate / CpCond + condInletTemp;
25822582
} else {
25832583
ShowSevereError(state, format("ControlReformEIRChillerModel: Condenser flow = 0, for ElecReformEIRChiller={}", this->Name));
25842584
ShowContinueErrorTimeStamp(state, "");

0 commit comments

Comments
 (0)