MPM 求解器#

先参照 隐式 MPM 构建场景。以下实验有助于区分数值精度与本构响应。它们是定性示例,并非经过标定的材料模型或性能基准。

先调整分辨率,再调整时间步长和收敛参数#

按以下顺序,每次调整一组参数:

  1. 体素与粒子分辨率。 MPMSolverCfg.voxel_size 控制背景网格。更小的体素能分辨更薄的几何,但会增加活动网格单元数和内存用量。 MPMGridCfg.particles_per_cell 控制粒子密度;三维中各轴的数量都加倍,粒子总数约增加到八倍。先用较粗的分辨率,再逐步细化,直到测得的行为不再变化。

  2. 时间步长与子步数。 每个 Newton 子步的时长为 SimulationCfg.dt / NewtonCfg.num_substeps 。当接触发生穿透、抖动或不稳定时,先减小 dt 或增加 num_substeps 。子步数不会改变策略周期;策略周期还取决于环境的控制降采样倍数。

  3. 迭代次数与容差。 MPMSolverCfg.max_iterations 限制流变求解的迭代次数; tolerance 允许收敛后提前退出。只有求解器达到上限时才提高迭代上限;只有更严格的收敛能改善物理指标时才减小容差。这些设置无法修复不稳定的时间步长、无效重置或错误碰撞体。

材料对比#

以下录像在每组对比中保持场景和求解器配置不变,只改变一个材料参数。标注的数值用于观察不同响应,并非经过标定的材料参数建议。

材料录像中的参数值#

预设

变化的参数值

需观察的行为

young_modulus

100 kPa、300 kPa、1 MPa

压缩、恢复与冲击回弹

poisson_ratio

0.05, 0.30, 0.499

体积损失与近似不可压缩性的对比

friction

0, 0.68, 2.0

流动距离与最终休止角

tensile_yield_ratio

0, 0.01, 0.05

碎裂与拉伸内聚力的对比

yield_pressure

100 kPa、1 MPa、4 MPa

不可逆压缩的起始时刻与程度

hardening

0, 0.05, 5.0

塑性压实后的强度增长

dilatancy

0, 0.1, 1.0

剪切过程中的压实与膨胀

yield_stress

0、10 kPa、20 kPa

内聚流动与形状保持

viscosity

0、10 Pa·s、500 Pa·s

与变形速率有关的塑性流动

particle_jitter

0%、粒子间距的 30%

网格对齐伪影与堆积对称性

设计有效的参数研究#

设计对比实验时,采用以下做法:

  • 每次只改变一个物理量。各组实验使用相同的生成位置、粒子质量、碰撞体、时间步长和相机。

  • 选择能覆盖明显不同响应区间的数值。对于刚度、屈服、黏度和耦合质量尺度,按几何级数取值通常比小幅线性递增更有参考价值。

  • 保留对比所要说明的特征。如果软弹性试样在能够观察回弹之前就失去轮廓,应降低冲击能量或提高刚度范围的下限。不要仅为隐藏后续碎裂而缩短录像。

  • 本构对比采用确定性的随机扰动,避免晶格对齐主导运动。将无扰动的情况作为单独的堆积诊断。

  • 运行足够长时间,使冲击、最大变形、恢复或流动,以及最终静止状态都清晰可见。过短的录像可能让不同材料看起来相同。

  • 解读材料参数前,先调整数值分辨率与时间步长。记录体素大小、每个体素轴上的粒子数、粒子总数、物理时间步长、子步数、迭代次数、容差、随机种子和代码版本。

  • 尽可能在观察录像的同时检查定量信号,例如质心、流动距离、回弹高度、保留体积或静止后的高度。

particles_per_cell 表示一个体素轴上的粒子数量。因此,三维中取值 2 会在每个填充体素中产生约八个粒子,而非两个。同时细化体素大小和粒子密度,可能使内存用量和运行耗时迅速增加。

解读对比结果#

  • 弹性响应: 在杨氏模量固定时,泊松比同时改变体积模量与剪切模量。接近 0.5 的值对应近似不可压缩的情况,因此这不是单独扫描体积刚度。录像采用 50 kPa 的杨氏模量和较缓和的落下过程,使冲击产生可见应变,同时避免试样失去轮廓而妨碍比较。

  • 塑性响应: 屈服、硬化、摩擦和剪胀会相互影响。应在同一预设内部保持其他字段不变,而不一定要求不同预设之间也相同。高摩擦标签并不表示含水量模型;这里的沙、雪和黏土标签用于说明响应,并非实测材料。

  • 近似刚性的 MPM: 高刚度和高屈服限值能抑制应变与塑性流动,但不会施加刚体约束。仍可能存在形状漂移、接触差异和粒子采样误差。除了运动,还应比较轮廓和质量;检查时间步长和收敛后再提高分辨率。较高的粒子密度比粗分辨率对比更耗资源。

录像示例#

与其他可变形物体调优示例一样,录像存放在 Git 仓库之外的 Isaac Lab 文档媒体服务器上。

材料响应#

所选材料录像由 Kit 以 1920 × 1080 分辨率录制。标注只对应各自的录像;不要将视频时长视为仿真时间。

弹性刚度

平板压缩,参数分别为 100 kPa、300 kPa 和 1 MPa。

可压缩性

平板压缩,泊松比分别为 0.05、0.30 和 0.499,E = 50 kPa。

颗粒摩擦

内摩擦分别为 0、0.68 和 2.0 时的流动距离;内聚力保持不变。

拉伸内聚力

拉伸屈服比分别为 0、0.01 和 0.05。

压力屈服

较强冲击下,观察 100 kPa、1 MPa 和 4 MPa 时的压缩。

塑性硬化

固定强度(0)与缓慢(0.05)、快速(5)强度增长的对比。

剪胀

剪胀参数为 0、0.1 和 1 时的铺展与堆积。

内聚屈服应力

0、10 kPa 和 20 kPa 时的形状保持。

塑性黏度

0、10 Pa·s 和 500 Pa·s 时的塑性流动速率。

初始堆积

对齐采样与确定性扰动的对比,扰动幅度为粒子间距的 30%。

近似刚性极限#

近似刚性 MPM 与 MJWarp 的对比

观察配对的彩色几何体沿分开的斜坡滚下。这段较早的演示录像不代表当前实现的精度;高刚度并不会强制保持刚体形状。