先记住三句话

FEM 不是粒子法:材料与拉格朗日网格绑定;MPM 是混合拉格朗日—欧拉法:粒子保存材料历史,临时背景网格计算力;“粒子”只是离散载体:SPH 粒子近似场,DEM 粒子代表真实颗粒,PBD/XPBD 粒子则由几何约束推进。

连续体运动学 $F,J$本构 $\sigma(F)$空间离散时间积分接触与边界
FEMmaterial mesh节点 + 单元
MPMparticles + scratch gridP2G → solve → G2P
SPH / DEM / XPBDparticle interactionskernel / contact / constraint
方法名不等于材料模型。FEM 和 MPM 都能配线弹性、Neo-Hookean 或弹塑性;“怎么离散”与“材料如何产生应力”是两个正交选择。

1. 先把四层概念分开

回答的问题典型选择
连续体方程质量和动量如何守恒?$\rho\dot{\mathbf v}=\nabla\!\cdot\!\boldsymbol\sigma+\rho\mathbf b$
本构模型形变如何变成应力?线弹性、corotated、Neo-Hookean、Drucker–Prager
空间离散无限自由度怎样变成有限数字?FEM、MPM、SPH、finite volume
时间与约束状态怎样推进,碰撞怎样满足?显式/隐式 Euler、Newmark、XPBD、IPC、penalty

因此“MPM 比 FEM 更软”不是正确陈述。两者若使用同一本构、分辨率和积分精度,应逼近同一个连续问题;实际差异来自离散误差、接触、数值耗散和稳定性。

2. 连续介质运动学:$\mathbf F$ 是整篇文章的核心状态

给材料中的每一点一个不随运动改变的参考坐标 $\mathbf X$。运动映射 $\boldsymbol\phi$ 把它送到当前世界坐标:

$$\mathbf x=\boldsymbol\phi(\mathbf X,t),\qquad \mathbf v(\mathbf x,t)=\frac{\partial\boldsymbol\phi}{\partial t}(\mathbf X,t).$$

局部小线段满足 $d\mathbf x=\mathbf Fd\mathbf X$,其中

$$\mathbf F=\frac{\partial\mathbf x}{\partial\mathbf X},\qquad J=\det\mathbf F,\qquad \rho J=\rho_0.$$
  • $\mathbf F$ 同时包含旋转、拉伸和剪切;它不是应变,但本构通常以它为输入。
  • $J$ 是当前体积与参考体积之比:$J=1$ 保体积,$J<1$ 压缩,$J>1$ 膨胀;$J\le 0$ 通常表示单元翻转或数值崩溃。
  • 速度梯度 $\mathbf L=\nabla_{\mathbf x}\mathbf v$ 给出 $\dot{\mathbf F}=\mathbf L\mathbf F$,显式一步常写成 $\mathbf F^{n+1}=(\mathbf I+\Delta t\,\mathbf L^n)\mathbf F^n$。

3. 动量方程、边界条件和应力度量

当前构形中的局部动量平衡为

$$\rho\frac{D\mathbf v}{Dt}=\nabla_{\mathbf x}\cdot\boldsymbol\sigma+\rho\mathbf b,$$

其中 $\boldsymbol\sigma$ 是 Cauchy 应力,$\mathbf b$ 是单位质量体力。位移边界给 $\mathbf u=\bar{\mathbf u}$,力边界给 $\boldsymbol\sigma\mathbf n=\bar{\mathbf t}$。在参考构形中常用第一 Piola–Kirchhoff 应力

$$\mathbf P=J\boldsymbol\sigma\mathbf F^{-T},\qquad \boldsymbol\sigma=\frac{1}{J}\mathbf P\mathbf F^T.$$

这两个应力不能随意混用:$\mathbf P$ 与参考面积、$\nabla_{\mathbf X}$ 配对,$\boldsymbol\sigma$ 与当前面积、$\nabla_{\mathbf x}$ 配对。

4. 本构模型:同一个 $\mathbf F$ 为什么能像橡胶、雪或沙

4.1 从 $E,\nu$ 到 Lamé 参数

$$\mu=\frac{E}{2(1+\nu)},\qquad \lambda=\frac{E\nu}{(1+\nu)(1-2\nu)}.$$

$E$ 控制拉伸刚度,$\nu$ 控制横向收缩;三维各向同性材料中 $\nu\to0.5$ 接近不可压缩,此时 $\lambda\to\infty$,显式步长更小,低阶位移 FEM 还可能出现 volumetric locking。

4.2 小形变线弹性

$$\boldsymbol\varepsilon=\tfrac12(\nabla\mathbf u+\nabla\mathbf u^T),\qquad \boldsymbol\sigma=\lambda\operatorname{tr}(\boldsymbol\varepsilon)\mathbf I+2\mu\boldsymbol\varepsilon.$$

它只对小应变、小旋转可靠。一个刚体旋转也会被线性应变误判为形变,因此软体大转动通常用 corotated 或超弹性模型。

4.3 超弹性:能量先于力

超弹性从单位参考体积的能量 $\psi(\mathbf F)$ 出发,$\mathbf P=\partial\psi/\partial\mathbf F$。可压缩 Neo-Hookean 的常见形式是

$$\psi=\frac{\mu}{2}\big(\operatorname{tr}(\mathbf F^T\mathbf F)-d\big)-\mu\ln J+\frac{\lambda}{2}(\ln J)^2.$$

fixed-corotated 先做极分解 $\mathbf F=\mathbf R\mathbf S$,用最近旋转 $\mathbf R$ 去掉刚体旋转:

$$\psi=\mu\lVert\mathbf F-\mathbf R\rVert_F^2+\frac{\lambda}{2}(J-1)^2,\qquad \mathbf P=2\mu(\mathbf F-\mathbf R)+\lambda(J-1)J\mathbf F^{-T}.$$

4.4 塑性:把形变拆成可恢复与永久部分

$$\mathbf F=\mathbf F_e\mathbf F_p.$$

弹性能只读 $\mathbf F_e$。一次典型 return mapping 是:先由速度梯度得到 trial $\mathbf F_e$,再做 SVD,把主伸长或试应力投影回 yield surface,超出的部分写进 $\mathbf F_p$。von Mises 限制偏应力,适合延性金属;Drucker–Prager 的屈服随压力变化,常用于沙土;雪模型会在压实时 hardening。这里的“粒子”价值很明显:$\mathbf F_p$、硬化量等历史变量一直跟着材料点走。

5. FEM:从强形式到可组装的矩阵

直接要求微分方程在每一点成立称为强形式。FEM 乘测试函数 $\mathbf w$ 并分部积分,把应力的空间导数转移到测试函数:

$$\int_{\Omega_0}\rho_0\mathbf w\cdot\ddot{\mathbf u}\,dV+\int_{\Omega_0}\nabla_{\mathbf X}\mathbf w:\mathbf P\,dV=\int_{\Omega_0}\rho_0\mathbf w\cdot\mathbf b\,dV+\int_{\Gamma_t}\mathbf w\cdot\bar{\mathbf t}_0\,dA.$$

在单元内用形函数插值 $\mathbf u_h=\sum_aN_a\mathbf q_a$,得到半离散系统

$$\mathbf M\ddot{\mathbf q}+\mathbf f_{\mathrm{int}}(\mathbf q)=\mathbf f_{\mathrm{ext}},\qquad \mathbf f_{\mathrm{int}}^e=\int_{\Omega_0^e}\mathbf B^T\boldsymbol\sigma\,dV.$$

线弹性时 $\boldsymbol\sigma=\mathbf D\mathbf B\mathbf q$,于是 $\mathbf K^e=\int\mathbf B^T\mathbf D\mathbf B,dV$。非线性 FEM 不再只有一个恒定 $\mathbf K$,而是在 Newton 迭代中重复计算 residual 和 tangent。

