跳到主要内容
Sandbox Physics

L2 · 推导与例题

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

Sandbox Physics ·

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

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

真正推进的是四组场样本

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

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

vy=−qΩx+Uy(z,t).v_y=-q\Omega x+U_y(z,t).

局部线性场方程为

∂tUx=2ΩUy+vA∂zBx,∂tUy=−(2−q)ΩUx+vA∂zBy,∂tBx=vA∂zUx,∂tBy=−qΩBx+vA∂zUy.\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}

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

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

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

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

(Dhf)j=fj+1−fj−12h.(D_h f)_j=\frac{f_{j+1}-f_{j-1}}{2h}.

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

sin⁡(θj+η)−sin⁡(θj−η)=2cos⁡(θj)sin⁡(η),Dhsin⁡(kzj)=khcos⁡(kzj),Dhcos⁡(kzj)=−khsin⁡(kzj),kh=sin⁡(kh)h.\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}

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

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

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

解析修正波数亏损,以及三张空间网格中保存的实际投影向量误差

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

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

用 L0L_0 表示盒长,T0T_0 表示时间单位。保存案例采用 q=3/2q=3/2、Ω=1/T0\Omega=1/T_0、K=0.6/T0K=0.6/T_0。基本波数为 k=2π/L0k=2\pi/L_0,背景速度应为 vA=0.6L0/(2πT0)v_A=0.6L_0/(2\pi T_0),不能把它直接写成 0.6L0/T00.6L_0/T_0。

在 N=64N=64 时,相邻样本的相位差为 2π/642\pi/64,于是

khk≃0.998394393,KhT0≃0.599036636.\begin{aligned} \frac{k_h}{k}&\simeq0.998394393,\\ K_hT_0&\simeq0.599036636. \end{aligned}

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

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

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

ax(t)=2N∑j=0N−1Ux,j(t) sj,sj=sin⁡ ⁣(2πjN).\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}

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

eN=∥aN−ac∥2∥ac∥2.e_N=\frac{\|\mathbf a_N-\mathbf a_{\rm c}\|_2} {\|\mathbf a_{\rm c}\|_2}.

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

竖直样本数投影向量误差测得径向增长率乘时间单位
640.001287717890.001287717890.6629361790.662936179
1280.0003219424740.0003219424740.6632278860.663227886
2560.00008048641820.00008048641820.6633006980.663300698

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

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

传输量要从实际场求和

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

Eh=Eu,h+Eb,h,Eu,h=ρ2N∑j(Ux,j2+Uy,j2),Eb,h=ρ2N∑j(Bx,j2+By,j2),TRe,h=ρN∑jUx,jUy,j,TMax,h=−ρN∑jBx,jBy,j.\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}

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

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

练习与解释性答案

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

2.最快增长附近的增长率误差特别小,能据此宣布四阶空间精度吗? 不能。增长曲线在最大值处的斜率为零。耦合的二阶误差,可能只引起理想增长本征值的四阶变化;有限时刻投影还可能混有其他分量。应换到曲线斜率非零的位置,并检查场向量误差。保存的空间系列特意采用 K=0.6/T0K=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,给出连续分量方程与色散关系。原始扫描件。Stone与Gardiner,Implementation of the Shearing Box Approximation in Athena,arXiv:1006.0139v1,第II–III节说明局部剪切和数值源项处理。固定版本。

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

动手检验预测

比较保存的空间网格

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

继续阅读

这一页直接连着哪些内容

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

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

  1. 文章吸积盘的角动量由谁向外送?
  2. 文章旋转小区域里的四个实场
  3. 文章先算增长,再跟着能量检查
  4. 当前页面竖直网格为什么会改变线性通道
  5. 文章怎样检验增长、传输与剪切功
  6. 文章从保存的场数据检查 MRI 计算
  7. 文章从线性增长读到 MRI 湍流的去留
这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

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