NAVIER–STOKES
A Live Solution · 实时求解中

纳维–斯托克斯方程

The Navier–Stokes Equations

把牛顿第二定律写进每一小团流体——质量与动量守恒,在一切流动的物质上显形。下方画面正是这条方程被实时求解的一个解。

不可压缩形式 · 按住画面拖动,亲手给它一个初值
FPS -- · 网格 -- · Re≈-- · Gauss–Seidel 迭代求解压力泊松方程(投影法)
按住并拖动 —— 你正在给速度场施加边界条件
scroll · 拆解方程
粘度预设(真实流体)
01

一条写给流体的牛顿定律

A Law for Fluids

纳维–斯托克斯方程(Navier–Stokes equations,简称 N–S 方程)是描述粘性牛顿流体运动的基本方程组。它的本质极其朴素——F = ma,只不过"物体"换成了无穷小的流体微团:微团的质量乘以加速度,等于作用在其上的压力差、粘性摩擦力与外力之和。再配上质量守恒(连续性方程),方程组便封闭可解。

河流的奔涌、台风的旋臂、血管中血液的脉动、机翼上方的环流、恒星内部的对流——只要物质可以近似为连续介质在流动,几乎都在 N–S 方程的管辖之下。它是数值天气预报的心脏,是飞机与汽车外形的裁判,也是数学上最艰深的方程之一。

历史上,欧拉在 1755 年先写下无粘流体方程;纳维(1822)从分子作用力的猜想引入"粘性"项;斯托克斯(1845)以连续介质假设严格推导,引入动力粘度 μ,方程遂以二人命名。

符号速查表

u(x,t)速度场:空间每一点、每一时刻的速度矢量——方程的主角
p(x,t)压强场:标量,驱动流动并执行不可压缩约束
ρ密度(不可压流中视为常数)
ν = μ/ρ运动粘度:流体"粘稠程度"的度量,单位 m²/s
f单位质量体积力:重力、科氏力、电磁力等
∇纳布拉算子:∇p 梯度、∇·u 散度、∇²u 拉普拉斯(扩散)
守恒律 ①质量守恒 → (不可压)
守恒律 ②动量守恒 → N–S 方程本体
本构关系牛顿流体:剪应力 ∝ 剪切率,比例即 μ
02

把方程拆开:五项,五种物理

Anatomy of the Equation

点击任意一项(或下方卡片)锁定查看解释——如同视频中被黄框圈出的重点;悬停仅高亮。

非定常项
对流项
压力梯度
粘性扩散
外力

随体导数:方程的另一种写法

前两项可合并为随体导数(物质导数) ,方程常写作 —— 这是"坐在流体微团上"看到的 F=ma:左端是微团真实加速度,右端是合力。下一节推导它的来历。

03

方程从哪来:四步推导

Where It Comes From

N–S 方程不是经验拟合,而是两条守恒律 + 一条本构假设的必然结果。逐步展开(每一幕打开时,公式会像板书一样书写出现):

假设 ①连续介质:忽略分子离散性
假设 ②牛顿流体:应力与应变率线性
假设 ③暂不计传热(附录 C 补上)
Scene 0选取对象:一个流体微团▶
在流场中取一个无穷小的流体微团,体积 ,密度 ρ,速度 u。物理定律写给这个微团:跟着微团走(拉格朗日),所以加速度是随体导数 ——这就是它日后出现在方程左端的原因。
Scene 1质量守恒 → 连续性方程▶

微团内质量的增加率 = 通过表面的净流入量的负值(散度即"净流出率")。若密度恒定(不可压缩),立即简化为 ——"进多少出多少",这正是首屏方程的右半部分。

Scene 2动量守恒 → 应力张量登场▶

对单位体积写 F=ma:左端是密度 × 加速度。右端的力分两类——表面力由应力张量 σ(九个分量)描述,相邻面应力的差异才是净力,故出现散度 ;体积力 f(重力等)直接作用在每一点上。

Scene 3应力分解:压力 + 粘性偏应力▶

把应力拆成两部分:各向同性的压力(负号表示"压",只改变体积)与由变形、剪切引起的粘性偏应力 τ。这一步只是分解,还没有引入任何流体特性。

