无网格模型的验证、确认与不确定性记录

给出从算子一致性测试、标准题与守恒预算到实验确认的分层流程,包含 L2 误差、观测收敛阶、Richardson 外推与 GCI 公式,以及 Couette、Poiseuille、溃坝等标准题的复现与记录要求。

GCI验证确认无网格法不确定性守恒收敛阶工程

无网格模型的验证、确认与不确定性记录

1 结论与适用场景

验证回答“方程是否被正确求解”,确认回答“方程与参数是否足以描述现实”。程序能运行、图像平滑或动画连续都不属于物理确认。对无网格与粒子方法而言,这一点尤其重要:粒子分布会随时间演化,邻居数随位置变化,边界与自由表面又有各自的一致性缺陷,因此必须把验证做成可复现、可量化、可追溯的分层流程,而不是靠肉眼看曲线是否光滑。

适用场景上,任何准备用于工程判断的粒子模型都应至少完成三层验证:算子与程序单元测试、带解析解或高精度参考的标准题、分辨率与参数敏感性分析。只有在此基础上,才能进入与实验数据的确认阶段。粒子法的特殊之处在于,空间收敛不仅取决于粒子间距,还取决于核半径、支持域内邻居数、边界层数与人工耗散;因此“加密能收敛”本身也需要被验证,而不是默认成立。

对无网格法而言,还需要区分程序正确性与离散收敛性。程序正确指代码确实在求解所写下的方程,可用制造解等方法检验;离散收敛指随着粒子加密,数值解单调趋近于精确解。二者都不涉及模型是否反映真实物理,后者由确认阶段的实验对照负责。把这两件事混为一谈,就会出现用未验证求解器直接对比实验的情况,一旦结果偏离便无法判断是代码、离散还是模型的问题。

2 原理与分类

验证可分为四层,每层回答不同问题。

  • 算子与程序单元测试:用规则和扰动粒子分布检查核归一化、梯度、散度与拉普拉斯算子。常数场梯度应接近零,线性场应在内部与边界分别报告误差。邻居搜索可在小规模粒子集上与全对全距离计算对照。
  • 标准数值题:根据对象选择 Couette 流、Poiseuille 流、静水箱、声波传播、溃坝或弹性波。比较剖面、相位、自由表面位置与守恒量,而不是只比较最终图像。
  • 分辨率与参数敏感性:至少三组粒子间距,保持几何、材料与后处理一致。若误差进入渐近区,可估计观测收敛阶;未进入时直接报告关键量随分辨率的变化。
  • 实验或现场确认:先冻结数值设置,再用实验数据标定少量物理参数,最后用未参与标定的数据确认。

这四层对应不同的误差来源:第一层暴露实现错误,第二层量化离散误差,第三层区分数值与物理参数影响,第四层给出预测能力边界。把任何一层跳过,都可能把数值耗散、边界误差或后处理插值误判成物理现象。

对粒子法还应增加一层“一致性检查”:在规则与随机分布下测量核求和与梯度的零阶、一阶再现误差,并观察其随粒子间距与核半径的变化。这一层通常在标准题之前完成,因为边界与自由表面处的邻居缺失会直接污染标准题结果;若一致性检查未通过,后续收敛分析给出的阶次也没有意义。

3 核心公式与方法

离散误差用目标量在两套或三套分辨率下的差异定义。对 NN 个采样点的 $L_2$ 误差为:

L2=(1N∑i=1N∣qi−qiref∣2)1/2.L_2=\left(\frac{1}{N}\sum_{i=1}^{N}\left|q_i-q_i^{\mathrm{ref}}\right|^{2}\right)^{1/2}.

若目标量在细、中、粗三套网格上分别为 ϕ1,ϕ2,ϕ3\phi_1,\phi_2,\phi_3,代表尺度为 h1<h2<h3h_1<h_2<h_3,加密比 r=h2/h1r=h_2/h_1,则观测收敛阶估计为:

p=ln⁡(ϕ3−ϕ2ϕ2−ϕ1)ln⁡r.p=\frac{\ln\left(\dfrac{\phi_3-\phi_2}{\phi_2-\phi_1}\right)}{\ln r}.

据此可做 Richardson 外推,估计零网格间距极限:

ϕext≈ϕ1+ϕ1−ϕ2rp−1.\phi_{\mathrm{ext}}\approx\phi_1+\frac{\phi_1-\phi_2}{r^{p}-1}.

网格收敛指数 GCI 用安全因子 FsF_s 把相对误差放大为不确定度区间,对细网格:

GCIfine=Fs∣ϕ2−ϕ1ϕ1∣rp−1.\mathrm{GCI}_{\mathrm{fine}}=\frac{F_s\left|\dfrac{\phi_2-\phi_1}{\phi_1}\right|}{r^{p}-1}.

三网格推荐 Fs=1.25F_s=1.25,两网格可保守取 Fs=3F_s=3。GCI 只覆盖离散不确定度,不含物性、边界与模型形式误差。粒子法还需额外监控质量、线动量、角动量与能量的守恒预算,应报告各守恒量的相对漂移随时间的变化,而不是只在末态检查一次。

