Skip to content

Assign HPWH air inlet/outlet node names#5549

Closed
joseph-robertson wants to merge 16 commits into
developfrom
hpwh-air-node-names
Closed

Assign HPWH air inlet/outlet node names#5549
joseph-robertson wants to merge 16 commits into
developfrom
hpwh-air-node-names

Conversation

@joseph-robertson

@joseph-robertson joseph-robertson commented Dec 9, 2025

Copy link
Copy Markdown
Collaborator

Pull request overview

Pull Request Author

  • 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)
  • 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 Dec 9, 2025
@joseph-robertson joseph-robertson added Enhancement Request component - Model Pull Request - Ready for CI This pull request if finalized and is ready for continuous integration verification prior to merge. labels Dec 9, 2025
auto inletNode = modelObject.inletNode();
OS_ASSERT(inletNode);
airInletNodeName = inletNode->name().get();
airInletNodeName = modelObject.airInletNodeName().value_or(inletNode->name().get());

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.

Should the optional air node names only be translated when inletAirConfiguration is "Schedule"? Or should we have rules for when air node names can be set based on current choice of inletAirConfiguration?

@github-actions

github-actions Bot commented Dec 9, 2025

Copy link
Copy Markdown
Contributor

🧪 Test Results Dashboard

Summary

Metric Value
Total Tests 4164
Passed 4145
Failed 19
Errors 0
Skipped 0
Success Rate 99.5%
Generated 2025-12-10 15:58:29 UTC

⚠️ Minor Issues Detected

🔍 Failed Tests (19 failures)

Linux-c++ (19 failures)

EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1 (run1)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2 (run1)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3 (run1)

Error Message:

Failed

Full Details:

No details available
OpenStudioCLI.Classic.test_measure_manager.OpenStudioCLI.Classic.test_measure_manager (run1)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle.CLITest-test_bundle-bundle (run1)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_git.CLITest-test_bundle-bundle_git (run1)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_native_embedded.CLITest-test_bundle-bundle_native_embedded (run1)

Error Message:

Failed

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1 (run3)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2 (run3)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3 (run3)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle.CLITest-test_bundle-bundle (run3)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_git.CLITest-test_bundle-bundle_git (run3)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_native_embedded.CLITest-test_bundle-bundle_native_embedded (run3)

Error Message:

Failed

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser1 (run2)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser2 (run2)

Error Message:

SEGFAULT

Full Details:

No details available
EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3.EnergyPlusFixture.ForwardTranslator_WaterHeaterHeatPumpWrappedCondenser3 (run2)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle.CLITest-test_bundle-bundle (run2)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_git.CLITest-test_bundle-bundle_git (run2)

Error Message:

Failed

Full Details:

No details available
CLITest-test_bundle-bundle_native_embedded.CLITest-test_bundle-bundle_native_embedded (run2)

Error Message:

Failed

Full Details:

No details available

📊 Test Run Information

Run XML File Status
run1 results.xml ✅ Found
run3 results.xml ✅ Found
run2 results.xml ✅ Found

A6 , \field Air Inlet Node Name
\type object-list
\object-list ConnectionNames
\type alpha

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.

Is it possible for these Node Name fields to support either a connection or string? Is that even what we'd want? Or can we get away with just string, along with updates to the forward translator (e.g., modelObject.inletNode() no longer exists).

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.

Or maybe we want to be able to set a Node (i.e., use \object-list Node)?

@ci-commercialbuildings

ci-commercialbuildings commented Dec 10, 2025

Copy link
Copy Markdown
Collaborator

CI Results for 18b9044:

@joseph-robertson

Copy link
Copy Markdown
Collaborator Author

I'm not clear what the path forward should be. Should we:

  • (A) change air inlet/outlet node name fields to \type alpha in the idd
  • (B) implement setters/getters for air inlet/outlet node names
  • (C) replace use of modelObject.inletNode() and modelObject.outletNode() in FT file (because of (A))
  • (D) construct air inlet/outlet node name strings and implement getters inletNodeName and outletNodeName (includes logic from FT file around fan placement and inlet air configuration)
  • (E) construct node name strings and getters for other fields (e.g., outdoor/exhaust air, fan/coil inlet/oulet, etc)

I feel like maybe (D) is what we want? Or some combination of these?

@jmarrec

@jmarrec

jmarrec commented Dec 11, 2025

Copy link
Copy Markdown
Collaborator

I'm not clear what the path forward should be. Should we:

* (A) change air inlet/outlet node name fields to `\type alpha` in the idd

* (B) implement setters/getters for air inlet/outlet node names

* (C) replace use of `modelObject.inletNode()` and `modelObject.outletNode()` in FT file (because of (A))

* (D) construct air inlet/outlet node name strings and implement getters `inletNodeName` and `outletNodeName` (includes logic from FT file around fan placement and inlet air configuration)

* (E) construct node name strings and getters for other fields (e.g., outdoor/exhaust air, fan/coil inlet/oulet, etc)

I feel like maybe (D) is what we want? Or some combination of these?

@jmarrec

I felt like it was easier to show than trying to explain. Please see #5551 for a prototype. I didn't even try to build it, but it should serve as a nice starter. If you and @shorowit can agree on the idea, then you can wrap up the PR by porting some of the tests you added in this PR.

And Yes, that would be (D) in your list

@joseph-robertson

Copy link
Copy Markdown
Collaborator Author

Superseded by #5551

@joseph-robertson joseph-robertson deleted the hpwh-air-node-names branch December 15, 2025 19:15
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Can't assign HPWH air inlet/outlet node names

3 participants