技术邻学院 发表于 2018-7-5 09:38:32

谈谈常见的几种CFD算法

1. FVM-有限体积法

这是目前CFD领域最成熟的算法。该算法是将流体的Euler控制方程在单元控制体内进行积分后离散求解。目前大家常用的CFD软件,例如Fluent,CFX,Starccm+和OpenFoam等都是主要基于这种方法。

FVM的基本思路:1、将计算区域划分为一系列不重复的控制体积,每一个控制体积都有一个节点作代表,将待求的守恒型微分方程在任一控制体积及一定时间间隔内对空间与时间作积分;2、对待求函数及其导数对时间及空间的变化型线或插值方式作出假设;3、对步骤 1 中各项按选定的型线作出积分并整理成一组关于节点上未知量的离散方程。

就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间物。有限单元法必须假定值在网格点之间的变化规律(既插值函数),并将其作为近似解。有限差分法只考虑网格点上的数值而不考虑值在网格点之间如何变化。有限体积法只寻求的结点值,这与有限差分法相类似;但有限体积法在寻求控制体积的积分时,必须假定值在网格点之间的分布,这又与有限单元法相类似。在有限体积法中,插值函数只用于计算控制体积的积分,得出离散方程之后,便可忘掉插值函数;如果需要的话,可以对微分方程中不同的项采取不同的插值函数。

FVM的优点:1、具有很好的守恒性。2、更加灵活的假设,可以克服泰勒展开离散的缺点。3、可以很好的解决复杂的工程问题。对网格的适应性很好。4、在进行流固耦合分析时,能够完美的和有限元法进行融合。https://img.jishulink.com/upload/201807/1530710678255_image001.jpg
2. FDM-有限差分法

有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。

对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。

FDM的基本思路:按时间步长和空间步长将时间和空间区域剖分成若干网格,用未知函数在网格结(节)点上的值所构成的差分近似代替所用偏微分方程中出现的各阶导数,从而把表示变量连续变化关系的偏微分方程离散为有限个代数方程,然后解此线性代数方程组,以求出溶质在各网格结(节)点上不同时刻的浓度。 https://img.jishulink.com/upload/201807/1530710699179_image002.jpg
3. FEM-有限元法

有限元方法的基础是变分原理和加权余量法,广泛地应用于以拉普拉斯方程和泊松方程所描述的各类物理场中(这类场与泛函的极值问题有着紧密的联系)。有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。

FEM的基本思路:把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。

有限元法常应用于流体力学、电磁力学、结构力学计算,使用有限元软件ANSYS、COMSOL等进行有限元模拟,在预研设计阶段代替实验测试,节省成本。 https://img.jishulink.com/upload/201807/1530710708014_image003.jpg
4.粒子法

粒子法是近20多年来逐步发展起来的一种无网格方法。它利用核函数对物理问题进行近似处理,用离散的粒子来描述宏观连续分布微观仍为粒子的流体,而每个粒子则携带了其所在位置的流体的各种性质,如质量、密度、速度、能量等。

基本思路:将视作连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为。从原理上说,只要质点的数目足够多,就能精确地描述力学过程。

粒子法可以分为光滑粒子法(SPH)、半隐式运动粒子法(MPS)和有限体积粒子法(FVP)三类。

第一种SPH光滑粒子法,该算法最早由Gingold and Monaghan (1977) 和Lucy (1977)提出,该方法对流体压力采用显示求解,特点是计算快速,弱点压力场计算不准确。

第二种MPS半隐式运动粒子法是由Koshizuka教授于1995年提出,该算法通过求解压力泊松方程获得流体的压力场,并通过压力梯度修正预测的流体速度。MPS方法在提出后的很长时间内都存在很多底层的数值稳定性问题,主要体现在压力场不符合物理实际的波动。后来很多学者对该方法提出了修正和改进。

最后一种FVP粒子法,相对比MPS的区别将控制方程在假想的粒子体积空间内进行积分,获得新的梯度和Laplacian算子,该算法与MPS无太大本质区别。

SPH方法虽然快,但是有失准确度,适合于追求视觉效果的场景,例如某些电影里的海啸场景,就采用该算法。MPS和FVP方法虽然计算速度较慢,但物理量计算更加准确,适合于工程场景。 https://img.jishulink.com/upload/201807/1530710722738_image004.jpg
5. LBM-离散格子玻尔兹曼法

Lattice Boltzmann Method(LBM),即离散格子玻尔兹曼方法,主要用来模拟处于Maxwell或近Maxwell平衡态的连续流区或近连续滑移区低速槽道流。

近年,国际上许多学者提出发展将宏观流体力学与微观分子动力学连接起来的介观理论,通过发展基于分子运动论(气体动理学理论)Boltzmann方程的介观数值模型来再现特征尺度达微、纳米量级的气体流动问题。LBM就是其一。

该方法并没有像前其他CFD方法那样求解流体的Navier–Stokes方程,而是通过计算微观粒子间的streaming和collision两个过程,从而模拟整体流体的运动行为。该算法最大的特点是并行计算效率非常高,主要是因为算法过程相对简单容易并行。

目前,除了在一般的流体力学问题中得到了成功的应用外,格子BoftZmann方法在多相(元)流、化学反应扩散、渗流、粒子悬浮流、磁流体力学等相关领域也得到了比较成功的应用。LBM正处于不断的发展之中,近年来在基本理论、基本模型和应用等各方面都有所发展。
https://img.jishulink.com/upload/201807/1530710735809_image005.jpg

本文转自:http://www.jishulink.com/content/post/375865
页: [1]
查看完整版本: 谈谈常见的几种CFD算法