Scene 4牛顿本构:粘性应力与应变率成正比▶

牛顿流体假设:粘性应力与应变率张量线性相关(胡克定律的"速率版"),比例系数为 μ(剪切)与 λ(体积)。括号里的对称梯度正是"变形快慢"。不可压时 ,λ 项自动消失。水、空气等常见流体是牛顿流体;血液、聚合物熔体则需其他本构。

Scene 5代入化简 → 纳维–斯托克斯方程▶

粘性应力的散度 ,第二项因不可压缩为零。两边除以 ρ,记 ν=μ/ρ,得到首屏的矢量形式。

守恒定律 + 一条本构假设 ⇒ N–S 方程。 没有从天而降的项:∂u/∂t 与 (u·∇)u 来自加速度分解,−∇p/ρ 来自表面力的各向同性部分,ν∇²u 来自牛顿粘性假设,f 来自外力。
04

欧拉 vs 拉格朗日:两种观察流动的方式

Two Points of View

欧拉视角:把观察者钉在空间固定点,记录"这里此刻"的速度,得到场 ,像测风塔。N–S 方程默认采用这种描述。

拉格朗日视角:盯住一小团流体,追随它走完整条轨迹,像河里的漂流瓶。烟缕、染色线属于这种视角。

两者由随体导数缝合:当地变化 加上"被流走的部分" ,才是微团的真实加速度——这正是对流项存在的理由。

LIVE · 解析涡旋场箭头=当地速度 · 粒子=流体微团
05

无量纲化与雷诺数:惯性与粘性的拔河

The Reynolds Number

把所有物理量用特征尺度归一,方程中的参数会塌缩成一个数。Re 小,粘性说了算——蜂蜜缓缓摊开,流动平滑可逆;Re 大,惯性说了算——江河翻卷、烟柱破碎成湍流。1883 年雷诺用染色水管实验首次揭示层流—湍流转捩。

Scene ·无量纲化:Re 是如何从方程里"冒出来"的▶

① 选特征量:长度 L、速度 U、时间取对流时间 L/U、压强取动压 ρU²。令

② 代入原方程:导数相应变换 ,每一项都提出公共因子 U²/L,约掉后:

③ 认出新参数:粘性项前的系数 就是雷诺数——惯性项与粘性项的比值。整条方程只剩这一个参数。

④ 深刻推论(相似律):尺寸、速度、流体都不同的两个流动,只要 Re 相同,无量纲流场就相同——这是风洞小模型能代表真飞机的理论根据,也解释了为什么细菌与客机活在"两个世界"。下方实验台正是该结论的演示。

LIVE · 圆柱绕流画面叠加实时 Re 与流态

Re 实验台

—层流

量级参考细菌 ~10⁻⁴ · 毛细血管血细胞 ~10⁻² · 金鱼 ~10⁴ · 汽车 ~10⁷ · 大气气旋 ~10⁹
Re < 1 时方程退化为线性斯托克斯流,可以得到解析解——小球阻力即著名的斯托克斯定律 。粘性统治的世界里,没有湍流,也没有悬念。
06

边界条件与边界层:流动贴着边界生长

Boundaries

微分方程必须配上边界条件才有唯一解——同样的方程,不同的边界,长出完全不同的流动。真实流体最常用无滑移条件:紧贴固壁的流体速度与壁面完全相同,水贴着管壁的那一层真的是静止的。于是壁面附近必然出现速度急剧爬升的薄层——边界层(普朗特,1904),阻力、分离、失速、传热几乎都发生在这里。

计算域还要处理进、出口与远场。右图是可切换边界类型的泊肃叶渠道流,带尺寸标注与壁面剪切应力 τw。

LIVE · 渠道流u(y)=G(h²−y²)/2μ,其中 G=−dp/dx>0

注:自由滑移时壁面不提供剪切,压差无法被平衡,严格说不存在稳态解(流体会持续加速)——此处塞流剖面仅用于形态对比。

中心最大流速 umax=Gh²/2μ—
壁面剪切应力 τw=G·h—
单位宽度流量 Q=2Gh³/3μ—
无滑移壁面

真实粘性流体的默认壁面条件,边界层的起源。

入口(给定速度)

