Skip to content

Add explicit InternalMassArea input to STEBBS#1282

Merged
sunt05 merged 7 commits intomasterfrom
YL/STEBBS/internalmass
Apr 9, 2026
Merged

Add explicit InternalMassArea input to STEBBS#1282
sunt05 merged 7 commits intomasterfrom
YL/STEBBS/internalmass

Conversation

@yiqing1021
Copy link
Copy Markdown

@yiqing1021 yiqing1021 commented Apr 8, 2026

1) Summary

This PR replaces the STEBBS internal mass cube assumption with an explicit user-defined parameter, InternalMassArea.


2) Main Changes

Previously, STEBBS estimated the internal mass heat exchange area from the internal mass volume by assuming a cubic geometry, which underestimates the convective heat exchange between internal mass and indoor air.This PR removes that assumption from the core building setup and instead reads InternalMassArea directly from the building archetype input.

In addition, this PR fixes a bug related to the sign convention of Q_BAE (heat emission through air exchange), which was previously incorrect.


3) Notes

  • InternalMassArea is now explicitly defined and used for indoor mass heat exchange calculations.
  • RatioInternalVolume is retained and continues to control internal mass volume and associated thermal storage.
  • The previous cube-based estimation of internal mass area has been removed from the main STEBBS initialization workflow.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

CI Build Plan

Changed Files

Fortran source (3 files)

  • src/suews/src/suews_ctrl_driver.f95
  • src/suews/src/suews_phys_stebbs.f95
  • src/suews/src/suews_type_stebbs.f95

Rust bridge (2 files)

  • src/suews_bridge/c_api/building_archetype_prm.f95
  • src/suews_bridge/src/building_archetype_prm.rs

Python source (4 files)

  • src/supy/data_model/README.md
  • src/supy/data_model/core/config.py
  • src/supy/data_model/core/site.py
  • src/supy/sample_data/sample_config.yml

Tests (9 files)

  • test/core/data/issue_1097/yaml_setup.yml
  • test/data_model/test_data_model.py
  • test/fixtures/benchmark1/benchmark1.yml
  • test/fixtures/benchmark1/benchmark1_short.yml
  • test/fixtures/benchmark1/benchmark1b.yml
  • test/fixtures/data_test/stebbs_test/sample_config.yml
  • test/fixtures/precheck_testcase/precheck_testcase1.yml
  • test/fixtures/precheck_testcase/precheck_testcase2.yml
  • test/fixtures/precheck_testcase/precheck_testcase3.yml

Documentation (5 files)

  • CHANGELOG.md
  • docs/source/inputs/tables/schema.json
  • src/supy/data_model/README.md
  • src/supy/data_model/core/config.py
  • src/supy/data_model/core/site.py

Build Configuration

Configuration
Platforms Linux x86_64, macOS ARM64, Windows x64
Python 3.9, 3.14
Test tier standard (all except slow)
QGIS3 UMEP build Yes (compiled extension may differ)
PR status Ready (standard matrix)

Rationale

  • Fortran source changed -> multiplatform build required
  • Rust bridge changed -> multiplatform build required
  • Python source changed -> single-platform build
  • Test files changed -> validation build
  • Compiled extension ABI may differ -> QGIS3 UMEP (NumPy 1.x) build included

Updated by CI on each push. See path-filters.yml for category definitions.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

Preview Deployed

Content Preview URL
Site https://suews.io/preview/pr-1282/
Docs https://suews.io/preview/pr-1282/docs/

Note

This preview is ephemeral. It will be lost when:

  • Another PR with site/ or docs/ changes is pushed
  • Changes are merged to master
  • A manual workflow dispatch runs

To restore, push any commit to this PR.

@yiqing1021 yiqing1021 requested a review from sunt05 April 9, 2026 08:03
@yiqing1021
Copy link
Copy Markdown
Author

Hi @sunt05 , This PR include two minor updates for the STEBBS, could you please take a look if this make sense to you? many thanks.

@yiqing1021 yiqing1021 marked this pull request as ready for review April 9, 2026 08:04
Copy link
Copy Markdown

@sunt05 sunt05 left a comment

Choose a reason for hiding this comment

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

Two minor issues to sort before merging.

  1. .codex — empty file committed. This looks like a Codex CLI config artifact (0-byte file). Should be removed from the PR — it's not in .gitignore and doesn't belong in the repo.

  2. InternalMassArea default mismatch. site.py sets default=100 but schema.json has "default": 20. All YAML fixtures use 100. Which value is intended? Please set the correct default in site.py and regenerate schema.json via the publisher script rather than editing it by hand.

Everything else looks good — QBAE sign fix is correct, bridge FFI is properly versioned, and test coverage is adequate.

Comment thread docs/source/inputs/tables/schema.json Outdated
"type": "null"
}
],
"default": 20,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

"default": 20 here but site.py has default=100 and all fixtures use 100. Which is the intended default? If 100 is correct, regenerate this file from the Pydantic model rather than editing by hand.

Resolve CHANGELOG.md conflict: keep both 8 Apr and 9 Apr entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@yiqing1021
Copy link
Copy Markdown
Author

Thanks @sunt05 for your suggestion! I have revised them accordingly

Copy link
Copy Markdown

@sunt05 sunt05 left a comment

Choose a reason for hiding this comment

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

Thanks for the quick fixes @yiqing1021 — both issues sorted. Approving.

@sunt05 sunt05 enabled auto-merge April 9, 2026 22:44
@sunt05 sunt05 added this pull request to the merge queue Apr 9, 2026
Merged via the queue into master with commit 4573f9f Apr 9, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants