日报标题:「也没每天仰望星空,我们是这么研究宇宙进化的」
这个问题问得太广了;我在这里不妨把问题收窄一点,谈谈天体物理学家是如何利用数值模拟技术研究宇宙演化的。在当代,绝大多数的理论天体物理学家的工作都和数值模拟直接相关。这是一个很有意思、并且非常值得科普的话题;在这篇回答中,我将略去不必要的技术细节,力求用通俗的语言,呈现出这个领域中宏观的图像、核心的问题、和一些有趣并令人印象深刻的物理理念。
1. 大象和老鼠的难题
(图片来自网络)
说到用计算机模拟宇宙,如果作一个非常谦虚的比喻的话,就像是模拟老鼠和大象。如果我们打算把老鼠和大象放进计算机,会有如下几个难题:
1.1 空间的尺度差异
大象和老鼠的尺度差异巨大。如果要把大象在计算机中“绘制”出来,我们需要的格点精度大概是分米就很好了。然而,分米这一尺度对于老鼠来说,实在是太大了;如果要比较好地描述老鼠,我们需要的精度至少是厘米。因此,我们在计算机中,需要以厘米的量级绘制格点,把大象和老鼠都囊括进来;这就需要大量的格点(因为大象的尺寸较之于厘米而言实在太大了)——或者说大量的计算机内存。
然而天体物理的尺度差异是真正的“天文”数字,其远远大于老鼠和大象的尺度差异。因此,要在一个模拟中包括天体的所有尺度,需要的计算机内存也是天文数字;这是不可能做到的。
即使我们选取一个较小范围的局部进行模拟,空间的尺度差异也会给计算机内存带来巨大的压力。有一些算法技术可以缓解这种压力,比如 mesh refinement,其基本思想是在同一个模拟中的不同区域应用不同的格点精度,从而通过降低部分区域格点精度的方式减少计算机内存的使用。这部分低分辨率的区域的选取标准是不包含太多精细结构,或者在研究意义上不那么重要。
图:白矮星并合体模拟中的自适应多精度三维网格。我们更关心并合体的中心区域,该处的网格也更致密。(版权:本文作者)
(注:这里以及下文关于“格点”的论述,是基于 grid-based simulations 的。对于另一类 particle-based simulations,其虽然没有格点的概念,但主要的结论是相似的。)
1.2 时间的尺度差异
模拟“演化”的过程,即模拟研究对象随时间的变化。对于大象,它绕着花坛散散步,时间大概是以分钟为单位;而老鼠找食物,绕着盘子爬了一圈,只需要几秒钟。因此,如果我们要让计算机精确描述大象和老鼠的运动,我们不得不迁就老鼠的速度,让每帧间隔的时间步长小于 1 秒——如果时间步长太大,下一帧中老鼠就“瞬移”到另一个地方了。
因此,由于老鼠的存在,我们需要更小的模拟步长;而模拟步长的缩短,意味着模拟总步数的增加。计算机每运算一个步长的所需的计算时间是相同的,因此在模拟的时间尺度一定的情况下,步长越短,计算的耗时(wall clock time)就越长。通俗地说,在模拟中计算机消耗了大量的计算时间,才刚刚让老鼠爬了一圈,可这时候大象一步还没有走完呢。
如果说空间尺度的差异尚且可以通过多精度网格提升计算效率,时间尺度的差异带来的挑战更加严峻。在最理想的情况下,步长是由以下关系决定的:
其中 是格点尺寸, 是该处流体存在的最大速度(一般情况下是流速和声速的组合), 是一个常数,需要小于 1 从而保证模拟在数值上的稳定。因为模拟中的时间步长是由所有区域中最短的步长、而不是由最长的步长决定的;而如果在某个区域我们使用了非常高的格点精度(非常小),其对应的步长会变得非常小,从而全局的步长也就非常小。
(注:这个公式即 Courant–Friedrichs–Lewy (CFL)条件。其物理意义是,在一个步长的时间内,信息的传播距离不能超过一个格点。目前,也有一些不基于该条件的算法,但这些算法仍有一定的局限性。)
(又注:这是本文中唯一一个公式。)
因此,大象和老鼠带给我们两个难题:由于老鼠的存在,我们需要用很高的格点精度、和很短的时间步长模拟这个系统,而这需要大量的计算机内存和运算时间。
也许有人会提出这样的想法:如果我把大象和老鼠分开来模拟,问题不就解决了吗?对于大象,虽然要模拟的空间和时间尺度都很大,但我们可以应用粗糙的格点和较大的步长;对于老鼠,我们虽然不得不应用精细的格点和较小的步长,但老鼠的空间和时间尺度都很小。这样,无论是哪种情况,计算机的内存使用和计算时间都不会很多。
这是一个很好的想法,它背后有着物理学中一个深刻的概念——scale free(自由尺度):大象和老鼠体型虽然差距很大,但对于计算机而言,大象和老鼠本质上没什么区别;而只有当两者同时存在时,两者体型之比这一无量纲数,才决定了两者之间的差别(跳跃性地说,决定一个系统性质的是其中所有的独立的无量纲数)。为了不使这篇回答过长,现在我们不妨跳过这个概念,把这一想法放在天体物理学的背景里转述一下,即:
将大尺度和小尺度分开模拟,并且将大尺度的模拟结果用做小尺度模拟的初始和边界条件。
比如说,我们可以分开模拟星系形成和恒星形成。在星系形成的模拟中,我们选取一小块区域,测量出比如气体密度等一些参数,然后把这些参数放进一个新的、更小尺度的恒星形成的模拟中。
但是,不幸的是 / 所幸的是,我们的宇宙远没有这样简单:我从小时候读的童话故事里就学习到,老鼠会钻进大象鼻子里,害得大象打了个喷嚏。
2. 反馈机制(feedback)
当我们走进一个天体物理(非宇宙学)研讨会的会场,听到的频率最高的抽象名词,一定是 feedback。
要理解什么是 feedback,我们先极其粗略地把星系的形成分为两个阶段:
第一阶段,早期宇宙中的暗物质在引力作用下坍缩,形成暗物质晕等结构;
第二阶段,宇宙中的原初气体受到暗物质引力作用被吸进暗物质晕中,并被引力压缩至可激发核反应的密度和温度,从而形成恒星 / 星系 / 星系团。
图:数值模拟中的暗物质晕,气体将在暗物质晕中演化为星系。(版权:KIPAC)
如果这就是蓝图的全部,那么这张蓝图其实是相对比较简单的;其中涉及的主要物理过程,无非是大尺度上的引力作用,和小尺度上的流体力学过程、再加上一点核反应和化学过程。如果要用计算机模拟宇宙的演化,我们可以把两个尺度分成两个模拟进行:一个模拟设定为大尺度,只考虑引力作用,模拟暗物质的坍缩(如 N 体模拟)——即仅仅模拟大象,另一个模拟取之前的模拟中的一小块做为初始 / 边界条件,模拟星体形成的细节——即仅仅模拟老鼠。
然而问题出现了:我们发现,模拟得到的恒星的数量,远多于宇宙中现有的恒星数量。
这一结果告诉我们,我们想象的蓝图太简单了;在我们的宇宙中,还有某种蓝图之外的机制,极强烈地排斥了气体过多地坍缩,从而减少了恒星形成的原料,抑制了恒星的形成。譬如,在星系形成之后,强烈的喷流(outflow)在星系中生成并不断地向星系外抛射高温物质,高温带来的高压也进一步阻止了更多的气体落入星系中心。而最近的观察证据也表明,在星系周围存在着大量的、未落入星系中心的多相(即各个区域具有不同的密度和温度)气体。
因此,天体物理中的一个核心问题,就是研究小尺度对大尺度的负反馈、从而降低理论上过高的恒星形成率的物理机制——这一负反馈,就是我们常说的 feedback。大尺度影响着小尺度,而小尺度也强烈地反作用于大尺度;恰似老鼠钻进大象鼻子,让大象打了个喷嚏。
比较典型的反馈有:
- 活动星系核反馈(Active Galactic Nucleus feedback),星系中心的超大黑洞在吸积过程中释放出喷流及辐射;
- 恒星形成反馈(star formation feedback);
- 超新星反馈(supernova feedback),大质量恒星以超新星爆发的形式终结,为星系注入大量的能量;
- 宇宙射线反馈(cosmic ray feedback);
等等。
这些是从物理现象的角度举例的;如果从较微观的物理过程来看,能够影响大尺度的物理过程有磁场、湍流、流体不稳定性……如果更加微观一点,我们还要考虑到非理想情况下的等离子体物理……而以上的每一项,都是深不见底的研究课题,都有数不清的未解之谜。
图:磁流体数值模拟中,激波和湍流共同作用产生了星际介质中的磁场。(版权:本文作者)
因此,我们面临的情况是,小尺度上的物理过程是如此的重要,以至于在模拟大尺度的演化中,我们必须将小尺度的反馈考虑进来。这就像如果只模拟大象而不模拟老鼠,我们将无法解释,大象好端端的为什么会突然打起喷嚏来。然而,同时把大尺度和小尺度放进计算机,就会遇到在前面第一部分中的难题:时间和空间尺度的巨大差异,让计算时间和内存(以及复杂度)变成了天文数字。
(注:在数值模拟中,物理过程越多,对应的无量纲数也就越多,对模拟的时间和空间的要求也越苛刻。譬如,如果模拟中有较强磁场,除了解磁流体方程的额外用时,磁场的扰动速度——即 Alfvén 速度——会被写入 CFL 条件,从而让模拟步长变得更小。再比如,如果模拟中存在湍流,由于湍流的能量不断地从大尺度向小尺度耗散——一个典型的例子是大烟圈慢慢分裂成小烟圈,最后弥散在空气中——而解析这一耗散过程对模拟的精度提出了极高的要求。)
3. 解决方案
如前所述,小尺度对大尺度的反馈为数值模拟带来了巨大的困难。譬如,要在星系的模拟中加入超新星的反馈,原则上我们需要在模拟整个星系的同时,模拟星系中的一颗超新星的演化过程——毫不夸张地说,这相当于我们在观察地球上板块漂移的同时,还要关注地面上的一颗沙砾由于风化导致的表面微观结构的变化(我大概算了下,两种情况下的尺度之比都在 附近)。
不过,有一个方法或许可以帮我们绕过这看似不可逾越的困难:我们可以从理论上估算出星系中超新星的爆发频率,和每次爆发中产生的能量。那么在星系模拟中,我们可以每隔一定的时间,把相应大小的能量人为地注入到模拟过程中,从而研究其反馈对星系的影响。注意,这里我们并没有具体地模拟个体超新星爆发的过程,而是将其参数化,并加入到模拟中特定的时间空间点上。就像我们在大象的模拟中没有包括老鼠,但我们估算出老鼠每隔多久钻一次大象鼻子,就让模拟中的大象每隔相同时间打一次喷嚏。
我们并没有具体地模拟反馈的产生,而是把发生于远小于格点精度的反馈,参数化地作用于大于格点精度的尺度上。这种方法,被称为 subgrid recipe(直译为“格点之下的烹饪指南”)。
那么相关的工作,一方面是研究基本的物理过程,提出更完善的 subgrid “拼图”;另一方面,是尝试着把不同物理过程的“拼图”,拼成宇宙现在的样子。
总而言之,宇宙在最大的尺度上是相对简单且“优雅”的,其中主要的作用只有引力;而在较小尺度上,各种 feedback 开始产生作用并建立关联,物理图像也变得愈加复杂起来;而这一分界,大概是在星系团的尺度上。所以在有关星系团的研讨会上,宇宙学家们希望星系团越简单越好(潜台词:别给优雅的宇宙学理论添乱),而天体物理学(非宇宙学)家们则希望星系团越有趣越好(潜台词:我就是要捣乱才开心);于是两派友好地剑拔弩张起来。
图:宇宙学家:星系团越简单越好;天体物理学家:星系团越有趣越好(版权:Mark Voit (MSU), General Overview of Cluster Properties, KITP)
我的导师最初做的是宇宙学,后来也做了许多非宇宙学的天体物理方面的工作。他说:“Astrophysics is half chess and half mud-wrestling.”(天体物理一半是下棋,一半是在泥坑里摔跤。)
不过我在泥坑里玩得很开心。
(版权见图片水印)