返回第七十二章 模型的尸骨  这个学霸疑似巨额知识来源不明首页

关灯 护眼     字体:

上一页 目录 下一页

    扰动的高频分量有没有在初始化时做平滑处理?

    ……

    这些细节,在论文里统统没有。

    或者说,当年受限于篇幅,作者不可能把几万行代码的细节逐一写进文章里。

    但对于复现者来说,每一个缺失的细节,都是一个致命的变量。

    江临没有把这些不确定性糊弄过去了事。

    他在项目的README文档的第一行写——

    第一次正式运行,工作站硬盘灯连续亮了十七天。

    第十七天下午,终端上的时间步循环终于停下。

    江临颤斗着手,用Python的Matplotlib库调出了最后一个时间步的磁场流函数等值线图。

    屏幕上出现了一条缓慢演化的电流片。

    他调出时间串行动画。

    在仿真的早期,也就是刚添加初始扰动的时候,系统确实在一瞬间出现过Petschek那种华丽的X型几何。

    那是一个令人心跳加速的瞬间。

    但随着时间的推移,中心扩散区无法将堆积的物质及时排出。

    那个X的夹角越来越小,重联点被慢慢拉长,变薄。

    最后,在动画的结尾,那个X完全坍缩,最后退回那条熟悉得令人不舒服的长电流片。

    和Biska论文里的截图几乎一模一样。

    很漂亮。

    江临却看得脊背发凉。

    太顺了。

    他决定做压力测试。

    回到配置文档,把Lundquist数提高一个量级。

    但这一次,他做了一个违背常规的操作,故意没有同步加密网格。

    他想知道,当前这套网格的承受边界到底在哪里。

    系统是真的因为物理规律演化成这样,还是因为数值格式把它限制成了这样?

    代码重新编译,运行。

    这一次,程序跑到第八天深夜,工作站发出一声尖锐的报错蜂鸣。

    ERROR: Floating point exception (core dued).

    跑崩了。

    江临立刻调出崩溃前几个时间步的快照。

    不是因为更高的Lundquist数更容易算。

    而是因为电阻减小后,物理上的电流片扩散区厚度变得极其薄,被压到了接近甚至小于单个网格尺度的地步。

    当物理尺度小于网格尺度时,代码里的数值结构就强行接管了物理演化。

    江临在屏幕上看到了可怕的一幕。

    X型几何刚刚尝试形成,电流片的中央就开始出现非物理的高频振荡。

    红蓝相间的色块像病毒一样在网格间蔓延,几个时间步之后,整幅精密的磁场图散成了一片毫无意义的马赛克。 品笔阁 https://pinbige.co   第七十二章 模型的尸骨  

    也就是所谓的数值爆炸。

    江临感觉这片马赛克在嘲笑他。

    开始排查

    第一天,他怀疑是数值黏性不够,压不住高频振荡,于是引入了人工耗散项。

    结果振荡没了,但重联速率被人工耗散接管,变成了假数据。

    第二天,他怀疑是网格尺度太大,局部做了AMR。

    结果交界面上出现了虚假的反射波。

    第三天,他怀疑是边界反射,把流出边界改成了完全匹配层。

    第四天到第二十天……

    他象个在黑暗中乱撞的困兽,在这三件事之间反复来回。

    每修掉一个问题,另一个更诡异的数值伪影就跳出来。

    有时候是质量不守恒了,有时候是磁场的散度不再为零,导致产生了单极磁荷。

    第二十一天的凌晨,江临满眼血丝地看着满屏幕被注释掉的测试代码,突然感到一阵无力。

    打开工作日志,敲下了几行字。

    【Biska的图不是错的。】

    【但它不能脱离那组参数、边界和数值实现,被当作无条件成立的图象。它是在那特定的参数,特定的网格分辨率,特定的边界条件和特定的隐式数值耗散共同妥协下,勉强维持出来的一个结果。】

    【论文里展示的,是被提纯后打扮得漂漂亮亮的图象。】

    【而我现在踩到的,才是这张图象诞生前,那片充满未显
本章未完,请点击下一页继续阅读>>

『加入书签,方便阅读』

上一页 目录 下一页