Snapshot WIP: solver HP epic progress, BPHX/HX physics, BMAD skill refresh.
Some checks failed
CI / check (push) Has been cancelled
Some checks failed
CI / check (push) Has been cancelled
Capture uncommitted solver robustness work (regularization, domain errors, linear solver lifecycle, tube DP/MSH), web workbench updates, and synced BMAD skills across IDE agent folders before starting BPHX pressure-drop. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
65
docs/audits/jacobian-health-report.md
Normal file
65
docs/audits/jacobian-health-report.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Jacobian Health Report (Epic 0 / Story 0.5)
|
||||
|
||||
**Date:** 2026-07-18
|
||||
**Gate:** `cargo test -p entropyk-components --test jacobian_health_sweep`
|
||||
**Harness:** `entropyk_components::jacobian_fd`
|
||||
**Allow-list:** empty for Epic-0 P0 surfaces (`EPIC0_ALLOW_LIST` in the test binary)
|
||||
|
||||
## How to regenerate
|
||||
|
||||
1. Run:
|
||||
```bash
|
||||
cargo test -p entropyk-components --test jacobian_health_sweep -- --nocapture
|
||||
```
|
||||
2. Confirm all gated tests pass.
|
||||
3. Manually sync this markdown if grids, configs, or statuses change.
|
||||
Default CI tests do **not** rewrite this file (avoids dirty working trees).
|
||||
|
||||
Optional machine-readable twin: `docs/audits/jacobian-health-report.json`.
|
||||
|
||||
---
|
||||
|
||||
## Config presets
|
||||
|
||||
| Preset | `rel_epsilon` | `h_floor` | `rel_tol` | Notes |
|
||||
|--------|---------------|-----------|-----------|-------|
|
||||
| `DEFAULT_CFG` | `1e-6` | `1e-3` | `1e-4` | Documented default |
|
||||
| `EDGE_CFG` | `1e-6` | `1e-6` | `1e-4` | C¹ `smooth_clamp` neighborhoods / actuator edges |
|
||||
|
||||
---
|
||||
|
||||
## Status matrix (gated surfaces)
|
||||
|
||||
| Surface | Region / probes | Config | Status | Notes |
|
||||
|---------|-----------------|--------|--------|-------|
|
||||
| `valve_flow` / `IsenthalpicOrifice` | openings `{0,0.5,1}` × `{ΔP>0, ΔP≤0}` | helper FD / phantom checks | `clean` | Informative `dp_up` at ΔP≤0; `dp_down` FD at interior ΔP>0 |
|
||||
| `valve_flow` / `ExvCdA` | same grid | helper FD / phantom checks | `clean` | Same as orifice model |
|
||||
| `exv_orifice` | openings `{0,0.5,1}` × `{dp_positive, dp_le_0}` | `EDGE_CFG` | `clean` | `assert_jacobian_healthy` via allow-list (empty) |
|
||||
| `condenser_fan` | `φ ∈ {0.005, 0.75, 1.495}` | `EDGE_CFG` | `clean` | Inside C¹ ramps (not exact kink) |
|
||||
| `condenser_flood` | `λ ∈ {0.005, 0.5, 0.975}` | `EDGE_CFG` | `clean` | Inside C¹ ramps |
|
||||
| `two_phase_quality` | interior `0.5`, near-band `0.005`, exterior `-0.2` / `1.2` | helper checks | `clean` | Soft≠hard in band; exterior saturates |
|
||||
| `msh_dome_edge` | quality `{0.5,0.8,0.90,0.95,0.99,0.999,1−ε}` | central FD on `msh_gradient` | `clean` | Bounded `∂g/∂x` across Hermite blend |
|
||||
|
||||
---
|
||||
|
||||
## Deferred debt (not probed — do not allow-list P0)
|
||||
|
||||
These remain documented debt and are **out of the Epic-0 gate**. Adding probes later requires either a fix or an explicit allow-list entry with rationale in this file and the audit catalogue.
|
||||
|
||||
| Item | Reason | Status |
|
||||
|------|--------|--------|
|
||||
| `heat_exchanger/exchanger.rs` 4-port production FD Jacobian | NFR9 — analytic path is already FD | not probed |
|
||||
| `python_components*` empty / stub Jacobians | Binding stubs | not probed |
|
||||
| `screw_economizer_compressor` incomplete analytic rows / P1 clamps | Separate remediation | not probed |
|
||||
| `sat_domain.rs` P1 pressure clamp | Deferred P1 | not probed |
|
||||
| `bphx_correlation` P2 quality clamps | Correlation-local P2 | not probed |
|
||||
|
||||
---
|
||||
|
||||
## NFR11 attribution (pending Story 2.6)
|
||||
|
||||
Epic 0 regularized P0 Jacobian killers (valve ΔP≤0 phantom gradients, EXV opening C¹ clamps, two-phase quality / condenser fan-flood C¹, MSH Hermite near x→1).
|
||||
|
||||
First-try convergence % across the operating envelope (`T_source` / `T_sink` / load / fluid) will be measured by **Story 2.6** robustness-sweep infrastructure.
|
||||
|
||||
**Before/after delta attributable to Epic 0 regularization: TBD** (fill when Story 2.6 lands). Do not invent placeholder percentages.
|
||||
Reference in New Issue
Block a user