“任何时候针对任何复杂系统进行数值模拟时,控制方程与几何模型都需要经过不同程度的离散化处理。在 CFD 模拟中,网格划分将系统几何模型离散化,创建一组被用于控制方程计算的节点。现代 CFD 的一个挑战是在模拟中如何做到求解高精度、网格高分辨率和低计算资源耗费的平衡。为了达到这一目标,很多网格生成方法的开发都意图在处理复杂几何图形的同时不增加计算复杂性。
”
主要内容:
• 什么是高阶网格;
• 为什么网格曲线化比提升阶数更重要;
• 高阶网格相比于线性网格的优势;
• 如何从线性网格创建高阶网格。
图中两个涡轮叶片是一个线性混合网格(六面体,四面体等)。高阶网格的划分能够在一些关键面上在不损失网格精度的情况下降低网格数量(图片:Cadence)
任何时候针对任何复杂系统进行数值模拟时,控制方程与几何模型都需要经过不同程度的离散化处理。在 CFD 模拟中,网格划分将系统几何模型离散化,创建一组被用于控制方程计算的节点。现代 CFD 的一个挑战是在模拟中如何做到求解高精度、网格高分辨率和低计算资源耗费的平衡。为了达到这一目标,很多网格生成方法的开发都意图在处理复杂几何图形的同时不增加计算复杂性。
在 CFD 模拟使用的多种网格生成方法中,高阶网格是一种能够实现精度、分辨率和计算成本平衡的有效方法。高阶网格划分的目标是利用高阶多项式曲线的优势为 CFD 计算创建网格,从而实现在复杂系统环境下提供比线性网格更高的精度。高阶网格是如何生成的?就计算精度和计算复杂性而言又是如何在线性网格上叠加实现的?您可以在下文中找到答案。
网格阶数的定义
高阶网格是将相邻的网格节点用大于 1 阶(线性)的多项式曲线相连。理解高阶网格最容易的方法是将其与线性网格做比较。在线性网格中,几何图形的网格单元是由一组连接网格节点的直线构成;而高阶网格则用非线性多项式函数(如二次方程)连接网格节点,所以这项技术被称作“网格曲线化”。
采用网格曲线化或高阶网格生成技术的 CFD 网格生成软件通常采用二次到四次多项式。如果将相同技术用于一次多项式,则会返回到线性网格,因此网格曲线化才是一种相对广义的网格生成技术。网格曲线化有很多几何和数学上的优势,但最主要的优点还是在于计算方法。
线性网格 vs. 高阶网格
下图所示的系统是在叶片表面和边界层区域使用线性网格的涡轮叶片网格分布。可以看到,在越接近叶片根部边缘处,网格密度越高。这样做是为了精确的模拟叶片表面弯曲形状以及沿表面边界层的梯度变化。在线性坐标系统中,梯度越靠近表面就会越大,网格密度也会随着梯度的变大而增加。
图中示例的线性网格可以用高阶网格生成技术优化(图片:Cadence)
通过网格曲线化技术,我们可以生成更符合涡轮叶片表面曲度变化的网格,且无需增加网格密度。在线性网格中,高弯曲度的表面需要高密度网格才能获得所需精度。同时,由于数值算法中的运算数量会随着网格密度增加而规模性增加,所以运算时间也会更长。
基于线性网格创建高阶网格
高阶网格可以基于现有的线性网格通过插值法创建。回归分析被用于确定多项式模型或者等效样条模型的系数然后用插值方法给出两端点间的数据点,并将这些数据点赋予曲线网格以符合多项式模型。高阶网格生成要将类似的过程用于线性网格(不管是结构化网格还是混合网网格),以便提取与多项式曲线相关的连续点多项式曲线。
让我们来看下面的图示,线性网格被用于描述有曲度变化的涡轮叶片表面。在对线性网格设定边界条件后,利用算法将线性网格的节点与多项式曲线匹配关联。CFD 工程师可以自行选择最适合模拟需求的多项式网格阶数。针对一些具有特殊多项式曲率的曲面,生成的多项式曲线网格也可以很好的符合叶片表面的曲度变化,且不需要线性网格那样高密度网格节点分布。
完成相关表面的多项式曲线定义后,可以用插值法高效生成任意密度的网格。网格的精度可以通过调整插值后的网格密度或不同的插值方法来进一步优化。下图左可见插值后高阶网格的示例。下图右可以看到一些插值法可能在生成的插值网格中产生伪影,所以选择正确的插值方法也是生成高精确曲线网格的关键。
插值后的多项式曲线网格与插值法导致伪影的线性网格(图片:Cadence)
Cadence Pointwise 网格生成工具可以帮助 CFD 工程师创建复杂几何模型高精度模拟所需要的高阶网格,且不会显著增加计算复杂性。