Skip to content

solar distribution fix for heavy-mass cases#675

Merged
anchapin merged 10 commits into
mainfrom
feat/ashrae-140-blind-validation-phase-a
May 6, 2026
Merged

solar distribution fix for heavy-mass cases#675
anchapin merged 10 commits into
mainfrom
feat/ashrae-140-blind-validation-phase-a

Conversation

@anchapin
Copy link
Copy Markdown
Owner

@anchapin anchapin commented May 6, 2026

Fixes #664 - Changed solar_to_air formula from '0.1 * (1 - f_ms) + f_ms' to '0.5 * f_ms' per ISO 13790 Section C.2

…lind validation

- Create docs/CORRECTION_FACTORS_INVENTORY.md with complete catalog of 7 correction types
- Add 16 TODO-BLIND-VALIDATION markers across 3 files for grep-based inventory
- Implement ValidationMode::Blind in Ashrae140Validator with with_mode() constructor
- Guard post-simulation multipliers (Cases 900/910/940/950) behind ValidationMode::Informed check
- Mark 6R2C correction constants, case-specific config, and CTF coupling for future removal

Part of ASHRAE 140 Blind Validation Plan v1.3 (issue #662)
Apply cargo fmt to fix comment alignment in adaptive_calibration.rs.
Rustfmt expects doc comments (///) to align properly with impl blocks.
…-python-env

The yeslogic-fontconfig-sys crate requires fontconfig, but PKG_CONFIG_PATH
was only set to Python's lib/pkgconfig. This adds the standard system library
paths so pkg-config can find fontconfig.pc during Rust compilation.

Fixes CI failures:
- Build Release
- Clippy
- Python Bindings (maturin)
- python-examples
The awalsh128/cache-apt-pkgs-action was hitting cache without running
apt install, leaving fontconfig.pc missing. Direct apt-get install
ensures packages are properly installed with all required files.

Fixes CI failures on Python Bindings and Rust Tests.
…corrections

- Add ashrae_140_blind_validation.rs test harness
- Run blind validation across all ASHRAE 140 cases
- Document baseline results: 12% pass rate, 162% MAE
- Reveals corrections account for current passing metrics
- Changed solar_to_air_frac formula from '0.1 * (1 - f_ms) + f_ms' to '0.5 * f_ms' per ISO 13790 Section C.2
- Old formula gave 82% solar to air for heavy mass (Case 900), causing cooling over-prediction
- New formula gives 40% solar to air for heavy mass, consistent with physics
- Added solar_distribution_validation.rs test file with 5 passing tests

Results:
- Case 600 (LowMass): solar_to_air = 0.20 (was 0.46)
- Case 900 (HighMass): solar_to_air = 0.40 (was 0.82)
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Sorry @anchapin, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

- Disabled empirically-derived 6R2C correction factors (5.2, 1.74)
- These factors were papering over calculation errors in h_tr_ms
- Now using physics-based values directly

Issue #665
@anchapin anchapin merged commit 02eb550 into main May 6, 2026
33 of 34 checks passed
@anchapin anchapin deleted the feat/ashrae-140-blind-validation-phase-a branch May 6, 2026 17:07
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.

[Phase B.1] Fix solar distribution for heavy-mass cases

2 participants