# BphxEvaporator / BphxCondenser (Brazed Plate HX) Config types: `"BphxEvaporator"`, `"BphxCondenser"` Source: `crates/components/src/heat_exchanger/bphx_evaporator.rs`, `bphx_condenser.rs`, shared geometry/correlation helpers --- ## EN ### Purpose & model Brazed-plate HX with **geometry + two-phase correlation → h → UA estimate**, then runtime solve on an **inner ε-NTU** residual model. #### Correlations (selectable) Default **Longo 2004**. Also **Shah 1979**, **Shah 2021**. Full registry (also Kandlikar, Gungor–Winterton, Gnielinski, Dittus–Boelter, Ko 2021, Friedel ΔP): see [correlations-and-maps.md](./correlations-and-maps.md). Equivalent Reynolds construction (schematic): ``` Re_l = G · d_h / μ_l Re_eq = Re_l · (1 − x + x · √(ρ_l / ρ_v)) ``` Longo-style Nu (illustrative forms used in the implementation path): ``` Evaporation: Nu ~ f(Re_eq, Pr_l) (e.g. 0.05 · Re_eq^0.8 · Pr_l^0.33) Condensation: Nu ~ f(Re_eq, Pr_l, ρ*) (e.g. 1.875 · Re_eq^0.35 · Pr_l^0.33 · …) h = Nu · k_l / d_h UA_est = h · A · z_ua ``` Pressure drop (schematic): ``` ΔP = z_dp · 2 · f · L · G² / (ρ · d_h) ``` **Important:** the **Newton system residuals** for the component are the **inner ε-NTU** residual set (`n_equations` of the inner model, typically 2 for the base HX path). The correlation updates **UA** (when `update_ua_from_htc` / geometry path is engaged); it is **not** a full multi-zone moving-boundary residual stack. ### Modes / targets | Type | Mode | Notes | |------|------|--------| | `BphxEvaporator` | **DX only** | Outlet is superheated vapor. `target_superheat_k` (default 5 K) is diagnostic/target storage — not a flooded shell model. For flooded shell-and-tube use `FloodedEvaporator`. | | `BphxCondenser` | Subcooling target | `target_subcooling_k` (default 3 K) | ### Ports 4-port Modelica-style naming in the system graph when wired: | Port | Role | |------|------| | `inlet` / `outlet` | Refrigerant | | `secondary_inlet` / `secondary_outlet` | Secondary fluid | Geometry fields: plate length/width, thickness, chevron, channel spacing, optional `dh_m` / `area_m2` overrides. ### Calibration | Key | Meaning | Default | |-----|---------|---------| | `z_ua` / `Z_UA` | UA scale | **1.0** | | `z_dp` / `Z_dpc` | ΔP scale | **1.0** | | `ua` explicit | sets `z_ua = ua / UA_nom` | – | Legacy `f_ua` / `f_dp` accepted in JSON. ### JSON parameters (main) | Key | Meaning | Default | |-----|---------|---------| | `n_plates` | plate count | 20 | | `plate_length_m` / `plate_width_m` | geometry | – | | `chevron_angle_deg` | chevron | 60 | | `correlation` | Longo2004 / Shah1979 / Shah2021 | Longo2004 | | `target_superheat_k` | DX target (evap) | 5 K | | `target_subcooling_k` | SC target (cond) | 3 K | | `refrigerant` / `secondary_fluid` | fluids | – | | `z_ua`, `z_dp` | calib | 1.0 | ### DoF / system usage Prefer live secondary wiring for closed loops. Pair `z_ua` free + measured SST/SDT for inverse calibration (same Fixed/Free discipline as other HX). --- ## FR ### But & modèle Échangeurs **à plaques brasées** : géométrie + **corrélation biphasique** (Longo 2004 / Shah) → coefficient h → UA, puis solveur sur modèle **ε-NTU interne**. Formes types : ``` Re_eq = Re_l · (1 − x + x · √(ρ_l/ρ_v)) Nu = f(Re_eq, Pr, …) # Longo / Shah selon `correlation` h = Nu · k / d_h UA = h · A · z_ua ``` Le **Newton** ne résout pas la corrélation plaque par plaque : il résout le **HX ε-NTU** ; la corrélation **calibre/estime UA**. ### Modes - **BphxEvaporator** : DX uniquement (pas un flooded shell). - **BphxCondenser** : cible de sous-refroidissement. ### Calibration `z_ua = 1`, `z_dp = 1` par défaut. Alias BOLT `Z_UA`, `Z_dpc`. ### Ports / JSON Voir tableaux EN.