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

Addresses #4183 and #4231, provide OS SDK/API support for the EnergyPlus "CoilSystem:IntegratedHeatPump:AirSource" and "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" objects #4236

Merged
merged 36 commits into from
Mar 25, 2021

Conversation

joseph-robertson
Copy link
Collaborator

@joseph-robertson joseph-robertson commented Mar 8, 2021

Pull request overview

Please read OpenStudio Pull Requests to better understand the OpenStudio Pull Request protocol.

Pull Request Author

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

  • Model API Changes / Additions
  • Any new or modified fields have been implemented in the EnergyPlus ForwardTranslator (and ReverseTranslator as appropriate)
  • Model API methods are tested (in src/model/test)
  • EnergyPlus ForwardTranslator Tests (in src/energyplus/Test)
  • If a new object or method, added a test in NREL/OpenStudio-resources: Add Link
  • If needed, added VersionTranslation rules for the objects (src/osversion/VersionTranslator.cpp)
  • Checked behavior in OpenStudioApplication, adjusted policies as needed (src/openstudio_lib/library/OpenStudioPolicy.xml)
  • Verified that C# bindings built fine on Windows, partial classes used as needed, etc.
  • All new and existing tests passes
  • If methods have been deprecated, update rest of code to use the new methods

Labels:

  • If change to an IDD file, add the label IDDChange
  • If breaking existing API, add the label APIChange
  • If deemed ready, add label Pull Request - Ready for CI so that CI builds your PR

Review Checklist

This will not be exhaustively relevant to every PR.

  • Perform a Code Review on GitHub
  • Code Style, strip trailing whitespace, etc.
  • All related changes have been implemented: model changes, model tests, FT changes, FT tests, VersionTranslation, OS App
  • Labeling is ok
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified

@joseph-robertson joseph-robertson self-assigned this Mar 8, 2021
@joseph-robertson joseph-robertson changed the title Addresses #4183, provide OS SDK/API support for the EnergyPlus "CoilSystem:IntegratedHeatPump:AirSource" object Addresses #4183, provide OS SDK/API support for the EnergyPlus "CoilSystem:IntegratedHeatPump:AirSource" and "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" objects Mar 9, 2021
@joseph-robertson joseph-robertson changed the title Addresses #4183, provide OS SDK/API support for the EnergyPlus "CoilSystem:IntegratedHeatPump:AirSource" and "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" objects Addresses #4183 and #4231, provide OS SDK/API support for the EnergyPlus "CoilSystem:IntegratedHeatPump:AirSource" and "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" objects Mar 9, 2021
@joseph-robertson joseph-robertson added the Pull Request - Ready for CI This pull request if finalized and is ready for continuous integration verification prior to merge. label Mar 9, 2021
…g the test

Remove() test was failing, because the childrne coils Speed Data Lists aren't deleted: They aren't listed as children of the coils... and ParentObject::remove will removed them without explicitly calling the Coil::remove method.

**This is not specific to this object**. I will file a separate issue: #4241
@@ -33232,6 +33232,7 @@ Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed,
\note heating COP curves. This input determines whether
\note the inlet air dry-bulb or wet-bulb temperature is used to evaluate these curves.
A10, \field Part Load Fraction Correlation Curve Name
\required-field
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\required-field
\type object-list
\object-list CoolingCoilsDXVariableSpeed
\note Must match the name used in the corresponding Coil:Cooling:DX:VariableSpeed object.
A4, \field Space Heating Coil Name
A4, \field Space Heating Coil Name
\required-field
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\type object-list
\object-list HeatingCoilsDXVariableSpeed
\note Must match the name used in the corresponding Coil:Heating:DX:VariableSpeed object.
A5, \field Dedicated Water Heating Coil Name
A5, \field Dedicated Water Heating Coil Name
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 16876 to 16877
A8, \field Dedicated Water Heating Coil
\type object-list
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A8, \field Dedicated Water Heating Coil
\type object-list
A8, \field Dedicated Water Heating Coil
\required-field
\type object-list

As commented above in the E+ IDD, I think all coils are actually required per the getinput routine https://github.com/NREL/EnergyPlus/blob/93421b9a9d4eb1656e7fa123ded715504d107051/src/EnergyPlus/IntegratedHeatPump.cc#L1215-L1231

\required-field
\note Condenser inlet water temperature corresponding to rated coil performance
\note (heating capacity, COP and SHR).
N6, \field Rated Evaporator Air Flow Rate
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd have made this one and the other autocalculatable fields \required-field. But your API is correct at least

    boost::optional<double> ratedEvaporatorAirFlowRate() const;

    bool isRatedEvaporatorAirFlowRateAutocalculated() const;

    bool setRatedEvaporatorAirFlowRate(double ratedEvaporatorAirFlowRate);

    void autocalculateRatedEvaporatorAirFlowRate();

Copy link
Collaborator

@jmarrec jmarrec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost perfect, great job Joe! Couple of minor changes requested (I'll make some of them and clean up my review comments), and a bit more testing would be nice.

@jmarrec jmarrec self-requested a review March 24, 2021 10:47
Copy link
Collaborator

@jmarrec jmarrec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joseph-robertson I made all changes I wanted to see. Please review to make sure I didn't miss anything or did something stupid. Tested that the OS-res test still passes (NREL/OpenStudio-resources#136)

@joseph-robertson
Copy link
Collaborator Author

@jmarrec, great review. And thanks for punching out all of the items, and for checking the test on OS-res.

@jmarrec jmarrec added the Ready for Merge Set this once CI is passing and reviews are approved. label Mar 24, 2021
@kbenne kbenne merged commit 787446a into develop Mar 25, 2021
@kbenne kbenne deleted the issue-4183 branch March 25, 2021 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component - Model Enhancement Request Pull Request - Ready for CI This pull request if finalized and is ready for continuous integration verification prior to merge. Ready for Merge Set this once CI is passing and reviews are approved.
Projects
None yet
4 participants