Skip to content
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 #7136 - Clarify which peak the outputs of the coil sizing details are referring to #7397

Merged
merged 4 commits into from
Sep 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/EnergyPlus/DataSizing.hh
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ namespace DataSizing {
extern int const CondenserLoop;
extern int const SteamLoop;

// paramters for sizing
// parameters for sizing
extern int const NonCoincident;
extern int const Coincident;

Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/OutputReportPredefined.cc
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ namespace OutputReportPredefined {
int pdchCoilDateTimeTotIdealPeak;
int pdchCoilDDnameAirFlowIdealPeak;
int pdchCoilDateTimeAirFlowIdealPeak;
int pdchCoilPeakLoadTypeToSizeOn;
int pdchCoilTotalCapIdealPeak;
int pdchCoilSensCapIdealPeak;
int pdchCoilAirMassFlowIdealPeak;
Expand Down Expand Up @@ -1158,6 +1159,7 @@ namespace OutputReportPredefined {
pdchCoilDateTimeTotIdealPeak = 0;
pdchCoilDDnameAirFlowIdealPeak = 0;
pdchCoilDateTimeAirFlowIdealPeak = 0;
pdchCoilPeakLoadTypeToSizeOn = 0;
pdchCoilTotalCapIdealPeak = 0;
pdchCoilSensCapIdealPeak = 0;
pdchCoilAirMassFlowIdealPeak = 0;
Expand Down Expand Up @@ -2072,6 +2074,7 @@ namespace OutputReportPredefined {
pdchCoilDateTimeTotIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Date/Time at Total Ideal Loads Peak");
pdchCoilDDnameAirFlowIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Design Day Name at Air Flow Ideal Loads Peak");
pdchCoilDateTimeAirFlowIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Date/Time at Air Flow Ideal Loads Peak");
pdchCoilPeakLoadTypeToSizeOn = newPreDefColumn(pdstCoilSummaryCoilSelection, "Peak Load Type to Size On");

pdchCoilTotalCapIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Coil Total Capacity at Ideal Loads Peak [W]");
pdchCoilSensCapIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Coil Sensible Capacity at Ideal Loads Peak [W]");
Expand Down
1 change: 1 addition & 0 deletions src/EnergyPlus/OutputReportPredefined.hh
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ namespace OutputReportPredefined {
extern int pdchCoilDateTimeTotIdealPeak;
extern int pdchCoilDDnameAirFlowIdealPeak;
extern int pdchCoilDateTimeAirFlowIdealPeak;
extern int pdchCoilPeakLoadTypeToSizeOn;
extern int pdchCoilTotalCapIdealPeak;
extern int pdchCoilSensCapIdealPeak;
extern int pdchCoilOffRatingCapacityModifierIdealPeak;
Expand Down
46 changes: 33 additions & 13 deletions src/EnergyPlus/ReportCoilSelection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -99,19 +99,19 @@ CoilSelectionData::CoilSelectionData( // constructor
std::string const &coilName)
: isCooling(false), isHeating(false), coilNum(-999), airloopNum(-999), oaControllerNum(-999), zoneEqNum(-999), oASysNum(-999), zoneHVACTypeNum(0),
zoneHVACIndex(0), typeof_Coil(-999), coilSizingMethodConcurrence(-999), coilSizingMethodCapacity(-999), coilSizingMethodAirFlow(-999),
capIsAutosized(false), volFlowIsAutosized(false), coilWaterFlowUser(-999.0), oaPretreated(false), isSupplementalHeater(false),
coilTotCapFinal(-999.0), coilSensCapFinal(-999.0), coilRefAirVolFlowFinal(-999.0), coilRefWaterVolFlowFinal(-999.0), coilTotCapAtPeak(-999.0),
coilSensCapAtPeak(-999.0), coilDesMassFlow(-999.0), coilDesVolFlow(-999.0), coilDesEntTemp(-999.0), coilDesEntWetBulb(-999.0),
coilDesEntHumRat(-999.0), coilDesEntEnth(-999.0), coilDesLvgTemp(-999.0), coilDesLvgWetBulb(-999.0), coilDesLvgHumRat(-999.0),
coilDesLvgEnth(-999.0), coilDesWaterMassFlow(-999.0), coilDesWaterEntTemp(-999.0), coilDesWaterLvgTemp(-999.0), coilDesWaterTempDiff(-999.0),
pltSizNum(-999), waterLoopNum(-999), oaPeakTemp(-999.00), oaPeakHumRat(-999.0), oaPeakWetBulb(-999.0), oaPeakVolFlow(-999.0),
oaPeakVolFrac(-999.0), oaDoaTemp(-999.0), oaDoaHumRat(-999.0), raPeakTemp(-999.0), raPeakHumRat(-999.0), rmPeakTemp(-999.0),
rmPeakHumRat(-999.0), rmPeakRelHum(-999.0), rmSensibleAtPeak(-999.0), rmLatentAtPeak(0.0), coilIdealSizCapOverSimPeakCap(-999.0),
coilIdealSizCapUnderSimPeakCap(-999.0), reheatLoadMult(-999.0), minRatio(-999.0), maxRatio(-999.0), cpMoistAir(-999.0), cpDryAir(-999.0),
rhoStandAir(-999.0), rhoFluid(-999.0), cpFluid(-999.0), coilCapFTIdealPeak(1.0), coilRatedTotCap(-999.0), coilRatedSensCap(-999.0),
ratedAirMassFlow(-999.0), ratedCoilInDb(-999.0), ratedCoilInWb(-999.0), ratedCoilInHumRat(-999.0), ratedCoilInEnth(-999.0),
ratedCoilOutDb(-999.0), ratedCoilOutWb(-999.0), ratedCoilOutHumRat(-999.0), ratedCoilOutEnth(-999.0), ratedCoilEff(-999.0),
ratedCoilBpFactor(-999.0), ratedCoilAppDewPt(-999.0), ratedCoilOadbRef(-999.0), ratedCoilOawbRef(-999.0),
isCoilSizingForTotalLoad(false), capIsAutosized(false), volFlowIsAutosized(false), coilWaterFlowUser(-999.0), oaPretreated(false),
isSupplementalHeater(false), coilTotCapFinal(-999.0), coilSensCapFinal(-999.0), coilRefAirVolFlowFinal(-999.0),
coilRefWaterVolFlowFinal(-999.0), coilTotCapAtPeak(-999.0), coilSensCapAtPeak(-999.0), coilDesMassFlow(-999.0), coilDesVolFlow(-999.0),
coilDesEntTemp(-999.0), coilDesEntWetBulb(-999.0), coilDesEntHumRat(-999.0), coilDesEntEnth(-999.0), coilDesLvgTemp(-999.0),
coilDesLvgWetBulb(-999.0), coilDesLvgHumRat(-999.0), coilDesLvgEnth(-999.0), coilDesWaterMassFlow(-999.0), coilDesWaterEntTemp(-999.0),
coilDesWaterLvgTemp(-999.0), coilDesWaterTempDiff(-999.0), pltSizNum(-999), waterLoopNum(-999), oaPeakTemp(-999.00), oaPeakHumRat(-999.0),
oaPeakWetBulb(-999.0), oaPeakVolFlow(-999.0), oaPeakVolFrac(-999.0), oaDoaTemp(-999.0), oaDoaHumRat(-999.0), raPeakTemp(-999.0),
raPeakHumRat(-999.0), rmPeakTemp(-999.0), rmPeakHumRat(-999.0), rmPeakRelHum(-999.0), rmSensibleAtPeak(-999.0), rmLatentAtPeak(0.0),
coilIdealSizCapOverSimPeakCap(-999.0), coilIdealSizCapUnderSimPeakCap(-999.0), reheatLoadMult(-999.0), minRatio(-999.0), maxRatio(-999.0),
cpMoistAir(-999.0), cpDryAir(-999.0), rhoStandAir(-999.0), rhoFluid(-999.0), cpFluid(-999.0), coilCapFTIdealPeak(1.0), coilRatedTotCap(-999.0),
coilRatedSensCap(-999.0), ratedAirMassFlow(-999.0), ratedCoilInDb(-999.0), ratedCoilInWb(-999.0), ratedCoilInHumRat(-999.0),
ratedCoilInEnth(-999.0), ratedCoilOutDb(-999.0), ratedCoilOutWb(-999.0), ratedCoilOutHumRat(-999.0), ratedCoilOutEnth(-999.0),
ratedCoilEff(-999.0), ratedCoilBpFactor(-999.0), ratedCoilAppDewPt(-999.0), ratedCoilOadbRef(-999.0), ratedCoilOawbRef(-999.0),

supFanModelTypeEnum(DataAirSystems::fanModelTypeNotYetSet), supFanNum(0), supFanVecIndex(-1), fanSizeMaxAirVolumeFlow(-999.0),
fanSizeMaxAirMassFlow(-999.0), fanHeatGainIdealPeak(-999.0), coilAndFanNetTotalCapacityIdealPeak(-999.0), plantDesMaxMassFlowRate(-999.0),
Expand All @@ -131,6 +131,7 @@ CoilSelectionData::CoilSelectionData( // constructor
coilSizingMethodConcurrenceName = "N/A";
coilSizingMethodCapacityName = "N/A";
coilSizingMethodAirFlowName = "N/A";
coilPeakLoadTypeToSizeOnName = "N/A";
coilCapAutoMsg = "unknown";
coilVolFlowAutoMsg = "unknown";
coilWaterFlowAutoMsg = "unknown";
Expand Down Expand Up @@ -212,6 +213,9 @@ void ReportCoilSelection::writeCoilSelectionOutput()
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDateTimeTotIdealPeak, c->coilName_, c->coilTotalPeakHrMin);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDDnameAirFlowIdealPeak, c->coilName_, c->desDayNameAtAirFlowPeak);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDateTimeAirFlowIdealPeak, c->coilName_, c->airPeakHrMin);

OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilPeakLoadTypeToSizeOn, c->coilName_, c->coilPeakLoadTypeToSizeOnName);

OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilTotalCapIdealPeak, c->coilName_, c->coilTotCapAtPeak, 2);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilSensCapIdealPeak, c->coilName_, c->coilSensCapAtPeak, 2);
if (c->coilDesMassFlow == -999.0 || c->coilDesMassFlow == -99999.0) {
Expand Down Expand Up @@ -695,6 +699,12 @@ void ReportCoilSelection::doFinalProcessingOfCoilData()
c->coilSizingMethodAirFlowName = "FractionOfAutosizedHeatingAirflow";
}

