Skip to content

Fix parallel PIU leakage being added at the wrong return mixer inlet - #11888

Merged
mitchute merged 1 commit into
developfrom
parallel-piu-mixer-leakage
Oct 29, 2026
Merged

mitchute merged 1 commit into
developfrom
parallel-piu-mixer-leakage

Conversation

@mitchute

Copy link
Copy Markdown
Collaborator

Pull request overview

  • Fixes scenario where parallel PIU's with backdraft damper leakage and an AirLoopHVAC:ZoneMixer on the return path don't conserve mass from across the air loop.

Description of the purpose of this PR

CalcAirMixer decides whether a return path AirLoopHVAC:ZoneMixer should add a parallel PIU's backdraft damper leakage. The check compared ZoneEquipConfig(z).ReturnNodeAirLoopNum(r), which is an air loop number, with InletNodeNum, which is the mixer's inlet index. In a single-loop model, air loop 1 matches inlet 1 of every return mixer. So the leakage was added even when the leaky zone does not return to that mixer, for example when it returns through a AirLoopHVAC:ReturnPlenum that has already added the leakage.

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

@mitchute mitchute self-assigned this Oct 27, 2026
@mitchute mitchute added the Defect Includes code to repair a defect in EnergyPlus label Oct 27, 2026
@mitchute

Copy link
Copy Markdown
Collaborator Author

Testfile: PIULeakReturnMixer.idf.txt

Develop
visualization

This branch
visualization (1)

@mitchute

Copy link
Copy Markdown
Collaborator Author

No diffs expected, or seen locally. We don't currently have a file in our examples that cover this.

File Parallel PIUs Leakage curve set Air loops Return path
5ZoneWarmestParallelPIULeak.idf 1 yes 1 ReturnPlenum only
5ZoneAirCooledConvCoef.idf 2 no 1 ReturnPlenum only
5ZoneAirCooledConvCoef_VSFan.idf 2 no 1 ReturnPlenum only
PIUAuto.idf 1 no 1 ZoneMixer
Standard621SimplifiedProcedure_PIUterminal.idf 1 no 1 ZoneMixer

state.dataZoneEquip->ZoneEquipConfig(airDistUnitZoneNum).ReturnNodeAirLoopNum(retZoneAirNodeNum);
retZoneAirNode == InletNodeNum) {
state.dataZoneEquip->ZoneEquipConfig(airDistUnitZoneNum).ReturnNode(retZoneAirNodeNum);
retZoneAirNode == mixer.InletNode(InletNodeNum)) {

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.

This does look better now.

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.

Thanks @rraustad.

@mitchute mitchute added the Staged By adding the "Staged" label, some expensive checks needed before merge are run. label Oct 29, 2026
@mitchute
mitchute merged commit 00f92f8 into develop Oct 29, 2026
16 checks passed
@mitchute
mitchute deleted the parallel-piu-mixer-leakage branch October 29, 2026 04:49
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 Staged By adding the "Staged" label, some expensive checks needed before merge are run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants