# 大坝出现缺口后会怎样？

从理想瞬时溃坝，认识稀疏波和干床前锋。

专题：河流水动力。教学合成算例，待独立专业审稿。

## 先把真实问题，简化到能看懂

真实溃坝涉及缺口扩展、材料侵蚀和复杂地形。我们先做一个极理想的实验：水平直槽，坝在一瞬间全宽消失，上游水静止，下游完全干燥。这样可以看清浅水方程中最基本的释放过程。

Ritter干床解析解，水平、无摩阻、无限长上游水库、矩形恒宽河道，g=9.81m/s²。x=0为原坝址，x>0向下游。未模拟有限宽缺口、溃口历时和侵蚀。

## 向上游传的是稀疏波

支撑水体的边界消失后，上游不会同时全部落下。变化以一片连续展开的波区向上游传播；更远处的水，在波到来之前仍保持原来的水深。波区一端向上游走，另一端把水推向干床。

令c0=√(gH)。上游未扰动区x≤−c0t，h=H、u=0；波区−c0t<x<2c0t。初始t=0单独设左右阶跃，避免公式除以零。

## 展开的波区，有一条解析曲线

在波区内部，不同位置的水深和速度不同。水越靠近干床前锋越薄，速度却不能简单从水深大小猜测。我们把水深曲线画出，再标记上游扰动边缘和下游前锋的位置。

波区h=(2c0−x/t)²/(9g)，u=(2/3)(c0+x/t)。x≥2c0t为干床，h=0；干格速度在算例中记0，因为无水处速度没有同样的物理含义。

## 前锋走得多快

理想解的干床前锋以两倍初始浅水波速前进。这个速度不是固定的常数，它随着上游初始水深变化。拖动水深，观察同样时间内前锋到达的位置怎样变化。

xfront=2√(gH)t。H=4m时c0≈6.264m/s，t=15s时前锋约187.93m。原坝址波区水深始终为4H/9，速度2c0/3；这不是现实溃口流量公式。

## 下游得到的水，从哪里来

前锋推进时，下游新增的水应来自上游的水量减少。把原坝址两侧的面积比较，就能检查解析解的账本。这里按单位河宽计算，曲线下面积单位是平方米，再乘河宽才得到立方米。

单位宽度下游新增水量为8Hc0t/27，上游扰动区减少量相同。显示域x∈[−400,700]m，在H≤10、t≤30s范围内涵盖整个受扰区；域外上游保持初态，不能把无限水库总量当成有限量。

## 理想解是标尺，不是风险图

这条解析解可以帮助验证程序，也能建立前锋和波区的直觉。但它没有摩阻，也没有真实溃口过程，不能直接拿来画下游避险范围。做工程分析时，需要可靠地形、溃口情景、边界条件及独立校核。

只作为理想方程基准，不用于人员疏散或大坝风险判断。实际地形阻力、下游有水、有限库容和渐进溃口会显著改变过程。干床前锋也不能直接用前一期的背景微扰轨迹替代。

## 练习与解释

1. 本期坝体如何消失？

答案：瞬时、全宽。这是Ritter理想解的设定。

2. 理想干床前锋速度是？

答案：2√(gH)。不同于背景小扰动的一支特征速度。

3. 单位宽度水深曲线面积单位是？

答案：m²。再乘河宽才得到体积。

## 算例与依据

下载页面上的完整Python算例包，解压后运行 reproduce.py，无需第三方库。模型源为 hydraulics_models.py，输出 reference.csv。

[参考资料](https://faculty.washington.edu/rjl/riemann_book/Shallow_water.html)，查阅日期2026-09-15。公式、参数和实现简化见正文；来源用于机理核对，不代表本算例经过来源机构认可。
