无网格模型的验证、确认与不确定性记录
给出从算子一致性测试、标准题与守恒预算到实验确认的分层流程,包含 L2 误差、观测收敛阶、Richardson 外推与 GCI 公式,以及 Couette、Poiseuille、溃坝等标准题的复现与记录要求。
无网格模型的验证、确认与不确定性记录
1 结论与适用场景
验证回答“方程是否被正确求解”,确认回答“方程与参数是否足以描述现实”。程序能运行、图像平滑或动画连续都不属于物理确认。对无网格与粒子方法而言,这一点尤其重要:粒子分布会随时间演化,邻居数随位置变化,边界与自由表面又有各自的一致性缺陷,因此必须把验证做成可复现、可量化、可追溯的分层流程,而不是靠肉眼看曲线是否光滑。
适用场景上,任何准备用于工程判断的粒子模型都应至少完成三层验证:算子与程序单元测试、带解析解或高精度参考的标准题、分辨率与参数敏感性分析。只有在此基础上,才能进入与实验数据的确认阶段。粒子法的特殊之处在于,空间收敛不仅取决于粒子间距,还取决于核半径、支持域内邻居数、边界层数与人工耗散;因此“加密能收敛”本身也需要被验证,而不是默认成立。
对无网格法而言,还需要区分程序正确性与离散收敛性。程序正确指代码确实在求解所写下的方程,可用制造解等方法检验;离散收敛指随着粒子加密,数值解单调趋近于精确解。二者都不涉及模型是否反映真实物理,后者由确认阶段的实验对照负责。把这两件事混为一谈,就会出现用未验证求解器直接对比实验的情况,一旦结果偏离便无法判断是代码、离散还是模型的问题。
2 原理与分类
验证可分为四层,每层回答不同问题。
- 算子与程序单元测试:用规则和扰动粒子分布检查核归一化、梯度、散度与拉普拉斯算子。常数场梯度应接近零,线性场应在内部与边界分别报告误差。邻居搜索可在小规模粒子集上与全对全距离计算对照。
- 标准数值题:根据对象选择 Couette 流、Poiseuille 流、静水箱、声波传播、溃坝或弹性波。比较剖面、相位、自由表面位置与守恒量,而不是只比较最终图像。
- 分辨率与参数敏感性:至少三组粒子间距,保持几何、材料与后处理一致。若误差进入渐近区,可估计观测收敛阶;未进入时直接报告关键量随分辨率的变化。
- 实验或现场确认:先冻结数值设置,再用实验数据标定少量物理参数,最后用未参与标定的数据确认。
这四层对应不同的误差来源:第一层暴露实现错误,第二层量化离散误差,第三层区分数值与物理参数影响,第四层给出预测能力边界。把任何一层跳过,都可能把数值耗散、边界误差或后处理插值误判成物理现象。
对粒子法还应增加一层“一致性检查”:在规则与随机分布下测量核求和与梯度的零阶、一阶再现误差,并观察其随粒子间距与核半径的变化。这一层通常在标准题之前完成,因为边界与自由表面处的邻居缺失会直接污染标准题结果;若一致性检查未通过,后续收敛分析给出的阶次也没有意义。
3 核心公式与方法
离散误差用目标量在两套或三套分辨率下的差异定义。对 个采样点的 $L_2$ 误差为:
若目标量在细、中、粗三套网格上分别为 ,代表尺度为 ,加密比 ,则观测收敛阶估计为:
据此可做 Richardson 外推,估计零网格间距极限:
网格收敛指数 GCI 用安全因子 把相对误差放大为不确定度区间,对细网格:
三网格推荐 ,两网格可保守取 。GCI 只覆盖离散不确定度,不含物性、边界与模型形式误差。粒子法还需额外监控质量、线动量、角动量与能量的守恒预算,应报告各守恒量的相对漂移随时间的变化,而不是只在末态检查一次。
在可压缩或弱可压缩粒子法中,声速、密度波动与压缩性相互耦合,离散误差会通过状态方程放大为压力误差,因此目标量应优先选择对误差敏感的量,如壁面压力、前沿位置或剖面最大偏差。对于统计稳态问题,还要先确定统计窗口,用时间平均量做收敛分析,避免把瞬时脉动误判为分辨率效应。只有当序列单调或呈规律振荡、且观测阶接近理论值时,才可认为进入渐近区。
4 数值实现与参数
三组分辨率的加密比应保持恒定,例如 或 ,并统一后处理采样位置与插值方式。粒子法的代表尺度可以用粒子间距 、核半径 或每个粒子平均邻居数表征,但一旦选定就要在整组算例中保持一致。若同时加密粒子并改变 ,观测阶次会把两种效应混在一起,失去解释力。
参数敏感性应分批进行:先只改粒子间距,再单独改时间步系数、平滑长度比、边界方法与人工耗散,最后才做组合变化。每次计算都固定随机种子、代码版本、硬件精度与编译选项。对于存在随机或无序初始化的问题,需报告多次运行统计量的均值与离散度。验收量应事先列出——例如压降、剖面最大误差、自由表面到达时间与守恒漂移——并对每个量分别判断是否收敛,避免用一个 GCI 代表整个流场。
当解析参考解不可得时,可采用系统加密得到的高精度解作为参考,但需说明参考解自身的不确定度远小于待评估误差。对于自由表面或含接触的问题,还应对同一分辨率做多次不同初始分布或不同随机种子的重复运行,报告关键量的统计分布;若不同初始分布造成的差异与分辨率效应同量级,说明结果对粒子无序性敏感,需要更细的分辨率或更稳健的离散格式。
5 可复现示例
三个标准题足以覆盖粒子法的主要误差来源。
- 平板 Couette 流:稳态速度剖面线性,检验无滑移与切向剪切。取 在若干高度的值,计算 $L_2$ 误差并估计观测阶。
- Poiseuille 流:稳态剖面为抛物线 ,检验压力驱动与壁面无滑移。报告中心线速度与近壁剪切误差随分辨率的变化。
- 溃坝(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
若结果单调收敛且 接近理论阶,说明进入渐近区;若 异常或符号在水平间跳变,应先排查未收敛、边界处理不一致和后处理位置漂移,而不是直接报告 GCI。
三个题目应使用统一的代码路径,只改变分辨率与必要参数。以 Poiseuille 为例,可先给出三组分辨率下中心线速度与解析值之差,再据此估计观测阶 ;若 明显低于理论空间阶,优先检查近壁邻居不足、入口松弛强度与时间步是否过小导致人工耗散。溃坝则应同时报告前沿位置误差与质量漂移,二者分别对应运动学与守恒两类误差。
6 常见坑与排查
- 直接把动画连续当作验证:连续图像不说明守恒或收敛,必须比较剖面、相位与守恒量。
- 只比较末态:粒子法瞬态误差可能在中间放大又衰减,应比较时间历程。
- 加密时同时改多个参数:、时间步与边界方法一起变会掩盖真实收敛趋势。
- GCI 用在未进入渐近区的结果上:振荡或发散序列上机械套用公式没有意义。
- 混淆验证与确认:用实验标定过的参数再去“确认”同一数据,是循环论证。
- 忽视守恒漂移:质量或能量缓慢漂移会污染长期统计,须逐时间步记录。
- 后处理插值当成物理:粒子到网格或规则点的插值会引入额外误差,应固定插值方式并单独评估。
- 在未验证求解器上直接对比实验:偏离时无法定位是代码、离散还是模型问题。
- 参考解精度不足:用粗解当参考会导致误差被系统性低估。
- 忽略粒子无序性:单次初始分布的结果可能不代表统计行为,应多次重复。
7 检查清单与参考
- 记录代码版本、配置文件、随机种子与硬件精度。
- 记录粒子数、、时间步规则与邻居数统计。
- 报告质量、线动量、角动量与能量随时间的守恒预算。
- 统计边界穿透量、密度极值与粒子异常数。
- 至少三组分辨率,报告观测收敛阶或敏感性趋势,并声明是否进入渐近区。
- 记录参考数据版本、采样位置、插值方式与误差指标。
- 明确区分校准与确认,把物性、边界与模型误差纳入不确定性预算。
参考:
- Roache, Verification and Validation in Computational Science and Engineering, Hermosa, 1998.
- Celik et al., “Procedure for Estimation and Reporting of Uncertainty Due to Discretization in CFD Applications,” Journal of Fluids Engineering, 2008.
- Oberkampf & Roy, Verification and Validation in Scientific Computing, Cambridge University Press, 2010.