15 Commits

Author SHA1 Message Date
Sepehr
d88914a44f chore: remove deprecated flow_boundary and update docs to match new architecture 2026-03-01 20:00:09 +01:00
Sepehr
fdd124eefd fix: resolve CLI solver state dimension mismatch
Removed mathematical singularity in HeatExchanger models (q_hot - q_cold = 0 was redundant) causing them to incorrectly request 3 equations without internal variables. Fixed ScrewEconomizerCompressor internal_state_len to perfectly align with the solver dimensions.
2026-02-28 22:45:51 +01:00
Sepehr
3eb2219454 style: fix AI code review findings for vendor backend 2026-02-28 19:37:02 +01:00
Sepehr
bd4113f49e feat(components): add BphxExchanger with geometry-based heat transfer correlations (Story 11.5)
- Add BphxGeometry with builder pattern for plate heat exchanger specs
- Implement 6 heat transfer correlations: Longo2004, Shah1979/2021, Kandlikar1990, GungorWinterton1986, Gnielinski1976
- Add CorrelationSelector with validity range checking
- Add compute_pressure_drop() using Calib.f_dp
- Implement HeatTransferCorrelation trait for BphxCorrelation
- 45 BPHX tests + 17 correlation tests passing
2026-02-24 21:18:22 +01:00
Sepehr
613afb5351 chore: restore missing Epic 10 stories in sprint-status 2026-02-22 23:50:03 +01:00
Sepehr
1b6415776e chore: restore sprint-status.yaml from on-disk artifact state 2026-02-22 23:24:09 +01:00
Sepehr
fa480ed303 feat: implement mass balance validation for Story 7.1
- Added port_mass_flows to Component trait and implements for core components.
- Added System::check_mass_balance and integrated it into the solver.
- Restored connect methods for ExpansionValve, Compressor, and Pipe to fix integration tests.
- Updated Python and C bindings for validation errors.
- Updated sprint status and story documentation.
2026-02-21 23:21:34 +01:00
Sepehr
4440132b0a feat(python): implement python bindings for all components and solvers 2026-02-21 20:34:56 +01:00
Sepehr
8ef8cd2eba Fix code review issues for Story 1.10 2026-02-21 19:15:34 +01:00
Sepehr
0d9a0e4231 Fix bugs from 5-2 code review 2026-02-21 10:43:55 +01:00
Sepehr
400f1c420e docs(bmad): Add Hierarchical Subsystems (FR48) to PRD, Arch, Epics and Sprint 2026-02-20 22:36:28 +01:00
Sepehr
2d3d19665b docs(bmad): sync status and renumber Epic 8 (Fluid-Component integration) 2026-02-20 22:29:42 +01:00
Sepehr
73ad750f31 Fix code review findings for Story 5-1
- Fixed Critical issue: Wired up _state to the underlying HeatExchanger boundary conditions so the Newton-Raphson solver actually sees numerical gradients.
- Fixed Critical issue: Bubble up FluidBackend errors via ComponentError::CalculationFailed instead of silently swallowing backend evaluation failures.
- Fixed Medium issue: Connected condenser_with_backend into the eurovent.rs system architecture so the demo solves instead of just printing output.
- Fixed Medium issue: Removed heavy FluidId clones inside query loop.
- Fixed Low issue: Added physical validations to HxSideConditions.
2026-02-20 21:25:44 +01:00
Sepehr
be70a7a6c7 feat(core): implement physical types with NewType pattern
Story 1.2: Physical Types (NewType Pattern)

- Add Pressure, Temperature, Enthalpy, MassFlow types
- Implement SI base units with conversion methods
- Add arithmetic operations (Add, Sub, Mul, Div)
- Add Display and Debug traits
- Comprehensive unit tests (37 tests)
- Add PSI and Fahrenheit conversions
- Code review fixes applied

All tests passing, clippy clean
2026-02-14 15:25:30 +01:00
Sepehr
1fdfefe631 Initial commit: BMAD framework + Story 1.1 Component Trait Definition
Features:
- BMAD (Build Modular AI-driven Development) framework setup
- BMM, BMB, CIS, Core modules configured
- Story 1.1: Component trait with error handling
- Workspace Cargo.toml with components crate
- 31 tests passing (19 unit + 12 doc tests)

Technical:
- Component trait with compute_residuals, jacobian_entries, n_equations
- ComponentError enum with thiserror
- JacobianBuilder for sparse matrix construction
- Object-safe trait supporting Box<dyn Component>
- Comprehensive documentation and examples
2026-02-14 13:54:04 +01:00