37a85690d1110b139c50286f732726fad1cada36
Pairs with the generalFunctions curve-file rewrite — all supplier curves now share one X-axis: specific air flux through the membrane, Nm³/(h·m² membrane). specificClass._calcOtrPressure computes the flux from the existing n_flow and i_n_elements plus a new i_membrane_area field, and queries the OTR / DWP curves at that flux instead of at flow per element. i_membrane_area resolution (precedence top-down): 1. config.diffuser.membraneAreaPerElement (new optional override) 2. specs._meta.membraneArea_m2_per_element (curve-file source of truth) 3. 0.18 m² (Jäger TD-65 / GVA placeholder) _loadSpecs now preserves the curve's full _meta block so the area metadata reaches configure(). Output schema gains oFluxPerM2 alongside the existing oFlowElement (kept for user-readability — both numbers are useful on a dashboard). _checkLimits compares specific flux against the curve's minX / maxX (also in canonical units now), so warning / alarm thresholds remain self-consistent. 8/8 tests pass. Verified across all 5 suppliers (gva-elastox-r, jaeger-jetflex, aerostrip-phoenix, pik300, prk300) that the resolved flux + SSOTR + DWP numbers match hand-computed expectations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
convert
Makes unit conversions
Languages
JavaScript
86.4%
HTML
13.6%