6. FEM 手算:一个二维三角形从位移到节点力

题目

平面应力、厚度 $t=0.1$ m 的常应变三角形,节点为 $(0,0),(1,0),(0,1)$ m,面积 $A=0.5$ m²。材料 $E=1000$ Pa、$\nu=0.3$。节点自由度按 $[u_1,v_1,u_2,v_2,u_3,v_3]^T$ 排列,给定位移 $\mathbf q=[0,0,0.01,0,0,0.02]^T$ m。

形函数 $N_1=1-x-y,N_2=x,N_3=y$,工程剪应变采用 $\gamma_{xy}$,所以

$$\mathbf B=\begin{bmatrix}-1&0&1&0&0&0\\0&-1&0&0&0&1\\-1&-1&0&1&1&0\end{bmatrix},\qquad \mathbf D=\frac{E}{1-\nu^2}\begin{bmatrix}1&\nu&0\\\nu&1&0\\0&0&\frac{1-\nu}{2}\end{bmatrix}.$$

代入数值:

$$\mathbf D=\begin{bmatrix}1098.901&329.670&0\\329.670&1098.901&0\\0&0&384.615\end{bmatrix}\ \mathrm{Pa},$$ $$\boldsymbol\varepsilon=\mathbf B\mathbf q=\begin{bmatrix}0.01\\0.02\\0\end{bmatrix},\qquad \boldsymbol\sigma=\mathbf D\boldsymbol\varepsilon=\begin{bmatrix}17.582\\25.275\\0\end{bmatrix}\ \mathrm{Pa}.$$

因为这个单元的 $\mathbf B$ 和应力为常数,积分直接变成乘 $tA=0.05$:

$$\mathbf f_{\mathrm{int}}=tA\mathbf B^T\boldsymbol\sigma= \begin{bmatrix}-0.8791\\-1.2637\\0.8791\\0\\0\\1.2637\end{bmatrix}\ \mathrm N.$$

三个节点的 $x$ 力之和、$y$ 力之和都为 0,说明内力满足整体平移平衡。单元刚度为

$$\mathbf K^e=tA\mathbf B^T\mathbf D\mathbf B\approx \begin{bmatrix} 74.176&35.714&-54.945&-19.231&-19.231&-16.484\\ 35.714&74.176&-16.484&-19.231&-19.231&-54.945\\ -54.945&-16.484&54.945&0&0&16.484\\ -19.231&-19.231&0&19.231&19.231&0\\ -19.231&-19.231&0&19.231&19.231&0\\ -16.484&-54.945&16.484&0&0&54.945 \end{bmatrix}\ \mathrm{N/m}.$$

未施加边界条件前 $\mathbf K^e$ 必须是奇异的,因为刚体平移和旋转不产生应变。若代码组装后它反而满秩,通常是 $\mathbf B$、自由度顺序或边界处理出了问题。

7. FEM 怎样推进时间

方式一步的核心代价与适用
显式 central difference / symplectic Eulerlumped $\mathbf M$ 后直接算 $\mathbf a=\mathbf M^{-1}(\mathbf f_{ext}-\mathbf f_{int})$每步便宜、GPU 友好;受 CFL 限制
隐式 backward Euler / Newmark求 $\mathbf r(\mathbf q^{n+1})=0$,Newton 解 $\mathbf K_{tan}\Delta\mathbf q=-\mathbf r$每步贵但可用更大步长;接触和非线性仍可能难收敛
quasi-static忽略惯性,求 $\mathbf f_{int}=\mathbf f_{ext}$慢加载结构,不代表真实瞬态

弹性波速量级 $c_p\approx\sqrt{(\lambda+2\mu)/\rho}$,显式稳定步长约

