Skip to content

Commit 760f08a

Browse files
authored
Merge c46932f into ea846c6
2 parents ea846c6 + c46932f commit 760f08a

23 files changed

+1614
-1487
lines changed

src/EnergyPlus/CurveManager.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353

5454
// ObjexxFCL Headers
5555
#include <ObjexxFCL/Array.functions.hh>
56-
#include <ObjexxFCL/Array3D.hh>
5756
#include <ObjexxFCL/Fmath.hh>
5857

5958
// Third-party Headers

src/EnergyPlus/DataDaylighting.hh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
// ObjexxFCL Headers
5252
#include <ObjexxFCL/Array1D.hh>
5353
#include <ObjexxFCL/Array2D.hh>
54-
#include <ObjexxFCL/Array3D.hh>
5554

5655
// EnergyPlus Headers
5756
#include <EnergyPlus/Data/BaseData.hh>

src/EnergyPlus/DataHeatBalSurface.hh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
// ObjexxFCL Headers
5252
#include <ObjexxFCL/Array1D.hh>
5353
#include <ObjexxFCL/Array2D.hh>
54-
#include <ObjexxFCL/Array3D.hh>
5554

5655
// EnergyPlus Headers
5756
#include <EnergyPlus/Data/BaseData.hh>

src/EnergyPlus/DataHeatBalance.hh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,8 @@ namespace DataHeatBalance {
14051405
Real64 MixVdotStdDensity = 0.0; // Mixing volume flow rate of Air {m3/s} at standard density (adjusted for elevation)
14061406
Real64 MixMass = 0.0; // Mixing mass of air {kg}
14071407
Real64 MixMdot = 0.0; // Mixing mass flow rate of air {kg/s}
1408+
Real64 MixSenLoad = 0.0; // Heat Gain(+)/Loss(-) {J} due to mixing and cross mixing and refrigeration door mixing
1409+
Real64 MixLatLoad = 0.0; // Latent Gain(+)/Loss(-) {J} due to mixing and cross mixing and refrigeration door mixing
14081410
Real64 MixHeatLoss = 0.0; // Heat Gain {J} due to mixing and cross mixing and refrigeration door mixing
14091411
Real64 MixHeatGain = 0.0; // Heat Loss {J} due to mixing and cross mixing and refrigeration door mixing
14101412
Real64 MixLatentLoss = 0.0; // Latent Gain {J} due to mixing and cross mixing and refrigeration door mixing

src/EnergyPlus/DaylightingManager.hh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
#include <ObjexxFCL/Array1A.hh>
5353
#include <ObjexxFCL/Array2A.hh>
5454
#include <ObjexxFCL/Array2S.hh>
55-
#include <ObjexxFCL/Array3D.hh>
5655
#include <ObjexxFCL/Vector3.fwd.hh>
5756

5857
// EnergyPlus Headers

src/EnergyPlus/HVACManager.cc

Lines changed: 463 additions & 401 deletions
Large diffs are not rendered by default.

src/EnergyPlus/HVACManager.hh

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
// EnergyPlus Headers
5555
#include <EnergyPlus/Data/BaseData.hh>
5656
#include <EnergyPlus/EnergyPlus.hh>
57+
#include <EnergyPlus/ZoneTempPredictorCorrector.hh>
5758

5859
namespace EnergyPlus {
5960

@@ -105,6 +106,19 @@ namespace HVACManager {
105106

106107
void ReportAirHeatBalance(EnergyPlusData &state);
107108

109+
void reportAirHeatBal1(EnergyPlusData &state,
110+
DataHeatBalance::AirReportVars &szAirRpt,
111+
DataZoneEquipment::EquipConfiguration const &szEquipConfig,
112+
int const zoneNum,
113+
int const spaceNum = 0);
114+
115+
void reportAirHeatBal2(EnergyPlusData &state,
116+
DataHeatBalance::AirReportVars &szAirRpt,
117+
DataZoneEquipment::EquipConfiguration const &szEquipConfig,
118+
ZoneTempPredictorCorrector::ZoneSpaceHeatBalanceData const &szHeatBal,
119+
int const zoneNum,
120+
int const spaceNum = 0);
121+
108122
void SetHeatToReturnAirFlag(EnergyPlusData &state);
109123

110124
void UpdateZoneInletConvergenceLog(EnergyPlusData &state);
@@ -128,7 +142,6 @@ struct HVACManagerData : BaseGlobalStruct
128142
int RepIterAir = 0;
129143
bool SimHVACIterSetup = false;
130144
bool TriggerGetAFN = true;
131-
bool ReportAirHeatBalanceFirstTimeFlag = true;
132145
bool MyOneTimeFlag = true;
133146
bool PrintedWarmup = false;
134147
bool MyEnvrnFlag = true;
@@ -140,8 +153,6 @@ struct HVACManagerData : BaseGlobalStruct
140153
int ErrCount = 0; // Number of times that the maximum iterations was exceeded
141154
int MaxErrCount = 0;
142155
std::string ErrEnvironmentName;
143-
Array1D<Real64> MixSenLoad; // Mixing sensible loss or gain
144-
Array1D<Real64> MixLatLoad; // Mixing latent loss or gain
145156

146157
void init_state([[maybe_unused]] EnergyPlusData &state) override
147158
{

src/EnergyPlus/HeatBalanceAirManager.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ void GetSimpleAirModelInputs(EnergyPlusData &state, bool &ErrorsFound) // IF err
286286

287287
// Following used for reporting
288288
state.dataHeatBal->ZnAirRpt.allocate(state.dataGlobal->NumOfZones);
289-
if (state.dataHeatBal->doSpaceHeatBalanceSimulation) {
289+
if (state.dataHeatBal->doSpaceHeatBalanceSizing || state.dataHeatBal->doSpaceHeatBalanceSimulation) {
290290
state.dataHeatBal->spaceAirRpt.allocate(state.dataGlobal->numSpaces);
291291
}
292292

src/EnergyPlus/HeatBalanceSurfaceManager.cc

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3819,16 +3819,17 @@ void InitIntSolarDistribution(EnergyPlusData &state)
38193819
state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad *
38203820
state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult * state.dataHeatBalSurf->SurfAbsThermalInt(SurfNum);
38213821
} else {
3822-
state.dataHeatBalSurfMgr->curQL = state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad;
3822+
// radiant value prior to adjustment for pulse for load component report
3823+
Real64 const curQL = state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad;
38233824
// for the loads component report during the special sizing run increase the radiant portion
38243825
// a small amount to create a "pulse" of heat that is used for the
3825-
state.dataHeatBalSurfMgr->adjQL =
3826-
state.dataHeatBalSurfMgr->curQL + state.dataViewFactor->EnclRadInfo(radEnclosureNum).FloorArea * pulseMultipler;
3826+
// radiant value including adjustment for pulse for load component report
3827+
Real64 const adjQL = curQL + state.dataViewFactor->EnclRadInfo(radEnclosureNum).FloorArea * pulseMultipler;
38273828
// ITABSF is the Inside Thermal Absorptance
38283829
// EnclRadThermAbsMult is a multiplier for each zone/enclosure
38293830
// SurfQdotRadIntGainsInPerArea is the thermal radiation absorbed on inside surfaces
38303831
state.dataHeatBal->SurfQdotRadIntGainsInPerArea(SurfNum) =
3831-
state.dataHeatBalSurfMgr->adjQL * state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult *
3832+
adjQL * state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult *
38323833
state.dataHeatBalSurf->SurfAbsThermalInt(SurfNum);
38333834
}
38343835

@@ -3956,16 +3957,17 @@ void InitIntSolarDistribution(EnergyPlusData &state)
39563957
state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad *
39573958
state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult * state.dataHeatBalSurf->SurfAbsThermalInt(SurfNum);
39583959
} else {
3959-
state.dataHeatBalSurfMgr->curQL = state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad;
3960+
// radiant value prior to adjustment for pulse for load component report
3961+
Real64 const curQL = state.dataViewFactor->EnclRadInfo(radEnclosureNum).radQThermalRad;
39603962
// for the loads component report during the special sizing run increase the radiant portion
39613963
// a small amount to create a "pulse" of heat that is used for the
3962-
state.dataHeatBalSurfMgr->adjQL =
3963-
state.dataHeatBalSurfMgr->curQL + state.dataViewFactor->EnclRadInfo(radEnclosureNum).FloorArea * pulseMultipler;
3964+
// radiant value including adjustment for pulse for load component report
3965+
Real64 const adjQL = curQL + state.dataViewFactor->EnclRadInfo(radEnclosureNum).FloorArea * pulseMultipler;
39643966
// ITABSF is the Inside Thermal Absorptance
39653967
// EnclRadThermAbsMult is a multiplier for each zone/radiant enclosure
39663968
// SurfQdotRadIntGainsInPerArea is the thermal radiation absorbed on inside surfaces
39673969
state.dataHeatBal->SurfQdotRadIntGainsInPerArea(SurfNum) =
3968-
state.dataHeatBalSurfMgr->adjQL * state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult *
3970+
adjQL * state.dataViewFactor->EnclRadInfo(radEnclosureNum).radThermAbsMult *
39693971
state.dataHeatBalSurf->SurfAbsThermalInt(SurfNum);
39703972
}
39713973
// Radiations absorbed by the window layers coming from zone side
@@ -6569,31 +6571,28 @@ void ReportSurfaceHeatBalance(EnergyPlusData &state)
65696571
}
65706572

65716573
if (state.dataGlobal->ZoneSizingCalc && state.dataGlobal->CompLoadReportIsReq) {
6574+
// This is by surface, so it works for both space and zone component loads
65726575
int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep;
6576+
auto &surfCLDayTS = state.dataOutRptTab->surfCompLoads[state.dataSize->CurOverallSimDay - 1].ts[TimeStepInDay - 1];
65736577
for (int zoneNum = 1; zoneNum <= state.dataGlobal->NumOfZones; ++zoneNum) {
65746578
for (int spaceNum : state.dataHeatBal->Zone(zoneNum).spaceIndexes) {
65756579
auto const &thisSpace = state.dataHeatBal->space(spaceNum);
65766580
int firstSurf = thisSpace.OpaqOrIntMassSurfaceFirst;
65776581
int lastSurf = thisSpace.OpaqOrIntMassSurfaceLast;
65786582
for (int surfNum = firstSurf; surfNum <= lastSurf; ++surfNum) {
6579-
state.dataOutRptTab->lightSWRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) =
6580-
state.dataHeatBalSurf->SurfQdotRadLightsInRep(surfNum);
6581-
state.dataOutRptTab->feneSolarRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) =
6582-
state.dataHeatBalSurf->SurfQdotRadSolarInRep(surfNum);
6583+
surfCLDayTS.surf[surfNum - 1].lightSWRadSeq = state.dataHeatBalSurf->SurfQdotRadLightsInRep(surfNum);
6584+
surfCLDayTS.surf[surfNum - 1].feneSolarRadSeq = state.dataHeatBalSurf->SurfQdotRadSolarInRep(surfNum);
65836585
}
65846586
firstSurf = thisSpace.OpaqOrWinSurfaceFirst;
65856587
lastSurf = thisSpace.OpaqOrWinSurfaceLast;
65866588
for (int surfNum = firstSurf; surfNum <= lastSurf; ++surfNum) {
65876589
auto const &surface = state.dataSurface->Surface(surfNum);
65886590
if (!state.dataGlobal->WarmupFlag) {
65896591
if (state.dataGlobal->isPulseZoneSizing) {
6590-
state.dataOutRptTab->loadConvectedWithPulse(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) =
6591-
state.dataHeatBalSurf->SurfQdotConvInRep(surfNum);
6592+
surfCLDayTS.surf[surfNum - 1].loadConvectedWithPulse = state.dataHeatBalSurf->SurfQdotConvInRep(surfNum);
65926593
} else {
6593-
state.dataOutRptTab->loadConvectedNormal(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) =
6594-
state.dataHeatBalSurf->SurfQdotConvInRep(surfNum);
6595-
state.dataOutRptTab->netSurfRadSeq(state.dataSize->CurOverallSimDay, TimeStepInDay, surfNum) =
6596-
state.dataHeatBalSurf->SurfQdotRadNetLWInPerArea(surfNum) * surface.Area;
6594+
surfCLDayTS.surf[surfNum - 1].loadConvectedNormal = state.dataHeatBalSurf->SurfQdotConvInRep(surfNum);
6595+
surfCLDayTS.surf[surfNum - 1].netSurfRadSeq = state.dataHeatBalSurf->SurfQdotRadNetLWInPerArea(surfNum) * surface.Area;
65976596
}
65986597
}
65996598
}
@@ -9529,17 +9528,16 @@ void GatherComponentLoadsSurfAbsFact(EnergyPlusData &state)
95299528
// METHODOLOGY EMPLOYED:
95309529
// Save sequence of values for report during sizing.
95319530

9531+
// This is by surface, so it works for both space and zone component loads
95329532
if (state.dataGlobal->CompLoadReportIsReq && !state.dataGlobal->isPulseZoneSizing) {
95339533
int TimeStepInDay = (state.dataGlobal->HourOfDay - 1) * state.dataGlobal->NumOfTimeStepInHour + state.dataGlobal->TimeStep;
9534-
for (int enclosureNum = 1; enclosureNum <= state.dataViewFactor->NumOfRadiantEnclosures; ++enclosureNum) {
9535-
state.dataOutRptTab->TMULTseq(state.dataSize->CurOverallSimDay, TimeStepInDay, enclosureNum) =
9536-
state.dataViewFactor->EnclRadInfo(enclosureNum).radThermAbsMult;
9537-
}
9534+
auto &surfCLDayTS = state.dataOutRptTab->surfCompLoads[state.dataSize->CurOverallSimDay - 1].ts[TimeStepInDay - 1];
95389535
for (int jSurf = 1; jSurf <= state.dataSurface->TotSurfaces; ++jSurf) {
95399536
auto const &surface = state.dataSurface->Surface(jSurf);
95409537
if (!surface.HeatTransSurf || surface.Zone == 0) continue; // Skip non-heat transfer surfaces
95419538
if (surface.Class == DataSurfaces::SurfaceClass::TDD_Dome) continue; // Skip tubular daylighting device domes
9542-
state.dataOutRptTab->ITABSFseq(state.dataSize->CurOverallSimDay, TimeStepInDay, jSurf) = state.dataHeatBalSurf->SurfAbsThermalInt(jSurf);
9539+
surfCLDayTS.surf[jSurf - 1].ITABSFseq = state.dataHeatBalSurf->SurfAbsThermalInt(jSurf);
9540+
surfCLDayTS.surf[jSurf - 1].TMULTseq = state.dataViewFactor->EnclRadInfo(surface.RadEnclIndex).radThermAbsMult;
95439541
}
95449542
}
95459543
}

src/EnergyPlus/HeatBalanceSurfaceManager.hh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,6 @@ struct HeatBalSurfMgr : BaseGlobalStruct
236236

237237
Array2D<Real64> DiffuseArray;
238238

239-
Real64 curQL = 0.0; // radiant value prior to adjustment for pulse for load component report
240-
Real64 adjQL = 0.0; // radiant value including adjustment for pulse for load component report
241-
242239
bool ManageSurfaceHeatBalancefirstTime = true;
243240
bool InitSurfaceHeatBalancefirstTime = true;
244241
bool UpdateThermalHistoriesFirstTimeFlag = true;
@@ -286,8 +283,6 @@ struct HeatBalSurfMgr : BaseGlobalStruct
286283
ZoneAESum.clear();
287284

288285
DiffuseArray.clear();
289-
curQL = 0.0;
290-
adjQL = 0.0;
291286

292287
ManageSurfaceHeatBalancefirstTime = true;
293288
InitSurfaceHeatBalancefirstTime = true;

0 commit comments

Comments
 (0)