CFD 程序的开发及测试
为进行实际计算,数值算法必须转化为计算机程序。需要有组织、专注地创建一个高效及
无误的程序。当计算机程序被开发及测试后,它即变为一个用于分析的有用工具。它为解
决复杂实际工程问题打开了一个全新的世界。以下的一些建议,为希望开发 CFD 计算程
序的读者提供了一些帮助。
1. 在计算机程序设计的第一步,要决定程序的应用范围及局限性。它是二维或者三维、
直角坐标或者柱坐标、均匀网格或非均匀网格、常数或变化的密度、稳态或瞬态。
太过于一般性使得程序非常复杂而导致难以应用于简单的问题,而太少的通用性则
可能导致难以适用于更多的物理条件。在一开始,可以开发一个具有较多限制的版
本,然而,拥有一个灵活的框架的程序能够很容易得到扩展。
2. 在程序开发过程中,将一些通用操作(如系数的计算和离散方程的求解等)与基于问
题的操作(如物性的指定、对于相关变量的边界条件指定等)分离开是很有好处的。
通用操作应当在程序开发一开始就进行设计,随后针对指定的不同问题进行测试。
3. 当一个计算机程序被开发完毕后,必须进行严格的测试。一个包含错误的程序就像是
一台失灵的仪器,是不可相信及不可控的。
4. 在将整个程序应用于工作中之前,对程序的各个组成部分进行单独测试是有用的。例
如,对求解离散方程的各个子程序可以使用任意提供的系数进行独立测试。
5. 初始测试可以在粗糙的网格上进行测试,这可以解决计算机时间。而且,在结果流场
只有有限的数量时,可以很容易的对其进行检查及解释。同时,一些意外的结果可
以通过手工计算进行检查。甚至,一些粗糙网格求解被期望与拥有物理真实解。
6. 控制体方法确保求解结果满足整个计算区域上的守恒。这些总体平衡对于计算机程序
测试非常有用。在整体平衡验证中,我们必须使用相同的假设用于构建离散方程。
同时,对于一个良好收敛的求解结果,整体平衡必须对于任意数量的网格都完美的
满足。另一方面,整体平衡可能作为迭代收敛性的判据。
7. 为确保计算机程序内部一致性,需要执行大量的测试工作。一个重要的测试内容为:
测试收敛结果是否与初始猜测值及松弛因子有关。
8. 与物理问题相关的坐标系统方向,应当是任意的。一个正确的计算机程序能通过采用
交换的方式求解相同的问题,例如,x 与 y 方向。
9. 当边界条件隐含着求解关于一条线(或平面)对称时,可以在计算域的一半区域进行
计算。例如,一个平板流动能够使用对称模型简化从一个板到中心线的模型。当测
评论0