均匀、抛物线或带湍流脉动的入口剖面。

出口(零梯度)

充分发展出流,避免数值反射;需保证该处以流出为主。

周期性

等效无限大域,均匀湍流 DNS 的标准配置。

对称面

几何对称时省一半算域:法向速度为零,切向零梯度。

自由滑移

理想化壁面,不产生边界层;用于对比实验与部分大气海洋模式。

自由表面

运动学条件追踪界面 + 动力学应力平衡(含表面张力 σκ):波浪、液滴、破碎。

开放/远场

允许扰动离开而不反弹;外流气动与气动声学常用。

07

怎么解?——从纸面到超级计算机

Solving It Numerically

除极少数高对称情形外,N–S 方程没有解析解(见附录 B 画廊)。工程与科研靠数值方法:把空间剖成网格、时间切成步长。按对湍流的处理分三档:DNS 直接数值模拟(解析全部尺度,代价 ~Re³)、LES 大涡模拟(算大涡、模小涡)、RANS 雷诺平均(全模化,工业主力)。本页首屏就是一个微型 DNS。

Step 1
施加外力


拖拽、重力、涡旋爆发写进速度场。

Step 2
粘性扩散


隐式 Gauss–Seidel 迭代求解动量扩散。

Step 3
压力投影 Ⅰ


解泊松方程扣除散度,逼近 ∇·u=0。

Step 4
自对流


半拉格朗日回溯采样:速度搬运自己。

Step 5
压力投影 Ⅱ


再次强制不可压缩后渲染。切到首屏"散度"模式可检验残差。

四种离散方法对比

方法核心思想典型应用优势短板
有限差分 FDM泰勒展开,用差商逼近导数学术研究、简单几何实现简单、高阶格式成熟复杂几何困难
有限体积 FVM对控制体积分,守恒通量工业 CFD(Fluent / OpenFOAM)天然守恒、对激波稳健高阶精度较繁琐
有限元 FEM弱形式 + 基函数展开流固耦合、复杂几何、多物理场几何灵活、数学严谨不可压约束需特殊处理(LBB 条件)
谱方法全局傅里叶/切比雪夫展开湍流 DNS、机理研究数值耗散极低、精度指数收敛几何受限、代价高
CFL 与稳定性显式格式要求一步走不出一个网格;半拉格朗日法打破该限制,故称"稳定流体"。
压力没有演化方程?不可压流中 p 每步由泊松方程"即时全场调整",像不可伸长膜的张力。
08

湍流:非线性结出的最复杂的果

Turbulence

当 Re 足够大,对流项的非线性开始自我放大:扰动被拉伸、折叠、再拉伸,流动进入湍流——混沌、三维、多尺度,对初值极端敏感。能量沿级串从大涡传向小涡,直到最小尺度被粘性"磨"成热。

能量级串与 −5/3 律

→→→粘性耗散 · 热
波数 k (log) E(k) −5/3 惯性子区 含能尺度 耗散尺度 η

柯尔莫哥洛夫(1941):惯性子区内 ,仅由能量通量 ε 决定——混乱之中藏着普适秩序。

"大涡里面有中涡,中涡里面有更小的涡,如此层层相套,直到粘性把动能磨成热。"
—— 理查森(R. Richardson,1922)涡旋诗,意译
"湍流是经典力学中最重要的未解决问题。"
—— R. 费曼

湍流的四大特征

① 不规则性 看似随机,却服从确定性方程;② 强扩散性 掺混输运远超层流;③ 大雷诺数 惯性主导,粘性只在最小尺度收尾;④ 能量级串 涡结构跨尺度传递能量的"传送带"。

09

千禧年难题:解,会一直光滑吗?

The Millennium Problem
CLAY · US$ 1,000,000

三维不可压缩 N–S 方程的存在性与光滑性

2000 年,克雷数学研究所将其列入七大千禧年问题。题目一句话:给定任意光滑、无散度的初始速度场,三维 N–S 方程是否对一切时间都存在光滑解?

换句话说:物理学家天天在用这条方程,数学家却还无法保证它永远不自相矛盾。

10

它在哪里工作

Where It Lives

气象、气候与海洋

