Add plant worker function to get current equipment capacity#10804
Add plant worker function to get current equipment capacity#10804Myoldmopar merged 4 commits intodevelopfrom
Conversation
| } | ||
| } | ||
|
|
||
| Real64 CoolingTower::getDynamicMaxCapacity(EnergyPlusData &state) |
There was a problem hiding this comment.
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.
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.
Virtual function returns 0 if equipment model does not have an override function.
| void ManagePlantLoadDistribution(EnergyPlusData &state, | ||
| PlantLocation const &plantLoc, // PlantLoop data structure Location struct | ||
| Real64 &LoopDemand, | ||
| Real64 const LoopDemand, |
There was a problem hiding this comment.
CppCheck suggestion
| // 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.
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);
}
|
@rraustad it has been 16 days since this pull request was last updated. |
|
@rraustad it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @rraustad it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @rraustad it has been 9 days since this pull request was last updated. |
|
@Myoldmopar @rraustad it has been 7 days since this pull request was last updated. |
1 similar comment
|
@Myoldmopar @rraustad it has been 7 days since this pull request was last updated. |
|
I think this will be ready to go now. I pulled in develop and it required one fluid line to be updated to the new fluid API. If it's all happy, I'll get this in. |
|
Good to go, thanks @rraustad |

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.