Dike breach
The dike breach model described here is implemented in the pyDike class. It provides a simplified 0D representation of the erosion and breaching of a fluvial dike or dam due to overtopping.
Note
For more details, refer to the thesis of Vincent Schmitz (2025).
It corresponds to an adaptation of DLBreach (Weiming Wu, 2013, 2016).
The model is designed to simulate the evolution of a dike or dam breach over time, including the calculation of outflow discharge and water levels in the main channel/reservoir and in the floodplain. It is particularly useful for understanding the dynamics of dike failures and their potential impacts on surrounding areas.
The model can be decomposed into a hydrodynamic module (which can be replaced by a 1D or 2D hydrodynamic model if coupled) and a breach module. The hydrodynamic module calculates the water levels and discharges in the main channel and floodplain, while the breach module simulates the erosion and widening of the breach over time.
Although physically based, the model uses a set of empirical parameters to represent the physical processes involved in dike/dam failure, including sediment transport, erosion rates, and breach geometry.
Initialization
The model is initialized by creating a pyDike object.
from wolfhece.dikeBreaching import pyDike
dike = pyDike()
This command instantiates the simulation with all default parameters defined. These can be accessed or modified by editing the attributes of the pyDike instance.
Main Parameters
The parameters are grouped in the following categories:
Test Definition
Test_ID : Test name.
Time Parameters
dt : Constant time step in seconds.
t_end : Total simulation time in seconds.
Save Parameters
exportMainResults : Boolean. Save main outputs (breach, Q, WL).
extractTriangulation : Save triangulation for visualization or interpolation on 2D matrix.
path_saveOutputs : Path to store simulation results.
Physical Parameters
g : Gravitational acceleration.
d50 : Median grain diameter.
nu : Kinematic viscosity of water.
rho : Water density.
rho_s : Sediment density.
p : Dike/dam porosity.
phi : Friction angle (in degrees).
suspension : Boolean for including suspended sediment load.
Geometrical Parameters
Dike Geometry
dam : Boolean. True if dam, False if dike.
Su, Sd_ini : Upstream and initial downstream slopes (H/V).
Lk : Crest width.
h_d : Dike/dam height.
complete_erosion : Boolean. If erosion reaches dam/dike non-erodible base. Should be False to avoid discontinuities.
dx_min : Minimal length of the flat top reach (prevents it from disappearing).
xnotch_ini : Initial notch position (m).
xmin_topo, ymin_topo : Origin of the dike/dam.
Breach Geometry
m : Side slope (default = 1 / tan(phi)).
m_up, m_down : Upstream and downstream breach side slopes (default = m).
h_b_ini, b_ini : Initial breach depth and bottom width.
Main Channel Geometry
elevation_shift : Z correction for matching 2D topo.
slope : Longitudinal slope of the dike/dam.
reservoir_shape : Type of reservoir/main channel: rectangular, trapezoidal, or irregular (stage storage curve needed then).
pathStageStorage : Stage-storage curve file path.
Ar, lmc, wmc, S_lat : Reservoir/main channel dimensions depending on reservoir shape.
Floodplain Geometry
StageStorage_FP : Boolean to use stage-storage curve in floodplain.
pathStageStorage_FP : Corresponding path.
Flow Parameters
Qd : Drain discharge (m^3/s).
Qin : External inflow discharge (m^3/s).
z_s_ini, z_t_ini : Initial upstream and tailwater levels.
Qin_coef : Inflow multiplier (default = 1, useful for uncertainty analysis only).
Qo_module : Boolean. Use module to compute outflow (e.g. if defined by rating curve).
Qo : Outflow discharge (m^3/s).
Empirical Parameters
c1, c2, c_eff : Weir coefficients.
lambda_in, lambda_out, lambda_loss : Head losses.
An, An_prime : Empirical coefficients for roughness related to Manning’s coefficient.
n_min : Minimum value for Manning’s coefficient.
lbda : Adaptation length (Wu) = distance needed by the flow to be fully charged with sediment. If lbda=0, instant sediment equilibrium.
theta_cr : Critical shields parameter.
Sp : Corey shape factor.
C_stara to C_stard : Suspended sediment parameters (empirical).
qb_stara, qb_starb : Bedload parameters (empirical).
lambda0a, lambda0b : Shear stress coefficients (empirical).
cb_coef : Concentration correction coefficient (empirical).
b_eff_frac : Effective breach width fraction (>1 = full breach). Warning: if =1, erosion is assumed to be applied on the D/S breach extremity only. Should be >1 for uniform erosion, i.e., for dams.
Parameter Management
After initialization, parameters can be exported, modified, or loaded externally.
params = dike.get_params()
dike.save_params("my_test.json", Path("./outputs"))
dike.set_params("my_test.json", Path("./outputs"))
Execution
To run a simulation:
dike.run(store_dir=Path("./outputs"))
This will perform the simulation using the set parameters and optionally save the main results and triangulation output, depending on the boolean flags.
Output
The model may save the following:
Main output files : breach width, depth, discharge evolution.
Triangulation file : stored as a dictionary in JSON format if requested.
Saved parameters : as a readable JSON dictionary.
Note
This model is designed for conceptual demonstration and should be coupled with 1D/2D models for advanced hydraulic analysis or breach propagation visualization.