CFD算法大比拼:FVM、MPS、SPH、LBM深度解析

最近收到了很多提问,shonDy所采用的粒子法与LBM方法有什么区别?粒子法的优势在哪里?等等。为了弄清楚这些问题,本篇随笔从CFDer常见的几种算法讲起。

图1.jpg

上图是我重点围绕粒子法对常用CFD方法的一个简单分类,并非以偏概全。如果详细地整理CFD算法,可以有上百种之多。为了有的放矢,上图作为一个不完全分类展示给大家。

1.有限体积法

这是目前CFD领域最成熟的算法。该算法是将流体的Euler控制方程在单元控制体内进行积分后离散求解。目前大家常用的CFD软件,例如Fluent,CFX,Starccm+和OpenFoam等都是主要基于这种方法。小编这里推荐一本入门的读物“H. Versteeg, W. - An Introduction to Computational Fluid Dynamics: The Finite Volume Method”,国内网上可以买到英文原版的影印版。采用这种方法模拟流体,首先需要对流体区域进行网格划分。个人常用的画网格工具是OpenFOAM的snappyHexMesh,无论多么复杂的几何体,进行适当处理之后存储为STL或Obj格式,然后配置控制参数,便可以自动生成Hex-dominated的网格,也就是大部分网格都是六面体的。snappyHexMesh网格生成分为三步:(1)对正六面体的背景网格进行局部加密,然后删除掉位于几何模型以外(或以内)的网格;(2)将所有靠近几何体壁面的网格节点移动到几何面上;(3)对指定的壁面添加边界层。从核反应堆到航天飞行器,都可以用snappyHexMesh生成理想的网格。




2.粒子法

这是一种基于拉格朗日近似方法,无需网格,对流体和固体的物质本身进行离散,并非离散空间。相对于LBM,该方法和有限体积法(DNS除外)的尺度较宏观,更适合于实际工程问题。第一种SPH光滑粒子法,该算法最早由Gingold and Monaghan (1977) 和Lucy (1977)提出,该方法对流体压力采用显示求解,特点是计算快速,弱点压力场计算不准确。第二种MPS半隐式运动粒子法是由Koshizuka教授于1995年提出,该算法通过求解压力泊松方程获得流体的压力场,并通过压力梯度修正预测的流体速度。MPS方法在提出后的很长时间内都存在很多底层的数值稳定性问题,主要体现在压力场不符合物理实际的波动。后来很多学者对该方法提出了修正和改进。小编所开发的shonDy软件就是基于MPS的改进算法。最后一种FVP粒子法,相对比MPS的区别将控制方程在假想的粒子体积空间内进行积分,获得新的梯度和Laplacian算子,该算法与MPS无太大本质区别。 前两周,小编在KIT有幸见再次到了后两种粒子法的鼻祖,一位是日本东京大学的Koshizuka教授,另一位是日本九州大学的Morita教授。个人观点是,SPH方法虽然快,但是有失准确度,适合于追求视觉效果的场景,例如某些电影里的海啸场景,就采用该算法。MPS和FVP方法虽然计算速度较慢,但物理量计算更加准确,适合于工程场景。

图2.jpg

上图是应用shonDy软件快速建模的两个转动齿轮对流体作用的算例,创建算例时间只需20分钟。同样的问题,如果采用网格方法,划分动态网格会占用大量时间。




3.LBM方法

该方法属于介观尺度的方法,相对前两种方法离散尺度上微观,但没有微观到分子的尺度。该方法并没有像前其他CFD方法那样求解流体的Navier–Stokes方程,而是通过计算微观粒子间的streaming和collision两个过程,从而模拟整体流体的运动行为。该算法最大的特点是并行计算效率非常高,主要是因为算法过程相对简单容易并行。其缺点在于目前离广泛的实际工程应用还有段距离,目前主要应用于基础科研领域。原因是该算法模拟一个几何模型需要创建的格子数非常大,对于large scale的工程问题,计算量和计算时间无法接受。 这里向大家推荐一款KIT开发的开源软件OpenLB,适合于学习和科研。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空