从 7 天天气预报到百年气候预估,从台风路径到厄尔尼诺——本质都是在旋转球面上数值积分 N–S 方程。全球模式动辄数十亿网格点,是超算最大用户之一。

云

航空航天

翼型升力、跨音速激波、再入舱热流——CFD 已成为与风洞并列的"第二试验场"。

翼

心血管医学

壁面剪切应力与动脉粥样硬化相关;支架与人工瓣膜先在虚拟血管中接受考验。

脉

影视特效与游戏

海浪、烟尘、岩浆——银幕上的流体大多出自 N–S 解算器。

影

能源与化工

管道输送、换热器、燃烧室、风机叶片——每一百分点的效率都来自对流动的精细计算。

管

船舶与海洋工程

船型阻力、波浪载荷、立管的涡激振动疲劳。

浪
11

附录:方程群 · 解析解画廊 · Manim 脚本

Appendix & Manim Companion
A · 方程的各种面孔

分量形式(爱因斯坦求和)

一条式子展开是三个耦合的偏微分方程;重复下标 j 表示对 1,2,3 求和。

涡量形式(ω = ∇×u)

压力消失。右端第一项是涡量拉伸——湍流级串的发动机;二维流动中它恒为零,涡只能被平流与扩散,二维湍流因此性格迥异。

无量纲形式

整条方程只剩 Re 一个参数——推导过程见第 05 节折叠面板。

可压缩一般形式

配合可压缩连续性方程 与状态方程,可描述激波与高超声速流动。

B · 解析解画廊(N–S 屈指可数的精确答案)

库埃特流 Couette

上板以 U 拖动,粘性把动量一层层往下传,速度呈线性分布。

适用:层流 · 无限大平行平板

泊肃叶流 Poiseuille

压差驱动的抛物线剖面;圆管版本 u(r)=G(R²−r²)/4μ 给出哈根–泊肃叶流量律。

适用:充分发展层流 · Re≲2300(管)

斯托克斯绕球 Stokes

丢掉惯性项后方程变线性,球绕流有闭式解——沉降、气溶胶、微生物游动的基石。

适用:Re≪1 蠕动流

泰勒–格林涡 Taylor–Green

罕见的含时精确解:涡阵按 e⁻²νᵗ 指数衰减,直观演示粘性耗散;是检验数值格式的标准测试题。

适用:周期域 · 任意 Re
C · 深化概念

能量方程与热耦合

Φ=τ:∇u 是粘性耗散函数——机械能不可逆变热的速率(快速搅动流体会使其升温)。低速不可压流动通常可忽略传热;自然对流中温度经 Boussinesq 近似以浮力项反馈动量方程;高速可压缩流动则必须把 N–S、能量方程与状态方程联立求解。

环量与开尔文定理

环量 Γ 是速度沿闭合曲线的线积分,由斯托克斯定理等于穿过曲面的涡通量。开尔文环量定理:无粘、正压、体积力有势时,DΓ/Dt=0——随流体走的闭合回路环量守恒,涡管强度不变。粘性打破该守恒,而涡量拉伸把涡管拉细拉长、按角动量守恒放大涡强(花样滑冰收臂效应),将能量泵向更小尺度——这正是级串与 −5/3 律的机制根源。

D · Manim 伴随视频脚本(3Blue1Brown 同款引擎)

Manim 是 Python 离线渲染引擎(3Blue1Brown 视频的制作工具),无法在浏览器内运行;本页的 Web 动效(书写公式、黄框圈选、坐标网格)正是对其视觉语言的复刻。若要生成真正的矢量伴随视频,将下方脚本保存为 ns_scenes.py 并在本地渲染,再把输出的 mp4 嵌入本页任意 viz 容器即可:

环境Python 3.9+,pip install manim
渲染manim -qm ns_scenes.py NSDerivation
中文本机需安装 Noto Serif CJK SC 字体
ns_scenes.py· 推导 + 无量纲化两个场景
from manim import *

