UE Niagara---SPH流体模拟

目录

 

 

基础概念:

光滑核函数:

密度:

压力:

粘度:

 

最终:

在UE中实现上述理念

准备工作:

NeighborGrid3D:

粒子写入NeighborGrid3D:

计算密度和压力:

计算粘度加速度和压力加速度:

加上重力和外部碰撞:

更新位置与速度:

在UE中实现可能出现的问题:

 

学习资料:


 

--------------------------------------------------------------------------博主 :mx 

 

 

基础概念:

SPH(Smoothed Particle Hydrodynamics)算法是一种流体模拟算法。SPH算法的基本设想,就是将连续的流体想象成一个个相互作用的微粒,这些例子相互影响,共同形成了复杂的流体运动,对于每个单独的流体微粒,依旧遵循最基本的牛顿第二定律。但是在SPH算法里,流体的质量是由流体单元的密度决定的,所以一般用密度代替质量。

91d3b6d1993891a2eca22e73ba788d4a.png

作用在一个微粒上的作用力由三部分组成

f60a5b2b051392c2b12392582d593555.png

光滑核函数:

和其他流体力学中的数学方法类似,SPH算法同样涉及到“光滑核”的概念,可以这样理解这个概念,粒子的属性都会“扩散”到周围,并且随着距离的增加影响逐渐变小,这种随着距离而衰减的函数被称为“光滑核”函数,最大影响半径为“光滑核半径”。

23325e79f03ff3f270f06890f42265cd.png

我们在求解需要的数值的时候不需要求解整个空间的粒子,只需要求解光滑核函数内的值就可以了,可以将光滑核函数理解为一个球或者一个圆,求解时就在这个范围内

2a72d628461d3f4a4fab3c1b3cd498a6.png

其中Aj是要累加的某种属性,mj和pj是周围粒子的质量和密度,r 是该粒子的位置,rj是周围粒子的位置,h是光滑核半径,函数W就是光滑核函数。

 

对于SPH算法来说,基本流程就是这样,根据光滑核函数逐个推出流体中某点的密度,压力,速度相关的累加函数,进而推导出此处的加速度,从而模拟流体的运动趋势

 

密度:

我们需要先知道计算密度的光滑核函数称为Poly6函数,具体形式为:

e65fc755b37bd1eda6e111d2aaaffcc1.png

其中Kpoly6是一个固定系数,根据光滑核的规整属性,通过积分计算出这个系数的具体值,在2D情况下,在极坐标中计算积分:

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值