---
title: "一道隔膜怎样生成三类可压缩波互动实验｜Sandbox Physics"
description: "激波管的隔膜一破，为什么会同时生出激波、接触间断和稀疏扇？一维 Euler 方程里的信号有三种传播速度：流速减声速、流速本身、流速加声速。"
canonical_url: "https://sandboxphysics.com/zh/labs/shock-tube/"
language: "zh-CN"
page_type: "lab"
alternate_languages:
  en: "https://sandboxphysics.com/labs/shock-tube/"
last_modified: "2026-10-27"
---

可压缩流 · 双曲守恒律

# Shock Tube & Riemann Problem

**激波管的隔膜一破，为什么会同时生出激波、接触间断和稀疏扇？** 一维 Euler 方程里的信号有三种传播速度：流速减声速、流速本身、流速加声速。初始跳变就按这三族拆成三道波：一道激波；一个接触间断，两侧密度不同，压强和速度却相同；还有一个稀疏扇。

分别设定左右两侧的初态，用 HLL、Rusanov 或 HLLC 有限体积通量推进一维 Euler 方程，再把结果和精确 Riemann 解叠在一起比较。管内密度、x–t 波系图、四个变量的剖面和守恒量漂移同步更新。

> 交互仿真：在浏览器中打开本页，即可调整参数并运行模型。

这是理想气体的一维无黏模型，用 $L,\rho_0,p_0,\quad a_0=\sqrt{p_0/\rho_0}$ 无量纲化；这个速度单位不是参考声速。可以对照 HLL、Rusanov 和 HLLC 三种通量。初态如果会产生真空，就超出了精确解的适用范围，模拟会暂停并说明原因。为了安全，密度和压强设了下限，这可能破坏守恒；这套实现也不能证明密度和压强处处为正。

物理教程

## 激波管：一个初始跳变怎样拆成三类波

**背景** 激波管里，一道隔膜把两段均匀气体隔开。隔膜一瞬间撤掉，管内只有一处不连续，它却会自己分成激波、接触间断和稀疏扇：激波压缩气体，接触间断是两种气体的分界面，稀疏扇让气体连续膨胀。

**为什么值得理解** Gary Sod 在 1978 年把这组初值定为检验可压缩流代码的经典算例。这里还用了 Harten、Lax 和 van Leer 在 1983 年提出的两波近似通量，数值解的每一格都和精确的自相似 Riemann 解对照。

先抓重点

- **核心问题**: 同一个隔膜跳变，为什么会同时生成激波、接触间断和稀疏扇？
- **一句话直觉**: 一维 Euler 系统有三族特征速度：$u-a$、$u$ 与 $u+a$。初始跳变分摊到这三族波上，各自以不同速度传开，一个跳变就不会只是一条波。

### 核心数学模型

#### 一维 Euler 守恒律

$$
\frac{\partial}{\partial t}\begin{bmatrix}\rho\\ \rho u\\ E\end{bmatrix}+\frac{\partial}{\partial x}\begin{bmatrix}\rho u\\ \rho u^2+p\\ u(E+p)\end{bmatrix}=0
$$

三行分别表示质量、动量和总能量守恒。数值通量只在网格界面上让相邻两格交换这些量。

#### 理想气体状态方程与声速

$$
p=(\gamma-1)\!\left(E-\frac12\rho u^2\right),\qquad a=\sqrt{\frac{\gamma p}{\rho}}
$$

比热比把内能、压强和声速联系起来；改变它，三族波的速度都会跟着变。

#### HLL 两波数值通量

$$
F_{\mathrm{HLL}}=\frac{S_R F_L-S_L F_R+S_LS_R(U_R-U_L)}{S_R-S_L}
$$

左信号速度为负、右信号速度为正时，HLL 在两者之间只用一个平均的中间态。这样做仍然守恒，代价是接触间断比精确解宽。

#### CFL 稳定步长

$$
\Delta t\le C_{\mathrm{CFL}}\frac{\Delta x}{\max_i\left(|u_i|+a_i\right)}
$$

一步之内，最快的波走不出一个网格宽。网格一加密，时间步就自动变短。

### 常见难点

#### 接触间断不是较弱的激波

**容易误解** 密度仍有跳变，所以中间那条线只是另一条小激波。

**正确理解** 接触间断两侧的压强和速度都连续，跳变的只有密度和气体种类。它随星区里的气流一起移动。

#### 图上的激波变宽，不代表真实激波很厚

**容易误解** 图上的激波跨了好几个网格，真实的无黏激波应该也这么厚。

**正确理解** 在 Euler 方程里，激波是一个间断。图上看到的宽度，主要来自一阶 HLL 格式的数值耗散和有限的网格分辨率。

### 动手实验

1. 01

   #### 复现 Sod 基准

   选择“Sod 基准”，保持精确解叠加显示，一直运行到自动暂停。

   **你会看到：** 左边展开一个连续的稀疏扇，中间的接触间断随气流移动，右边的激波跑在最前面。数值曲线紧贴着虚线画的精确解。

2. 02

   #### 放大压强比

   切换到“强激波”，逐步增加网格数，同时看密度误差。

   **你会看到：** 激波速度和星区压强都大幅上升。网格越多，激波前沿越窄，整体误差越小，但时间步也越短。

3. 03

   #### 改变波的组合

   打开 x–t 特征线图，比较“对撞流”和“对称膨胀”。

   **你会看到：** 两股气流对撞时，两侧的波都是激波；向外分开时，两侧都是稀疏扇。每一侧出现哪种波，要看星区压强比这一侧的初始压强高还是低。

物理结论

Riemann 问题把复杂的可压缩流拆成局部的几族波。精确解告诉你这些波的结构和速度，有限体积通量则在网格上按守恒的方式把它们重新算出来。

概念灵感：[FluidMotion](http://www.bugman123.com/FluidMotion/index.html)。模拟和图形都是原创，模型的适用范围见上文。

场、流体与物质 · 入门路径

## 从电场到电子显微镜

先看懂电场、学会操控带电粒子，再算出电子的波长，用电子束观察晶体和表面。

[从这里开始 → **看见电场** 在偶极子周围移动探针，看电场是不是总指向电势地形的下坡方向。 观察 · 8 分钟](https://sandboxphysics.com/zh/labs/electric-field/)

1. [1 看见电场](https://sandboxphysics.com/zh/labs/electric-field/)
2. [2 电荷在场中转弯](https://sandboxphysics.com/zh/labs/charged-particle/)
3. [3 电子波长与加速电压](https://sandboxphysics.com/zh/labs/electron-wavelength/)
4. [4 电子衍射与倒空间](https://sandboxphysics.com/zh/labs/electron-diffraction/)
5. [5 TEM 明场、暗场与选区衍射](https://sandboxphysics.com/zh/labs/tem-mode-selector/)
6. [6 SEM 二次电子表面形貌](https://sandboxphysics.com/zh/labs/sem-topography/)

[查看完整路径 →](https://sandboxphysics.com/zh/topics/fields-and-matter/#starter-path)
