1.问题的提出
有限体积方法可以在离散意义上满足局部和全局的守恒律,是CFD中最常用的数值求解方法。为何众多基于有限体积方法的软件最高只有二阶精度,鲜见3阶以上精度的有限体积方法?这是这篇文章的出发点。
有人认为,是非结构网格导致了这个困难。这个认识没有触及根本,至少是不全面的。下面我们会看到,即使是最简单的、不考虑一般曲线坐标系的平直结构网格,相比有限差分方法,要实现3阶以上精度,必须付出很多额外代价。
这里以平直结构网格上的三阶有限体积方法为例,展开说明。
2.问题背后的原因
2.1. 一维守恒方程
2.2. 二维情形
3. 小结
相较相同精度的有限差分方法,
⚫ 见表格 1,3 阶有限体积方法,对应二维和三维流动,计算量分别增加了 3 倍和 5倍。
⚫ 见表格 2,5 阶有限体积方法,对应二维和三维流动,计算量分别增加了 4 倍和 10倍。
希望这篇文章能够帮助更多同行了解这个基础问题。
4. 附录
4.1. 分辨率和精度
一般来说,离散格式的误差可以表示为 𝐸 = 𝐶Δ𝑥𝑝,𝐸 整体表示格式的分辨率,而 𝑝 表示格式的精度。分辨率是描述算法的状态,而精度则是描述随着网格加密,算法的误差的变化过程。
4.2. 折中
如果仅在一个方向进行高阶重构,计算代价与有限差分方法相当。尽管格式仍然是二阶精度,但能够提高格式的整体分辨率。在气动计算领域,这种做法很常见。
这种格式,与传统的二阶 Harten TVD 格式比较,尽管精度相当,却具备更高的分辨率。相同网格下,这种高分辨率格式能够更准确的捕捉流场的精细结构。
4.3. 延申
⚫ 对于线性守恒方程,上述问题不存在。比如声场计算,一般基于线化的欧拉方程,又比如 Maxwell 方程等。
⚫ 对于非结构网格上的有限体积方法,额外的重构过程,依然无法避免。模板选择是另外一个棘手的问题。
4.4. 二阶精度有限体积格式
平均值与点值之间,误差是二阶的。如果要求二阶精度,二者可以混同使用。