$$\Delta t\le C_{\mathrm{CFL}}\frac{h_{\min}}{c_p}.$$

网格更细、材料更硬或密度更低都会迫使 $\Delta t$ 变小。substep 不是“白赚精度”,而是在支付稳定性成本。

8. MPM:粒子记历史,网格只活一个时间步

粒子 $p$ 通常保存 $m_p,\mathbf x_p,\mathbf v_p,V_p^0,\mathbf F_p$、仿射速度 $\mathbf C_p$ 和塑性变量。网格节点 $i$ 只保存本步质量、动量和力;下一步先清零,因此不会随材料变形而缠结。

8.1 P2G:把粒子质量和动量散射到网格

令 $w_{ip}=N_i(\mathbf x_p)$,$\nabla w_{ip}=\nabla N_i(\mathbf x_p)$:

$$m_i=\sum_p w_{ip}m_p,$$ $$\mathbf p_i=\sum_p w_{ip}m_p\left[\mathbf v_p+\mathbf C_p(\mathbf x_i-\mathbf x_p)\right].$$

$\mathbf C_p=0$ 就是 PIC 的常值粒子速度;APIC 用局部仿射场保存旋转和剪切信息。当前构形下,粒子应力产生的节点内力为

$$\mathbf f_i^{\mathrm{int}}=-\sum_p V_p\boldsymbol\sigma_p\nabla w_{ip},\qquad V_p=J_pV_p^0.$$

8.2 Grid solve:在规则网格上算力、碰撞和边界

$$\mathbf v_i^n=\frac{\mathbf p_i^n}{m_i},\qquad \mathbf v_i^*=\mathbf v_i^n+\Delta t\frac{\mathbf f_i^{\mathrm{int}}+\mathbf f_i^{\mathrm{ext}}}{m_i}.$$

随后把地面、刚体或域边界条件施加到 $\mathbf v_i^*$。这一步是 MPM 易于处理大形变、自接触和拓扑变化的关键:不同粒子可以共享网格动量,不需要维护永久扭曲的材料网格。

8.3 G2P:把更新后的网格速度带回粒子

$$\mathbf v_p^{PIC}=\sum_iw_{ip}\mathbf v_i^*,$$ $$\mathbf v_p^{FLIP}=\mathbf v_p^n+\sum_iw_{ip}(\mathbf v_i^*-\mathbf v_i^n).$$

PIC 覆盖粒子速度,会滤掉网格无法表示的模式,因此稳定但耗散;FLIP 只加网格速度增量,耗散小但会保留 grid 看不见的噪声。工程中常做 $\mathbf v_p=(1-\alpha)\mathbf v_p^{PIC}+\alpha\mathbf v_p^{FLIP}$。APIC 则更新

$$\mathbf D_p=\sum_iw_{ip}(\mathbf x_i-\mathbf x_p)(\mathbf x_i-\mathbf x_p)^T,$$ $$\mathbf C_p^{n+1}=\left[\sum_iw_{ip}\mathbf v_i^*(\mathbf x_i-\mathbf x_p)^T\right]\mathbf D_p^{-1}.$$

最后推进位置与形变:

$$\mathbf x_p^{n+1}=\mathbf x_p^n+\Delta t\,\mathbf v_p^{n+1},$$ $$\mathbf L_p=\sum_i\mathbf v_i^*(\nabla w_{ip})^T,\qquad \mathbf F_p^{n+1}=(\mathbf I+\Delta t\,\mathbf L_p)\mathbf F_p^n.$$

之后做塑性投影并由新 $\mathbf F_e$ 计算下一步应力。不同实现可能交换 stress update 与 transfer 的具体时序,但必须保持使用的是同一时间层。

8.4 权重并非“离粒子最近就给它”

一维均匀网格上,令 base=floor(xp/h-0.5)、$f=x_p/h-\mathrm{base}$,二次 B-spline 的三个权重可写成

