Skip to content

Conversation

@RKStrand
Copy link
Contributor

@RKStrand RKStrand commented Jun 27, 2025

Pull request overview

Description of the purpose of this PR

Several output variables that were listed in the Input/Output Reference relating to zone and surface opaque conduction values were not actually set up to allow them to be produced. A full review of these variables revealed that there were additional variables that were neither set-up for reporting in the code nor mentioned in the Input/Output Reference but were defined and calculated within the code for reporting purposes. In addition, there was some naming inconsistencies noted in these variables as well. Changes include making all variables that were set-up for reporting available by adding code to allow this, correcting and enhancing the Input/Output Reference for these variables, providing variable name change rules for four variables where the name was changed for clarify/consistency, an existing test file IDF was modified to request all of these variables, and a unit test to verify that these variables are being reported correctly. The only output changes would be in the file that had additional variables requested.

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

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

RKStrand added 2 commits June 26, 2025 06:40
Corrected various problems with report variables relating to inside and outside face conduction variables.  Some variables simply were not set up to report.  Others were not listed in the docs.  Also did a name clean-up for consistency between similar values.
Added a unit test to verify that the proper values are being reported for some of the variables that were added as part of this fix.
@RKStrand RKStrand requested review from Myoldmopar and mjwitte June 27, 2025 19:18
@RKStrand RKStrand self-assigned this Jun 27, 2025
@RKStrand RKStrand added Defect Includes code to repair a defect in EnergyPlus OutputChange Code changes output in such a way that it cannot be merged after IO freeze labels Jun 27, 2025
@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 7aebac7

Regression Summary
  • Audit: 22
  • EIO: 1
  • MTD: 1
  • RDD: 19

@RKStrand
Copy link
Contributor Author

Well, clarification--I forgot that because variables were added that some of the files will show a change in NumofRVariables. There are no differences in actual results from EnergyPlus.

Copy link
Contributor

@mjwitte mjwitte left a comment

Choose a reason for hiding this comment

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

Tested with 1ZoneUncontrolled, the zone-level outputs agree with the sums of the surface-level outputs.


Output:Variable,*,Surface Outside Face Convection Heat Transfer Coefficient,daily;

Output:Variable,*,Surface Inside Face Conduction Heat Transfer Rate,hourly;
Copy link
Contributor

Choose a reason for hiding this comment

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

1ZoneUncontrolled has an rvi file in \testfiles. The new variables need to be added there as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can fix this when the crash issue you mentioned gets resolved.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Had to make another commit because I forgot to do this before I committed the fix to resolve the initialization issue, but a revised .rvi is in the very latest commit.

EXPECT_DOUBLE_EQ(srdSurfacesTemp_result, surface.SrdSurfTemp);
}

TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_ZoneFaceConductionVariableTest)
Copy link
Contributor

Choose a reason for hiding this comment

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

This unit test crashes in SolarShading::ReportSurfaceShading. Using Debug build locally on windows.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ummm...well, I just tried this and it doesn't crash on Mac. Do you know what line it is crashing on?

@Myoldmopar Any idea why it's fine on the Mac but not on Windows? Not sure I've ever had this happen...or at least not recently.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ummm...well, I just tried this and it doesn't crash on Mac. Do you know what line it is crashing on?

@Myoldmopar Any idea why it's fine on the Mac but not on Windows? Not sure I've ever had this happen...or at least not recently.

Sorry, forgot to paste in the screen shot of the error and line. Here:
image

SurfSunlitFrac is nan, probably never initialized.

Why it doesn't crash on your Mac?

  1. I've merged in develop.
  2. In VS for windows, I've long ago had to manually activate exceptions for uninitialized variables and floating point exceptions.

Copy link
Contributor

Choose a reason for hiding this comment

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

Or 3. Mac c++ might autoinitialize everything to zero?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Huh, interesting. Well, to avoid things relying on the OS, I just made a new commit that specifically initializes the Sunlit variables to zero. Does this take care of the crash on Windows?

Copy link
Contributor

Choose a reason for hiding this comment

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

Huh, interesting. Well, to avoid things relying on the OS, I just made a new commit that specifically initializes the Sunlit variables to zero. Does this take care of the crash on Windows?

@RKStrand Thanks, that fixed the crash. I still need to review docs, then this should be good to go.

@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit ec9c66e

Regression Summary
  • Audit: 22
  • EIO: 1
  • MTD: 1
  • RDD: 19

RKStrand added 2 commits July 15, 2025 13:16
In Windows, one of these was not being initialized and this resulted in a crash.  Zeroing them all out on definition in this unit test now to hopefully avoid this.
Another review comment involved the RVI for 1ZoneUncontrolled.  This resolves this comment hopefully.
@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 5c7303d

Regression Summary
  • Audit: 22
  • EIO: 1
  • MTD: 1
  • RDD: 19

@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 4d34180

Regression Summary
  • Audit: 22
  • EIO: 1
  • MTD: 1
  • RDD: 19

Copy link
Contributor

@mjwitte mjwitte left a comment

Choose a reason for hiding this comment

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

@RKStrand I've updated some of the variable names in the I/O Ref to match what is in the source code. Please confirm these are correct: 1cf91ae

Otherwise, this can merge once CI comes back clean.

@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 3dc8160

Regression Summary
  • Audit: 22
  • EIO: 1
  • MTD: 1
  • RDD: 19

@mjwitte mjwitte merged commit 2d0b846 into develop Aug 27, 2025
9 checks passed
@mjwitte mjwitte deleted the 10812ClarifyZoneOpaqueSurfaceConductionOutputVars branch August 27, 2025 20:56
@RKStrand
Copy link
Contributor Author

@mjwitte Oh, yes! Thank you for correcting those. I saw them somewhere along the way as I was looking at this and then forgot to correct them. Glad you caught it before the merge! 😊

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 OutputChange Code changes output in such a way that it cannot be merged after IO freeze

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing Zone Opaque Surface Conduction output variables

5 participants