光滑粒子流体动力学法米扬SPH算法背景SPH算法,又称为光滑粒子流体动力学算法。是一种无网格粒子法,创立于1977年,经过多年的发展,发展出许多的派生的方法,如再生核粒子法(RKPM)、修整光滑粒子法(CSPM)等。SPH的基本思想(1)若问题不是以粒子形式表示的,则用一系列仍一分部的粒子来表示问题域。(无网格)(2)用积分表示法来近似场函数,称为核近似法。(积分函数法)(3)应用粒子来对核近似方程进一步近似。这种方法称为粒子近似法。(紧支性)(4)在每一个时间步内都要进行粒子近似过程,因此所使用的粒子取决于当前局部分布的粒子。(自适应)(5)将粒子近似法应用于所有偏微分方程组,得到一系列离散化形式的常微分方程。(拉格朗日性质)(6)应用显示积分法来求解常微分方程组以获得最快的时间积分,并得到所有粒子场变量随时间变化值。(动力学性质)算法基本方程SPH算法函数f(x)的积分表达式的概念由下式定义其中是狄拉克函数,性质如下:用来取代函数。,函数可以表示为:函数被称为光滑核函数或光滑函数、核函数等。一函数积分表示法光滑核函数一般选用偶函数。它还应满足下列条件:1)正则化条件2)光滑长度趋于0时3)紧支性条件二粒子近似法在SPH方法中,系统是具有独立的质量、占有独立空间的有限个粒子近似法得到的。与SPH核近似法的连续积分表达式可转化为支持域内所有粒子叠加求和的离散化形式。的连续SPH积分表达式可以写作一下离散化的粒子近似式:在粒子i处的函数的粒子近似式最终可写为:同理可得,函数空间导数的粒子近似式为:在上述方程中,梯度与粒子相关。故在粒子处的函数粒子近似式最终可写为:其中这说明粒子处的函数梯度值可通过应光滑函数的梯度对粒子的支持域内所有粒子函数的加权平均近似。总之,对于给定的粒子i,通过应用粒子近似法,粒子i处的函数及其导数近似式为:光滑核函数的构造光滑核函数是SPH算法的核心,它在支持域上必须满足以下性质。(1)正则化性质(归一性)(2)光滑函数必须满足紧支性条件(紧支域),即:紧支域的尺寸由光滑长度和比例因子决定。定义了点x上粒子的支持域。(3)非负性在点x上的粒子的支持域内任意一点x’处有:(4)当粒子间的的距离增大时,粒子的光滑函数值应该是单调递减的(衰减性)(5)当光滑长度趋向0时,粒子的光滑函数应该满足狄拉克函数条件(函数性质):(6)光滑函数应为偶函数(对称性质)。(7)光滑函数应充分光滑(光滑性)。常用光滑函数(1)钟形函数(2)高斯型核函数(4)B-样条函数(三次样条函数)SPH方法在流体动力学中应用N-S方程连续性方程动量方程(无外力作用)能量方程上述方程中为总应力张量,由各向同性压力和粘性应力组成:其中,粘性剪应力与剪应变率成比例,且比例系数为粘性系数。用SPH法对N-S方程进行粒子近似连续性方程(质量守恒)动量方程能量方程粒子的相互作用最近相邻粒子搜索法(NNPS):在SPH中,由于紧支域的存在,相关粒子的计算只与支持域中的有限粒子有关。一般将这些包含在支持域中的粒子称为相关粒子的最近相邻粒子(NNP)。寻找最近相邻粒子的过程称为最近相邻粒子搜索(NNPS)。在SPH方法中常用的三种NNPS方法为:(1)全配对搜索法(2)链表搜索法(3)树形搜索法全配对搜索对于给定的粒子i应用全配对所搜,即计算问题域中所有粒子与粒子i的距离,搜索出位于粒子i支持域中的所有粒子。并且此搜索过程对所有粒子操作。显然,这是一种简单直接的方法。但是在每个时间步的运算里都进行NNPS过程,因此全配对搜索法消耗的计算时间相当长,不适应计算粒子数量庞大的问题。链表搜索法在实现链表搜索法师,要先在问题域上铺设一层临时的网格。网格大小应与支持域的空间大小一致。对于给定粒子i,其相邻粒子只能在同一网格或紧密相邻的单元内。链表搜索法将每个粒子都分布在网格单元内,并通过简单的存储规则将每个网格内的所有粒子连接起来。链表搜索法存在的问题是,当光滑长度可变时,网格空间就不能适应每一个粒子,此时若应用链表搜索法,搜索效率会很低。树形搜索法树形搜索法将最大问题域递归分割成一个个卦限,直到每个卦限只包含一个粒子为止。给定任意一个粒子i,以粒子i为中心,用边长为的立方体将粒子包围起来。然后再检测粒子i的搜索立方体空间是否与并列的层次内的其他节点所占的空间有相重合的地方。若没有,则终止往下搜索,若有,则继续下一层次搜索。直到所搜索到的当前节点处只有一个粒子为止。接着,检查粒子是否在给定粒子的支持域内,若是,则将其记为粒子的相邻粒子。树形搜索法对于求解具有可变光滑长度和粒子数量庞大的问题时时非常高效的。一些SPH算法效果图谢谢观看