前言:
当前同学们对“sph算法简介”大体比较看重,各位老铁们都想要分析一些“sph算法简介”的相关文章。那么小编也在网络上搜集了一些对于“sph算法简介””的相关资讯,希望看官们能喜欢,各位老铁们快快来了解一下吧!文丨五年宝
编辑丨五年宝
前言
流体模拟是一种计算机流体模拟主要是指结合流体模拟的物理现象,随着科技技术的逐渐发展,这一项技术也被广泛应用。
而流体模拟这项技术在现代应用上,主要是以计算机为媒介展开的高新技术研发,它也被广泛应用在科学研究、电脑游戏、灾难营救和军事仿真等。
在多种应用的情况下,流体模拟基本上被分为了三大种类:基于纹理变换的流体模拟、基于真实物理方程的流体模拟和基于二维高度场网格的流体模拟。
流体模拟在计算机图形学中很重要,基于物理的流体模拟技术,已广泛应用于故事片和电脑游戏中,比如说平滑粒子流体动力学。
平滑粒子的多种应用
平滑粒子是一种基于拉格朗日粒子的方法,SPH将流体离散采样为一组粒子,并且使用给定距离内的相邻流体粒子对任何位置的物理量进行插值,比如密度和速度。
通过存储有关粒子物理量的信息,计算资源集中在相关的流体区域,这也导致了SPH的模拟效率通常高于基于欧拉网格的方法。
在SPH中,插值的精度对于保持相应流体模拟的稳定性和真实性非常重要,会影响SPH插值精度的主要因素之一是平滑长度,即平滑核的支持半径。
它决定了参与插值的相邻粒子的数量,当相邻粒子比较少的时候,插值精度会降低,相反增加邻居数量可以提高准确性,但代价是计算开销呈指数级增加。
也正是出于这些原因,模拟通常选择具有适当长度,比如说颗粒半径的两到四倍的恒定支撑半径。
可由于缺乏适应性,恒定的平滑长度也有其自身的缺点,当平滑长度固定时,飞溅处的粒子通常比稳定区域中的粒子有更少的相邻粒子,这也导致流体稳定且远离自由表面的地方。
但是在流体运动非常剧烈且颗粒被压缩的区域会出现相反的情况,归根结底这两种情况都会破坏模拟的稳定性,降低其准确性。
在这样的情况下,有人已经尝试使用迭代优化方法来确定最佳解决方案来解决上述问题,比如说PCISPH、IISPH和DFSPH。
可这些迭代方法通常会产生较高的计算成本,对此他们还提出了可变平滑长度方法来解决自适应问题,但插值过程是基于迭代的,这对仿真效率产生了负面影响。
新方法的研究
利用粒子密度和平滑长度之间的关系,有人提出了一种具有非迭代解决方案的可变平滑长度方法,通过自适应调整流体粒子的平滑长度,可以保持每个粒子的邻居稳定。
插值精度通常高于先前提出的恒定平滑长度方法,针对这项研究所提出的非迭代方程在计算上比基于迭代的方法更有效。
首先是根据可变平滑长度而具有更高的精度,另外更大的时间步长,模拟效率进一步提高,最后所提出的基于非迭代的可变平滑长度方法包含以下贡献。
1.更新方案
提出了一种基于粒子密度变化的变平滑长度更新方案,无需通过迭代优化求解,保证了较高的计算效率。
2.数值稳定
采用对称插值核来保证可变平滑长度粒子之间的力对称性,这种方式也保证了方法的数值稳定性。
3.优势
平滑长度更新方案经过大量实验的验证,实验表示并通过与几种最先进的方法的比较证明了其优势。
相关工作
SPH计算精度的提高通常伴随着相应模拟稳定性的提高,而改进的仿真稳定性提供了更大的仿真时间步长,变相的提高了仿真效率。
在计算机图形学中,许多经典的SPH算法都朝着这个目标进行了改进,一些研究人员使用了各种方法来提高计算密度和力等物理量的插值精度。
密度作为模拟中的重要物理参数,许多流体模拟研究都试图修改流体的密度变化以确保流体的不可压缩性。
比如说经典的PCISPH方法通过预测和校正操作来校正颗粒的位移,与简单的WCSPH方法相比,产生更稳定的颗粒密度变化。
由于具有更好的仿真稳定性,PCISPH方法的时间步长比WCSPH方法长几倍,而IISPH方法通过求解泊松方程来获得更精确的压力场,以最大可能保持密度场恒定。
与WCSPH方法相比,IISPH方法具有更均匀的密度场、更高的不可压缩性和更高的模拟稳定性。
DFSPH方法通过构造没有发散或密度变化的速度场,提高了模拟过程的稳定性和效率,最后使用SOR方法进一步改进了DFSPH方法,以减少压力求解器的迭代次数。
在上述的一些算法中,迭代计算过程用于计算感兴趣的物理量,这些算法虽然允许增加时间步长来提高仿真效率,但这些单步仿真的效率明显低于WCSPH方法。
有些实验人员提出了一种成对力平滑颗粒流体动力学模型,这种模型具有比标准SPH方法更大的支撑半径和各向异性滤波项,以避免颗粒在自由表面上聚集,从而提高模拟的稳定性。
韦勒提出了一种基于物理连续性的隐式粘度求解器,这种求解器在物理精度和内存消耗方面优于以前的方法,从而能够实现高分辨率的复杂流体动画。
直到科学家Band使用以体积为中心的SPH离散化方法,最后提出了IISPH方法的边界压力处理方法,有效减少了边界处的压力振荡,并提供了大的时间步长。
本德又提出了一种基于密度图的边界处理方法,提高了模拟的稳定性和真实性。
这是一种用于强流固耦合的链式SPH压力求解器,它稳定了流固界面的处理,并通过提供更大的时间步长明显减少了计算开销。
SPH的适应性
所有流体模拟的主要目标是提高模拟的质量和效率,可两者往往是矛盾的,难以同时保证准确性,这也导致了研究人员一直在使用自适应技术来有效分配计算资源。
在时间维度上,现有工作主要利用Courant-Friedrichs-Lewy条件在保持模拟数值稳定性的前提下选择最优时间步长。
使用不同尺寸的粒子来离散模拟区域并在模拟过程中动态调整粒子的半径,可以将计算资源自适应分配到视觉上重要的区域。
凯泽引入了一种基于虚拟粒子的多分辨率耦合方法来有效地分裂或合并粒子,将模拟速度提高了六倍。
随后亚当斯提出了一种基于骨架提取的方法,先是在流体骨架附近使用粗颗粒,而后又在远离骨架的区域使用细颗粒,将效率提高了3到8倍。
其余的研究人员在基于图形处理单元的SPH框架中实现了自适应流体采样,最后奥特尔曼和科尔布利用细颗粒对多相流边界进行高分辨率模拟,提高了模拟精度。
温琴巴赫提出了一种改进的粒子分裂方法,这项方式明显提高了粒子分裂过程中的稳定性。
最后通过捕获模拟流体的边界动态细化目标计算域,还提出粒子分裂、合并准则以避免分裂、合并过程中的链式等诸多反应。
而在最后,由Winchenbach和Kolb等人导出了一个离散目标函数,可以在非常高的体积比场景中自适应地调整粒子半径。
在欧拉流体模拟方法中,自适应网格划分可以有效提高计算效率提出了一种基于径向基函数有限差分法的自适应PIC求解器。
在液体界面附近的窄带内动态构建四叉树和八叉树,保持模拟系统的稳定性,同时减少数值耗散以及提高模拟精度。
后续有研究人员提出了一种用于不可压缩流动模拟的自适应交错倾斜网格,与均匀笛卡尔网格相比,自适应网格可以更好地离散复杂的仿真空间,还能提高仿真精度。
但除了计算机图形学领域外,计算物理领域的一些研究人员也致力于自适应流体模拟技术的研究。
Gang和Gao提出了一种通过结合粒子密度和邻居数量的变化来自适应确定粒子平滑长度的方法,但寻找解决方案的迭代过程相当耗时。
而Yang和Kong则是利用相邻粒子的各种物理性质,比如密度和压力,自适应地确定粒子平滑长度,但该方法的稳定性较差,特别是在剧烈流体运动的情况下。
VSLSPH的可变平滑长度
首先提出的VSLSPH方法有利于提高流体模拟的精度,有明确的实验证明了三维溃坝模拟的结果,其中具有不同平滑长度的颗粒,会以不同的颜色显示。
应用这些方法后,各个粒子的平滑长度进行了自适应调整,可靠近表面的颗粒的平滑长度明显长于液体本体中的颗粒,并且飞溅区域中的颗粒具有更长的平滑长度。
在适当的情况下可以使用这种方法在插值中包含更多粒子,从而产生更高的模拟精度。
邻居数量
将相邻粒子的数量保持在合理且固定的范围内是保证SPH模拟稳定的关键,有研究表明使用VSLSPH、WCSPH、PCISPH、IISPH和DFSPH方法的二维溃坝场景的模拟结果。
其中使用不同颜色绘制具有不同邻居数量的粒子,这项提出的方法产生了最令人满意的结果,因为颜色分布非常均匀,这意味着每个粒子的邻居数量在整个系统中保持非常稳定。
相比之下,其他方法的颜色分布非常不均匀,这意味着邻居数量存在显着变化,这很容易导致数值不稳定。
为了进一步证明我们方法的有效性,研究人员定量比较了整个模拟过程中相邻粒子数量的方差 。
与WCSPH方法相关的平均方差最大,这意味着相邻粒子的数量发生了显着变化,最后再使用固定平滑长度的其他三种方法。
其性能略好于WCSPH方法,但性能明显低于先前提出的VSLSPH方法,这也表明实验可变平滑长度方案有效地保持了邻居的数量。
在使用DFSPH方法后,有人提出了VSLSPH方法执行的水流冲击废墟中雕塑的模拟结果,但在DFSPH情况下,飞溅部位的大多数粒子是紫色的,而流体表面的粒子是蓝色的。
这也意味着这些部位的粒子邻居数量太少,在VSLSPH案例中飞溅处许多颗粒的颜色从紫色变为蓝色,流体表面颗粒的颜色从蓝色变为绿色。
密度
正如上文所讨论的,密度是SPH流体模拟中非常重要的物理量,并且涉及许多插值计算,这也保持整个流场的密度稳定是提高模拟精度的重要保证。
有实验表明二维溃坝场景的流体密度场,使用不同的基于SPH的算法进行模拟,导致了WCSPH方法简单地用状态方程来就可以计算压力。
可这很难保证流体的不可压缩性,导致密度场分布非常不均匀,根据VSLSPH方法使用所提出的可变平滑长度方案产生了均匀的密度场。
这与使用迭代密度校正的算法的结果具有竞争力,和DFSPH方法相比,VSLSPH方法的模拟效率远高于使用迭代密度校正的方法。
模拟效率
专门用于分析对比的模拟结果外,还使用VSLSPH方法模拟并渲染了额外的流体动画,以进一步证明其有效性。
如果将流体倒入水箱,并逐渐填充容器,就可以得到用水冲刷龙形障碍物的效果,而实验证明了液体淹没废墟场景的渲染结果。
上述几种实验的粒子数分别为10000、117649、200000,这些染结果揭示了非常丰富的流体细节,包括飞溅、水雾和碎浪,同时保持了模拟的稳定性。
在计算物理学中Qiang和Gao提出的方法也使用可变平滑长度进行SPH流体模拟,可这些方法通常涉及复杂的高精度数值解,并且主要在2D模拟中进行测试。
可以看出不适合这项研究考虑的计算机图形学中的3D流体动画,最终导致了它们对模拟速度有更高的要求。
对于基于迭代密度修正的三种算法,搜索的平均时间成本约占7%。%–25%占每个步骤的总成本,这些主要的计算成本是确定最佳密度校正的迭代优化过程。
在WCSPH和VSLSPH方法中,搜索产生了显着的计算成本,VSLSPH方法达到了81.82%,而VSLSPH方法使用可变平滑长度,常用的快速邻域搜索方法不再适用。
VSLSPH方法中的邻居搜索变得非常耗时。搜索的过多计算开销将是方法的限制,最终这些方法在未来会是需要解决的重要问题。
结论
这种称为VSLSPH的非迭代SPH流体模拟方法,用于自适应调整粒子的平滑长度,这种方式可以有效地保持稳定的粒子邻居数量,从而提高模拟精度。
与现有的基于迭代优化来校正粒子密度的方法相比,这些方法在平滑长度和密度变化之间建立了直接联系,从而导致计算成本非常低,模拟效率很高。
一些实验表明,搜索构成了VSLSPH方法中的大部分计算开销,而在未来的主要任务之一是开发一种可变平滑长度的快速邻域搜索算法,以提高VSLSPH方法的整体仿真效率。
标签: #sph算法简介