Implicit Imcompressible SPH
flowchart LR
A[当前状态] -->|预测步| B[中间状态]
B --> E[未知量:位置修正]
B --> F[预测位置]
B --> G[预测密度]
B --> H[期望密度]
E & F --> I[基于动量的公式①]
G & H --> J[基于密度约束势能的公式②]
I & J --> K[构建方程组]--> L[解出$$\Delta x$$]--> M[下一时刻状态] --> A[当前状态]
优化目标:
不可压缩条件下的动量守恒
$$ E = \text{动能} + \lambda \cdot \text{约束项} $$
(1)
$$ \frac{\partial E}{\partial x} = \frac{\partial \text{动能}}{\partial x} + \lambda \cdot \frac{\partial \text{约束项}}{\partial x} = 0 $$
(2)
$$
\frac{\partial E}{\partial \lambda } = \text{约束项} = 0
$$
$$ \frac{\partial \text{动能}}{\partial x} = \int \rho u \frac{\partial u}{\partial t} dV 动能= \frac{1}{2} \int \rho u^2 dV (3) $$
$$ \frac{\partial \text{约束项}}{\partial x} = \nabla \cdot \text{约束项} = \nabla \cdot u (4) $$
(3) 化简得到NS方程的变分形式,即
$$ \rho \frac{D\boldsymbol{u}}{Dx} = -\nabla p - \rho (\boldsymbol{u} \cdot \nabla)\boldsymbol{u} \quad (5) $$
将公式(4)(5)离散化,得到方程:
方程组中有两个未知量:\(\lambda, \boldsymbol{\nabla x}\)
求解这个线性方程组 (不是泊松方程)
(4) 是 ISPH 的约束项的定义
而IISPH的约束项的定义应该是:
$$ \rho^{n+1} = \rho^0 $$
IISPH 避开解泊松方程,但又使用了隐式积分和密度不变约束,在稳定性、精度、效率方面达到平衡。
三、IISPH 补充
- 隐式离散格式,无需求解泊松方程,效率更高
- 推导基于可压缩连续性方程,而非不可压缩泊松方程
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES103_mdbook/