---
title: "沿着重联计算追踪能量"
description: "推导磁场与流体的能量交换，重跑一个全局守恒却错误改变理想零点磁通的计算。"
canonical_url: "https://sandboxphysics.com/zh/stories/solar-magnetic-reconnection/follow-the-converted-energy/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/solar-magnetic-reconnection/follow-the-converted-energy/"
last_modified: "2026-11-03"
---

[从磁应力走向磁重联](https://sandboxphysics.com/zh/stories/solar-magnetic-reconnection/)

L3 · 磁重联与太阳耀斑信号

# 沿着重联计算追踪能量

Sandbox Physics · 2026-11-03

重联计算要同时回答两件事：能量是否沿着写下的物理过程转换，局部磁场是否准确服从感应方程。保守的傅里叶计算可能通过前一项，却在后一项出错。一个很小的理想模型就能把这个失败重现出来。

## 开始前需要什么

沿用L1的磁势与磁扩散率、L2的电流片尺度。偏导数表示沿一个坐标的变化，拉普拉斯算子把空间二阶导数相加。下面的周期积分没有边界通量。

## 一起求磁场与流体

取边长 $2\pi L_0$ 的周期正方形，密度恒定，初态之后没有外界驱动。$z$ 是不变方向。磁场用 $B_0$、速度用 $v_A$、时间用 $t_A=L_0/v_A$ 归一化，以下方程均采用无量纲坐标。

磁势 $\psi$ 给出磁场，流函数 $\phi$ 给出不可压缩流速。在这里的符号约定下，电流与涡量分别是它们的负拉普拉斯。对动量方程取旋度可以去掉压力；解流函数的泊松关系，则让速度保持无散度。

洛伦兹力的旋度推动涡量，流体输运与磁扩散改变磁势。喷流随磁场方程一起求出，场与速度互相作用。

$$
\mathbf B=(\psi_y,-\psi_x),\quad j=-\nabla^2\psi,\qquad\mathbf v=(\phi_y,-\phi_x),\quad\omega=-\nabla^2\phi
$$

电流和涡量沿不变方向。

$$
\partial_t\psi+\mathbf v\cdot\nabla\psi=\eta\nabla^2\psi,\qquad\partial_t\omega+\mathbf v\cdot\nabla\omega=\mathbf B\cdot\nabla j+\nu\nabla^2\omega
$$

磁扩散率和运动黏度都除以长度尺度乘阿尔芬速度。模型没有求密度或温度演化。

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 把做功和两种耗散推出来

用全域平均定义磁能与动能密度。将磁势方程乘电流，再分部积分，便能把磁能变化分成对流体做功与欧姆损失。动量方程收到相同大小、相反符号的功。

黏性会移走动能。速度梯度的对称部分叫作应变率张量。在周期不可压缩平面中，黏性乘涡量平方的全域平均，恰好等于应变加热的全域平均。但两张局部分布图并不相同，所以这里仅记录它们相同的整体积分。

用与磁场相同的Runge–Kutta阶段权重积分损失率，就得到两份耗散热。把它们与磁能、动能相加，可以检查这个无驱动模型。要换成太阳上的焦耳总量，还须指定实际体积，包括不变方向的深度。

$$
S_{ij}=\tfrac12(\partial_i v_j+\partial_j v_i)
$$

应变率由速度的空间导数组成；下面的重复指标表示求和。

$$
E_B=\tfrac12\langle B^2\rangle,\quad E_K=\tfrac12\langle v^2\rangle,\quad\mathcal W=\langle j\,\mathbf v\cdot\nabla\psi\rangle
$$

尖括号表示全域平均，能量密度尺度为场强平方除以真空磁导率。

$$
\frac{dE_B}{dt}=\langle\nabla\psi\cdot\nabla\partial_t\psi\rangle=\langle j\,\partial_t\psi\rangle
$$

分部积分时，周期边界项相互抵消。代入感应方程，就得到下面的磁场做功与欧姆损失。

$$
\dot E_B=-\mathcal W-\eta\langle j^2\rangle,\quad\dot E_K=\mathcal W-\nu\langle\omega^2\rangle
$$

同一份带符号的功，在两种能量之间转移。

$$
\dot Q_\Omega=\eta\langle j^2\rangle,\quad\dot Q_\nu=\nu\langle\omega^2\rangle=\langle2\nu S_{ij}S_{ij}\rangle
$$

最后一个等号在周期不可压缩条件下对全域平均成立，局部加热则用应变张量计算。

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 先算一个已经知道答案的模态

让流体起初不动，磁势只有单一模态 $A\cos(k_xx+k_yy)$。电流与磁势成正比，磁力没有涡量源，只剩电阻扩散。它的时间方程能直接解成指数衰减。

参考程序将振幅、加入均匀平移时的相位、磁能和积分热量分别与解析答案比较，再把时间步减半，查看四阶场误差。另一个黏性剪切模态也有独立解析衰减。检验保留误差的符号；这道题中微小的负“等效数值扩散率”属于截断误差。

真正的非线性默认初态，还能提供一个方向检验。它起步时的涡量加速度有已知的空间符号和振幅。若把力的方向算反，能量平方可能看不出来。

$$
\psi(t)=A e^{-\eta(k_x^2+k_y^2)t}\cos(k_xx+k_yy)
$$

没有均匀平移时，相位不动，模态按这个速率衰减。

$$
\psi_0=\tfrac12\cos2x+\tfrac12\cos y,\quad\phi_0=0\quad\Longrightarrow\quad(\partial_t\omega)_0=\tfrac32\sin2x\sin y
$$

独立推导的洛伦兹力旋度，确定默认问题的起步方向。

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 把非线性状态放到细网格旁边

周期默认初态含有不同的空间尺度，留下不能完全由压力平衡的力。到了归一化时刻一，独立128网格解得到下表。数值为便于阅读作了舍入；要复算极小的能量残差，需要JSON里的完整精度。

在时刻二，128与256网格的整张电流场相对范数差约为百分之0.00436，峰值差约为百分之0.00455。64网格的峰值却差约百分之2.1，32网格差约百分之20，而它们的全局能量和依然很好看。

四个交互算例还在每个保存的物理时刻与细网格比较，分别记录局部感应、零点身份、场量差和时间步误差。固定参数与停止时刻，一起构成验证范围。

| 归一化时刻一 | 全域平均归一化密度 |
| --- | --- |
| 磁能 | $0.23843546$ |
| 流体动能 | $0.03383606$ |
| 欧姆耗散热 | $0.03746352$ |
| 黏性耗散热 | $0.00276497$ |

![三个时刻的计算电流与磁通线、能量转换曲线，以及保留的粗网格误差。](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/mhd-fields-energy-convergence.png)

独立周期磁应力初值计算。画面、流速与能量使用同一个数值状态，粗网格的偏差同时保留。

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 守住全局量，仍可能错改零点磁通

把两种输运系数都设为零，采用下面的初态。$O=(0,0)$ 和 $X=(0,\pi/2)$ 都是真正的磁零点。理想连续方程在两处的输运项为零，磁势时间导数也应为零。

把周期场写成正弦、余弦之和，再把非线性乘积投回保留波数，叫作Galerkin投影。把乘积展开，会出现横向波数为十六的谐波。32网格的三分之二截断把它丢掉，于是零点处本来应有的抵消被破坏，投影后留下 $+0.0008$ 和 $-0.0008$ 的变化率。连起初几乎空白的谱边缘能量指标，也发现不了这个问题。

到时刻 $0.05$，粗网格的O–X磁通差已改变约 $8.11\times10^{-5}$。磁能加动能、磁势平方平均和交叉螺度（流速与磁场点积的全域平均）却仍守在机器精度附近，耗散热也为零。同一物理初态换到64网格，磁通差仅改变约 $2.09\times10^{-11}$。

这次失败来自空间投影，不能把它改名为额外的物理电阻。交互计算因此只开放已验证算例，并在全局不变量之外另查局部感应。

$$
\psi_0=0.01\cos8x+0.04\cos2y,\qquad\phi_0=0.01\sin8x\sin2y
$$

这是专门保留的失败实验，不是新增交互预设。

$$
-\mathbf v\cdot\nabla\psi=0.0008(1-\cos16x)\cos2y-0.0032\cos8x(1-\cos4y)
$$

完整表达式在两个零点都抵消为零。丢掉波数十六项，就破坏了局部抵消。

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 亲自重跑，并保留磁通差的两端

解压科学材料包后，在包根目录用指定依赖运行下面四条命令。第一条重算非线性网格、时间步与解析极限；第二条重跑理想反例和带符号的起步检验；逐时刻比较程序则在每个保存时刻比较两种网格。

封闭周期磁岛的O点也会扩散。O减X磁势差的时间导数，要取两个电场之差。默认末态的局部感应残差约为百万分之七。磁扩散率仍取输入值，残差作为数值误差单列。

$$
E_z(\text{null})=\eta j,\qquad\frac{d}{dt}[\psi(O)-\psi(X)]=E_z(X)-E_z(O)
$$

连续关系采用既定符号约定，数值投影残差与它并列记录。

```
python -W error scripts/astronomy/ac28/run_reference.py
python -W error scripts/astronomy/ac28/run_counterexamples.py
python -W error scripts/astronomy/ac28/verify_runtime_domain.py
python -W error scripts/astronomy/ac28/test_reference.py
```

来源：[Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004) · [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)

## 独立重跑科学计算

小型材料包含独立Python、精确NOAA输入、自算MHD状态，以及来源、单位和失败说明。固定依赖与离线命令都在README中。

- [solar-reconnection-science.zip](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip) 6.33 MB
- [include-manifest.json](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/include-manifest.json) 0.01 MB
- [README-science.md](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/README-science.md) 0.01 MB
- [runtime-domain-reference.json](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/runtime-domain-reference.json) 0.21 MB
- [goes-reference-results.json](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/goes-reference-results.json) 0.01 MB
- [retained-counterexamples.json](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/retained-counterexamples.json) 0.00 MB

精确文件与使用许可

solar-reconnection-science.zip
6325678 bytes
SHA-256: 4f680fc833816eb4ae27fd1bce178ee61af985c0f800097e86e11cd489710f07

include-manifest.json
10996 bytes
SHA-256: 363ff93f8e96ae524583d067b560f865ff526021cb45bc725a21efd41161e405

README-science.md
9685 bytes
SHA-256: f0aee6da22e4e5ff73aa326ee9b8b3028601bed9b1e2a9974056588db417d32a

runtime-domain-reference.json
208128 bytes
SHA-256: 33cdb0c1deec2889759846f572b8d32ce1da3c2de9278e549a068bece7391f5d

goes-reference-results.json
5924 bytes
SHA-256: cc4e4785d66571658b1824d9c4aa5fdacfdba5f0643c2f126245836771a5c197

retained-counterexamples.json
1826 bytes
SHA-256: 1e89efaf39a01b431ea1aeb75c8b9a108f508a4ab1972351e47df68266db561e

所选NOAA原始输入允许自由使用与再分发。新写独立Python采用MIT，自算数据、图与文档采用CC BY4.0并保留来源署名。原论文PDF和网站Engine代码不在包中。

## 自己推一步

一个数值解为什么可以守能量，却在零点处违反磁通冻结？

Galerkin投影能保住整体的二次恒等式，却可能丢掉局部抵消所需的非线性谐波。32网格反例让这两件事出现在同一次计算里。

能否直接用 $\nu\omega^2$ 给局部黏性加热着色？

周期不可压缩模型中，它与应变加热的整体积分相同，逐点却通常不同于 $2\nu S_{ij}S_{ij}$。局部欧姆加热则可直接采用磁扩散率乘电流平方。

128网格默认算例的能量残差很小，还要看什么，才能使用它的电流？

在相同物理时刻与256网格比较整张电流场和峰值，还要检验时间步、局部感应与所选零点身份。保留的32和64网格失败说明了原因。

### [导出一个数值状态及其历史](https://sandboxphysics.com/zh/labs/magnetic-reconnection/)

1. 暂停默认演化，保存状态JSON与历史CSV。
2. 对齐算例、物理时刻、探针和四份能量密度；用完整精度计算能量残差。
3. 比较磁通差的变化和两个局部电场，并保留局部感应残差。

## 原始来源

1. [Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive](https://sandboxphysics.com/stories/solar-magnetic-reconnection/materials/solar-reconnection-science.zip)
2. [Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)](https://doi.org/10.1103/PhysRevResearch.1.012004)

[上一篇：薄电流片怎样决定交换磁通的速度](https://sandboxphysics.com/zh/stories/solar-magnetic-reconnection/how-a-sheet-sets-the-pace/) [下一篇：从一份GOES文件重算耀斑曲线](https://sandboxphysics.com/zh/stories/solar-magnetic-reconnection/one-goes-file-one-flare/)
