Skip to content

Addition of EMS Inside Face Material Absorptance Control - #11758

Open
RKStrand wants to merge 9 commits into
developfrom
11688EMSInsideOutsideAbsorptanceImplementation
Open

Addition of EMS Inside Face Material Absorptance Control#11758
RKStrand wants to merge 9 commits into
developfrom
11688EMSInsideOutsideAbsorptanceImplementation

Conversation

@RKStrand

Copy link
Copy Markdown
Contributor

Pull request overview

Description of the purpose of this PR

Following on the work done to allow Material, Material:NoMass, and MaterialProperty:VariableAbsorptance to specifically modify the inside face absorptances of material layers separately from the outside face, this work includes changes that allow this same functionality via the EMS feature of EnergyPlus. This work includes code revisions, a significantly expanded unit test, updated documentation, and a new input file that demonstrates in a simply way how to modify these parameters using EMS. No changes in current output are expected.

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

This commit includes code to expand the ability to control the inside face thermal and solar absorptance via EMS in EnergyPlus.  Code is working as expected (all four absorptances for a surface are being modified correctly--thermal and solar, inside and outside face) and existing unit tests have been updated and energyplus_tests runs successfully to completion.
This commit includes a significant enhancement of an existing unit test that tests the new construction absorptance EMS input and more thorough tests the six material based EMS parameters.  In addition, changes were made to the EMS Guide in read the docs.
@RKStrand
RKStrand requested a review from mitchute August 19, 2026 22:31
@RKStrand RKStrand self-assigned this Aug 19, 2026
@RKStrand RKStrand added the NewFeature Includes code to add a new feature to EnergyPlus label Aug 19, 2026
Forgot to include the new input file and the requisite edit to CMakeLists.txt
@shorowit

Copy link
Copy Markdown
Contributor

Thank you @RKStrand! In case you didn't already update it, note the final two sentences in the documentation here:

Note that the variable-absorptance coatings modeled with this object are not exactly equivalent to those modeled with EMS. This object only adjusts the thermal or solar absorptance of the exterior surfaces, while the EMS approach overwrites the absorptance of both the interior and exterior surfaces.

@RKStrand

Copy link
Copy Markdown
Contributor Author

@shorowit Yes, I did make a small tweak there. Here is what it now says:

Note that the variable-absorptance coatings modeled with this object are not exactly equivalent to those modeled
with EMS. This object adjusts the thermal or solar absorptance of the outside and/or inside face of a material. Another opportunity to adjust these values is also available through the use of EMS.

Thoughts on that update?

@shorowit

Copy link
Copy Markdown
Contributor

@RKStrand I was under the impression that the two approaches were previously not exactly equivalent because of which sides of the material they impact. But if they can both impact either (or both) sides of the material, aren't they now equivalent?

I guess I would have expected something simply like "Note that the variable-absorptance coatings modeled with this object can also be modeled with EMS."

@RKStrand

Copy link
Copy Markdown
Contributor Author

@shorowit Yeah, I like your suggestion--simple and straight to the point. No need for additional verbiage. EMS gives you "more" control at the expense of having to do some programming in the input file on your own. I'll make another commit that uses your suggestion here.

@github-actions

Copy link
Copy Markdown

⚠️ Regressions detected on macos-14 for commit 2fe0d88

Regression Summary
  • Audit: 777
  • EDD: 37
  • RDD: 763
  • EIO: 76
  • ESO Big Diffs: 6
  • Table Big Diffs: 20
  • Table String Diffs: 54
  • ESO Small Diffs: 1
  • MTR Small Diffs: 1
  • SSZ Small Diffs: 1
  • ZSZ Small Diffs: 1
  • Table Small Diffs: 1
  • ERR: 3
  • MTR Big Diffs: 1
  • SSZ Big Diffs: 1
  • ZSZ Big Diffs: 1

@github-actions

Copy link
Copy Markdown

⚠️ Regressions detected on ubuntu-24.04 for commit 2fe0d88

Regression Summary
  • Audit: 781
  • RDD: 767
  • EDD: 39
  • EIO: 76
  • ESO Big Diffs: 6
  • Table Big Diffs: 20
  • Table String Diffs: 54
  • ESO Small Diffs: 1
  • MTR Small Diffs: 1
  • SSZ Small Diffs: 1
  • ZSZ Small Diffs: 1
  • Table Small Diffs: 1
  • ERR: 3
  • MTR Big Diffs: 1
  • SSZ Big Diffs: 1
  • ZSZ Big Diffs: 1

Keep existing absorptance actuators controlling both material faces while
adding explicit inside- and outside-face actuators. Give face-specific
controls precedence, update documentation and the example file, and add
regression coverage for legacy behavior.
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

⚠️ Regressions detected on macos-14 for commit bb1fca7

Regression Summary
  • Audit: 73
  • EDD: 37
  • ERR: 2

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

⚠️ Regressions detected on ubuntu-24.04 for commit bb1fca7

Regression Summary
  • Audit: 75
  • EDD: 39
  • ERR: 2

  Restore material input values when face-specific actuators are set to
  Null and preserve face-specific actuator precedence over legacy controls.

  Register separate inside- and outside-face absorptance output variables
  for surfaces controlled by EMS. Expand regression coverage and stabilize
  the EMS absorptance example file.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

⚠️ Regressions detected on macos-14 for commit f7b52a4

Regression Summary
  • Audit: 73
  • EDD: 37
  • ERR: 2

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

⚠️ Regressions detected on ubuntu-24.04 for commit f7b52a4

Regression Summary
  • Audit: 75
  • EDD: 39
  • ERR: 2

@mitchute

mitchute commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

@RKStrand can you take another look here? I think this one is pretty close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

NewFeature Includes code to add a new feature to EnergyPlus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants