流体流动和传热问题的数值解只是近似解。除了在求解算法的开发过程中可能引入的误差之外,在编程或设置边界条件时,数值解总是包括三种系统误差:
-
建模误差(Modeling errors)。定义为实际流量与数学模型精确解之间的差异 -
离散误差(Discretization errors),定义为守恒方程的精确解与通过离散化这些方程得到的代数方程组的精确解之间的差异 -
迭代误差(Iteration errors),定义为代数方程组的迭代解和精确解之间的差异
迭代误差通常被称为收敛误差。然而“收敛”一词不仅与迭代求解方法中的误差减少有关,而且还常与数值解向网格无关解的收敛相关联,在这种情况下,其与离散误差密切相关。为了避免混淆,我们将坚持上述误差的定义,在讨论收敛问题时,式中明确我们所讨论的是哪种类型的收敛。
意识到这些误差的存在是一件很重要的事情,但更重要的是要努力将它们区分开来。这些误差可能会相互抵消,所以有时在粗网格上得到的计算结果可能比在更细密的网格上得到的结果更符合实验结果(根据误差的定义,后者应该更准确)。
建模误差取决于在推导变量的输运方程时所作的假设。当研究层流时,它们可以忽略不计,因为Navier-Stokes方程代表了一个足够精确的流动模型。然而对于涉及到湍流、多相流、燃烧等物理现象的问题,建模误差可能会非常大--模型方程的精确解可能存在定性错误。通过简化求解域的几何形状、简化边界条件等也会引入建模误差。这些误差并非先验已知的;它们只能通过将离散误差和迭代误差可忽略不计的解与精确的实验数据或通过更精确的模型获得的数据(如湍流的直接模拟数据)进行比较来评估。在对物理现象模型(如湍流模型)进行判断之前,必须控制和估计迭代误差与离散误差。
前面提到过,离散近似引入的误差会随着网格的细化而减小,且近似的阶数是精度的度量。然而,在给定的网格上,相同阶数的方法可能产生相差一个数量级的求解误差。这是因为阶数只是告诉了我们随着网格间距的 减小,误差减小的速率,其并未给出单个网格上误差的信息。我们将在下一章中说明如何估计离散误差。
迭代求解和舍入导致的误差比较容易控制,我们将在第5章介绍迭代求解方法时讨论如何做到这一点。
CFD计算的最终目标是以最少的努力获得期望的精度,或以可用的有限资源获得最大的精度。每次我们描述一个特定的求解算法时,通常都要指出其相对于这些标准的优点或缺点。
注:以上内容取自Joel H. Ferziger《Computational Methods for Fluid Dynamics》,4th Edition,2.5.7
”
(未完待续)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册