学习教程来自:GAMES201:高级物理引擎实战指南2020
以下大部分图片来自教程PPT,仅作为笔记用于学习和分享,侵删
笔记内容大多为课程内容的翻译和转述,外加一些自己的理解,若有不正确的地方恳请大家交流和指正
笔记
hybrid Lagrangian-Eulerian methods
1. 算法好坏判断因素
物理属性上:
- Momentum:动量守恒
- Angular momentum:角动量守恒
- Volume (incompressibility):体积守恒
- Energy (low dissipation) :能量守恒
性能上:
- 并行性:计算上
- 访存:访问内存在时间和空间上的性能
算法的复杂性
2. 欧拉视角和拉格朗日视角的对比
2.1 欧拉网格
在projection阶段优点如下:
- 易于离散拉普拉斯算子
- 查找邻居效率高
- 易于使用geometric multigrid做precondition,使收敛变快
在advection阶段缺点:
难以避免能量耗散的问题,容易逐渐损失能量(流体粘性变高)和丢失几何细节
2.2 拉格朗日粒子
在advection阶段优点:
- 易于移动坐标:位置 += dt * 速度
- 更容易守恒
在projection阶段的缺点:
- 不容易离散化
- 查找邻居需要复杂的数据结构(如hash grid):一般性能瓶颈在于邻居的查找和操作
3. 混合欧拉-拉格朗日方法
从上边的对比中各取所长
总体步骤:
- Particle to Grid transfer(P2G):把粒子上的信息存储到欧拉网格上
- Grid operations:进行网格操作,把速度的散度分量投影掉(不可压缩性),边界条件的应用
- Grid to Particle transfer(G2P):信息从欧拉网格到粒子
- Particle operations:粒子操作,移动粒子,更新材料的形变、梯度、体积等其它属性
</br>
其中1、3步骤的过程,也会导致计算量的增加、信息的损失等问题,以下方法主要解决了P2G和G2P的过程以及advection阶段的问题,不涉及projection阶段的求解
3.1 PIC Particle-in-cell
Harlow, F.H. (1964) The Particle-in-Cell Computing Method for Fluid Dynamics. Methods in Computational Physics, 3, 319-343.
PIC中的P2G和G2P:2维范围内,属性给到周围3x3的网格,按照距离远近使用核函数计算重要性
</br>
一些用到的核函数
</br>
3.2 结合PIC和grid-based Poisson solver
步骤:
- P2G:将速度从粒子scatter到网格
- 在网格上解pressure,并经过projection阶段更新速度场(无散)
- G2P:从速度场网格获取速度给粒子,更新粒子的位置
缺点:能量耗散严重,流体粘度高
</br>
原因:G2P阶段信息的丢失,原因是从18个自由度到2个自由度的转换
Figure from Fu et al 2017, A Polynomial Particle-In-Cell Method (SIGGRAPH Asia 2017)
</br>
改进:
- 传输更多的信息:APIC(2016),PolyPIC(2017)
- 只传输delta值(增量)而物理量本身:FLIP
3.3 APIC(Affine Particle-in-cell)
Jiang et al., SIGGRAPH & JCP 2016
</br>
在速度场的基础上增加了一个affine场(额外计算了dilation和shearling的力),粒子的自由度由2个增加到了6个,保证了角动量守恒
3.4 PolyPIC(A Polynomial Particle-In-Cell Method)
A Polynomial Particle-In-Cell Method, Fu et al. 2017
在APIC的基础上,粒子的自由度从6个增加到18个(线性无关的18个,理论上在P2G和G2P的过程中无损传输)
</br>
3.5 FLIP(Fluid implicit particles)
BRACKBILL, J. U., AND RUPPEL, H. M. 1986. FLIP: a method for adaptively zoned, particle-in-cell calculations of fluid flows in two dimensions. JCP
在P2G和G2P的过程中,只传递物理量的增量(pressure projection和边界条件)而非物理量本身
</br>
缺点:噪声大,且需要额外的空间存储grid在计算差值delta
3.6 PIC/FLIP
PIC能量耗散大,FLIP噪声大,将2者结合起来,达到能量耗散不大且噪声变小的效果
FLIP0.99 = 0.99 FLIP + 0.01 PIC
4. MPM(Material Point Method)
完整的混合欧拉-拉格朗日方法的模拟框架,粒子存储了速度、形变梯度、体积等物理量
截至2018年的关于MPM的研究:
粒子上不同物理材料的模拟,Grid上不同数据结构的使用,转换过程的研究
</br>
MPM方法在图形学领域流行的原因:
- 耦合了不同的物理材料
- 处理碰撞和自碰撞(欧拉网格)
- 材料断裂的处理
- 模拟大形变
4.1 MLS-MPM(Moving Least Squares MPM)
A Moving Least Squares Material Point Method with Displacement Discontinuity and Two-Way Rigid Body Coupling Hu et al, SIGGRAPH 2018
关于MPM和MLS-MPM详见下一篇笔记