让尺跟着平均膨胀走
设物理位置为,有长度单位的共动位置为。尺度因子记录宇宙相对于一个参考时刻放大了多少。把共动盒长定为,再定义无量纲位置,盒子每个方向的范围就是零到一。
若物质仅跟着均匀膨胀走,保持不动,仍会增长。这正是共动坐标的用途:先把大家共有的膨胀扣掉,剩下的运动直接显示物质相对于平均流动怎样迁移。兆秒差距是长度单位;这里画面采用共动长度。
对应阅读:Springel (2005), The cosmological simulation code GADGET-2, astro-ph/0505010v1 · Original finite-mesh calculations and independent small-wave Python replay
先分清两种速度
对物理位置求时间导数,会得到两项。第一项来自尺本身伸长,第二项来自粒子在尺上移动。定义,点表示对宇宙时间求导;相对于平均膨胀的第二项叫本动速度,也称特殊速度。
一颗粒子可以朝盒子内侧移动,共动位置减小,却仍因膨胀而离选定原点越来越远。只有向内的本动速度足够大,才会抵过向外的膨胀项。比较相邻物质是否真的靠近时,也要做同样的区分。
对应阅读:Springel (2005), The cosmological simulation code GADGET-2, astro-ph/0505010v1
保存一个适合推进运动的量
计算文件里保存的不是以千米每秒计的速度。先把每单位质量的正则动量写成,再除以固定的速度标尺,得到无量纲的。正则动量是随所选坐标一起定义、方便写运动方程的量。
采用,乘盒长以后,速度标尺就是。这个星号表示模型的参考值。把和一起保存,就能在每个时刻还原本动速度。
为什么多乘一次?取没有本动引力的均匀背景极限,本动速度按减小,却保持恒定。这样写方程,背景膨胀造成的那项变化已经整理进变量里。
对应阅读:Springel (2005), The cosmological simulation code GADGET-2, astro-ph/0505010v1 · Original finite-mesh calculations and independent small-wave Python replay
算一次向内运动
给定一个换算练习:时,一颗粒子沿选定轴的位置是,动量分量是。负号表示本动方向朝向原点。这组数是题目指定的状态,不是某个预设的测量值。
先算位置。共动距离为,物理距离再乘,得到。本动速度则是。
在本课程采用的平直纯物质背景,也就是Einstein–de Sitter(EdS)宇宙里,。这个时刻的Hubble率约为,向外的膨胀速度约为。两项相加,物理距离的变化率约为:它正在真正靠近原点。
对应阅读:Original finite-mesh calculations and independent small-wave Python replay
把尺度因子也当作时钟
这个受限宇宙一直膨胀,单调增加,能直接充当推进运动的时钟。定义物理本动引力势,它有速度平方的单位;再取,把势也换成无量纲形式。列出势沿三个共动方向的变化率,引力沿其负方向。
把Newton运动方程中的时间导数,按换成对的导数,就得到下面两式。动量变量已经包含膨胀效应,右边不再另外加一次Hubble阻尼。
对应阅读:Springel (2005), The cosmological simulation code GADGET-2, astro-ph/0505010v1 · Original finite-mesh calculations and independent small-wave Python replay
跨过盒面,标签还在
周期盒把一面接到对面。显示时可从减去一个整数,把它放回零到一之间;导出则保留连续位置,方便追踪同一粒子。相差一个整数的位置代表周期副本。
跨过显示边界没有丢失质量,也没有让粒子逃离引力系统。下一篇的壳层穿越说的是不同物质流到了同一位置,和穿过周期盒面是两件事。
对应阅读:Original finite-mesh calculations and independent small-wave Python replay