Version: [5479] QDebrisFlow 1.1.3 Experimental

Audit corrections, input checks, two-tab dialog and verified value
passing (v1.1)

What changed
Numerics and physics (core/solver.py, core/rheology.py)

Yield stress is subtracted from the trial discharge vector before the
semi-implicit friction division (start threshold now exactly h·S =
τy/γm, isotropic).
Coupled friction with the transverse discharge (Cozzolino et al.
2021), optional θ-weighting (de Almeida et al. 2012).
CFL also limited by the depth added by the inflow; exact hydrograph
volume per step; nodata source cells dropped without losing volume.
New outputs: instantaneous peak h·v² (HV2_max) and Froude number at
that moment (Fr_hv2); warnings when the flow hits the closed boundary
or the 30 m/s velocity cap.
Dialog (dialog.py)

Two top-level tabs: Single run and Multiple-run analysis (LHS), one
shared log, Stop buttons, best LHS run re-run to write the selected
layers.
Input checks: DEM CRS (geographic / non-metre units rejected),
reprojection of vector layers, hydrograph table/CSV parsing, rotated
rasters, output folder checked before the run.
Reproducibility: all solver settings in the JSON file,
<prefix>_run.json next to the rasters, LHS CSV written after every run
plus _context.json.
ρs and ρw now reach the solver in the single run (12be4e8).
Spin-box defaults fixed: α₁ = 0.00423 and α₂ = 0.0311 (were 0.0001 and
0.03 → τy 0.019 Pa instead of 0.80 Pa in exponential mode), arrival
threshold 0.005 m (was 0.01 m), Cv_max 0.615 (was 0.61); LHS η fields
no longer accept 0 (crashed with log10(0)).
New plugin icon (EN and RU).
EN and RU copies are kept token-identical in code.

Why
A technical audit of the plugin (used for a master's thesis on
debris-flow risk, Montecito 2018 validation) found errors in the
yield-stress treatment, inflow volume, CFL step and several UI paths
where user values were lost or altered.

Verification
Headless PyQGIS checks (QGIS 3.44.8, Numba and NumPy backends, EN and
RU):

every user-editable value reaches the solver exactly (single run in
both rheology modes, all LHS runs, best-run re-run with identical
h_max);
steady uniform channel flow matches the analytic normal depth
(relative error 1e-4 … 4e-14 for Fr < 0.35), mass balance ±1e-13 %,
lake at rest stays at rest, rest threshold h·S = τy/γm;
JSON save/load round trip without losses.

yes

Oidorrr

2026-10-18T15:15:41.630482+00:00

3.16.0

3.99.0

None

yes

Version management

Plugin details