本节摘要:天体物理的核心方程几乎都能写在一张纸上:牛顿运动、欧拉方程、感应方程、辐射转移、爱因斯坦场方程。写得出,是理论的胜利;解不出,是计算的出生证明。离散化把连续场换成粒子、网格或射线的有限自由度,使迭代成为可能,同时把截断误差和守恒破坏变成必须记账的新物理。
阅读完本节,你应当能够:
牛顿第二定律配上万有引力,两个质点可以积出来。N 个质点就把加速度写成其余所有质点贡献的和。和式看起来仍然像定律,其实已经是一台机器:每一步要算的配对数目随 N 的平方涨。流体更不客气。欧拉方程要求质量、动量、能量在每个流体微元上守恒;一旦出现激波,连续可微的经典解可以在有限时间里断裂,弱解必须靠间断关系来补。磁场进入之后,感应方程还要求散度为零的约束在演化中不被数值噪声养大。辐射转移方程则活在位置、方向、频率的高维相空间里,解析解只在平面平行大气、灰近似、局域热动平衡这些窄巷里出现。
广义相对论把难度再抬一档。场方程是关于度规的非线性方程,弱场可以线性化成引力波;强场、动力学视界、物质并合,解析工具几乎只剩下对称性极高的特例。数值相对论后来用的是另一套离散对象:切空间上的几何量,而不是牛顿粒子。
所以“必须离散化”不是一句懒惰的口号。它是在说:连续对象的自由度是无穷的,机器只能推进有限个数字。你必须先决定哪些自由度留下,哪些交给模型。
连续对象 你被迫留下的有限代表 点质量轨道 每个粒子的位置与速度 流体场 网格上的守恒量,或 SPH 粒子 磁场 面上的通量或边上的电场 辐射场 方向角上的射线、矩、或光子包 时空几何 切片上的度规与外曲率
💡 关键直觉:离散化像铸币。连续的金属被打成有限面额。面额够用,市场能转;面额选错,不是金属消失了,是你无法找零。
同一组流体方程,可以用两种刀切开,后面第 2 章的 SPH 与网格之争,源头就在这里。
拉格朗日观点跟着物质走。每个微元有身份,密度变化来自体积变化,对流项不必显式出现。轨道、尘埃、无碰撞恒星、暗物质,天生像拉格朗日。SPH 把流体也做成带质量的粒子,正是把这把刀用到可压缩气体上。好处是自由表面和巨大密度对比不需要特殊边界;坏处是邻近关系要靠核函数临时建构,接触间断和激波的处理变成艺术。
欧拉观点守在空间点上。网格是固定的河床,流体是过往的水。通量从界面进出,守恒可以写成望远镜式的相消。激波俘获、高马赫数喷流、辐射与流体的分步耦合,网格往往更老实。坏处也明显:物体走过很多个格子,切向对流会抹掉接触间断;密度对比大时,空旷区域浪费格子,致密核又不够细——于是才有后来的自适应加密。
还有第三把后来才磨出来的刀:让网格点跟着流动,但保持拓扑或有控制地重连。运动网格试图兼得拉格朗日的低耗散和欧拉的激波俘获。它不是一开始就有的智慧,而是两条老路都把缺点暴露够了之后的改道。
| 描述 | 自由度贴在谁身上 | 对流如何出现 | 历史里先养活谁 |
|---|---|---|---|
| 拉格朗日 | 物质微元或粒子 | 藏在运动里 | N 体、尘埃、SPH |
| 欧拉 | 空间网格 | 显式通量 | 激波管、恒星大气、喷流 |
| 运动网格 | 随流但不完全随物质 | 残余的网格通量 | 星系形成里的盘与激波并存 |
物理定律本身不偏爱哪把刀。偏爱来自问题:无碰撞系统几乎只能粒子化;强激波几乎必须考虑守恒形式;磁场还要问散度误差放在哪一层。第 2 章会看到,共同体不是选了一种正确离散,而是养出了几棵互相看不顺眼、又必须互相翻译的谱系。
连续方程里,守恒常常是定理:对体积积分,用散度定理,界面通量抵消,总量不变。离散之后,定理要重新挣。有限体积方法把未知量定义成格子平均值,更新只走界面通量,质量可以精确守到机器精度。有限差分若写在原始变量上,激波附近可以制造负密度。SPH 若核函数不满足特定对称,动量和能量会各走各的。磁场若只演化分量、不管约束,散度噪声会变成假力。
于是计算天体物理养成一种近乎偏执的记账习惯:每一步都问,质量、动量、能量、磁通量各漏了多少。漏得少,不证明你对;漏得多,几乎可以肯定你错。长期轨道积分还多一本更苛刻的账——辛结构。非辛积分器可以让行星在千万圈之后缓慢迁移,看起来像新的天体力学效应。
物态和微观物理是另一层离散,常被忽略。理想气体、辐射压、简并、中微子不透明度,都是把连续微观自由度压成几个热力学量。恒星演化和超新星里,这层压缩的误差可以压过流体格式的误差。有人把全部锅甩给“分辨率不够”,其实是铸币时面额表就写错了。
⚠️ 常见坑:看见连续方程里漂亮的守恒律,就默认数值解自动继承。不写进格式的对称,演化不会替你保管。
相对论情形下,离散化还要面对坐标自由。同一物理过程,换时间切片,网格上看起来可以完全不同。数值相对论花了很长时间才学会:稳定演化需要的是合适的坐标条件与约束阻尼,而不只是更细的格子。这提醒我们,离散化失败有时不是步长太大,而是你把几何的自由度切在了会自我放大的方向上。
下面这段概念账本,用来记住“离散化到底改了什么”,不要把它当成某语言的实现。
连续:偏微分方程 + 守恒律 + 约束 选择代表:粒子 / 格子 / 射线 / 切片几何 每个子步只做一件事: 用代表之间的关系,近似微分或积分 把更新写成通量或力,尽量保留对称 把约束误差投影掉,或阻尼掉 检查: 代表变细时,关键诊断是否收敛 约束误差是否以小于物理项的速度增长
到这里,“物理定律为何必须离散化”有了具体含义。不是定律错了,是定律活在无穷维空间里,而我们只有有限个寄存器。第 1.3 节将进入这些寄存器如何一步步往前走:差分格式、时间积分、稳定性。没有那一层,离散化只是把连续的困难翻译成一堆会爆的数字。
把连续场换成有限代表时,丢掉的不只是“细节”,而是某些对称。平移不变的网格,角动量不一定守;球坐标守的是另一套分量,极轴又会引入奇点。谱方法在光滑周期盒子里把自由度用到极致,一遇到间断就全局振荡。选择代表,就是选择你准备守护哪一种对称、准备在哪一种间断上认输。
天体物理对象强迫这种选择反复发生。无碰撞暗物质几乎没有间断,却有近距力的尖;气体有激波,却可能没有那么尖的 1/r。同一只宇宙学盒子里两种物质并存,于是出现混合代表:暗物质粒子加气体网格,或两种粒子用不同核。混合不是聪明,是两套自由度账单不得不写在同一本账上。接口处的质量与动量如何传递,会成为第 2.5 节耦合史的伏笔。
相对论再加一笔。坐标条件是额外的自由度,选坏了会让切片上的表观运动快过光,或者让视界附近的格子被拉伸到无法接受。离散化在这里不只是空间步长,还包括你把“时间”切在哪一叶上。读数值相对论论文,若只看空间分辨率不看切片条件,等于只看铸币的厚度不看模具对不对。
同一组连续方程,换一套代表,提问权会整体搬家:有的问题变得可积,有的问题变成格式噪声。后文所有算法争论,底层都是这张搬家表。
亨耶伊时代的恒星结构,离散化发生在打孔卡片和积分表上:径向分层被切成几十到几百个壳层,松弛迭代在人与机器之间往返。今天的三维盒子把同一笔债记到数以十亿计的寄存器里,原理没有变——无穷维被切成有限维,误差必须另立科目。变的是科目的名字:从前叫截断层数,现在叫软化、开角、群数、逃逸分数。读当代论文若只被粒子数震慑,忘记科目表,就会以为寄存器越多定律越真。定律仍是那几行,寄存器只决定你能把科目表写得多细。
边界条件是科目表上常被漏记的一行。流出边界、周期边界、反射边界、切除视界,各自把连续问题的外部宇宙替换成一种假说。周期盒子假定外面还有无穷个相同的宇宙碎片;切除假定视界之内不再影响外面。假说可以正当,但必须写进分辨率清单的旁边。第 5.3 节会把这一行重新叫作窗函数。此处只需记住:离散化不只切内部,也切掉了外部。
下一节进入数值分析进入天文的那一段:步长如何被稳定性绑架,人工粘性为何既可耻又必要,轨道积分与激波俘获为何发展出两套几乎相反的品味。