跳到主要内容
Sandbox Physics
从磁应力走向磁重联

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

沿着重联计算追踪能量

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

一起求磁场与流体

取边长 2πL02\pi L_0 的周期正方形,密度恒定,初态之后没有外界驱动。zz 是不变方向。磁场用 B0B_0、速度用 vAv_A、时间用 tA=L0/vAt_A=L_0/v_A 归一化,以下方程均采用无量纲坐标。

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

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

B=(ψy,−ψx),j=−∇2ψ,v=(ϕy,−ϕx),ω=−∇2ϕ\mathbf B=(\psi_y,-\psi_x),\quad j=-\nabla^2\psi,\qquad\mathbf v=(\phi_y,-\phi_x),\quad\omega=-\nabla^2\phi
电流和涡量沿不变方向。
∂tψ+v⋅∇ψ=η∇2ψ,∂tω+v⋅∇ω=B⋅∇j+ν∇2ω\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) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

把做功和两种耗散推出来

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

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

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

Sij=12(∂ivj+∂jvi)S_{ij}=\tfrac12(\partial_i v_j+\partial_j v_i)
应变率由速度的空间导数组成;下面的重复指标表示求和。
EB=12⟨B2⟩,EK=12⟨v2⟩,W=⟨j v⋅∇ψ⟩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
尖括号表示全域平均,能量密度尺度为场强平方除以真空磁导率。
dEBdt=⟨∇ψ⋅∇∂tψ⟩=⟨j ∂tψ⟩\frac{dE_B}{dt}=\langle\nabla\psi\cdot\nabla\partial_t\psi\rangle=\langle j\,\partial_t\psi\rangle
分部积分时,周期边界项相互抵消。代入感应方程,就得到下面的磁场做功与欧姆损失。
E˙B=−W−η⟨j2⟩,E˙K=W−ν⟨ω2⟩\dot E_B=-\mathcal W-\eta\langle j^2\rangle,\quad\dot E_K=\mathcal W-\nu\langle\omega^2\rangle
同一份带符号的功,在两种能量之间转移。
Q˙Ω=η⟨j2⟩,Q˙ν=ν⟨ω2⟩=⟨2νSijSij⟩\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) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

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

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

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

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

ψ(t)=Ae−η(kx2+ky2)tcos⁡(kxx+kyy)\psi(t)=A e^{-\eta(k_x^2+k_y^2)t}\cos(k_xx+k_yy)
没有均匀平移时,相位不动,模态按这个速率衰减。
ψ0=12cos⁡2x+12cos⁡y,ϕ0=0⟹(∂tω)0=32sin⁡2xsin⁡y\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) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

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

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

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

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

归一化时刻一全域平均归一化密度
磁能0.238435460.23843546
流体动能0.033836060.03383606
欧姆耗散热0.037463520.03746352
黏性耗散热0.002764970.00276497
三个时刻的计算电流与磁通线、能量转换曲线,以及保留的粗网格误差。
独立周期磁应力初值计算。画面、流速与能量使用同一个数值状态,粗网格的偏差同时保留。

来源:Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

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

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

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

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

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

ψ0=0.01cos⁡8x+0.04cos⁡2y,ϕ0=0.01sin⁡8xsin⁡2y\psi_0=0.01\cos8x+0.04\cos2y,\qquad\phi_0=0.01\sin8x\sin2y
这是专门保留的失败实验,不是新增交互预设。
−v⋅∇ψ=0.0008(1−cos⁡16x)cos⁡2y−0.0032cos⁡8x(1−cos⁡4y)-\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) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

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

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

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

Ez(null)=ηj,ddt[ψ(O)−ψ(X)]=Ez(X)−Ez(O)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) · Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive

独立重跑科学计算

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

精确文件与使用许可

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网格反例让这两件事出现在同一次计算里。

能否直接用 νω2\nu\omega^2 给局部黏性加热着色?

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

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

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

导出一个数值状态及其历史

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

原始来源

  1. Sandbox Physics AC28, independent MHD energy, local-induction and grid/time-reference programs, fixed scientific archive
  2. Zhou et al. (2019), Magnetic island merger as a mechanism for inverse magnetic energy transfer, Physical Review Research 1, 012004(R)
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策