$$w_0=\tfrac12(1.5-f)^2,\quad w_1=0.75-(f-1)^2,\quad w_2=\tfrac12(f-0.5)^2.$$

多维权重是各维权重的张量积。分片线性 hat function 更容易手算,但梯度在 cell boundary 不连续,粒子穿越网格时容易出现应力噪声;B-spline、GIMP、CPDI 和 MLS-MPM 都在改善这类 grid-crossing artifacts。

9. MPM 手算 A:两粒子看懂 PIC 为什么耗散

无力的一维 transfer 测试

网格节点 $x=[0,0.5,1]$ m;两个质量均为 1 kg 的粒子位于 $0.25,0.75$ m,速度分别为 $+1,-1$ m/s。使用线性权重,各粒子向相邻两节点贡献 $0.5$。

P2G 后:

$$\mathbf m=[0.5,1,0.5]\ \mathrm{kg},\qquad \mathbf p=[0.5,0,-0.5]\ \mathrm{kg\,m/s},$$ $$\mathbf v_{grid}=[1,0,-1]\ \mathrm{m/s}.$$

没有力,所以 grid update 前后速度相同。PIC 插值回粒子:

$$v_1^{PIC}=0.5(1)+0.5(0)=0.5,\qquad v_2^{PIC}=0.5(0)+0.5(-1)=-0.5.$$

粒子动能从 $1$ J 降到 $0.25$ J;丢失的反向高速模式在网格中无法表示。FLIP 使用网格增量,而本例增量为 0,所以仍得到 $[1,-1]$ m/s,动能不变;这也解释了它为什么更容易把未解析噪声一直留在粒子上。

10. MPM 手算 B:一次应力散射与 $F$ 更新

一个可做单元测试的一维弹性步

节点 $x_0=0,x_1=0.5$ m,粒子在 $x_p=0.25$ m,$m_p=1$ kg、$V_p=0.1$ m³、初速度 0。线性权重 $w=[0.5,0.5]$,梯度 $\nabla w=[-2,+2]$ m⁻¹。设小应变 $\varepsilon=0.01$、$E=10{,}000$ Pa,因此本步粒子拉应力 $\sigma=E\varepsilon=100$ Pa。

首先散射质量:$m_0=m_1=0.5$ kg。内力是

$$f_0^{int}=-V\sigma\nabla w_0=-0.1(100)(-2)=+20\ \mathrm N,$$ $$f_1^{int}=-V\sigma\nabla w_1=-0.1(100)(+2)=-20\ \mathrm N.$$

左右节点互相拉近,符号与受拉材料恢复原长的直觉一致;总内力为 0。于是 $a=[+40,-40]$ m/s²。取 $\Delta t=0.01$ s,网格速度更新为 $[+0.4,-0.4]$ m/s。

PIC 回传速度为 $v_p=0.5(0.4)+0.5(-0.4)=0$,所以质心不动;但局部速度梯度不为 0:

$$L_p=0.4(-2)+(-0.4)(+2)=-1.6\ \mathrm{s^{-1}},$$ $$F_p^{n+1}=(1+\Delta tL_p)F_p^n=0.984F_p^n.$$

也就是说粒子位置可以暂时不动,但它代表的材料体积在收缩。这个小例子特别适合查四类 bug:内力负号、shape gradient 单位、lumped mass 除法以及 $\mathbf v\otimes\nabla w$ 的转置。

11. APIC 与 MLS-MPM 到底改了什么

APIC 不把粒子附近速度看成常数,而是 $\mathbf v(\mathbf x)=\mathbf v_p+\mathbf C_p(\mathbf x-\mathbf x_p)$。因此刚体旋转和线性剪切不必在每次 transfer 中消失,粒子—网格往返还能守恒线动量与角动量。MLS-MPM 从 moving least squares / Galerkin 视角重新推导 transfer,使 APIC/PolyPIC 与弱形式离散进入同一框架,并能把应力项直接并入 affine momentum transfer。

