学习教程来自:GAMES201:高级物理引擎实战指南2020
以下大部分图片来自教程PPT,仅作为笔记用于学习和分享,侵删


笔记内容大多为课程内容的翻译和转述,外加一些自己的理解,若有不正确的地方恳请大家交流和指正

笔记

hybrid Lagrangian-Eulerian methods

1. 算法好坏判断因素

物理属性上:

  1. Momentum:动量守恒
  2. Angular momentum:角动量守恒
  3. Volume (incompressibility):体积守恒
  4. Energy (low dissipation) :能量守恒

性能上:

  1. 并行性:计算上
  2. 访存:访问内存在时间和空间上的性能

算法的复杂性

2. 欧拉视角和拉格朗日视角的对比

2.1 欧拉网格

在projection阶段优点如下:

  1. 易于离散拉普拉斯算子
  2. 查找邻居效率高
  3. 易于使用geometric multigrid做precondition,使收敛变快

在advection阶段缺点:
难以避免能量耗散的问题,容易逐渐损失能量(流体粘性变高)和丢失几何细节

2.2 拉格朗日粒子

在advection阶段优点:

  1. 易于移动坐标:位置 += dt * 速度
  2. 更容易守恒

在projection阶段的缺点:

  1. 不容易离散化
  2. 查找邻居需要复杂的数据结构(如hash grid):一般性能瓶颈在于邻居的查找和操作

3. 混合欧拉-拉格朗日方法

从上边的对比中各取所长
总体步骤:

  1. Particle to Grid transfer(P2G):把粒子上的信息存储到欧拉网格上
  2. Grid operations:进行网格操作,把速度的散度分量投影掉(不可压缩性),边界条件的应用
  3. Grid to Particle transfer(G2P):信息从欧拉网格到粒子
  4. 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

步骤:

  1. P2G:将速度从粒子scatter到网格
  2. 在网格上解pressure,并经过projection阶段更新速度场(无散)
  3. G2P:从速度场网格获取速度给粒子,更新粒子的位置

缺点:能量耗散严重,流体粘度高


</br>

原因:G2P阶段信息的丢失,原因是从18个自由度到2个自由度的转换
Figure from Fu et al 2017, A Polynomial Particle-In-Cell Method (SIGGRAPH Asia 2017)


</br>

改进:

  1. 传输更多的信息:APIC(2016),PolyPIC(2017)
  2. 只传输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方法在图形学领域流行的原因:

  1. 耦合了不同的物理材料
  2. 处理碰撞和自碰撞(欧拉网格)
  3. 材料断裂的处理
  4. 模拟大形变

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详见下一篇笔记