if (c->isCoilSizingForTotalLoad) {
c->coilPeakLoadTypeToSizeOnName = "Total";
} else {
c->coilPeakLoadTypeToSizeOnName = "Sensible";
}

if (c->capIsAutosized) {
c->coilCapAutoMsg = "Yes";
} else {
Expand Down Expand Up @@ -1179,6 +1189,12 @@ void ReportCoilSelection::setCoilCoolingCapacity(
getTimeText(DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD));
}

if (DataSizing::FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) {
c->isCoilSizingForTotalLoad = true;
} else {
c->isCoilSizingForTotalLoad = false;
}

c->oaPeakTemp = DataSizing::FinalSysSizing(curSysNum).OutTempAtCoolPeak;
c->oaPeakVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow;
c->oaPeakHumRat = DataSizing::FinalSysSizing(curSysNum).OutHumRatAtCoolPeak;
Expand Down Expand Up @@ -1391,6 +1407,10 @@ void ReportCoilSelection::setCoilHeatingCapacity(
c->coilSizingMethodConcurrence = DataSizing::FinalSysSizing(curSysNum).SizingOption;
c->coilSizingMethodCapacity = DataSizing::FinalSysSizing(curSysNum).HeatingCapMethod;
c->coilSizingMethodAirFlow = DataSizing::FinalSysSizing(curSysNum).ScaleHeatSAFMethod;

// Central Heating Coils are always sized at the conditions at the peak Sensible Heating Load
c->isCoilSizingForTotalLoad = false;

// DesOutAirVolFlow

// loop over heated zones attached to this airloop to find average Room condition, if none heated use cooled zones
Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/ReportCoilSelection.hh
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ public: // data
// 5=FractionOfAutosizedHeatingAirflow, 6=FlowPerCoolingCapacity, 7=FlowPerHeatingCapacity
std::string coilSizingMethodAirFlowName;

bool isCoilSizingForTotalLoad; // Type of peak to size (cooling) coils on: True is TotalCoolingLoad, False is sensible
std::string coilPeakLoadTypeToSizeOnName;

// Real64 coilDesCapUser; // coil capacity original input value [W]; -999 means field not applicable to this coil
bool capIsAutosized; // true if the coil's capacity was autosized
std::string coilCapAutoMsg; // Yes if user cap was autosized, No if hard value entered
Expand Down
14 changes: 14 additions & 0 deletions src/Transition/OutputRulesFiles/OutputChanges9-2-0-to-9-3-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Output Changes
==============

This file documents the structural changes on the output of EnergyPlus that could affect interfaces, etc.

### Description

This will eventually become a more structured file, but currently it isn't clear what format is best. As an intermediate solution, and to allow the form to be formed organically, this plain text file is being used. Entries should be clearly delimited. It isn't expected that there will be but maybe a couple each release at most. Entries should also include some reference back to the repo. At least a PR number or whatever.

### Additional field for Coil Sizing Details:Coils report

A new column "Peak Load Type to Size On" has been added to the `Coil Sizing Details:Coils` report

See [7397](https://github.com/NREL/EnergyPlus/pull/7397)