---
title: "竖直网格为什么会改变线性通道"
description: "从中心差分推导修正波数，读取实际空间误差，分清采样扰动场与观测到的四个振幅。"
canonical_url: "https://sandboxphysics.com/zh/stories/magnetorotational-instability/why-a-vertical-mesh-changes-a-channel/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/magnetorotational-instability/why-a-vertical-mesh-changes-a-channel/"
last_modified: "2026-11-12"
---

L2 · 推导与例题

# 竖直网格为什么会改变线性通道

Sandbox Physics · 2026-11-12

网格把空间导数换成相邻样本之间的差商。对于同一条波，这会略微改变磁耦合，网格上算出的增长便可能偏离连续方程。把格子细分后，偏差应当按可预测的规律缩小。已有的线性通道记录足够让我们检查这件事，不必再生成一段轨迹。

先修内容是前两章的四条实振幅方程、色散关系，以及正弦、余弦和“导数表示局部斜率”。这里会用求和计算样本平均，推导网格怎样改变波数，再读一组实际空间细化结果。读完应能分清振幅、网格场和从场中测得的应力。

## 真正推进的是四组场样本

局部坐标仍取径向向外为 $x$、绕转方向为 $y$、竖直方向为 $z$。背景角频率 $\Omega$ 为正，轨道背景速度为 $-q\Omega x$。密度 $\rho$ 与竖直背景磁场均匀。磁扰动除以 $\sqrt{\mu_0\rho}$，写成速度单位；$\mu_0$ 是磁导率，流速与这种磁扰动的单位都是长度除以时间。

要把场与振幅分开。用 $U_x(z,t)$、$U_y(z,t)$ 表示实际采样的水平速度扰动场，用 $B_x(z,t)$、$B_y(z,t)$ 表示速度单位下的水平磁扰动。这里的大写磁符号始终采用速度单位。在这个旋转参考系里，总绕转速度为

$$
v_y=-q\Omega x+U_y(z,t).
$$

局部线性场方程为

$$
\begin{aligned}
\partial_t U_x&=2\Omega U_y+v_A\partial_z B_x,\\
\partial_t U_y&=-(2-q)\Omega U_x+v_A\partial_z B_y,\\
\partial_t B_x&=v_A\partial_z U_x,\\
\partial_t B_y&=-q\Omega B_x+v_A\partial_z U_y.
\end{aligned}
$$

其中 $v_A$ 是恒定的竖直阿尔芬速度。代入 $U_x=u_x(t)\sin(kz)$、$B_x=b_x(t)\cos(kz)$，绕转分量采用相同相位，就回到四条振幅方程。振幅方程里的磁力带负号，因为余弦求导会变成负正弦。

离线空间计算直接推进四个数组。每次求空间导数都读取相邻格子的值。只有保存观测时，才把场投到正弦、余弦图样上读出振幅；这些振幅不会代替数组，也不参与下一步推进。单一模态可以用四个数描述，同时仍能检验真实空间差分。两种表示针对同一个受限线性问题，却有不同的数值误差需要检查。

## 中心差分对应另一个有效波数

把周期长度 $L$ 分成 $N$ 个等距样本，间距为 $h=L/N$，位置为 $z_j=jh$。下标按周期连接：最后一个样本再往前，就是第一个。中心差分用两侧邻居估计中间的斜率，

$$
(D_h f)_j=\frac{f_{j+1}-f_{j-1}}{2h}.
$$

把局部相位写成 $\theta_j=kz_j$，一步的相位差写成 $\eta=kh$。先用三角函数和差公式，不急着假设间距很小：

$$
\begin{gathered}
\sin(\theta_j+\eta)-\sin(\theta_j-\eta)\\
=2\cos(\theta_j)\sin(\eta),\\
D_h\sin(kz_j)=k_h\cos(kz_j),\\
D_h\cos(kz_j)=-k_h\sin(kz_j),\\
k_h=\frac{\sin(kh)}{h}.
\end{gathered}
$$

$k_h$ 叫修正波数或有效波数，单位仍是长度的倒数。对于这组采样波形，差分给出的导数，相当于把耦合里的 $k$ 换成 $k_h$。当基本波形得到充分分辨、满足 $0<kh<\pi$ 时，$k_h$ 小于 $k$。把正弦展开，便有

$$
\begin{aligned}
\frac{k_h}{k}&=\frac{\sin(kh)}{kh}\\
&=1-\frac{(kh)^2}{6}+O((kh)^4).
\end{aligned}
$$

