-
Notifications
You must be signed in to change notification settings - Fork 392
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
Add plant worker function to get current equipment capacity #10804
base: develop
Are you sure you want to change the base?
Conversation
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.
Walk thru
@@ -6474,6 +6474,81 @@ namespace CondenserLoopTowers { | |||
} | |||
} | |||
|
|||
Real64 CoolingTower::getDynamicMaxCapacity(EnergyPlusData &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.
Tower calculations for current maximum capacity
if (this->compPtr == NULL) return this->MaxLoad; | ||
Real64 possibleLoad = this->compPtr->getDynamicMaxCapacity(state); | ||
return (possibleLoad == 0) ? this->MaxLoad : possibleLoad; | ||
} |
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.
This function will call the virtual function in PlantComponent.hh if a model does not have the override function (if that equipment's maximum capacity does not change this function is not needed) or will call the override function in the equipment model. If this function does not exist in an equipment model the virtual function will return 0 and MaxLoad will be used just as it is now. Otherwise the equipment model will return the current max capacity and that value will be used instead.
virtual Real64 getDynamicMaxCapacity([[maybe_unused]] EnergyPlusData &state) | ||
{ | ||
return 0.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.
Virtual function returns 0 if equipment model does not have an override function.
@@ -107,7 +107,7 @@ using HVAC::SmallLoad; | |||
|
|||
void ManagePlantLoadDistribution(EnergyPlusData &state, | |||
PlantLocation const &plantLoc, // PlantLoop data structure Location struct | |||
Real64 &LoopDemand, | |||
Real64 const LoopDemand, |
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.
CppCheck suggestion
@@ -3673,7 +3673,7 @@ void FindCompSPLoad(EnergyPlusData &state, | |||
|
|||
// load local variables from the data structures | |||
CompMinLoad = this_component.MinLoad; | |||
CompMaxLoad = this_component.MaxLoad; | |||
CompMaxLoad = this_component.getDynamicMaxCapacity(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.
Down at line 3763 is code that will cap MyLoad if the component design capacity cannot meet the load. Calling this function provides a more accurate full load capacity for use in plant manager calculations.
// Check bounds on MyLoad
if (std::abs(this_component.MyLoad) > CompMaxLoad) {
this_component.MyLoad = sign(CompMaxLoad, this_component.MyLoad);
}
Pull request overview
NOTE: ENHANCEMENTS MUST FOLLOW A SUBMISSION PROCESS INCLUDING A FEATURE PROPOSAL AND DESIGN DOCUMENT PRIOR TO SUBMITTING CODE
Pull Request Author
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Reviewer
This will not be exhaustively relevant to every PR.