-
Notifications
You must be signed in to change notification settings - Fork 396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Window Heat Transfer and Solar Out Window output reporting #10444
Changes from 7 commits
b99e5eb
c7220b3
ffb75ff
9c21393
ca72a10
5afec37
11c924a
cad0ad2
080f45a
5dec1e7
a4e42cb
60cc28b
b376b3e
0a4559f
7195ea8
01c1ae5
483dbcb
f3c55b3
363c1d9
1713f2d
1d8183e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8100,26 +8100,24 @@ void CalcHeatBalanceInsideSurf2(EnergyPlusData &state, | |
|
||
Real64 const Sigma_Temp_4(Constant::StefanBoltzmann * pow_4(state.dataHeatBalSurf->SurfTempIn(SurfNum) + Constant::Kelvin)); | ||
|
||
// Calculate window heat gain for TDD:DIFFUSER since this calculation is usually done in WindowManager | ||
state.dataSurface->SurfWinHeatGain(SurfNum) = | ||
state.dataSurface->SurfWinTransSolar(SurfNum) + | ||
HConvIn_surf * surface.Area * (state.dataHeatBalSurf->SurfTempIn(SurfNum) - state.dataHeatBalSurfMgr->RefAirTemp(SurfNum)) + | ||
state.dataConstruction->Construct(surface.Construction).InsideAbsorpThermal * surface.Area * | ||
(Sigma_Temp_4 - | ||
(state.dataSurface->SurfWinIRfromParentZone(SurfNum) + state.dataHeatBalSurf->SurfQdotRadHVACInPerArea(SurfNum))) - | ||
state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * surface.Area * | ||
state.dataConstruction->Construct(surface.Construction).TransDiff; | ||
// Transmitted solar | Convection | IR exchange | IR | ||
// Zone diffuse interior shortwave reflected back into the TDD | ||
|
||
// fill out report vars for components of Window Heat Gain | ||
state.dataSurface->SurfWinGainConvGlazToZoneRep(SurfNum) = | ||
HConvIn_surf * surface.Area * (state.dataHeatBalSurf->SurfTempIn(SurfNum) - state.dataHeatBalSurfMgr->RefAirTemp(SurfNum)); | ||
state.dataSurface->SurfWinGainIRGlazToZoneRep(SurfNum) = | ||
state.dataConstruction->Construct(surface.Construction).InsideAbsorpThermal * surface.Area * | ||
(Sigma_Temp_4 - (state.dataSurface->SurfWinIRfromParentZone(SurfNum) + state.dataHeatBalSurf->SurfQdotRadHVACInPerArea(SurfNum))); | ||
state.dataSurface->SurfWinLossSWZoneToOutWinRep(SurfNum) = state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * surface.Area * | ||
state.dataConstruction->Construct(surface.Construction).TransDiff; | ||
state.dataSurface->SurfWinLossSWZoneToOutWinRep(SurfNum) = | ||
state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * surface.Area * | ||
(1 - state.dataConstruction->Construct(surface.Construction).ReflectSolDiffBack); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here and below, calcs just for TDD:Diffuser. Switch this component to use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't part of (1-ReflectSolDiffBack) absorbed by the window on the way out? and therefore doesn't make it out? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Yes, some is absorbed. If your boundary volume is the inside face, then (1-Reflected) has already made it out. If some gets absorbed, then that's accounted for in the convective/radiative exchange for the glass. |
||
|
||
// Calculate window heat gain for TDD:DIFFUSER since this calculation is usually done in WindowManager | ||
state.dataSurface->SurfWinHeatGain(SurfNum) = | ||
state.dataSurface->SurfWinTransSolar(SurfNum) + state.dataSurface->SurfWinGainConvGlazToZoneRep(SurfNum) + | ||
state.dataSurface->SurfWinGainIRGlazToZoneRep(SurfNum) - state.dataSurface->SurfWinLossSWZoneToOutWinRep(SurfNum) - | ||
surface.Area * state.dataHeatBalSurf->SurfWinInitialDifSolInTrans(SurfNum); | ||
Comment on lines
+8117
to
+8120
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Calculate |
||
// Net ransmitted solar | Convection | IR exchange | IR | ||
// Zone diffuse interior shortwave reflected back into the TDD | ||
|
||
} else { // Regular window | ||
if (state.dataHeatBal->InsideSurfIterations == 0) { // Do windows only once | ||
// Get outside convection coeff for exterior window here to avoid calling | ||
|
@@ -8788,19 +8786,6 @@ void CalcHeatBalanceInsideSurf2CTFOnly(EnergyPlusData &state, | |
state.dataHeatBalSurf->SurfTempIn(surfNum) = state.dataHeatBalSurf->SurfTempInTmp(surfNum); | ||
Real64 const Sigma_Temp_4(Constant::StefanBoltzmann * pow_4(state.dataHeatBalSurf->SurfTempIn(surfNum) + Constant::Kelvin)); | ||
|
||
// Calculate window heat gain for TDD:DIFFUSER since this calculation is usually done in WindowManager | ||
state.dataSurface->SurfWinHeatGain(surfNum) = | ||
state.dataSurface->SurfWinTransSolar(surfNum) + | ||
HConvIn_surf * surface.Area * | ||
(state.dataHeatBalSurf->SurfTempIn(surfNum) - state.dataHeatBalSurfMgr->RefAirTemp(surfNum)) + | ||
state.dataConstruction->Construct(surface.Construction).InsideAbsorpThermal * surface.Area * | ||
(Sigma_Temp_4 - | ||
(state.dataSurface->SurfWinIRfromParentZone(surfNum) + state.dataHeatBalSurf->SurfQdotRadHVACInPerArea(surfNum))) - | ||
state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * surface.Area * | ||
state.dataConstruction->Construct(surface.Construction) | ||
.TransDiff; // Transmitted solar | Convection | IR exchange | IR | ||
// Zone diffuse interior shortwave reflected back into the TDD | ||
|
||
// fill out report vars for components of Window Heat Gain | ||
state.dataSurface->SurfWinGainConvGlazToZoneRep(surfNum) = | ||
HConvIn_surf * surface.Area * | ||
|
@@ -8809,9 +8794,17 @@ void CalcHeatBalanceInsideSurf2CTFOnly(EnergyPlusData &state, | |
state.dataConstruction->Construct(surface.Construction).InsideAbsorpThermal * surface.Area * | ||
(Sigma_Temp_4 - | ||
(state.dataSurface->SurfWinIRfromParentZone(surfNum) + state.dataHeatBalSurf->SurfQdotRadHVACInPerArea(surfNum))); | ||
state.dataSurface->SurfWinLossSWZoneToOutWinRep(surfNum) = state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * | ||
surface.Area * | ||
state.dataConstruction->Construct(surface.Construction).TransDiff; | ||
state.dataSurface->SurfWinLossSWZoneToOutWinRep(surfNum) = | ||
state.dataHeatBal->EnclSolQSWRad(surface.SolarEnclIndex) * surface.Area * | ||
(1 - state.dataConstruction->Construct(surface.Construction).ReflectSolDiffBack); | ||
|
||
// Calculate window heat gain for TDD:DIFFUSER since this calculation is usually done in WindowManager | ||
state.dataSurface->SurfWinHeatGain(surfNum) = | ||
state.dataSurface->SurfWinTransSolar(surfNum) + state.dataSurface->SurfWinGainConvGlazToZoneRep(surfNum) + | ||
state.dataSurface->SurfWinGainIRGlazToZoneRep(surfNum) - state.dataSurface->SurfWinLossSWZoneToOutWinRep(surfNum) - | ||
surface.Area * state.dataHeatBalSurf->SurfWinInitialDifSolInTrans(surfNum); | ||
// Net ransmitted solar | Convection | IR exchange | IR | ||
// Zone diffuse interior shortwave reflected back into the TDD | ||
} else { // Regular window | ||
if (state.dataHeatBal->InsideSurfIterations == 0) { // Do windows only once | ||
// Get outside convection coeff for exterior window here to avoid calling | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move this down, because all of the components are being calculated twice.