跳到主要内容
Sandbox Physics

M100 · 流体力学

浅水波与溃坝

溃坝洪水的前锋,也按小水波的速度往前跑吗? 不是。小波的速度由当地水深决定,水越深波越快。溃坝前锋是大幅度的非线性波,速度要从完整的解里求。如果下游是干地,前锋跑得比原水库里的小波快一倍。

打开闸门、发射波包、让静湖停在隆起上,或者观察水跃。拖动时间查看有限体积解,和溃坝解析参考对照,再加密网格。槽内水量加上从两端流出的水量,应当保持不变。

交互模型浅水波与溃坝
解的时间就绪\text{就绪}
测点水深就绪\text{就绪}
深度平均速度就绪\text{就绪}
单位宽度流量就绪\text{就绪}
局部长波速就绪\text{就绪}
测点 Froude 数就绪\text{就绪}
槽内水体积就绪\text{就绪}
净流出体积就绪\text{就绪}
最大 Courant 数就绪\text{就绪}
单元宽度就绪\text{就绪}
求解步数就绪\text{就绪}
相对解析解的平均水深误差就绪\text{就绪}
原始扫描积分体积就绪\text{就绪}
记录测点数就绪\text{就绪}
力或体积平衡残差就绪\text{就绪}
模型状态就绪\text{就绪}

物理教程

波、润湿前锋与守恒数值

背景水槽几何、守恒量和采集到的数据彼此吻合,这个实验才有意义。

为什么值得理解把水槽和定量检验联系起来,比如溃坝解析解和水量平衡,再看这个模型在哪里成立、在哪里失效。

先抓重点

核心问题
屏幕上的洪水,也遵守守恒律吗?
一句话直觉
把完整物理模型、它的近似和单独采集的记录放在一起比较。

核心数学模型

水深与动量守恒

ht+(hu)x=0(hu)t+(hu2+gh22)x=−ghbx\begin{aligned}h_t+(hu)_x&=0\\(hu)_t+\left(hu^2+\frac{gh^2}{2}\right)_x&=-ghb_x\end{aligned}

恒宽水槽里的流动按静水压力、深度平均处理;底床作为源项进入动量方程。

小扰动的局部传播速度

λ±=u±gh\lambda_\pm=u\pm\sqrt{gh}

洪水激波一般不按小振幅长波的速度走;干床上的前锋速度又不一样。

Froude 数

Fr=∣u∣gh\mathrm{Fr}=\frac{|u|}{\sqrt{gh}}

亚临界流里,信号可以往上下游两个方向传;超临界流把两族信号都带往下游。干单元没有 Froude 数。

考虑端部流量的体积守恒

V=W∑ihiΔxV(t)+∫0tW(qR−qL) ds=V(0)\begin{aligned}V&=W\sum_i h_i\Delta x\\V(t)+\int_0^t W(q_R-q_L)\,ds&=V(0)\end{aligned}

水从槽端流出,槽内体积会变,但并不违反守恒。扫描原始单元水深,可以另外积分出一个体积。

自适应步长与网格误差

CFL=ΔtΔxmax⁡i(∣ui∣+ghi)≤0.4Eh=1N∑i∣hi−hexact(xi,t)∣\begin{aligned}\mathrm{CFL}&=\frac{\Delta t}{\Delta x}\max_i\left(|u_i|+\sqrt{gh_i}\right)\leq0.4\\E_h&=\frac1N\sum_i|h_i-h_{\mathrm{exact}}(x_i,t)|\end{aligned}

一阶格式会把激波抹宽。平均水深误差只在平底溃坝、波还没到达槽端之前提供。

静止水跃

qL=qR=qq2hL+ghL22=q2hR+ghR22\begin{aligned}q_L&=q_R=q\\\frac{q^2}{h_L}+\frac{gh_L^2}{2}&=\frac{q^2}{h_R}+\frac{gh_R^2}{2}\end{aligned}

预设让质量通量和动量通量在一次满足熵条件的水深跃升两侧保持平衡;数值解会把跃面展宽。

常见难点

参考曲线不是测量

容易误解屏幕上显示的参考曲线就是实测数据。

正确理解只有你记录下来的传感器读数才算观测,改动配置会清空它们。扰动是确定性的,不能拿来做统计认证。

动手实验

  1. 01

    释放闸门

    比较湿床溃坝和干床溃坝预设,移动时间滑块。

    你会看到: 稀疏波、激波和干床前锋,都来自同一组守恒律。
  2. 02

    加密网格再对照

    保持相同初态和时间,把单元数加倍。

    你会看到: 参考曲线不变,数值扩散变小。
  3. 03

    检验静湖

    选择隆起上的静湖,再调整隆起高度。

    你会看到: 静水平衡重构让这片湖保持静止,不会冒出虚假的水流。
  4. 04

    检查水量平衡

    比较反射槽端和透射槽端,并采集每个单元。

    你会看到: 槽内体积加上净流出量保持不变;原始水深积分出另一个体积估计,其中带有传感器扰动。
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策