领导级恒星天体物理代码的多核与加速器开发
立即解锁
发布时间: 2025-10-20 01:01:01 阅读量: 18 订阅数: 39 AIGC 

迈向百亿亿次科学计算
### 领导级恒星天体物理代码的多核与加速器开发
#### 核心坍缩超新星问题概述
核心坍缩超新星(CCSN)是宇宙中最具能量的事件之一,能在几十秒的时间尺度内释放出$10^{53}$尔格($10^{47}$焦耳)的能量。它们产生并传播了许多比氦更重的元素,使得我们所知的生命成为可能。同时,它们标志着中子星和黑洞的诞生,近年来还发现大质量前身星的核心坍缩超新星与长伽马射线暴有关。
核心坍缩超新星由大质量恒星生命末期铁核的坍缩引发。坍缩会达到超高密度,超过原子核中核子的密度。在内核极端的情况下,内核变得不可压缩,发生反弹,像活塞一样向外层恒星核心发射冲击波。这股冲击波最终会穿过核心外的恒星层,使恒星在爆炸中完全瓦解。然而,在目前所有的真实模拟中,冲击波都会在外核停滞,在穿过仍在下落的物质时损失能量。冲击波究竟是如何重新激发的,目前仍是未知,这也是核心坍缩超新星理论的核心问题。
有证据表明,多维效应在这一机制中起着重要甚至是关键的作用。从观测角度看,光谱偏振测量、脉冲星的大平均速度以及SN 1987A的高分辨率图像形态都表明,爆炸早期就会出现各向异性。从理论角度看,计算机模拟给出的反弹后核心剖面分析显示,存在多种流体不稳定性,可能在爆炸机制中发挥作用。
出于这些原因以及其他因素,超新星模拟必须在二维,最好是三维空间中进行。此外,核心会释放出$3×10^{53}$尔格的各种中微子能量,中微子与恒星核心和幔层的相互作用要么为爆炸提供动力,要么在爆炸动力学中起重要作用。对中微子输运的不准确处理可能会从本质上改变模拟结果。由于中微子可能起源于核心深处,那里中微子的平均自由程比其他相关长度尺度小,并且会传播到相反情况的区域,因此输运方案必须在这两种情况以及关键的中微子能量沉积发生的中间区域都准确。在无法维持核统计平衡(NSE)的区域,必须演化核丰度,这样才能追踪核合成的潜在可观测产物,并将核燃烧释放的能量反馈到爆炸动力学的计算中。最后,必须纳入广义相对论效应,因为它们会影响中微子加热区域的大小、物质通过该区域的对流速率以及中微子的光度和均方根能量。为了满足所有这些要求,我们和合作者在过去几年中开发了CHIMERA代码。
#### CHIMERA代码
CHIMERA可以说是由三个相对成熟的独立代码组合而成的“混合体”。这些代码通过一组接口例程紧密耦合在一个可执行文件中。主要的代码模块用于演化恒星气体流体动力学(VH1)、“逐射线加”中微子输运(MGFLD - TRANS)和热核动力学(XNET)。这三个“部分”还辅以一个复杂的核物质状态方程(如LS - EOS)和一个能够近似广义相对论引力的自引力求解器。CHIMERA的所有组成部分都用FORTRAN编写:MGFLD - TRANS和LS - EOS主要是FORTRAN - 77,而VH1和XNET以及所有相关的驱动和数据管理例程则用FORTRAN 90编写。
流体动力学是按方向拆分的,逐射线输运和热核动力学求解在径向扫描之后进行,此时这些模块所需的所有数据都在处理器本地。各个模块通过算子分裂方法进行算法耦合。这种方法是合理的,因为每个模块的特征时间尺度差异很大。具体来说,在流体动力学的径向扫描过程中,中微子输运和热核燃烧沿着每条径向射线进行计算,只使用该射线本地的数据,因此也是当前进程本地的数据。这种按方向拆分的流体动力学和算子分裂的本地物理的组合,为CHIMERA中的通信和计算模式提供了背景。流体动力学扫描在逻辑笛卡尔网格的一个方向上的“铅笔”上进行。然后,通过MPI ALLTOALL在网格的子通信器上进行数据转置,将扫描方向切换到正交方向之一,然后进行下一次扫描。这个过程可以在算子分裂方案中以各种方式交错进行,但典型的流体动力学时间步可能像X - Y - Z - Z - Y - X这样进行扫描,即先在“X方向”(例如半径方向)扫描,然后是Y扫描,接着是Z扫描,然后是反向顺序。这种分解对于逐射线中微子输运是必要的,因为它允许在一个时间步的某个时刻,单条“射线”的数据驻留在一个处理器上,这使得中微子输运求解成为一个完全本地的计算,不需要通信。此外,由于核动力学方程不耦合相邻的空间单元,XNET模块也不需要节点外通信。流体动力学的典型空间分辨率是512个径向区域,以及在θ和φ方向上分别有64和128个区域。
下面是CHIMERA的流程图:
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(流体动力学Y扫描):::process
B --> C(流体动力学Z扫描):::process
C --> D(流体动力学X扫描):::process
D --> E(沿射线输运):::process
E --> F(每条射线区域的核燃烧):::process
F --> G(时间步循环):::process
G --> H(数据转置):::process
H --> B
```
CHIMERA中的流体动力学模块是PPM代码VH - 1的修改版本,该代码在天体物理流体动力学模拟中被广泛使用,并作为多种平台的重要基准代码。VH - 1是分段抛物线方法(PPM)的拉格朗日重映射实现。在空间上是三阶精度(对于等间距分区),在时间上是二阶精度,该代码非常适合在适度的网格要求下解析冲击波、成分不连续性等。为了避免与坐标轴平行的冲击波出现奇偶解耦和“ carbuncle ”现象,我们采用了Sutherland等人(200
0
0
复制全文


