Skip to content

feat(hx): add hydronic heat-exchanger family - #57

Merged
jscott3201 merged 3 commits into
mainfrom
codex/hx-family-foundation
Aug 20, 2026
Merged

feat(hx): add hydronic heat-exchanger family#57
jscott3201 merged 3 commits into
mainfrom
codex/hx-family-foundation

Conversation

@jscott3201

@jscott3201 jscott3201 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • add the hx equipment family for indirect liquid-to-liquid hydronic heat exchangers
  • add HX-0001 effectiveness degradation, HX-0002 one-side flow missing, and HX-0003 unintended transfer while the isolating valve is commanded closed
  • add a 12-point HX dictionary, family README, operator playbook, exact block diagrams, 47 deterministic scenarios, registry entries, and root/schema catalog updates

Design and safety decisions

  • fix primary/secondary as topology identities while signed transfer is positive primary-to-secondary; the fault comparisons remain valid in heating and cooling
  • keep effectiveness and reconciled heat transfer as host-derived values with denominator, fluid-property, timestamp, and side-energy-balance validation; the CXF graphs contain no unsafe Divide
  • use one 900 s timer per missing-flow side so a side reversal cannot inherit elapsed time through a single OR
  • require a final both-flow exchange command and a final physical isolating-valve command; upstream enables, common-header flows, duplicated side signals, and incoherent fleet aggregates are invalid bindings
  • classify 0.125 effectiveness allowance, 1 L/s flow floors, and 5 kW transfer as executable/adoption-blocking placeholders rather than portable field recommendations
  • add no cluster or global suppression because rule IDs are not equipment-instance scoped and no single repair reliably clears the family

Ontology and source posture

  • Brick 1.4.4: exact generic Heat_Exchanger and active entering/leaving water point classes; side identity remains topology-dependent
  • ASHRAE 223 public-review PPR2.1: exact HydronicHeatExchanger, paired inlet/outlet topology, and Role-Primary/Role-Secondary
  • point notes pin the checked Brick and 223 artifacts and hashes; the 223 artifact is not represented as a final 2026 release
  • EnergyPlus 25.1 epsilon-NTU documentation and official heating/cooling test models ground the physics; field fouling precedent is cited without importing a portable threshold
Rule Source tier Fault direction evidence Threshold basis Validation basis
HX-0001 A + C EnergyPlus epsilon-NTU physics and Guelpa/Verda field fouling study; library comparison adaptation 0.125 NO_PORTABLE_DEFAULT; 900 s ADOPTED_TUNABLE 16 deterministic vectors; healthy EnergyPlus replay deferred
HX-0002 A + C EnergyPlus four-port operation/flow behavior; library two-lane proof adaptation 1 L/s per side NO_PORTABLE_DEFAULT; 900 s ADOPTED_TUNABLE 17 deterministic vectors including all 8 command/flow combinations
HX-0003 A + B + C EnergyPlus signed transfer physics and DOE FEMP HX condition-monitoring guidance; library closed-command adaptation 5% and 900 s ADOPTED_TUNABLE; 5 kW NO_PORTABLE_DEFAULT 14 deterministic vectors with positive/negative transfer

Validation

  • targeted verifier: 47/47 HX scenarios pass; all three graph content IDs match their cards
  • full verifier: all 137 rule directories pass
  • registry lint: 137 rules OK
  • SVG fitment: 138 SVGs clean
  • book generation/build: 137 fault pages, 22 playbooks, 14 point dictionaries; mdBook succeeds
  • simharness unit tests: 6/6 pass
  • verifier Rust unit tests: 2/2 pass offline
  • git diff --check: clean

Simulation boundary

The family README identifies and pins the official EnergyPlus 25.1 healthy heating and cooling paths, but this PR does not claim a completed Layer 3 campaign. No configured EnergyPlus executable is available in the local environment; an HX adapter/replay is intentionally left for the immediately following validation slice.

@jscott3201
jscott3201 merged commit 89ccaff into main Aug 20, 2026
3 checks passed
@jscott3201
jscott3201 deleted the codex/hx-family-foundation branch August 22, 2026 18:56
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.

1 participant