-
Notifications
You must be signed in to change notification settings - Fork 448
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. |
|
|
|
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. |
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. |
Pull request overview
EvaporativeFluidCooler:SingleSpeed
andEvaporativeFluidCooler:TwoSpeed
update the following input fields:Testfile status (with this branch)
Pull Request Author
Reviewer