-
Notifications
You must be signed in to change notification settings - Fork 460
Fix Evaporative Fluid Cooler Table Reports and Add Design Entering Temperature Defaults #11043
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
Conversation
|
|
@mjwitte @Myoldmopar it has been 28 days since this pull request was last updated. |
|
@mjwitte @Myoldmopar it has been 34 days since this pull request was last updated. |
|
|
|
mjwitte
left a comment
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.
Code walkthru
| Real64 tmpHighSpeedAirFlowRate = this->HighSpeedAirFlowRate; | ||
|
|
||
| int PltSizCondNum = state.dataPlnt->PlantLoop(this->plantLoc.loopNum).PlantSizNum; | ||
| if (PltSizCondNum > 0) { |
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.
Get relevant values from sizing:plant if present.
| bool LowSpeedEvapFluidCoolerUAWasAutoSized = false; // true if low speed UA set to autosize on input | ||
| Real64 LowSpeedEvapFluidCoolerUASizingFactor = 0.0; // sizing factor for low speed UA [] | ||
| Real64 DesignEnteringWaterTemp = 0.0; // Entering water temperature at design conditions | ||
| Real64 DesignExitWaterTemp = -999; // Leaving water temperature at design conditions [C] |
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.
Add this to the struct
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.
Is that a new glycol limit?
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.
Changed to DataSizing::AutoSize
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.
Changed to
DataSizing::AutoSize
Oh, but it's not supposed to be that. -999 was a lazy way to track if it was set along the way. I guess I'll keep it this way for now and make a todo for later.
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.
No need for a ToDo unless that would cover all places that use this method. See ReportCoilSelection for a slew of these real values, e.g., -999.0
| DesignEnteringAirWetBulb = this->DesignEnteringAirWetBulbTemp; | ||
| } | ||
| if (state.dataSize->PlantSizData(PltSizCondNum).ExitTemp <= DesignEnteringAirWetBulb) { | ||
| if (this->DesignExitWaterTemp <= DesignEnteringAirWetBulb) { |
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.
Use this->DesignExitWaterTemp throughout.
| this->DesignEnteringWaterTemp = this->inletConds.WaterTemp; | ||
| this->inletConds.AirTemp = 35.0; // 95F design inlet air dry-bulb temp | ||
| this->inletConds.AirWetBulb = 25.6; // 78F design inlet air wet-bulb temp | ||
| this->DesignEnteringAirWetBulbTemp = this->inletConds.AirWetBulb; |
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.
Set this->DesignEnteringAirWetBulbTemp in all sizing options so it can be reported.
| Real64 OutWaterTemp; // outlet water temperature [C] | ||
| this->SimSimpleEvapFluidCooler(state, par1, par2, UA, OutWaterTemp); | ||
| Real64 const CoolingOutput = Cp * par1 * (this->inletConds.WaterTemp - OutWaterTemp); | ||
| this->SimSimpleEvapFluidCooler(state, par1, par2, UA, this->DesignExitWaterTemp); |
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.
Set this->DesignExitWaterTemp in all sizing options so it can be reported.
| // create predefined report | ||
| std::string equipName = this->Name; | ||
| OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchMechType, equipName, this->EvapFluidCoolerType); | ||
| OutputReportPredefined::PreDefTableEntry(state, |
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.
Add a bunch of missing table outputs.
|
|
Diffs as expected: |
|
@rraustad Would appreciate your review here, especially for the new IDD defaults. |
| this->DesignExitWaterTemp = state.dataSize->PlantSizData(PltSizCondNum).ExitTemp; | ||
| if (this->DesignEnteringWaterTemp == DataSizing::AutoSize) { | ||
| this->DesignEnteringWaterTemp = | ||
| state.dataSize->PlantSizData(PltSizCondNum).ExitTemp + state.dataSize->PlantSizData(PltSizCondNum).DeltaT; |
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.
Documentation above says The design entering water temperature must be greater than the design entering air temperature. Does that need to be checked when autosizing? I do see at line 1381 where exit water temp must be greater than entering air WB so maybe that is sufficient when autosizing. getInput does this:
if (thisEFC.DesignEnteringWaterTemp <= thisEFC.DesignEnteringAirWetBulbTemp) {
ShowSevereError(state,
format("{} = \"{}\", {} must be greater than {}.",
state.dataIPShortCut->cCurrentModuleObject,
AlphArray(1),
state.dataIPShortCut->cNumericFieldNames(9),
state.dataIPShortCut->cNumericFieldNames(11)));
ErrorsFound = true;
}
if (thisEFC.DesignEnteringAirTemp <= thisEFC.DesignEnteringAirWetBulbTemp) {
ShowSevereError(state,
format("{} = \"{}\", {} must be greater than {}.",
state.dataIPShortCut->cCurrentModuleObject,
AlphArray(1),
state.dataIPShortCut->cNumericFieldNames(10),
state.dataIPShortCut->cNumericFieldNames(11)));
ErrorsFound = true;
}
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.
Documentation above says
The design entering water temperature must be greater than the design entering air temperature.Does that need to be checked when autosizing? I do see at line 1381 where exit water temp must be greater than entering air WB so maybe that is sufficient when autosizing. getInput does this:
@rraustad Hmm, not sure if this is ok or not. I may make some revisions in a follow-up PR.
@mitchute I've merged in develop. Assuming CI comes back as expected. This can merge.
| N21, \field Design Entering Air Wet-bulb Temperature | ||
| \type real | ||
| \units C | ||
| \default 25.6 |
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.
I think for defaults these are reasonably extreme. The user can adjust as they see fit.
|
Corrections to table reports, as shown in above examples, look much better. |
rraustad
left a comment
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.
Other than any adjustments based on limited comments I think this is ready.
|
|
|
@mitchute CI is all green, diffs as before. Merge at will. |
| \paragraph{Field:Design Entering Water Temperature}\label{fielddesign-entering-water-temperature-1} | ||
|
|
||
| This numeric field contains entering water temperature at nominal conditions in degrees Celsius. The design entering water temperature must be greater than the design entering air temperature. Only used for Performance Input Method = UserSpecifiedDesignCapacity; for other performance input methods this field is ignored. | ||
| This numeric field contains entering water temperature at nominal conditions in degrees Celsius. The design entering water temperature must be greater than the design entering air temperature. Only used for Performance Input Method = UserSpecifiedDesignCapacity; for other performance input methods this field is ignored. This field is autosizable and defaults to autosize (which means it will take the value from the corresponding Sizing:Plant object). |
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.
@mjwitte @mitchute late to the party sorry, I'm reviewing OS SDK PR that integrate this change:
Might be pedantic, but given that Sizing:Plant has Loop Exit Temperature and Delta T as required numeric fields, is autosize the right term, versus autocalculate (so the IDD would be \autocalculatable not \autosizable)
| if (this->DesignEnteringWaterTemp == DataSizing::AutoSize) { | ||
| this->DesignEnteringWaterTemp = | ||
| state.dataSize->PlantSizData(PltSizCondNum).ExitTemp + state.dataSize->PlantSizData(PltSizCondNum).DeltaT; |
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.
I might have missed it, but if Design Entering Water Temperature is really "autosizable", then I would expect a corresponding entry reported to the SQL/EIO, no?
|
I'm testing this out, modifying EvaporativeFluidCooler.idf. I tried to make it Design Entering Water Temperature to Autosize I then proceeded to add a Sizing:Plant object since it's supposed to be reading from it, same error diff --git a/testfiles/EvaporativeFluidCooler.idf b/testfiles/EvaporativeFluidCooler.idf
index 5c1d7742b9..2de554b6d3 100644
--- a/testfiles/EvaporativeFluidCooler.idf
+++ b/testfiles/EvaporativeFluidCooler.idf
@@ -1692,7 +1692,7 @@
, !- Design Air Flow Rate U-factor Times Area Value {W/K}
0.001703, !- Design Water Flow Rate {m3/s}
87921, !- User Specified Design Capacity {W}
- 46.11, !- Design Entering Water Temperature {C}
+ AutoSize, !- Design Entering Water Temperature {C}
35, !- Design Entering Air Temperature {C}
25.6; !- Design Entering Air Wet-bulb Temperature {C}
@@ -1733,6 +1733,13 @@
Heating Demand Side Connectors, !- Demand Side Connector List Name
Optimal; !- Load Distribution Scheme
+
+ Sizing:Plant,
+ Hot Water Loop, !- Plant or Condenser Loop Name
+ Heating, !- Loop Type
+ 56.11, !- Design Loop Exit Temperature {C}
+ 10; !- Loop Design Temperature Difference {deltaC}
+
SetpointManager:Scheduled,
Hot Water Loop Setpoint Manager, !- Name
Temperature, !- Control Variable |








Pull request overview
EvaporativeFluidCooler:SingleSpeedandEvaporativeFluidCooler:TwoSpeedupdate the following input fields:Testfile status (with this branch)
Pull Request Author
Reviewer