Spaces:
Sleeping
Sleeping
File size: 2,016 Bytes
ed201cf 76dc0f0 ed201cf 76dc0f0 ed201cf 76dc0f0 ed201cf 76dc0f0 ed201cf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Deterministic execution-integrity gate
This revision prevents invalid hydraulic arrays from being presented as
successful SWMR results.
## Changes
1. Dynamic-wave preflight recognizes explicit zero values for `MAX_TRIALS`,
`HEAD_TOLERANCE`, and `MIN_SURFAREA` as legacy/default sentinels. It creates
an immutable derivative execution copy using unit-aware effective defaults,
while preserving and hashing the original upload. Negative and non-numeric
values remain blocking errors. Omitted values remain untouched.
2. Post-run integrity classification records `valid`, `limited`, or `invalid`
using routing convergence and flow-routing continuity evidence.
3. A run is invalid when every routing step fails, at least 5% of routing
steps fail, or the routing continuity error is at least 10%.
4. Invalid hydraulic arrays remain available in the audit database, but node,
link, storage, control, capacity, spill, and depth-velocity conclusions are
set to `Not assessed - hydraulic routing solution invalid`.
5. The executive summary and model identity disclose the execution gate.
6. Calgary screening returns no pass/fail hydraulic results for an invalid run.
7. Regression tests cover the Kincora zero-value failure and the corrected
usable-run metadata.
## Kincora failure reproduced
The legacy input explicitly contained:
```ini
MAX_TRIALS 0
HEAD_TOLERANCE 0
```
The EPA SWMM 5.2 desktop interface resolves these values to effective defaults.
For SI models the derivative uses `MAX_TRIALS=8`, `HEAD_TOLERANCE=0.0015 m`,
and `MIN_SURFAREA=1.167 m2`. Every substitution, both hashes, and both INP files
are retained in the audit package. This is a disclosed compatibility action,
not a mutation of the uploaded engineering model.
## Validation
- Python compilation passed for all packaged modules.
- 35 deterministic unit checks passed.
- Preflight integration requires the Space dependencies and isolated
OpenSWMM worker environment described in the existing README.
|