/ 水波涟漪模拟器 返回
Wave Physics

水波涟漪模拟器

点击画布,向虚拟水池投石。浏览器实时求解二维波动方程,美丽的干涉条纹在点击之间悄然浮现。

有限差分法 二维波动方程 点击/拖动 触控支持
参数设置
波速 c 0.5
阻尼系数 0.990
冲击强度 1.0
预设场景
实时统计
0
活跃波源
0.00
最大振幅
60
帧率(FPS)
0
计算步数
波谷(蓝色) 零点(白色) 波峰(橙色)
-A0+A
操作说明

🖱️ 点击 — 添加波源冲激
🖱️ 拖动 — 连续生成涟漪
📱 触摸/滑动 — 支持触控
💡 试试双波源预设,观察干涉条纹!

t = 0.000 s 150 × 120

二维波动方程

$$\frac{\partial^2 u}{\partial t^2}= c^2 \left(\frac{\partial^2 u}{\partial x^2}+ \frac{\partial^2 u}{\partial y^2}\right)$$

$u(x,y,t)$ 为水面位移,$c$ 为波速。显式有限差分离散化:

$u_{i,j}^{n+1}= 2u_{i,j}^n - u_{i,j}^{n-1}$
$\quad + r^2(u_{i+1,j}^n + u_{i-1,j}^n + u_{i,j+1}^n + u_{i,j-1}^n - 4u_{i,j}^n)$

稳定条件: $r = c\,\Delta t/\Delta x \leq 1/\sqrt{2}$

每步后乘以阻尼系数 $d$,模拟能量耗散。

惠更斯原理与干涉

惠更斯原理:波阵面上每一点都是新球面波的波源。两波源 $S_1, S_2$ 叠加:

$u = A\cos(kr_1 - \omega t) + A\cos(kr_2 - \omega t)$

加强干涉:$|r_1 - r_2| = n\lambda$
相消干涉:$|r_1 - r_2| = (n+\tfrac{1}{2})\lambda$

双波源预设中,可观察到双曲线形明暗相间的干涉条纹。

CAE工程应用

同样的波动方程应用于:

  • 室内声学分析(有限元/边界元法)
  • 地震波传播(P波、S波)
  • 港湾防波堤设计
  • 电磁FDTD仿真(Maxwell方程组)
  • 超声波无损检测(NDT)

数值稳定性

CFL条件决定数值稳定性:

$\text{CFL}= c \cdot \frac{\Delta t}{\Delta x}\leq \frac{1}{\sqrt{2}}\approx 0.707$

本模拟器固定 $\text{CFL} = 0.5$,调节波速滑块时时间步长自动调整,始终保持数值稳定。

什么是水波涟漪模拟

🧑‍🎓
这个模拟器里,我点一下水面就出现一圈圈波纹,这和真实的水波是一样的原理吗?
🎓
简单来说,原理是相通的!你点击水面,就像往池塘里扔了一颗小石子,给水面一个初始的“冲击”。这个冲击的能量会以波的形式向四周扩散。模拟器就是用计算机来解一个描述波如何传播的数学方程。你试试看,把右上角的“冲击强度”滑块调大,再点击水面,会发现激起的浪更高,能量更大。
🧑‍🎓
诶,真的吗?我试了,波纹确实变高了。那为什么波纹扩散开后会慢慢消失呢?现实中是因为水有阻力,模拟器里是怎么做到的?
🎓
问得好!在实际工程中,比如模拟港口的水波,也必须考虑能量损耗。模拟器里有个“阻尼系数”参数,就是专门干这个的。它相当于给水波施加了一个微小的“粘性”,让波的能量随着时间和距离逐渐耗散掉。你把阻尼系数调到最大,再点一下,会发现波纹几乎传不出去就消失了,这就是模拟阻力的效果。
🧑‍🎓
哦!我懂了。那“波速”这个参数呢?调快调慢会看到什么不同?还有,我点了“双波源”预设,那些漂亮的条纹又是怎么来的?
🎓
在实际工程中,波速由介质本身决定,比如水深不同,水波速度就不同。你改变“波速c”,会看到波纹扩散的快慢发生变化。至于双波源那些漂亮条纹,那可是波的核心魔法——干涉!两个波源发出的波在空间里相遇,有的地方波峰加波峰,振动更强(亮条纹);有的地方波峰遇波谷,互相抵消(暗条纹)。你试着拖动两个波源的位置,这些干涉条纹的图案也会跟着神奇地变化,这就是惠更斯原理和波叠加的直观体现。

物理模型与关键公式

模拟器求解的核心是二维波动方程,它描述了像水波、声波这样的扰动在空间中的传播规律。

$$\frac{\partial^2 u}{\partial t^2}= c^2 \left(\frac{\partial^2 u}{\partial x^2}+ \frac{\partial^2 u}{\partial y^2}\right)$$

