mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Added `mean_internal_temperature_section_from_cert` composing §1 (dim)
+ §2 (effective_monthly_ach) + §3 (total HLC) + §5 (internal gains)
+ §6 (solar gains) + climate (external temp) and threading them through
the §7 orchestrator — exact mirror of the cert_to_inputs internal
cascade.
Added 60 strict pin cases for §7 worksheet lines (85)..(94): T_h1
scalar, living_area_fraction scalar, η_living + T_living + T_h2 +
η_elsewhere + T_elsewhere + T_92 + T_93 + η_whole monthly tuples.
§7 per-fixture monthly pin status:
fixture | passing
000474 | 6 of 8 (LINE_92/93 ~0.0001 K residual)
000477 | 6 of 8 (LINE_92/93 ~0.0002 K residual)
000480 | 6 of 8 (LINE_92/93 ~0.0001 K residual)
000487 | 0 of 8 (cascade from §3 RR + §4 HW defects)
000490 | 6 of 8 (LINE_92/93 ~0.0001 K residual)
000516 | 8 of 8 ✓
LINE_92/93 marginal fails on 4 fixtures: weighted-sum of T_living +
T_elsewhere drifts by ~1e-4 K from PDF despite the per-zone temps
matching at 1e-4 individually. Likely a PDF intermediate-precision
artefact (analogous to U_eff at 5 dp in §3 windows); investigation
deferred — no widening per project policy.
Scoreboard:
section_cascade_pins: 230 → 274 PASS (+44; 60 new tests, 16 fail)
e2e SapResult: 32 → 32 PASS (unchanged — §7 cascade was
already running internally, pin tests just surface the line refs)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| src/domain | ||
| pyproject.toml | ||
| README.md | ||
domna-domain
Shared domain types — Property, Properties, BaselinePerformance, Plan, PlanPhase, Scenario, ScenarioPhase, ScenarioSnapshot, Recommendation, OptimisedPackage, EpcPropertyData, etc.
Boundary: types only. No persistence, no IO, no business logic. Other packages and services depend on domna-domain; this package depends on nothing internal.
Domain definitions live in ../../CONTEXT.md. New types added here must match the glossary terms.
Layout
src/domain/
├── __init__.py
├── property.py # Property, Properties, PropertyIdentity
├── site_notes.py
├── landlord_overrides.py
├── baseline_performance.py # lodged + effective pair (ADR-0004)
├── plan.py # Plan, PlanPhase, OptimisedPackage
├── scenario.py # Scenario, ScenarioPhase, ScenarioSnapshot (ADR-0005)
├── recommendation.py
├── geospatial.py
├── solar.py
├── anomaly_flags.py
└── ml/
├── __init__.py
├── transform.py # EpcMlTransform (versioned per §8.3)
└── schema.py
When datatypes/epc/domain/ folds in, the EPC schema types move under src/domain/epc/.