本节摘要:数值分析进入天体物理,不是把教科书上的差分格式原样贴到恒星上。轨道问题要长期结构,激波问题要熵增落在正确的位置,宇宙学问题还要在周期盒子里把大尺度功率谱守住。CFL 条件、人工粘性、辛积分、自适应步长,都是在这些口味里长出来的,而不是从纯数学单向输入的。
阅读完本节,你应当能够:
经典数值分析喜欢问:步长减半,误差是否按预期的幂次下降。天文也问这个,但更先问另外两句。第一句:跑到物理上有意义的时间之后,结构还在不在。行星系统要积分千万圈,星系盘要转几百圈,宇宙学盒子要从高红移走到今天。局部截断误差很小,累积起来仍可以把圆轨道磨成螺旋。第二句:间断放对地方了没有。超新星、吸积、再电离都有激波和电离锋。高阶平滑格式会在间断两侧振荡,负密度比低阶更致命。
于是天文里的数值分析从一开始就分裂成两种品味。轨道派接近哈密顿系统:要辛、要可逆、要长期能量误差准周期地抖,而不是单调漂移。流体派接近双曲守恒律:要单调或近似单调、要黎曼问题、要熵条件。有人试图用同一套高阶格式同时伺候两种品味,结果常常是轨道被耗散,激波被振荡。方法史后来选择了分家,再在耦合时用算子分裂把两套品味缝回去。这不是优雅,是经验。
轨道品味 流体品味 长期结构、近可积 间断、激波、接触面 辛积分、高阶多步 守恒形式、限制器 能量误差准周期抖动 允许受控耗散 怕世俗漂移 怕振荡出负密度
💡 关键直觉:阶数是局部的虚荣,结构是全局的纪律。天文先问结构还在不在,再问你的泰勒展开漂亮不漂亮。
轨道积分要长期结构,流体积分要间断落在正确位置。天文向数值分析要的不是同一枚勋章。

显式格式的时间步不能任意大。库朗、弗里德里希斯、列维给出的限制,说的是:数字信息在一格里走的距离,不能超过物理特征速度在该步长里走的距离。声学、磁声波、相对论喷流里的光速,都会把步长按最严的那个格子钉死。加密网格因此不只增加空间自由度,还把整段演化的步数按比例抬升。自适应加密后来必须同时管理局部步长,否则细区的稳定性账单会由粗区来付。
隐式格式可以迈更大的步,代价是解耦合方程组。恒星演化的热调整时标和核时标差出许多数量级,亨耶伊方法和后续的恒星结构码几乎必须隐式。辐射与流体耦合时,光时标可以短到让显式流体完全瘫痪,于是有了各种对辐射取隐式、对流体取显式的分裂。稳定性在这里不再是纸上的特征值问题,它直接决定你能问多长的物理时间。
人工粘性是另一笔不得不付的账。冯·诺依曼与里希特迈尔为了让激波在几个格子内被俘获,故意加进与速度散度相关的耗散。没有它,中心差分会在间断处振荡。有了它,剪切和开尔文-亥姆霍兹不稳定性会被一起抹掉。SPH 的早期名声有一半毁在过量粘性上:星系并合里的气体核过分平滑,星形成被推迟,看起来像物理,其实是格式在当粘滞流体。后来的开关、限制器、无矩阵耗散,都是在“必须俘获激波”和“不许把湍流当热汤”之间改道。
| 机制 | 它在保护什么 | 它会伤害什么 | 历史对策 |
|---|---|---|---|
| CFL 限制 | 显式更新的因果性 | 细网格的可演化时长 | 局部步长、子循环 |
| 人工粘性 | 激波俘获、熵增位置 | 剪切、湍流、接触间断 | 开关、限制器 |
| 高阶重建 | 光滑区精度 | 间断附近振荡 | 本质无振荡限制 |
| 辛积分 | 长期轨道结构 | 带耗散的非哈密顿过程 | 与流体分裂 |
截断误差、舍入误差、粒子噪声还常被混为一谈。截断误差随分辨率收敛,是格式阶数的领地。舍入误差在双精度下通常不是主犯,除非你把巨大数与微小数硬加在一起——N 体势的近距项就爱干这事,于是有软化长度和树码的局部坐标。粒子噪声是蒙特卡罗式的:同样的物理,粒子少时涨落可以盖过信号,加密粒子后涨落按根号下降,和网格截断的幂次下降不是同一类收敛。宇宙学模拟里把功率谱的小尺度抖动写成“新物理”,很多次其实是噪声在发言。
把数值分析看成单向输入,会漏掉天文回赠给计算数学的那些东西。树码和快速多极把 N 体从平方复杂度里救出来,后来进入通用快速算法。自适应网格细化在恒星爆炸和宇宙学再电离里被逼到极端的层次差,推动了负载均衡和空间填充曲线。约束输运为了守住磁通量,把电场放在棱上、磁通量放在面上,这种交错配置后来成为空间等离子体和工程 MHD 的共同财产。运动网格在星系形成中证明:可以在激波处保持近似欧拉,在盘处保持近似拉格朗日。
时间积分同样被改口味。N 体常用个别时间步:硬双星走小步,外围晕走大步,用预测-校正把不同时钟对齐。这在通用 CFD 里并不自然,却是星团模拟活下来的原因。宇宙学则要处理膨胀背景:共动坐标把哈勃流从 peculiar 运动里拆出去,否则所有粒子都在退行,步长会被背景速度绑死。这些都不是教材例题里的边界条件,而是对象本身逼出来的坐标系选择。
⚠️ 常见坑:从工程 CFD 教材直接搬一套高阶格式进星系盘,却不检查角动量和熵在几十个轨道周期后的漂移。天文的时间基线通常比风洞长出几个数量级。
验证手段也形成了自己的清单,而不是只看制造解。常用的包括:激波管与塞多夫爆炸对照解析自相似解;静水恒星对照流体静力学;线性声波与 Jeans 不稳定性对照解析增长率;宇宙学则对照 Zel'dovich 近似和线性功率谱。清单的意义是:在声称“我们模拟了再电离”之前,先证明代码在这些老问题上还没有把齿轮磨坏。
概念上,一次受纪律的时间推进可以记成:
估特征速度 → 用安全系数缩小步长 光滑区:高阶重建 间断区:降阶并打开耗散开关 更新守恒量 投影或阻尼约束 写诊断:能量、散度、功率谱、负密度计数 若诊断越界:不是继续画图,是退回步长或格式
到此,第 1 章的三条线收束:历史告诉你为何必须算,方程告诉你必须切成有限代表,数值分析告诉你这些代表如何在时间里活着往前走。第 2 章将进入真正改写领域面貌的分叉——引力走粒子与树,流体走核函数与网格,磁场和辐射再把约束与相空间叠上去。
尽管天文改写了树码、AMR 和约束输运,入门者仍不能跳过通用数值分析的几张旧卷。特征值稳定性、耗散与频散的权衡、守恒形式与原始形式的差别,在激波管上比在星系图上看得更清楚。把这些旧卷当成“工程课,与宇宙无关”,会在第一次把高阶格式搬进盘时重复前人的振荡。
反过来,只做激波管、从不做长期轨道,会把辛结构当成玄学。行星系统与冷暗物质晕都接近哈密顿,耗散格式会在看似无害的几千步之后改变轨道倾角或晕的形状。所以训练路径应当两条都走:先在间断上学会限制器,再在近可积系统上学会不要乱加粘性。第 2 章的 N 体与流体分叉,就是这两条训练路径的职业化。
步长控制还有一层常被忽略的社会学。安全系数取得过小,机时委员会觉得你浪费;取得过大,审稿人在能量图上能看见锯齿。安全系数因此是科学与资源的折中,应当写进方法节,而不是写进口头传统。后文讲 GPU 与队列时,会看到安全系数如何被重新定价。
数值分析进入天文,不是把通用教材的章节改个标题。天文把长期哈密顿轨道和强间断同时塞进同一门课,逼出了个别时间步、限制器品味和守恒账本这三件随身工具。缺任何一件,后面的树码、网格和辐射都只是更贵的差分表。读第 2 章之前,应能回答:这一步是在保结构,还是在俘获间断。答得出,离散化才从手续变成判断。
下一章我们将看到:同样接受了离散化,引力与流体如何分成两条主线,又如何在星系与宇宙学里被迫重新焊接。