无网格和无网格CFD,你不知道的事
计算流体动力学从业者最头疼的就是高质量分网问题,这通常占据整个仿真任务70%的时间。尽管在过去三十年算法的准确性和速度有了巨大进步,对复杂、真实世界模拟仿真来说,分网还是最耗时和CFD仿真过程可靠度最低的部分。无网格方法因此提供了一个可行的替代基于网格的流体计算方法,并且不需要传统的网格结构,这样就解决了很多分网相关的问题。下面,就来介绍当前CFD中主流的无网格方法。
►►►
什么是网格?
网格或格子定义为分析域或模型的离散单元格或单元,所有的流动变量和其他变量都在这些离散单元格中心求解。整个过程将物理域分解为更小的子域(单元/单元格)称为分网,这些单元格分组形成边界区域并且在这些区域施加边界条件。不仅仅产生高质量网格并保持它是一项繁重任务,还可能有其他影响诸如:
收敛速率;
结果的准确性;
所需CPU时间。
尽管近年来有很多软件有自动网格划分功能,但大多数CFD从业者还是手动进行网格划分。使用自动网格划分方法用户还是需要提供基本的输入,如单元尺寸、需要划分网格的区域、求解器来进行网格生成。可是这并非对所有案例都是可行的,对复杂几何模型难于实现自动。因此,出现了CFD分析方法中的“无网格CFD”。
►►►
什么是无网格方法?
无网格方法用于建立整个问题域的代数方程系统,而不使用域离散的预定义网格。问题域内节点是分散的,节点在边界上也是分散的节点组来代表(不离散)问题域及其边界。无网格意味着无需节点间关系的信息,与传统的有限体积或有限差分方法需要这种关系是不同的。
图形显示翼型划分了网格(左侧),右侧相同的翼型则被点包围。无网格方法在这些点处求解偏微分方程。
►►►
为什么用无网格?
很多现有数值方法诸如有限体积方法,有限差分方法需要网格。在这样的网格中,每个点有一个固定数量的预定义相邻的点,与相邻点的连接关系用于定义数学运算(诸如导数)并使用这个信息,求解整个域方程。
但对仿真材料可以移动或经历大变形(例如移动网格问题),网格的连接不引入误差则难以保持。尽管这种情况下仿真中可以重新划分网格,最终还会导致进一步增加误差。无网格方法可以避免这种问题。无网格方法的其他优势:
节省分网的时间;
复杂几何模型的仿真非常容易,而复杂几何模型难于分网,可能需要花费几个星期;
无需额外人员帮助划分网格。
►►►
无网格方法有哪些?
近年来开发了很多无网格方法,我们来看一下发展的状况。
光滑粒子流体动力学方法
SmoothedParticle Hydrodynamics(SPH)
SPH,用于天文学的最老的无网格方法之一,随后越来越多用于流体流动研究。这种方法将节点视作物理颗粒,带有质量和密度等信息,可以随时间移动。这种方法中相邻颗粒任何属性值或其导数都是独立的,颗粒可以按任何顺序使用而没有影响,颗粒可以来回移动甚至可交换位置。该方法的域离散、场函数近似和数值求解的基本步骤总结如下:
连续体分解为任意分布的一组没有连接(无网格)的颗粒;
采用场函数近似的积分表示法;
-
引入颗粒近似转换积分表示法为有限求和。
径向基函数
Radial BasisFunctions(RBF)
RBF,为一种求解偏微分方程无网格方法,源于认识到径向基函数插值对任何组节点、任意维度,都是光滑和准确的。RBF值依赖于到原点或任何其他指定点的距离的函数,来通过基于单一变量函数(径向基函数)线性组合近似多变量函数。通常用来知道有限数量点(或太难于评估的情况)近似函数或数据。RBF一些常用类型有:
高斯函数;
多二次函数;
逆二次函数;
-
逆多二次函数。
有限点集方法
Finite PointsetMethod(FPM)
FPM,是使用拉格朗日法的颗粒方法,流体被有限数量的颗粒(点)代替,是非静止颗粒。这些颗粒随流体速度移动承载流体量,诸如密度、速度、压力等。类似的边界可以通过有限数量的边界颗粒近似,边界条件施加在上面。如同SPH方法,FPM也不使用刚性相邻节点/颗粒(如有限体积方法FVM)列表。因此,允许所有的点/颗粒移动,每个时间步长相邻点列表重新计算得到。这种方法适于复杂几何模型,带有自由表面,多相流的流动问题。
这种方法比广泛使用的无网格方法SPH有一些优势。SPH主要难点在于施加边界条件,FPM方法通过使用移动最小二乘或最小二乘法非常自然地把颗粒置于边界并施加边界条件而解决这个困难。
无网格技术节省了大量的网格划分时间和精力。无网格CFD技术蓬勃发展未来前景光明,因为它解决了每个CFD工程师面对的最大困难之一—“分网”问题。
本文来源:云翼超算