解开小型科学材料包
从下方下载 stellar-evolution-science.zip,解压后进入 stellar-evolution-science 目录。里面有精确选取的输出成员、原始署名、输入清单与独立 Python 程序,不含网站 Engine 或应用 TypeScript。
追加材料来自三个固定的 CC BY 4.0 记录,共三十七个原始成员。其中沿用的 Fortran 扩展保留上游 LGPL 第二版或后续版本许可与原始头部。前面的十五个太阳质量收敛课例另有二十一个成员,使用 CC BY-SA 4.0。各组来源分别保留。重算已有输出是一项小型离线分析;生成新的恒星轨迹则是另一项计算。
两个参考程序在读表之前先检查哈希。测试也包含失败情形,JSON 报告保留了缺失的能量项、导入白矮星时的失败状态,以及独立留出模型的年龄失败。画图可另装 Matplotlib;数值重算本身只需要 NumPy。
python scripts/astronomy/ac25/run_reference.py
python scripts/astronomy/ac25/run_extended_reference.py
python scripts/astronomy/ac25/test_reference.py
python scripts/astronomy/ac25/test_extended_reference.py来源:Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0 · Anne Thoul and Morgan Chidester (2022), convective-boundary school solutions, Zenodo 7082536, CC BY 4.0 · Kumar and Townsley (2025), fixed white-dwarf cooling reproduction package, Zenodo 17765239, CC BY 4.0 · MESA School Leuven 2025 convergence labs, fixed ade5bca00e5caae97ac0b6f880f1de7ccead1553, CC BY-SA 4.0
先证明打开的是哪张剖面
打开 extended-member-manifest.json,找到 Z14Mix1/0/10.0/prof_midMS.data 与配套的 out.data。清单给出原成员名、压缩包中的字节范围、CRC、解压长度与 SHA-256。保存时用了无损 XZ,容器另有自己的哈希;容器字节改变,原文没有改变。
剖面头部给出的模型号是 236。先在最终接受的历史分支里找到它,再比较时间。氦燃烧和白矮星还有 profiles.index,把剖面文件名接到模型号。一次重启可能让旧历史尾部整体失效,只删重复行,有时还会留下新分支从未走到的状态。
原始 inlist 与文件头都要读。大质量模型松弛过组成,头部的 initial_z 仍保留默认值,但太阳邻域的实际初始金属丰度是零点零一四。白矮星头部默认的初始质量和金属丰度,也不能确定前身。来源成员、模型号、时钟起点与原始哈希合在一起,才认得清这个模型。
来源:MESA 25.12.1, history, profile and restart output documentation · Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0 · Kumar and Townsley (2025), fixed white-dwarf cooling reproduction package, Zenodo 17765239, CC BY 4.0
拟合表面之前,先检查球壳
原生剖面的行从表面排到中心。当前行的壳内质量减去下一行,才得到这一层的质量;中心内侧的累计质量为零。每层质量、向外的径向厚度都应为正。再把氢比例乘球壳质量并求和,与源文件给出的总氢量比较。
还要检查另一种物理关系:密度乘球壳体积应给出质量,质量坐标上的压力差应对应重力。自转主序模型需要源文件记录的 fp_rot 因子;忽略它,压力梯度会留下百分之几的差别,保留修正后,内部差分残差小得多。
单位要跟着每一列走。剖面把反应功率记成线性数值,单位是每克每秒的能量。大质量历史里的 pp、cno 列则取了对数,光度单位为太阳光度。时间用年,原风速用厘米每秒。忘记取指数或换错太阳单位,曲线仍可能很平滑。
来源:MESA 25.12.1, history, profile and restart output documentation · Keszthelyi et al., arXiv:2209.06350v1, rotating stellar grids and physical prescriptions
制造一个知道真值的测量点
做反演时,先固定所选原生模型的初始质量、组成、自转、混合和风处方。只使用松弛之后、中心氢比例至少为 的保存分支。正的起始年龄与有限的终止年龄,定义了支持使用的时间区间。
用保存模型的表面温度与光度当真值。教程例子给温度对数加上 ,给光度对数加上 ,构成一个合成测量点。假定的独立误差分别为 和 dex。dex 表示以十为底的对数单位。
似然衡量每个候选年龄能多好地解释这个点。对于独立高斯误差,把温度与光度残差分别除以相应误差,再平方相加,就是卡方。卡方小,说明这条给定模型经过测量点附近,还不能证明模型族包含所有可能的恒星。
来源:Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0
按年积分,不按文件行数分概率
MESA 会自适应地选时间步长。变化很快的阶段,即使持续时间短,也可能留下很多行。如果每行分到同样的先验概率,单是把网格加密,就会改变年龄先验。
参考程序在每段保存时间之间,用线性的赫罗轨迹与 Gauss–Legendre 积分点计算。每个点代表多少物理时间,也进入概率权重。它在同一段有限、正的年龄区间里,比较物理时间均匀与对数时间均匀两种先验。
这个已知原生模型的例子中,均匀年龄先验给出的中位数约为 ,中心百分之六十八区间约为 ;已知真值约为 。一次有偏移的测量,不要求中位数恰好落在真值上。换成另一种归一化先验,结果会移动,报告保留了这项敏感性。
这个区间描述固定模型内部的推断,没有加入真实恒星观测。换一套自转、混合、大气或组成模型,需要相应的正向计算,也需要说明怎样给不同模型分先验概率。
来源:Dotter (2016), MIST 0, arXiv:1601.05144v1, phase-aware track interpolation · Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0
拟合很好,年龄仍然可以错
查看追加的 Monte Carlo 文件。每次试验都保存一个新的合成赫罗图测量、已知真值与年龄分位数。对一个十个太阳质量的原生真值,三百次试验中,标作百分之六十八的条件区间有二百零四次包含真值,百分之九十五区间有二百八十次。这是指定真值上的有限试验,不是对所有恒星的保证。
然后,把独立计算的十一个太阳质量、太阳邻域模型当真值,却只用十与十二个太阳质量、太阳邻域与小麦哲伦云组成这四个顶点去拟合。四个具名模型先验等权,各自的物理年龄先验在自己的支持区间内归一化。这里故意缺少真正的质量。
一个展示的例子里,真实时钟约为 ,四顶点后验中位数却约为 。三百次距离检查全部通过,标作百分之六十八的区间却只有六十八次包含真值。错误的质量与组成,也可能在错误的年龄解释同一个赫罗图位置。
交互课只在已知所选原生主序模型的条件下反演年龄。四顶点计算保留为模型缺失的可复算反例,不把这项偏差另塞成高斯误差,好让拟合统计量显得合适。
来源:Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0 · Dotter (2016), MIST 0, arXiv:1601.05144v1, phase-aware track interpolation
离开网站,再重算一个点
独立 Python 程序直接读取原始剖面与历史,先检查显示数值的舍入误差,再用 NumPy 计算两种先验。浏览器使用的有种子高斯测量,也能在这里重现。显示数据保留十二位有效数字,检验到的最大相对舍入差小于千亿分之一。
运行下面的命令,就能重算这份比较。换数据集时,也沿着同样的顺序走:固定版本与许可,读清模型号、时钟和单位,检查一条独立物理关系,写明时间与模型先验,最后留出真正独立的模型。先读一次失败结果,再相信很窄的区间。
python scripts/astronomy/ac25/generate_app_reference.py \
--view-data docs/astronomy/ac25/native-atlas.json \
--out docs/astronomy/ac25/rebuilt-app-reference.json来源:MESA 25.12.1, history, profile and restart output documentation · Keszthelyi (2022), fixed reproduction package, Zenodo 7069766, CC BY 4.0