chore: remove deprecated flow_boundary and update docs to match new architecture

This commit is contained in:
Sepehr
2026-03-01 20:00:09 +01:00
parent 20700afce8
commit d88914a44f
105 changed files with 11222 additions and 2994 deletions

View File

@@ -116,7 +116,7 @@ This document provides the complete epic and story breakdown for Entropyk, decom
**FR49:** Flow Junctions (FlowSplitter 1→N, FlowMerger N→1) for compressible & incompressible fluids
**FR50:** Boundary Conditions (FlowSource, FlowSink) for compressible & incompressible fluids
**FR50:** Boundary Conditions (RefrigerantSource, RefrigerantSink) for compressible & incompressible fluids
**FR51:** Swappable Calibration Variables - swap calibration factors (f_m, f_ua, f_power, etc.) into solver unknowns and measured values (Tsat, capacity, power) into constraints for one-shot inverse calibration
@@ -279,7 +279,7 @@ This document provides the complete epic and story breakdown for Entropyk, decom
| FR47 | Epic 2 | Rich Thermodynamic State Abstraction |
| FR48 | Epic 3 | Hierarchical Subsystems (MacroComponents) |
| FR49 | Epic 1 | Flow Junctions (FlowSplitter 1→N, FlowMerger N→1) for compressible & incompressible fluids |
| FR50 | Epic 1 | Boundary Conditions (FlowSource, FlowSink) for compressible & incompressible fluids |
| FR50 | Epic 1 | Boundary Conditions (RefrigerantSource, RefrigerantSink) for compressible & incompressible fluids |
| FR51 | Epic 5 | Swappable Calibration Variables (inverse calibration one-shot) |
| FR52 | Epic 6 | Python Solver Configuration Parity - expose all Rust solver options in Python bindings |
| FR53 | Epic 11 | Node passive probe for state extraction |
@@ -530,10 +530,10 @@ This document provides the complete epic and story breakdown for Entropyk, decom
---
### Story 1.12: Boundary Conditions — FlowSource & FlowSink
### Story 1.12: Boundary Conditions — RefrigerantSource & RefrigerantSink
**As a** simulation user,
**I want** `FlowSource` and `FlowSink` boundary condition components,
**I want** `RefrigerantSource` and `RefrigerantSink` boundary condition components,
**So that** I can define the entry and exit points of a fluid circuit without manually managing pressure and enthalpy constraints.
**Status:** ✅ Done (2026-02-20)
@@ -543,16 +543,16 @@ This document provides the complete epic and story breakdown for Entropyk, decom
**Acceptance Criteria:**
**Given** a fluid circuit with an entry point
**When** I instantiate `FlowSource::incompressible("Water", 3.0e5, 63_000.0, port)`
**When** I instantiate `BrineSource::water("Water", 3.0e5, 63_000.0, port)`
**Then** the source imposes `P_edge P_set = 0` and `h_edge h_set = 0` (2 equations)
**And** `FlowSink::incompressible("Water", 1.5e5, None, port)` imposes a back-pressure (1 equation)
**And** `FlowSink` with `Some(h_back)` adds a second enthalpy constraint (2 equations)
**And** `BrineSink::water("Water", 1.5e5, None, port)` imposes a back-pressure (1 equation)
**And** `RefrigerantSink` with `Some(h_back)` adds a second enthalpy constraint (2 equations)
**And** `set_return_enthalpy` / `clear_return_enthalpy` toggle the second equation dynamically
**And** validation rejects incompatible fluid + constructor combinations
**And** type aliases `Incompressible/CompressibleSource` and `Incompressible/CompressibleSink` are available
**And** type aliases `Incompressible/RefrigerantSource` and `Incompressible/RefrigerantSink` are available
**Implementation:**
- `crates/components/src/flow_boundary.rs``FlowSource`, `FlowSink`
- `crates/components/src/refrigerant_boundary.rs``RefrigerantSource`, `RefrigerantSink`
- 17 unit tests passing
---
@@ -1548,15 +1548,15 @@ The current Python bindings expose only a subset of the Rust solver configuratio
---
### Story 9.4: FlowSource/FlowSink Energy Methods
### Story 9.4: RefrigerantSource/RefrigerantSink Energy Methods
**As a** thermodynamic simulation engine,
**I want** `FlowSource` and `FlowSink` to implement `energy_transfers()` and `port_enthalpies()`,
**I want** `RefrigerantSource` and `RefrigerantSink` to implement `energy_transfers()` and `port_enthalpies()`,
**So that** boundary conditions are correctly accounted for in the energy balance.
**Acceptance Criteria:**
**Given** FlowSource or FlowSink in a system
**Given** RefrigerantSource or RefrigerantSink in a system
**When** `check_energy_balance()` is called
**Then** the component is included in the validation
**And** `energy_transfers()` returns `(Power(0), Power(0))`