本文描述CFD计算中的误差。
1 模型误差
流体流动及相关过程通常由基于基本守恒定律的积分或偏微分方程来描述,这些方程构成了问题的数学模型。尽管纳维–斯托克斯方程在理论上被视为是精确的,但对于多数工程关注的流动情形,直接求解并不可行。直接模拟湍流对计算资源的需求极高,而燃烧、多相流及化学过程等现象也难以精确刻画,因此不可避免地需要引入模型近似。即便是建立在大量实验观测基础之上的牛顿定律与傅里叶定律,本质上亦属于模型范畴。
即便基础数学模型近乎精确,流体的某些物性仍难以精确获知。流体物性强烈依赖于温度、组分浓度及压力,这种依赖性常被忽略,从而引入额外的模型误差(例如,自然对流中采用 Boussinesq 近似、低马赫数流动中忽略流体的可压缩性效应等)。
方程求解依赖初值与边界条件,而这些参数往往难以精确给定,常需进行近似处理。通常将本应无限的求解域截断为有限域,并施加人工边界条件;同时,还需对流入、侧向及出口边界处的流动作出假设。因此,即便控制方程精确无误,边界处的近似仍可能影响最终解的准确性。
几何形状的精确表征也常常面临挑战,一些难以生成网格的细节经常被迫忽略。对于采用结构或块结构网格的代码而言,若不简化几何模型,便难以应用于高度复杂的问题。
因此,即便方程求解与边界条件设定均达到精确标准,受限于模型假设引入的误差,计算结果仍无法完全还原真实流动。
据此,模型误差定义为在给定几何、流体属性及初边值条件下,真实流动与数学模型精确解之间的差异。
2 离散误差
此外,控制方程通常无法求得精确解。每种数值方法均产生近似解,这是因为必须引入各类近似,将方程转化为计算机可求解的代数方程组。以有限体积法为例,需对面积分、体积分、界面变量值及时间积分采取适当的近似处理。显然,空间与时间离散单元越小,近似结果越精确。虽然采用高阶近似也能提升精度,但这并非易事:更精确的近似往往编程难度大、计算耗时且存储需求高,且在复杂几何应用中面临挑战。鉴于近似方案通常在编码前确定,空间与时间网格分辨率便成为用户调控精度的主要手段。
同一近似方法在流场的不同区域可能表现出显著的精度差异。由于流动在时空维度上常呈现强烈的局部变化,均匀间距(无论是空间还是时间)往往并非最优选择;而在变量变化平缓的区域,误差通常较小。因此,即便离散元数量与近似阶数相同,最终结果的误差仍可能相差一个数量级甚至更多。鉴于计算成本与离散元数量成正比,合理分布离散元并优化其尺寸,对于提升计算效率(即在达到规定精度前提下的成本效益)至关重要。
离散误差定义为控制方程的精确解与离散近似的精确解之间的差异。
3 迭代误差
离散过程通常会导出一组耦合的非线性代数方程。鉴于直接求解代价高昂,通常先对这类方程进行线性化,再采用迭代法求解。
任何迭代过程均需在适当阶段终止,因此必须定义收敛判据以决定停止时机。通常做法是将迭代持续至残差降低至特定水平;理论上,这等效于将误差降低相近幅度。
即便求解过程收敛且迭代充分,也无法获得离散方程的精确解,因为计算机有限的算术精度所引发的舍入误差为误差设定了下界。幸运的是,仅当解误差接近计算机算术精度时,舍入误差才会成为问题,而该精度远高于常规需求。
迭代误差定义为离散方程精确解与迭代解之间的差异。尽管此类误差独立于离散化过程,但将其控制在指定范围内所需的计算代价随离散单元数量的增加而上升。因此,选择最优的迭代误差水平至关重要:该水平应相对于其他误差足够小以确保可评估性,但也不宜过小,以免产生不必要的计算开销。
4 编程与用户误差
所有计算机程序都存在缺陷——这或许是事实。消除缺陷是程序开发者的责任;这正是此处要讨论的问题。通过研读代码难以定位的编程错误——更好的办法是设计可能暴露缺陷所致错误的测试问题。在将程序应用于常规计算之前,必须仔细检查试算结果。开发者应检查程序是否以预期速率收敛、误差是否随离散元数目按预期方式减小,以及解是否与解析解或另一程序给出的公认解一致。
代码的关键部分在于边界条件的实现。必须检查施加的边界条件是否真正得到满足;结果发现未满足的情况并不少见。Perić(1993)讨论了自然对流中绝热边界相关的此类问题。另一常见问题在于紧密耦合各项近似的不一致;例如,在静止气泡中,自由面两侧压降必须由表面张力平衡。已知解析解的简单流动对验证计算机程序十分有用。例如,采用动网格的代码可通过在固定边界、以静止流体为初值的情况下移动内部网格来检验;流体应保持不变,且不受网格运动影响。
求解精度不仅取决于离散方法与代码,也取决于代码使用者;即便用优秀的代码,也易得到糟糕的结果!尽管多数用户失误导致的误差落入上述三类之一,但区分方法固有的系统性误差与因代码缺陷或使用不当产生的可避免误差十分重要。
许多用户误差源于输入数据错误;这种错误常在完成大量计算后才被发现——有时则始终未被发现!常见错误出现在使用无量纲形式方程时的几何缩放或参数选取。另一类用户误差源于糟糕的数值网格(网格点分布不当可使误差增大一个数量级以上——甚至根本得不到解)。
注:本文内容取自《Computational Methods for Fluid Dynamics》12.2.1节。
”
(完)

本篇文章来源于微信公众号: CFD之道








评论前必须登录!
注册