加载中
0707 / 10涡旋仍保持形状,画面仍然可信。但经过十个模型时间单位,128 网格运行已经失去了 5.115% 的染料。
原定容许范围是 2%。这次运行失败了。
这条观察比一段经过润色的成功故事更有价值,因为它把两件容易混淆的事分开了:图像仍有说服力,数值方法却未必仍满足契约。
在周期不可压缩域内,若没有持续染料源,也没有跨边界的扩散通量,被动染料的连续输运模型应保持总质量。离散方法会引入误差,因此检查使用明确容差和时长,而不是要求浮点计算给出精确的连续数学结果。
质量漂移(%)= 100 × |M(t) / M(0) − 1|平均亮度不自动等于质量。诊断必须来自物理浓度表示与单元尺度,而不是来自经过光照和色板处理后的图像。
选定模型时间的绝对质量漂移(%)
| 方法 / 网格 | 漂移 | 采样最大值 |
|---|---|---|
| 原始 · 128² | 5.115171% | 5.115171% |
| 修正 · 128² | 0.002808% | 0.002808% |
| 修正 · 256² | 0.005503% | 0.005503% |
计算域为 [0,1]²,面积为 1。L 和 T 表示模型长度与时间。速度:L/T;ν 和 κ:L²/T。记录的 E = ½Σ|u_cell|²ΔA 是面积积分(L⁴/T²);条形展示面积平均 Ē = E/面积(L²/T²),在此数值相等。未计入密度。染料量 M = ΣcΔA 的单位为浓度 × L²;漂移为无量纲百分比。这些量没有真实质量或焦耳标定。
下载四组测量记录(JSON)相对各次运行自身初始质量的绝对漂移。原始128:实线;修正128:虚线。按整数模型时间采样,并非每步采样。放大仅显示修正128,纵轴明确为 0–0.01%;判定阈值仍为 2%。
原始曲线被保留下来。修正曲线并非把旧结果平滑一下或调整终点,而是来自另存的运行,具有各自的数值版本和来源标识。
旧方法沿速度回溯位置,再对先前浓度场进行采样。这类半拉格朗日方法很适合交互场景,但插值采样并不会自动形成相邻单元之间的守恒交换。图像可能保持稳定,总量却逐渐改变。
修复改动了输运方法。相邻单元如今共用规范的面通量:从一边流出的量,以相反符号进入另一边。受限重构控制面值,再用两阶段 SSPRK2 与两分支共同的三个标量子循环推进染料。扩散则使用独立且不变的右端项。
这里没有通过最后的质量重归一化,也没有用裁剪把结果强行推回目标值。那样可能让报告数字变好,却不修复局部输运账目。
| 记录方法 | 网格 | 十单位时间内的采样最大质量漂移 |
|---|---|---|
| 原始周期 v1 | 128² | 5.115171% |
| 守恒周期 v2 | 128² | 0.002808% |
| 守恒周期 v2 | 256² | 0.005503% |
这里的最大值来自保存的整数时间采样,并非所有时间步的定理。细网格的数值在这里并没有更小,所以不能把这张表说成漂亮的单调收敛研究。两组修正运行都通过相同的 2% 预算,但这远不等于“求解器已经在所有情况下准确”。
这次比较固定了指定条件,改变的是数值方法本身,不是第四篇里仅改变黏度的 A/B 实验。公开历史录制仍然属于 v1,必须保留原身份。
针对性证据包括 22 个当前周期案例、8 个基准输运/复制/重放案例,以及覆盖 18 个 Runge–Kutta 阶段的 9 个 GPU 染料案例。这些检查范围不同,不能简单加成一个“认证分数”。
阶段检查将 GPU 路径与独立 FP64 面通量累加结果对照,覆盖均匀场保持、陡峭周期接缝、取值范围和质量。精确复制与重放检验的又是其他性质。仅看最终质量接近起点,可能看不出中间错误互相抵消。
可下载测量记录列出了方法、配方、时间步、分辨率与证据哈希。紧凑文件只包含测量,不是藏起来的新求解器。通用引擎验证、实体设备测试和人类专家签字仍是独立工作。
真正重要的修复,不只是更小的数字。 而是能解释邻居为什么必须账目一致的输运方法,以及确实有能力否定实现的检查。