# HeatExchanger (generic)

Config type: `"HeatExchanger"`  
Source: `crates/components/src/heat_exchanger/exchanger.rs` + ε-NTU / LMTD models

---

## EN

### Purpose & model

Generic two-stream HX with selectable model:

- **ε-NTU** effectiveness  
- **LMTD** / counterflow forms  

Ports: hot_in/out, cold_in/out (Modelica-style 4-port).

```
NTU = UA / C_min
ε = f(NTU, C_r, flow arrangement)
Q = ε · C_min · (T_hot,in − T_cold,in)
```

**Requires live four-port edge state** for residual evaluation on the generic path — inlet-only scalar BCs do not invent outlet states.

### Residuals & `n_equations()`

Inner model residual count (often 2–3 per side balance depending on configuration).

### Ports

| Port | Role |
|------|------|
| `hot_inlet` / `hot_outlet` | hot stream |
| `cold_inlet` / `cold_outlet` | cold stream |

### Calibration

`z_ua` on UA (default 1.0).

### When not to use

For refrigeration condensers/evaporators prefer specialized `Condenser` / `Evaporator` / `FloodedEvaporator` / BPHX which know phase-change ε-NTU and secondary dual modes.

---

## FR

### But

Échangeur **générique** 4 ports (ε-NTU / LMTD).

### Attention

Exige un état **4 ports live**. Pour frigo, préférer Condenser / Evaporator / Flooded / BPHX.

### Calibration

Z_UA = 1 par défaut.