间距减半，导数误差的首项约缩小到四分之一。对这一模态，先只离散空间、让时间仍然连续，所得方程中的磁耦合就是 $K_h=v_Ak_h$，连续方程则用 $K=v_Ak$。这说明导数本身怎样改变，并不保证任何一种观测误差都恰好有相同的首项。

![解析修正波数亏损，以及三张空间网格中保存的实际投影向量误差](https://sandboxphysics.com/_astro/04-spatial-refinement.zh.desktop.CZuOACUa.svg)

上图是基本周期波形的波数相对亏损，来自解析公式。下图使用同一末时刻的四分量投影向量误差，点取自实际保存记录；虚线是从最粗网格结果出发的二阶参考。两幅图衡量的量不同。误差轴均无量纲，横轴为竖直样本数。

## 例题：把同一个初态放到三张网格上

用 $L_0$ 表示盒长，$T_0$ 表示时间单位。保存案例采用 $q=3/2$、$\Omega=1/T_0$、$K=0.6/T_0$。基本波数为 $k=2\pi/L_0$，背景速度应为 $v_A=0.6L_0/(2\pi T_0)$，不能把它直接写成 $0.6L_0/T_0$。

在 $N=64$ 时，相邻样本的相位差为 $2\pi/64$，于是

$$
\begin{aligned}
\frac{k_h}{k}&\simeq0.998394393,\\
K_hT_0&\simeq0.599036636.
\end{aligned}
$$

连续增长率为 $sT_0=\sqrt{0.44}\simeq0.663324958$。三张网格采用同一个连续方程初态。径向振幅取 $A=10^{-4}L_0/T_0$，四个初始振幅为

$$
\frac{\mathbf a(0)}{A}
=\begin{pmatrix}
1\\
0.4/\sqrt{0.44}\\
0.6/\sqrt{0.44}\\
-1.5
\end{pmatrix}.
$$

怎样从数组读回径向振幅？把每格的实际速度乘以已知正弦图样，再求平均：

$$
\begin{gathered}
a_x(t)=\frac{2}{N}\sum_{j=0}^{N-1}U_{x,j}(t)\,s_j,\\
s_j=\sin\!\left(\frac{2\pi j}{N}\right).
\end{gathered}
$$

这些网格上，正弦平方的平均值是二分之一，前面的二用来补偿它。另一个速度也用正弦投影，两个磁分量则用余弦。把得到的四分量观测 $\mathbf a_N$ 与同一时刻的连续向量 $\mathbf a_{\rm c}$ 比较，定义

$$
e_N=\frac{\|\mathbf a_N-\mathbf a_{\rm c}\|_2}
{\|\mathbf a_{\rm c}\|_2}.
$$

这里的范数就是把四个分量的平方相加后开方。这个量检查投影向量，没有另外测量每个格点的最大误差。保持时间步长 $0.0025T_0$，到 $t=3T_0$ 时，实际结果为

| 竖直样本数 | 投影向量误差 | 测得径向增长率乘时间单位 |
| --- | --- | --- |
| 64 | $0.00128771789$ | $0.662936179$ |
| 128 | $0.000321942474$ | $0.663227886$ |
| 256 | $0.0000804864182$ | $0.663300698$ |

相邻误差之比为 $3.999838$ 和 $3.999960$，支持这组实验的二阶空间收敛。表中的增长率采用 $\widehat s_N=t^{-1}\ln(|a_x(t)|/A)$。如果直接把64格的 $K_h$ 代进色散关系，得到 $s_hT_0\simeq0.662855038$，它与有限时刻测得的值接近，但并不相同。原因之一是初态按连续方程选取，不是网格方程严格的本征向量，因此还混入少量其他模态分量。

若再把最细间距减半，并假设仍在二阶收敛范围，可以预估误差约为 $2.01\times10^{-5}$。这给出了下一张网格待验证的预测值。

## 传输量要从实际场求和

对于一般网格场，扰动能量密度与两项向外动量通量为

$$
\begin{aligned}
E_h&=E_{u,h}+E_{b,h},\\
E_{u,h}&=\frac{\rho}{2N}\sum_j\left(U_{x,j}^2+U_{y,j}^2\right),\\
E_{b,h}&=\frac{\rho}{2N}\sum_j\left(B_{x,j}^2+B_{y,j}^2\right),\\
T_{{\rm Re},h}&=\frac{\rho}{N}\sum_j U_{x,j}U_{y,j},\\
T_{{\rm Max},h}&=-\frac{\rho}{N}\sum_j B_{x,j}B_{y,j}.
\end{aligned}
$$

两项能量分别对应动能与磁能。能量密度按每立方米的焦耳计，应力按每平方米的牛顿计。若场恰好只有规定的正弦、余弦模态，平均平方图样后，就恢复前面振幅公式中的四分之一和二分之一。若还含有其他模态，只用四个投影振幅的乘积，未必能得到这些完整数组的求和结果。保存的诊断量采用实际数组。

周期中心差分还有一个有用性质。把求和下标平移一格，可以证明 $\sum_j f_j(D_hg)_j=-\sum_j g_j(D_hf)_j$。在时间仍连续的网格方程中，磁张力只交换动能与磁能，不凭空增加二者之和。剩下的能量来源是 $q\Omega(T_{{\rm Re},h}+T_{{\rm Max},h})$。下一篇将检查有限时间步怎样逼近这部分功。

## 练习与解释性答案

**1．相邻格子的波值正负交替，中心差分会给出最大的斜率吗？** 不会。一个格子的左右邻居具有同样的值，相减后为零。这已经是网格能表示的最短波长。把波数推向这个极限，不会让有效磁耦合一直增强。充分分辨的基本波形与接近网格尺度的扰动，需要分别检验。

**2．最快增长附近的增长率误差特别小，能据此宣布四阶空间精度吗？** 不能。增长曲线在最大值处的斜率为零。耦合的二阶误差，可能只引起理想增长本征值的四阶变化；有限时刻投影还可能混有其他分量。应换到曲线斜率非零的位置，并检查场向量误差。保存的空间系列特意采用 $K=0.6/T_0$。

**3．为什么三张空间网格共用一个连续初态？** 这样改变空间导数时，物理上的初始扰动保持不变。每张网格若改用各自的本征向量，回答的就是另一个问题。下一篇会用后一种办法隔离时间误差。

**4．投影误差很小，是否仍可能藏着网格尺度的扰动？** 可能。与基本正弦、余弦正交的分量，会从这四个投影中消失。还应查看实际场，以及场的能量和应力求和。这里检验的是观测到的基本模态，其他扰动需要各自的测试。

## 来源

Balbus与Hawley，A Powerful Local Shear Instability in Weakly Magnetized Disks. I. Linear Analysis，ApJ376，214–222（1991），印刷页216–218，式2.2和2.5–2.9，给出连续分量方程与色散关系。[原始扫描件](https://articles.adsabs.harvard.edu/pdf/1991ApJ...376..214B)。Stone与Gardiner，Implementation of the Shearing Box Approximation in Athena，arXiv:1006.0139v1，第II–III节说明局部剪切和数值源项处理。[固定版本](https://arxiv.org/html/1006.0139v1#S2)。

空间表格与场观测取自十一组案例的 [linear-channel-replay-public.zip](https://sandboxphysics.com/zh/stories/magnetorotational-instability/materials/linear-channel-replay-public.zip)，具体为 records/spatial-64、records/spatial-128 与 records/spatial-256。这里推导的中心差分属于包内独立、简单的周期通道计算，并未复现Athena的有限体积法或约束输运算法，也没有新增演化。

## 动手检验预测

### [比较保存的空间网格](https://sandboxphysics.com/zh/labs/magnetorotational-instability/)

1. 先预测竖直间距减半后，投影向量误差会缩小多少。
2. 打开离线包，在同一个末时刻比较三组保存网格。
3. 读取实际场剖面、四分量误差和相邻误差比。
4. 用中心差分和修正波数解释收敛规律。

## 继续阅读

磁张力怎样放大吸积盘中的扰动 · 阅读路径

### 磁张力怎样放大吸积盘中的扰动

1. [文章 **吸积盘的角动量由谁向外送？**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/who-carries-angular-momentum/)
2. [文章 **旋转小区域里的四个实场**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/four-fields-in-a-rotating-patch/)
3. [文章 **先算增长，再跟着能量检查**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/growth-stress-and-energy/)
4. [当前页面 **竖直网格为什么会改变线性通道**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/why-a-vertical-mesh-changes-a-channel/)
5. [文章 **怎样检验增长、传输与剪切功**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/checking-growth-and-shear-work/)
6. [文章 **从保存的场数据检查 MRI 计算**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/check-saved-mri-fields/)
7. [文章 **从线性增长读到 MRI 湍流的去留**](https://sandboxphysics.com/zh/stories/magnetorotational-instability/read-beyond-linear-mri/)