这不意味着“MLS-MPM 永远最好”。核函数、边界、接触、plastic projection、粒子密度和时间积分仍决定最终稳定性与精度。

12. FEM 与 MPM 的真正取舍

维度FEMMPM
材料表示节点和单元随材料运动粒子随材料运动,背景网格每步重置
优势场景结构、软体、精确边界、高阶形函数、成熟隐式求解大形变、破坏、雪/沙、材料混合、复杂接触
主要误差mesh distortion、locking、单元翻转、接触离散grid crossing、transfer 耗散/噪声、cell quadrature、边界欠采样
边界几何网格边界清晰,Neumann/Dirichlet 自然粒子云边界模糊,traction 与薄结构更难
拓扑变化通常需 remesh、断裂模型或 enrichment粒子天然分离,但“数值分离”不自动等于正确断裂力学
计算结构sparse element assembly / matrix-free稀疏活跃网格 + scatter/gather,原子操作与排序重要

13. “之类的粒子法”分别在算什么

13.1 SPH:用核函数从邻居重建连续场

$$\rho_i=\sum_jm_jW(\mathbf x_i-\mathbf x_j,h),$$ $$\frac{d\mathbf v_i}{dt}=-\sum_jm_j\left(\frac{p_i}{\rho_i^2}+\frac{p_j}{\rho_j^2}\right)\nabla W_{ij}+\mathbf f_i^{visc}+\mathbf b.$$

它是真正 mesh-free,擅长自由表面流体;代价是邻域搜索、压力噪声、边界缺邻居和不可压缩性。粒子代表的是场的采样,不必是一颗真实沙粒。

13.2 DEM:每颗粒子就是一个物理颗粒

$$m_i\ddot{\mathbf x}_i=\sum_{j\in\mathcal C_i}(\mathbf f_{ij}^n+\mathbf f_{ij}^t)+m_i\mathbf g,$$ $$\mathbf f_{ij}^n\approx k_n\delta_n\mathbf n-c_n(\mathbf v_{ij}\cdot\mathbf n)\mathbf n,\qquad \lVert\mathbf f_{ij}^t\rVert\le\mu\lVert\mathbf f_{ij}^n\rVert.$$

DEM 逐接触解球、块体或颗粒的 Newton–Euler 方程,适合颗粒尺度问题;如果一亿粒沙必须一粒一粒表示,成本会远高于把沙当连续体的 MPM。

13.3 PBD / XPBD:直接修正位置满足约束

对约束 $C(\mathbf x)=0$,XPBD 的一次标量约束更新可写为

$$\Delta\lambda=\frac{-C(\mathbf x)-\tilde\alpha\lambda}{\sum_iw_i\lVert\nabla_iC\rVert^2+\tilde\alpha},\qquad \Delta\mathbf x_i=w_i\nabla_iC\,\Delta\lambda,$$ $$\tilde\alpha=\frac{\text{compliance}}{\Delta t^2}.$$

它以鲁棒、快速和可控外观见长;compliance 让刚度比传统 PBD 更少依赖步长和迭代数,但这仍不代表任意约束资产都等价于经过验证的连续体材料。

14. 选择方法时不要只看“软体还是颗粒”

任务优先起点为什么
机械结构、软体夹爪小到中等形变FEM边界、材料标定、隐式求解与应力分析成熟
雪、沙、泥、切割、巨大形变MPM粒子保材料历史,网格避免永久畸变
自由表面液体、飞溅SPH / FLIP / MPM-liquid按压力精度、自由表面和耦合需求选
真实颗粒尺寸和接触链重要DEM每颗粒的碰撞、摩擦和转动都有明确意义
实时布料、绳索、视觉次级运动XPBD大步长下鲁棒,约束设计直观

