Skip to content

Fix availability schedules for Coil:Cooling:WaterToAirHeatPump:EquationFit (and Heating) - #11782

Open
joseph-robertson wants to merge 6 commits into
developfrom
wahp-eqnft-avail
Open

Fix availability schedules for Coil:Cooling:WaterToAirHeatPump:EquationFit (and Heating)#11782
joseph-robertson wants to merge 6 commits into
developfrom
wahp-eqnft-avail

Conversation

@joseph-robertson

Copy link
Copy Markdown
Collaborator

Pull request overview

Description of the purpose of this PR

Pull Request Author

  • Title of PR should be user-synopsis style (clearly understandable in a standalone changelog context)
  • Label the PR with at least one of: Defect, Refactoring, NewFeature, Performance, and/or DoNoPublish
  • Pull requests that impact EnergyPlus code must also include unit tests to cover enhancement or defect repair
  • Author should provide a "walkthrough" of relevant code changes using a GitHub code review comment process
  • If any diffs are expected, author must demonstrate they are justified using plots and descriptions
  • If changes fix a defect, the fix should be demonstrated in plots and descriptions
  • If any defect files are updated to a more recent version, upload new versions here or on DevSupport
  • If IDD requires transition, transition source, rules, ExpandObjects, and IDFs must be updated, and add IDDChange label
  • If structural output changes, add to output rules file and add OutputChange label
  • If adding/removing any LaTeX docs or figures, update that document's CMakeLists file dependencies
  • If adding/removing any output files (e.g., eplustbl.*)
    • Update ..\scripts\Epl-run.bat
    • Update ..\scripts\RunEPlus.bat
    • Update ..\src\EPLaunch\ MainModule.bas, epl-ui.frm, and epl.vbp (VersionComments)
    • Update ...github\workflows\energyplus.py

Reviewer

  • Perform a Code Review on GitHub
  • If branch is behind develop, merge develop and build locally to check for side effects of the merge
  • 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
  • Check that performance is not impacted (CI Linux results include performance check)
  • Run Unit Test(s) locally
  • Check any new function arguments for performance impacts
  • Verify IDF naming conventions and styles, memos and notes and defaults
  • If new idf included, locally check the err file and other outputs

@joseph-robertson joseph-robertson self-assigned this Sep 3, 2026
@joseph-robertson joseph-robertson added the Defect Includes code to repair a defect in EnergyPlus label Sep 3, 2026
Comment thread src/EnergyPlus/WaterToAirHeatPumpSimple.cc Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The unitary-system schedule propagation lacks regression coverage.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Ensures water-to-air heat pump coils honor their availability schedules.

Changes:

  • Gates initialization and calculations on schedule availability.
  • Propagates coil schedules into unitary-system control.
  • Adds direct cooling and heating schedule-off tests.
File summaries
File Description
src/EnergyPlus/WaterToAirHeatPumpSimple.cc Enforces availability schedules.
src/EnergyPlus/UnitarySystem.cc Uses underlying coil schedules.
tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc Tests unavailable coil behavior.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +507 to +510
state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).availSched = Sched::GetScheduleAlwaysOff(*state);
InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, fanOp, OnOffAirFlowRatio, FirstHVACIteration, PartLoadRatio);
CalcHPCoolingSimple(*state, HPNum, fanOp, SensLoad, LatentLoad, compressorOp, PartLoadRatio, OnOffAirFlowRatio);
UpdateSimpleWatertoAirHP(*state, HPNum);

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

auto const &thisHeatCoil = state.dataVariableSpeedCoils->VarSpeedCoil(this->m_HeatingCoilIndex);
this->m_NumOfSpeedHeating = thisHeatCoil.NumOfSpeeds;
this->m_heatingCoilAvailSched = Sched::GetScheduleAlwaysOn(state);
this->m_heatingCoilAvailSched = thisHeatCoil.availSched;

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@rraustad These updates (and all similar down below) are legitimate and necessary changes?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@joseph-robertson These changes look correct to me. i.e., do not use the assumed AlwaysOn schedule within UnitarySystem and instead use the coils availSched which will handle a blank field.

@joseph-robertson
joseph-robertson marked this pull request as ready for review September 8, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Defect Includes code to repair a defect in EnergyPlus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Availability schedules are ignored for Coil:Cooling:WaterToAirHeatPump:EquationFit (and Heating)

4 participants