class NSDerivation(Scene):
    def construct(self):
        title = Text("纳维–斯托克斯方程", font="Noto Serif CJK SC").to_edge(UP)
        self.play(Write(title), run_time=1.5)

        # Scene 1 · 质量守恒
        cont = MathTex(r"\frac{\partial \rho}{\partial t}+\nabla\cdot(\rho\mathbf{u})=0")
        lab1 = Text("① 质量守恒", font="Noto Serif CJK SC", color=TEAL).scale(0.7)
        g1 = VGroup(lab1, cont).arrange(DOWN).next_to(title, DOWN, buff=1.0)
        self.play(FadeIn(lab1, shift=UP*0.2), Write(cont))
        self.wait(0.6)

        # Scene 2 · 动量守恒
        mom = MathTex(r"\rho\frac{D u_i}{Dt}=\frac{\partial\sigma_{ij}}{\partial x_j}+\rho f_i")
        lab2 = Text("② 动量守恒 (F = ma)", font="Noto Serif CJK SC", color=BLUE).scale(0.7)
        g2 = VGroup(lab2, mom).arrange(DOWN).next_to(g1, DOWN, buff=0.9)
        self.play(FadeIn(lab2, shift=UP*0.2), Write(mom))
        self.wait(0.6)

        # Scene 3 · 牛顿本构
        cons = MathTex(r"\sigma_{ij}=-p\,\delta_{ij}+\mu\left(\frac{\partial u_i}{\partial x_j}+\frac{\partial u_j}{\partial x_i}\right)")
        lab3 = Text("③ 牛顿流体本构(不可压)", font="Noto Serif CJK SC", color=GREEN).scale(0.7)
        g3 = VGroup(lab3, cons).arrange(DOWN).next_to(g2, DOWN, buff=0.9)
        self.play(FadeIn(lab3, shift=UP*0.2), Write(cons))
        self.wait(1.0)

        # Transform → 最终形式
        final = MathTex(
            r"\frac{\partial\mathbf{u}}{\partial t}+(\mathbf{u}\cdot\nabla)\mathbf{u}",
            r"=-\frac{1}{\rho}\nabla p+\nu\nabla^{2}\mathbf{u}",
        ).scale(1.25)
        self.play(*[FadeOut(m) for m in [g1, g2, g3]], ReplacementTransform(title.copy(), final))
        box = SurroundingRectangle(final, color=YELLOW, buff=0.25, corner_radius=0.1)
        self.play(Create(box))
        self.wait(2)


class Nondimensionalization(Scene):
    def construct(self):
        sub = MathTex(
            r"\mathbf{x}=L\mathbf{x}^{*},\ \ \mathbf{u}=U\mathbf{u}^{*},\ \ ",
            r"t=\frac{L}{U}t^{*},\ \ p=\rho U^{2}p^{*}"
        ).to_edge(UP)
        eq = MathTex(
            r"\frac{\partial\mathbf{u}^{*}}{\partial t^{*}}+(\mathbf{u}^{*}\cdot\nabla^{*})\mathbf{u}^{*}",
            r"=-\nabla^{*}p^{*}+",
            r"\frac{1}{\mathrm{Re}}",
            r"\nabla^{*2}\mathbf{u}^{*}",
        ).scale(1.2)
        re_def = MathTex(r"\mathrm{Re}=\frac{\rho U L}{\mu}", color=YELLOW).next_to(eq, DOWN, buff=0.9)
        self.play(Write(sub))
        self.wait(0.5)
        self.play(Write(eq))
        self.play(Circumscribe(eq[2], color=YELLOW), FadeIn(re_def, shift=UP*0.3))
        self.wait(2)
Timeline · 三百年流动史
1738

伯努利《Hydrodynamica》:压强与流速的联姻。

1755

欧拉写下无粘流体方程(理想流体的极限)。

1822

纳维从分子力假设引入粘性项。

1845

斯托克斯以连续介质理论完成推导,μ 正式登场。

1883

雷诺染色水管实验:层流—湍流转捩与 Re 诞生。

1904

普朗特边界层理论,近代流体力学起飞。

1934

勒雷证明弱解存在——正则性问题埋下伏笔。

1941

柯尔莫哥洛夫湍流统计理论,−5/3 律。

1968

Chorin(乔林)投影法,CFD 时代开启。

1999

Stam《Stable Fluids》,本页首屏的算法之源。

2000

克雷数学研究所:百万美元千禧年悬赏。