15. 数值仿真该报告哪些指标

  • 收敛:把 $h$、粒子间距与 $\Delta t$ 减半,位移、应力、接触力是否趋于稳定。
  • 守恒:无外力时总线动量/角动量;保守系统中能量漂移与算法耗散。
  • 可行性:最小 $J$、翻转单元数、负质量节点、粒子逃逸、接触穿透。
  • 离散质量:FEM 看 element aspect ratio/Jacobian;MPM 看 particles per cell、活跃 cell 和每粒子 support。
  • 稳定成本:实际 $\Delta t$、substeps、Newton 迭代数、linear solve residual,而不只是 frames/s。
  • 物理校准:用拉伸、压缩、剪切、回弹、堆积角和接触实验分别辨识参数,不要靠一个 demo 同时猜 $E,\nu,\mu$ 和 damping。

16. 一份最小 MPM 伪代码

for each step:
    clear(grid.mass, grid.momentum, grid.force)

    for p in particles:                    # P2G
        stress[p] = constitutive(F_e[p], history[p])
        for i in support(x[p]):
            grid.mass[i]     += w(i,p) * mass[p]
            grid.momentum[i] += w(i,p) * mass[p] * (
                velocity[p] + C[p] @ (x_grid[i] - x[p]))
            grid.force[i]    -= volume[p] * stress[p] @ grad_w(i,p)

    for i in active_grid:
        v_old[i] = grid.momentum[i] / grid.mass[i]
        v_new[i] = v_old[i] + dt * (grid.force[i] / grid.mass[i] + gravity)
        v_new[i] = apply_collision_and_boundary(v_new[i])

    for p in particles:                    # G2P
        velocity[p] = interpolate_or_flip(v_new, v_old)
        C[p]        = reconstruct_affine_velocity(v_new)
        grad_v      = sum_i outer(v_new[i], grad_w(i,p))
        x[p]       += dt * velocity[p]
        F_trial     = (I + dt * grad_v) @ F[p]
        F[p], history[p] = plastic_return_map(F_trial, history[p])

真正实现时还要处理 active-grid 稀疏化、atomic scatter、粒子排序、边界核截断、接触多材料速度场、塑性 SVD、autodiff checkpoint 和确定性。公式正确只是第一步。

最重要的工程判断:

先写清你要逼近的连续方程与材料实验,再选 FEM/MPM/SPH;不要从“引擎里有一个 snow preset”反推物理。一个视觉上像雪的结果,可能在质量、接触力、屈服和尺度变化上完全错误。

自测

1. MPM 的粒子为什么不会像 DEM 一样逐粒碰撞?

MPM 粒子是连续材料的积分点,通常通过共享背景网格交换动量和产生连续体应力;DEM 粒子则代表离散实体,显式建立粒子—粒子接触。

2. MPM 粒子用 PIC 回传后位置没动,为什么形变仍可能变化?

质心速度由速度插值得到,而形变由局部速度梯度更新;一个对称收缩场的中心速度为零,但梯度不为零。

3. 为什么 FEM 单元刚度在没有边界条件时应当奇异?

刚体平移和旋转不产生应变与弹性能,它们是刚度矩阵的零空间;约束足够的自由度后系统才可解。

4. 增加 MPM 粒子数是否总能提高精度?

不能。粒子改善积分采样,但网格分辨率、核函数、时间步、边界和本构误差仍可能主导;还可能增加 scatter contention 和成本。

一手资料与实现对照

Sulsky、Chen 与 Schreyer:MPM 原始报告解释了用材料点追踪历史、用固定网格求梯度的动机;APIC 论文推导 PIC、FLIP 与 affine transfer;MLS-MPM 论文从 moving least squares 与弱形式统一粒子—网格离散;MPM Snow展示弹塑性雪模型;XPBD给出 compliance 与约束更新;Cundall–Strack DEM是逐颗粒接触动力学的经典起点;Genesis World soft-solver 文档可用于对照实际 FEM、MPM、SPH 与 PBD 材料接口。