Skip to content

Commit

Permalink
Merge branch 'develop' into global_dataGlobals_3_again
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchute committed Nov 13, 2020
2 parents 271480f + 12adf59 commit 86c0afe
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 55 deletions.
2 changes: 0 additions & 2 deletions src/EnergyPlus/DataSurfaces.cc
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,6 @@ namespace DataSurfaces {
Array1D<Real64> SurfWinBmBmSolar; // Exterior beam-to-beam solar transmitted through window, or window plus blind, into zone (W)
Array1D<Real64> SurfWinBmDifSolar; // Exterior beam-to-diffuse solar transmitted through window, or window plus blind, into zone (W)
Array1D<Real64> SurfWinDifSolar; // Exterior diffuse solar transmitted through window, or window plus shade/blind, into zone (W)
Array1D<Real64> SurfWinDirSolTransAtIncAngle; // Window's beam-beam solar transmittance at current timestep's angle of incidence
Array1D<Real64> SurfWinHeatGain; // Total heat gain from window = WinTransSolar + (IR and convection from glazing, or,
// if interior shade, IR and convection from zone-side of shade plus gap air convection to zone) +
// (IR convection from frame) + (IR and convection from divider if no interior shade) (W)
Expand Down Expand Up @@ -1280,7 +1279,6 @@ namespace DataSurfaces {
SurfWinBmBmSolar.deallocate();
SurfWinBmDifSolar.deallocate();
SurfWinDifSolar.deallocate();
SurfWinDirSolTransAtIncAngle.deallocate();
SurfWinHeatGain.deallocate();
SurfWinHeatTransfer.deallocate();
SurfWinHeatGainRep.deallocate();
Expand Down
1 change: 0 additions & 1 deletion src/EnergyPlus/DataSurfaces.hh
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,6 @@ namespace DataSurfaces {
extern Array1D<Real64> SurfWinBmBmSolar; // Exterior beam-to-beam solar transmitted through window, or window plus blind, into zone (W)
extern Array1D<Real64> SurfWinBmDifSolar; // Exterior beam-to-diffuse solar transmitted through window, or window plus blind, into zone (W)
extern Array1D<Real64> SurfWinDifSolar; // Exterior diffuse solar transmitted through window, or window plus shade/blind, into zone (W)
extern Array1D<Real64> SurfWinDirSolTransAtIncAngle; // Window's beam-beam solar transmittance at current timestep's angle of incidence
extern Array1D<Real64> SurfWinHeatGain; // Total heat gain from window = WinTransSolar + (IR and convection from glazing, or,
// if interior shade, IR and convection from zone-side of shade plus gap air convection to zone) +
// (IR convection from frame) + (IR and convection from divider if no interior shade) (W)
Expand Down
1 change: 0 additions & 1 deletion src/EnergyPlus/HeatBalanceSurfaceManager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2555,7 +2555,6 @@ namespace HeatBalanceSurfaceManager {
SurfWinBmBmSolar(SurfNum) = 0.0;
SurfWinBmDifSolar(SurfNum) = 0.0;
SurfWinDifSolar(SurfNum) = 0.0;
SurfWinDirSolTransAtIncAngle(SurfNum) = 0.0;
// energy
SurfWinTransSolarEnergy(SurfNum) = 0.0;
SurfWinBmSolarEnergy(SurfNum) = 0.0;
Expand Down
72 changes: 21 additions & 51 deletions src/EnergyPlus/SolarShading.cc
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,6 @@ namespace SolarShading {
SurfWinBmBmSolar(SurfNum) = 0.0;
SurfWinBmDifSolar(SurfNum) = 0.0;
SurfWinDifSolar(SurfNum) = 0.0;
SurfWinDirSolTransAtIncAngle(SurfNum) = 0.0;

SurfWinTransSolarEnergy(SurfNum) = 0.0;
SurfWinBmSolarEnergy(SurfNum) = 0.0;
Expand Down Expand Up @@ -802,7 +801,6 @@ namespace SolarShading {
SurfWinBmDifSolar.dimension(TotSurfaces, 0.0);

SurfWinDifSolar.dimension(TotSurfaces, 0.0);
SurfWinDirSolTransAtIncAngle.dimension(TotSurfaces, 0.0);
SurfWinHeatGain.dimension(TotSurfaces, 0.0);
SurfWinHeatTransfer.dimension(TotSurfaces, 0.0);
SurfWinHeatGainRep.dimension(TotSurfaces, 0.0);
Expand Down Expand Up @@ -6200,10 +6198,6 @@ namespace SolarShading {

Real64 TBmBmShBlSc; // Beam-beam transmittance for window with shade, blind, screen, or switchable glazing
Real64 TBmDifShBlSc; // Beam-diffuse transmittance for window with shade, blind, screen, or switchable glazing
Real64 WinTransBmBmSolar; // Factor for exterior beam to beam solar transmitted through window,
// or window plus shade, into zone at current time (m2)
Real64 WinTransBmDifSolar; // Factor for exterior beam to diffuse solar transmitted through window,
// or window plus shade, into zone at current time (m2)

Real64 TBmBmEQL; // Beam-beam solar transmittance for equivalent layer model window W/WO shade
Real64 TBmDiffEQL; // Beam-diffuse solar transmittance for equivalent layer model window W/WO shade
Expand Down Expand Up @@ -6243,6 +6237,9 @@ namespace SolarShading {
int iSSG; // scheduled surface gains counter
Real64 SolarIntoZone; // Solar radiation into zone to current surface

Array1D<Real64> WinTransBmBmSolar(TotSurfaces); // Factor for exterior beam to beam solar transmitted through window, or window plus shade, into zone at current time (m2)
Array1D<Real64> WinTransBmDifSolar(TotSurfaces); // Factor for exterior beam to diffuse solar transmitted through window, or window plus shade, into zone at current time (m2)

if (state.dataSolarShading->MustAllocSolarShading) {
DBZoneIntWin.allocate(state.dataGlobal->NumOfZones);
IntBeamAbsByShadFac.allocate(TotSurfaces);
Expand Down Expand Up @@ -6323,12 +6320,9 @@ namespace SolarShading {
if (AnyBSDF) AWinCFOverlap = 0.0;

for (int const SurfNum : thisEnclosure.SurfacePtr) {
if (((Surface(SurfNum).ExtBoundCond != ExternalEnvironment) && (Surface(SurfNum).ExtBoundCond != OtherSideCondModeledExt)) &&
SurfWinOriginalClass(SurfNum) != SurfaceClass_TDD_Diffuser)
continue;
if (!Surface(SurfNum).HeatTransSurf) continue;
// TH added 3/24/2010 while debugging CR 7872
if (!Surface(SurfNum).ExtSolar) continue;
if (!Surface(SurfNum).ExtSolar && SurfWinOriginalClass(SurfNum) != SurfaceClass_TDD_Diffuser) continue;
ConstrNum = Surface(SurfNum).Construction;
ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (SurfWinStormWinFlag(SurfNum) == 1) {
Expand Down Expand Up @@ -6383,8 +6377,8 @@ namespace SolarShading {
if (Surface(SurfNum).Class == SurfaceClass_TDD_Dome || SurfWinOriginalClass(SurfNum) == SurfaceClass_TDD_Diffuser)
SunlitFracWithoutReveal(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, SurfNum) = SunLitFract; // Frames/dividers not allowed

WinTransBmBmSolar = 0.0;
WinTransBmDifSolar = 0.0;
WinTransBmBmSolar(SurfNum) = 0.0;
WinTransBmDifSolar(SurfNum) = 0.0;

InOutProjSLFracMult = SurfaceWindow(SurfNum).InOutProjSLFracMult(state.dataGlobal->HourOfDay);
if (SunlitFracWithoutReveal(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, SurfNum) > 0.0) {
Expand Down Expand Up @@ -6795,51 +6789,32 @@ namespace SolarShading {
SkySolarInc = SurfSkySolarInc(SurfNum);
GndSolarInc = SurfGndSolarInc(SurfNum);

if (SurfWinWindowModelType(SurfNum) != WindowBSDFModel &&
SurfWinWindowModelType(SurfNum) != WindowEQLModel) { // Regular window

DiffTrans = state.dataConstruction->Construct(ConstrNum).TransDiff;
if (DifSolarRad != 0.0) {
DSZoneWin = (SkySolarInc * DiffTrans * Surface(SurfNum).Area) / (DifSolarRad);
} else {
DSZoneWin = (SkySolarInc * DiffTrans * Surface(SurfNum).Area) / (1.e-8);
}
if (GndSolarRad != 0.0) {
DGZoneWin = (GndSolarInc * DiffTrans * Surface(SurfNum).Area) / (GndSolarRad);
} else {
DGZoneWin = (GndSolarInc * DiffTrans * Surface(SurfNum).Area) / (1.e-8);
}
} else if (SurfWinOriginalClass(SurfNum) == SurfaceClass_TDD_Diffuser) {
// Special calculations for DiffTrans, DSZoneWin and DGZoneWin if daylighting diffusers or shelves are present. TODO: Move this out of branch.
if (SurfWinOriginalClass(SurfNum) == SurfaceClass_TDD_Diffuser) {
DiffTrans = TransTDD(state, PipeNum, CosInc, SolarAniso);

DSZoneWin = AnisoSkyMult(SurfNum2) * DiffTrans * Surface(SurfNum).Area;
DGZoneWin = Surface(SurfNum2).ViewFactorGround * TDDPipe(PipeNum).TransSolIso * Surface(SurfNum).Area;

} else if (Surface(SurfNum).Class == SurfaceClass_TDD_Dome) {
DiffTrans = state.dataConstruction->Construct(ConstrNum).TransDiff;

DSZoneWin = 0.0; // Solar not added by TDD:DOME; added to zone via TDD:DIFFUSER
DGZoneWin = 0.0; // Solar not added by TDD:DOME; added to zone via TDD:DIFFUSER

} else if (OutShelfSurf > 0) { // Outside daylighting shelf
DiffTrans = state.dataConstruction->Construct(ConstrNum).TransDiff;

DSZoneWin = AnisoSkyMult(SurfNum) * DiffTrans * Surface(SurfNum).Area;

ShelfSolarRad = (BeamSolarRad * SunlitFrac(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, OutShelfSurf) * CosIncAng(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, OutShelfSurf) +
DifSolarRad * AnisoSkyMult(OutShelfSurf)) *
Shelf(ShelfNum).OutReflectSol;

// Add all reflected solar from the outside shelf to the ground solar
// NOTE: If the shelf blocks part of the view to the ground, the user must reduce the ground view factor!!

// In order to get the effect of the daylighting shelf in here, must take into account the fact that this
// is ultimately multiplied by GndSolarRad to get QD and QDV in InitSolarHeatGains.
// DGZoneWin = (GndVF*Trans*Area*GndSolarRad + ShelfVF*Trans*Area*ShelfSolarRad) / GndSolarRad
if (GndSolarRad != 0.0) {
DGZoneWin = (Surface(SurfNum).ViewFactorGround * DiffTrans * Surface(SurfNum).Area * GndSolarRad +
Shelf(ShelfNum).ViewFactor * DiffTrans * Surface(SurfNum).Area * ShelfSolarRad) /
GndSolarRad;
Shelf(ShelfNum).ViewFactor * DiffTrans * Surface(SurfNum).Area * ShelfSolarRad) / GndSolarRad;
} else {
DGZoneWin = 0.0;
}
Expand Down Expand Up @@ -6894,11 +6869,8 @@ namespace SolarShading {
TBmDif = 0.0;
NomDiffTrans = 0.0;
}

} else if (SurfWinWindowModelType(SurfNum) == WindowEQLModel) {

} else { // Regular or EQLModel window
DiffTrans = state.dataConstruction->Construct(ConstrNum).TransDiff;

if (DifSolarRad != 0.0) {
DSZoneWin = (SkySolarInc * DiffTrans * Surface(SurfNum).Area) / (DifSolarRad);
} else {
Expand Down Expand Up @@ -7229,15 +7201,15 @@ namespace SolarShading {
WinTransBmSolar(SurfNum) = (TBmBm + TBmDif) * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;

// added TH 12/9/2009
WinTransBmBmSolar = TBmBm * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmDifSolar = TBmDif * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmBmSolar(SurfNum) = TBmBm * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmDifSolar(SurfNum) = TBmDif * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2

} else {
WinTransBmSolar(SurfNum) = TBmAllShBlSc * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;

// added TH 12/9/2009
WinTransBmBmSolar = TBmBmShBlSc * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;
WinTransBmDifSolar = TBmDifShBlSc * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;
WinTransBmBmSolar(SurfNum) = TBmBmShBlSc * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;
WinTransBmDifSolar(SurfNum) = TBmDifShBlSc * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;
}

// Add diffuse transmitted by window from beam reflected from outside reveal
Expand All @@ -7248,21 +7220,21 @@ namespace SolarShading {
WinTransBmSolar(SurfNum) = (TBmBm + TBmDif) * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;

// added TH 12/9/2009
WinTransBmBmSolar = TBmBm * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmDifSolar = TBmDif * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmBmSolar(SurfNum) = TBmBm * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmDifSolar(SurfNum) = TBmDif * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult; // m2
WinTransBmSolar(SurfNum) += SurfWinOutsRevealDiffOntoGlazing(SurfNum) * NomDiffTrans * Surface(SurfNum).Area;

WinTransBmDifSolar += SurfWinOutsRevealDiffOntoGlazing(SurfNum) * NomDiffTrans * Surface(SurfNum).Area;
} else {
WinTransBmSolar(SurfNum) = 0.0;
WinTransBmDifSolar = 0.0;
WinTransBmDifSolar(SurfNum) = 0.0;
}
} else { // Regular window
// this is also valid for equivalent layer window
WinTransBmSolar(SurfNum) += SurfWinOutsRevealDiffOntoGlazing(SurfNum) * DiffTrans * Surface(SurfNum).Area;

// added TH 12/9/2009
WinTransBmDifSolar += SurfWinOutsRevealDiffOntoGlazing(SurfNum) * DiffTrans * Surface(SurfNum).Area;
WinTransBmDifSolar(SurfNum) += SurfWinOutsRevealDiffOntoGlazing(SurfNum) * DiffTrans * Surface(SurfNum).Area;
}

// Increment factor for total exterior beam solar entering zone through window as beam or diffuse
Expand Down Expand Up @@ -8118,7 +8090,6 @@ namespace SolarShading {
} // End of check on complex vs. simple interior solar distribution

} // End of sunlit fraction > 0 test

} // End of first loop over surfaces in zone

BABSZoneSSG = 0.0;
Expand Down Expand Up @@ -8186,6 +8157,7 @@ namespace SolarShading {
if (SurfWinOriginalClass(SurfNum) == SurfaceClass_TDD_Diffuser) {
PipeNum = SurfWinTDDPipeNum(SurfNum);
SurfNum2 = TDDPipe(PipeNum).Dome;
CosInc = CosIncAng(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, SurfNum2);

DifSolarInc = DifSolarRad * AnisoSkyMult(SurfNum2) + GndSolarRad * Surface(SurfNum2).ViewFactorGround;

Expand Down Expand Up @@ -8248,14 +8220,12 @@ namespace SolarShading {
}

// added TH 12/9/2009, CR 7907 & 7809
SurfWinBmBmSolar(SurfNum) = BeamSolarRad * WinTransBmBmSolar;
SurfWinBmBmSolar(SurfNum) = BeamSolarRad * WinTransBmBmSolar(SurfNum);

SurfWinBmDifSolar(SurfNum) = BeamSolarRad * WinTransBmDifSolar;
SurfWinBmDifSolar(SurfNum) = BeamSolarRad * WinTransBmDifSolar(SurfNum);
SurfWinBmBmSolarEnergy(SurfNum) = SurfWinBmBmSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
SurfWinBmDifSolarEnergy(SurfNum) = SurfWinBmDifSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;

SurfWinDirSolTransAtIncAngle(SurfNum) = TBmBm + TBmDif; // For TDD:DIFFUSER this is the TDD transmittance

// Solar not added by TDD:DOME; added to zone via TDD:DIFFUSER
if (Surface(SurfNum).Class != SurfaceClass_TDD_Dome) {
ZoneTransSolar(enclosureNum) += SurfWinTransSolar(SurfNum); //[W]
Expand Down

5 comments on commit 86c0afe

@nrel-bot-3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global_dataGlobals_3_again (mitchute) - x86_64-MacOS-10.15-clang-11.0.0: OK (2994 of 2994 tests passed, 11 test warnings)

Messages:\n

  • 11 tests had: AUD diffs.

Build Badge Test Badge

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global_dataGlobals_3_again (mitchute) - x86_64-Linux-Ubuntu-18.04-gcc-7.5: OK (3034 of 3034 tests passed, 14 test warnings)

Messages:\n

  • 14 tests had: AUD diffs.

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global_dataGlobals_3_again (mitchute) - x86_64-Linux-Ubuntu-18.04-gcc-7.5-UnitTestsCoverage-Debug: OK (1558 of 1558 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global_dataGlobals_3_again (mitchute) - x86_64-Linux-Ubuntu-18.04-gcc-7.5-IntegrationCoverage-Debug: OK (721 of 722 tests passed, 0 test warnings)

Failures:\n

integration Test Summary

  • Passed: 721
  • Timeout: 1

Build Badge Test Badge Coverage Badge

@nrel-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global_dataGlobals_3_again (mitchute) - Win64-Windows-10-VisualStudio-16: OK (2249 of 2250 tests passed, 0 test warnings)

Failures:\n

integration Test Summary

  • Passed: 718
  • Failed: 1

Build Badge Test Badge

Please sign in to comment.