@@ -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}
0 commit comments