在可压缩或弱可压缩粒子法中,声速、密度波动与压缩性相互耦合,离散误差会通过状态方程放大为压力误差,因此目标量应优先选择对误差敏感的量,如壁面压力、前沿位置或剖面最大偏差。对于统计稳态问题,还要先确定统计窗口,用时间平均量做收敛分析,避免把瞬时脉动误判为分辨率效应。只有当序列单调或呈规律振荡、且观测阶接近理论值时,才可认为进入渐近区。

4 数值实现与参数

三组分辨率的加密比应保持恒定,例如 r=1.5r=1.5 或 22,并统一后处理采样位置与插值方式。粒子法的代表尺度可以用粒子间距 Δp\Delta p、核半径 hh 或每个粒子平均邻居数表征,但一旦选定就要在整组算例中保持一致。若同时加密粒子并改变 h/Δph/\Delta p,观测阶次会把两种效应混在一起,失去解释力。

参数敏感性应分批进行:先只改粒子间距,再单独改时间步系数、平滑长度比、边界方法与人工耗散,最后才做组合变化。每次计算都固定随机种子、代码版本、硬件精度与编译选项。对于存在随机或无序初始化的问题,需报告多次运行统计量的均值与离散度。验收量应事先列出——例如压降、剖面最大误差、自由表面到达时间与守恒漂移——并对每个量分别判断是否收敛,避免用一个 GCI 代表整个流场。

当解析参考解不可得时,可采用系统加密得到的高精度解作为参考,但需说明参考解自身的不确定度远小于待评估误差。对于自由表面或含接触的问题,还应对同一分辨率做多次不同初始分布或不同随机种子的重复运行,报告关键量的统计分布;若不同初始分布造成的差异与分辨率效应同量级,说明结果对粒子无序性敏感,需要更细的分辨率或更稳健的离散格式。

5 可复现示例

三个标准题足以覆盖粒子法的主要误差来源。

  • 平板 Couette 流:稳态速度剖面线性,检验无滑移与切向剪切。取 u(y)u(y) 在若干高度的值,计算 $L_2$ 误差并估计观测阶。
  • Poiseuille 流:稳态剖面为抛物线 u(y)=G2μy(d−y)u(y)=\dfrac{G}{2\mu}y(d-y),检验压力驱动与壁面无滑移。报告中心线速度与近壁剪切误差随分辨率的变化。
  • 溃坝(dam break):检验自由表面演化与质量守恒。比较前沿位置随时间的曲线和末态质量漂移,并与高精度参考或实验对照。

伪代码(三网格收敛分析):

for level in (coarse, medium, fine):
  set particle spacing and h by fixed ratio
  run Couette/Poiseuille to statistical steady state
  extract phi (e.g., L2 error or centerline velocity)
compute p from (phi3, phi2, phi1) and r
compute extrapolated phi_ext and GCI_fine
verify monotone or oscillatory convergence before reporting

若结果单调收敛且 pp 接近理论阶,说明进入渐近区;若 pp 异常或符号在水平间跳变,应先排查未收敛、边界处理不一致和后处理位置漂移,而不是直接报告 GCI。

三个题目应使用统一的代码路径,只改变分辨率与必要参数。以 Poiseuille 为例,可先给出三组分辨率下中心线速度与解析值之差,再据此估计观测阶 pp;若 pp 明显低于理论空间阶,优先检查近壁邻居不足、入口松弛强度与时间步是否过小导致人工耗散。溃坝则应同时报告前沿位置误差与质量漂移,二者分别对应运动学与守恒两类误差。

6 常见坑与排查

  • 直接把动画连续当作验证:连续图像不说明守恒或收敛,必须比较剖面、相位与守恒量。
  • 只比较末态:粒子法瞬态误差可能在中间放大又衰减,应比较时间历程。
  • 加密时同时改多个参数:h/Δph/\Delta p、时间步与边界方法一起变会掩盖真实收敛趋势。
  • GCI 用在未进入渐近区的结果上:振荡或发散序列上机械套用公式没有意义。
  • 混淆验证与确认:用实验标定过的参数再去“确认”同一数据,是循环论证。
  • 忽视守恒漂移:质量或能量缓慢漂移会污染长期统计,须逐时间步记录。
  • 后处理插值当成物理:粒子到网格或规则点的插值会引入额外误差,应固定插值方式并单独评估。
  • 在未验证求解器上直接对比实验:偏离时无法定位是代码、离散还是模型问题。
  • 参考解精度不足:用粗解当参考会导致误差被系统性低估。
  • 忽略粒子无序性:单次初始分布的结果可能不代表统计行为,应多次重复。

7 检查清单与参考

  1. 记录代码版本、配置文件、随机种子与硬件精度。
  2. 记录粒子数、h/Δph/\Delta p、时间步规则与邻居数统计。
  3. 报告质量、线动量、角动量与能量随时间的守恒预算。
  4. 统计边界穿透量、密度极值与粒子异常数。
  5. 至少三组分辨率,报告观测收敛阶或敏感性趋势,并声明是否进入渐近区。
  6. 记录参考数据版本、采样位置、插值方式与误差指标。
  7. 明确区分校准与确认,把物性、边界与模型误差纳入不确定性预算。

参考:

  1. Roache, Verification and Validation in Computational Science and Engineering, Hermosa, 1998.
  2. Celik et al., “Procedure for Estimation and Reporting of Uncertainty Due to Discretization in CFD Applications,” Journal of Fluids Engineering, 2008.
  3. Oberkampf & Roy, Verification and Validation in Scientific Computing, Cambridge University Press, 2010.