You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement two literature-backed extensions to the mixed-flow (open-channel ↔ pressurized)
capability, in both the finite-volume solver (src/engine/hydraulics/fv/) and the classical
dynamic wave solver (src/engine/hydraulics/DynamicWave.cpp), plus a shareable validation
study comparing all closure/friction combinations against published laboratory experiments.
Two-Component Pressure Approach (TPA) — Vasconcelos, Wright & Roe (2006), J. Hydraul.
Eng. 132(6): a pressurization closure that, unlike the Preissmann slot, sustains
sub-atmospheric full-pipe flow (ΔA < 0) with a physically governed venting rule.
Unsteady friction (UF) — Pinto, Vasconcelos & Soares (2025), J. Hydraul. Eng.
152(1) "SVUF": modified Vítkovský et al. (2000) source term S_fu = (k3/g)(∂V/∂t + c·SGN(V)|∂V/∂x|) with regime-dependent celerity. Implemented as
an orthogonal option combinable with any closure in both solvers: UNSTEADY_FRICTION NONE|VITKOVSKY + UF_K3 (default NONE — inert).
The paper's SVUF configuration ≡ {FV, TPA, UF on}.
Motivation
ROADMAP.md names TPA as the documented extension path for sub-atmospheric transients,
which the slot closure cannot represent (spurious free-surface reversion on downsurge).
Steady-friction-only mixed-flow models require unphysical Manning n to reproduce observed
transient damping (Pinto et al. 2025); the UF term fixes damping without inflating n.
The slot-storage program (R2a landed: FV_PRESSURIZED_IMPLICIT) resolved the slot's
head-loss/runtime pathologies; TPA extends the same linear closure below the crown.
Plan of record
plans/MIXED_FLOW_CLOSURES_TPA_UF_PLAN_2026-08-29.md (this issue's parent plan:
feasibility, deltas vs the code post-R2a, gates, study design)
Summary
Implement two literature-backed extensions to the mixed-flow (open-channel ↔ pressurized)
capability, in both the finite-volume solver (
src/engine/hydraulics/fv/) and the classicaldynamic wave solver (
src/engine/hydraulics/DynamicWave.cpp), plus a shareable validationstudy comparing all closure/friction combinations against published laboratory experiments.
Eng. 132(6): a pressurization closure that, unlike the Preissmann slot, sustains
sub-atmospheric full-pipe flow (ΔA < 0) with a physically governed venting rule.
FV_PRESSURE_CLOSURE SLOT|TPA(default SLOT — parity-preserving)SURCHARGE_METHOD TPA(4th enum value, experimental) +TPA_CELERITY152(1) "SVUF": modified Vítkovský et al. (2000) source term
S_fu = (k3/g)(∂V/∂t + c·SGN(V)|∂V/∂x|)with regime-dependent celerity. Implemented asan orthogonal option combinable with any closure in both solvers:
UNSTEADY_FRICTION NONE|VITKOVSKY+UF_K3(default NONE — inert).The paper's SVUF configuration ≡ {FV, TPA, UF on}.
Motivation
which the slot closure cannot represent (spurious free-surface reversion on downsurge).
transient damping (Pinto et al. 2025); the UF term fixes damping without inflating n.
FV_PRESSURIZED_IMPLICIT) resolved the slot'shead-loss/runtime pathologies; TPA extends the same linear closure below the crown.
Plan of record
plans/MIXED_FLOW_CLOSURES_TPA_UF_PLAN_2026-08-29.md(this issue's parent plan:feasibility, deltas vs the code post-R2a, gates, study design)
plans/TPA_TWO_COMPONENT_PRESSURE_PLAN.md(governing TPA implementation plan)Scope / phases
studies/mixed_flow_closures/(untracked via.git/info/exclude): E1–E4 lab decks (+ VJ-spliced variants), E6 fixture copies,matrix.yamlrunner, NSE/RMSE metrics, digitized observed dataOptionsHandler, InpWriter, C API get/set, report echo, Routing wiring, Python keys)
gates U-G1…U-G5
amended per parent plan §2.2 (PressurizedHeadSolver membership, VJ splice gates);
gates A-G1…A-G6
gates B-G1…B-G5
results memo to
docs/analysis/Acceptance criteria (headline gates; full tables in the plan)
UNSTEADY_FRICTION NONE+FV_PRESSURE_CLOSURE SLOT+SURCHARGE_METHOD∈ existing values ⇒ bit-identical on the 19-deck parity corpus, ctest ×3sustains sealed sub-atmospheric reaches the slot closure cannot (documented contrast)
Aureli NSE ≥ 0.8 at the paper's (n, k3)
downsurge gate (B-G5)
OPENSWMM_BINsetNon-goals
(documented contingency), per-link k3, waterhammer fidelity claims for DW
References