这里,$u(x,y,t)$ 代表水面在位置 $(x, y)$、时间 $t$ 的偏离平衡位置的高度(位移)。$c$ 是波在介质中的传播速度。方程左边是位移对时间的二阶导数(加速度),右边是位移对空间的二阶导数(曲率)乘以波速平方,本质上是牛顿第二定律在连续介质中的表达。

为了在计算机上求解,模拟器使用了显式有限差分法(FTCS格式)。它将连续的空间和时间离散成网格,用当前时刻和相邻位置的位移值,来推算下一时刻的位移。

$$u^{n+1}_{i,j}= 2u^n_{i,j}- u^{n-1}_{i,j}+ \lambda^2 (u^n_{i+1,j}+u^n_{i-1,j}+u^n_{i,j+1}+u^n_{i,j-1}- 4u^n_{i,j})$$

其中,$u^n_{i,j}$ 是网格点 $(i, j)$ 在第 $n$ 个时间步的位移。$\lambda = c\Delta t / \Delta x$ 称为柯朗数,其值必须小于一定限度(本模拟器固定为0.5)才能保证计算稳定,不会出现数值爆炸。这个公式就是模拟器每一帧实时计算的“心脏”。

现实世界中的应用

港口与海岸工程:在设计防波堤、码头时,工程师需要精确预测海浪在港口内的传播、反射和叠加,以避免共振造成设施损坏或船只剧烈摇晃。本模拟器展示的波动原理正是这类大规模水动力仿真的基础。

声学设计与噪声控制:声音也是波。在音乐厅、录音棚的设计中,需要模拟声波的反射和干涉,以优化音质。在汽车或飞机舱内,则需要通过分析结构振动产生的声波干涉来设计有效的降噪方案。

地震波分析与地质勘探:地震产生的波在地下岩层中传播,通过布设传感器并分析波的到达时间、反射和折射信号,可以反推地下结构,用于探测石油、天然气储层或评估地震风险。

电磁波与光学器件设计:光(电磁波)的传播同样遵循波动方程。在设计天线、光学薄膜、光子晶体光纤时,利用类似方法模拟电磁波的干涉和衍射效应至关重要,这能帮助开发更高效的通信设备和传感器。

常见误解与注意事项

开始使用本模拟器时,有几个容易误解的地方。首先,将“波速c”设置过大可能导致模拟发散(数值爆炸)。这是因为违反了CFL条件的约束。简而言之,必须确保波在单步时间内传播的距离不超过计算网格间距,否则会产生物理上不自然的结果。例如,若网格间距为1而波速c设为100,计算会立即崩溃。实际工程中的CAE软件会在内部检查此条件,但请记住,本工具需要您自行调整参数。

其次是“衰减”设置。将其趋近于零会得到理想化的永续波动系统,但现实中的大多数现象(如建筑振动或声学传播)必然存在某种衰减(阻尼)。忽略衰减的设计可能引发共振破坏风险。反之,若将衰减设置过大,则难以观察到现象本质的干涉图案。平衡是关键。

最后,本模拟基于“线性”波动方程。这意味着波幅增大时波速保持不变,且波之间碰撞后会直接穿过(无非线性效应)。实际的大幅波动(如海啸)或某些光学现象中非线性效应至关重要,但掌握这个线性模型是所有学习的起点。

相关工程领域

您在这个波纹池中体验的计算,实际上是贯穿众多工程领域底层的“通用语言”。首推结构力学·振动分析领域。薄板(如智能手机外壳或飞机蒙皮)的振动可直接用二维波动方程建模。点击添加的点振源相当于施加冲击的位置,可观测到板中传播的“弯曲波”。

另一领域是电磁学·无线通信。无线电波(电磁波)的传播同样遵循波动方程。若将本模拟器的水池视为无限大空间,就能想象天线辐射的电磁波如何扩散。特别是布置多个天线单元的相控阵雷达MIMO通信技术,其原理正是通过主动控制“双波源”干涉图案来形成波束。

此外在地球物理学中,该方法应用于地震波传播模拟。通过分析穿越不同地层(波速c相异的区域)的地震波传播特性,可以勘探地下结构。如果模拟器能实现“波速c”的局部变化,就能近似重现这一过程。

进阶学习指引

熟悉本工具后,可尝试向下一步迈进。首先是理解数值解法。说明中提到的显式有限差分法虽直观但条件严苛。建议后续学习更稳定的隐式解法,以及能处理复杂形状的有限元法(FEM)。FEM是CAE软件几乎标配的解法,属于必备知识。

数学层面,理解波动方程解需要掌握傅里叶变换这一强大工具。其核心思想是任何复杂波形皆可表示为简单正弦波的叠加。理解此概念后,对振动与声学的“频率分析”会有更深刻认识。例如,改变衰减设置时,除了观察波形变化,还可思考频率成分如何改变,这是很好的练习。

实践层面的下一步,强烈建议使用编程环境(如Python的NumPy或MATLAB)亲自编写与本模拟器相同的计算代码。通过自由调整参数、实现边界条件(如完全反射壁或吸波边界),您将能直观掌握数值模拟的精髓。