Add diagram workbench UI with Modelica DoF coaching and ISO glyphs.

Ship the Next.js cycle editor with CAD chrome, technical HX symbols, Fixed/Free boundary guidance, and secondary water/air pressure drop support in the solver stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-17 22:46:46 +02:00
parent 62efea0646
commit 3358b74342
275 changed files with 70187 additions and 5230 deletions

View File

@@ -0,0 +1,143 @@
# Correlations & performance maps / Corrélations & cartes
Master inventory of **every performance map and heat-transfer / pressure-drop correlation** wired in Entropyk (as of 2026-07-17).
Inventaire de **toutes** les cartes et corrélations du code.
Sources principales :
- `crates/components/src/compressor.rs` — AHRI 540 + SST/SDT
- `crates/components/src/screw_economizer_compressor.rs` — polynômes 2D + presets
- `crates/components/src/isentropic_compressor.rs` — η_is + volumétrique
- `crates/components/src/polynomials.rs` — Polynomial1D / Polynomial2D
- `crates/components/src/heat_exchanger/bphx_correlation.rs` — formules h
- `crates/components/src/heat_exchanger/correlation_registry.rs` — catalogue + domaines
- `crates/components/src/heat_exchanger/eps_ntu.rs` / `lmtd.rs` — HX génériques
- `crates/components/src/heat_exchanger/two_phase_dp.rs` — ΔP biphasique
- `crates/components/src/fan.rs` / `pump.rs` — courbes 1D
---
## EN
### 1. Compressors — performance maps
| Component | Model ID | Formula (summary) | Inputs | Outputs | UI / JSON |
|-----------|----------|-------------------|--------|---------|-----------|
| **IsentropicCompressor** | Physics + η_is | `h_dis = h_suc + (h_ish_suc)/η_is` ; emergent: `ṁ = ρ·V_d·N·η_vol·z_flow` | η_is, T guesses, V_d, N | ṁ, h_dis, W | η, emergent, displacement, speed |
| **Compressor** | **AHRI 540** (`model_type=Ahri540`) | `ṁ = M1·(1(P_s/P_d)^{1/M2})·ρ·V·N/60` ; `Ẇ_cool = M3+M4·PR+M5·T_s+M6·T_d` (heating M7M10) | M1…M10, V, N | ṁ, Ẇ | `m1``m10`, `speed_rpm`, `displacement_m3` |
| **Compressor** | **SST/SDT poly** (`model_type=SstSdt`) | `ṁ = a00+a10·SST+a01·SDT+a11·SST·SDT` ; same for Ẇ with `pw_b**` | bilinear coeffs | ṁ, Ẇ | `mf_a**`, `pw_b**` (CLI + UI) |
| **ScrewEconomizerCompressor** | **Bilinear SST/SDT** | `ṁ_suc = z_flow·(a00+a10·SST+a01·SDT+a11·SST·SDT)` ; same for Ẇ with b_ij ; eco fraction poly | presets + overrides | ṁ_suc, ṁ_eco, Ẇ | `preset`, `mf_a**`, `pw_b**` |
#### Screw presets (CLI)
| Preset | ṁ (a00,a10,a01,a11) | Power (b00,b10,b01,b11) | eco frac |
|--------|---------------------|-------------------------|----------|
| `bitzer_generic_200kw` | 1.35, 0.004, 0.0025, 1.2e5 | 58000, 180, 280, 0.4 | 0.13 |
| `grasso_generic_200kw` | 1.30, 0.0035, 0.0022, 1e5 | 60000, 190, 310, 0.45 | 0.11 |
| (none) | 1.2, 0.003, 0.002, 1e5 | 55000, 200, 300, 0.5 | 0.12 |
Temps in polynomials: **SST / SDT** as used by the curve implementation (see source; typically °C in manufacturer fits — verify against `Polynomial2D` evaluation units in code).
#### Calibration Z on compressors
| Factor | Effect |
|--------|--------|
| `z_flow` | scales ṁ |
| `z_flow_eco` | scales economizer ṁ (screw) |
| `z_power` | scales shaft power |
| `z_etav` | volumetric efficiency correction |
Default all **1.0**.
---
### 2. Heat exchangers — heat transfer correlations
| Correlation ID | Year | Purpose | Geometry | Wired in BPHX UI? |
|----------------|------|---------|----------|-------------------|
| **Longo2004** | 2004 | Evap / cond HTC (plates) | Brazed plate | **Yes** (default) |
| **Shah1979** | 1979 | Condensation HTC | Tubes (also selectable) | **Yes** |
| **Shah2021** | 2021 | Plate condensation | Plates | **Yes** |
| Kandlikar1990 | 1990 | Evaporation HTC | Tubes | Registry / BPHX enum |
| GungorWinterton1986 | 1986 | Evaporation HTC | Tubes | Registry |
| Gnielinski1976 | 1976 | Single-phase turbulent Nu | Tubes | Registry |
| DittusBoelter1930 | 1930 | Single-phase Nu (simple) | Tubes | Registry |
| Ko2021 | 2021 | Low-GWP plates | Plates | Registry |
| Friedel1979 | 1979 | Two-phase ΔP | Tubes/plates | Registry (ΔP) |
**BPHX runtime path:** correlation → h → `UA ≈ h·A·z_ua`**ε-NTU residuals** (not a full multi-zone MB model).
**Condenser / Evaporator / FloodedEvaporator:** **no** plate correlation — **lumped UA** + phase-change ε-NTU:
```
ε = 1 exp(UA/C_sec)
Q = ε · C_sec · ΔT_driving
```
**Generic HeatExchanger:** ε-NTU or LMTD (arrangement-dependent).
**Economizer (internal):** LMTD-style two-stream.
**MovingBoundaryHX:** multi-zone research path (not default production).
---
### 3. Pressure drop
| Model | Formula / role | Components |
|-------|----------------|------------|
| Quadratic refrigerant | `ΔP = k · ṁ · \|ṁ\|` | Condenser, Evaporator (optional) |
| BPHX friction | `ΔP = z_dp · 2·f·L·G²/(ρ·d_h)` (implementation path) | BPHX |
| Friedel 1979 | two-phase ΔP (registry) | selection stack |
| Pipe Darcy-style | f(L,D,ε,Re,ṁ) | Pipe |
| Valve orifice | `ṁ = Kv·opening·√(2·ρ·ΔP)` | EXV orifice, BypassValve |
---
### 4. Pumps & fans — 1D polynomials
```
y = c0 + c1·x + c2·x² + … (Polynomial1D)
```
- **Pump:** head H(Q), efficiency η(Q); affinity laws for speed.
- **Fan:** static pressure / power vs flow and speed.
---
### 5. Flow regularization (not a HTC correlation)
Smooth `|ṁ|`, activity α, duty blend — keeps Newton finite at zero flow. See [flow-regularization.md](./flow-regularization.md).
---
## FR
### Compresseurs
| Composant | Modèle | Formule clé |
|-----------|--------|-------------|
| Isentropic | Physique + η_is | h_dis isentropique corrigé ; ṁ = ρ V N η_vol |
| Compressor | **AHRI 540** M1M10 | ṁ(P,ρ,V,N) ; Ẇ(PR, T) |
| Screw | **Polynôme bilinéaire SST/SDT** | ṁ, W = a00+a10·SST+a01·SDT+a11·SST·SDT |
Presets vis : Bitzer / Grasso génériques 200 kW (coeffs dans CLI).
### Échangeurs — corrélations h
| Corrélation | Usage |
|-------------|--------|
| Longo 2004 | BPHX défaut évap/cond plaques |
| Shah 1979 / 2021 | condensation (tubes / plaques) |
| Kandlikar, GungorWinterton | évaporation tubes (registre) |
| Gnielinski, DittusBoelter | monophasique |
| Ko 2021 | plaques low-GWP |
| Friedel 1979 | ΔP biphasique |
**Condenser / Evaporator / Flooded :** **UA global + ε-NTU** (pas Longo).
### Pompes / ventilateurs
Polynômes 1D QH / Qη + lois daffinité.
### Calibration
Tous les Z par défaut **1.0** (pas de correction).