基于位置物质质点法的改进物理仿真系统

摘要: 本技术涉及计算机图形学,特别涉及一种基于位置物质质点法的改进物理仿真系统。背景技术:1、物质点法(materialpointmethod,mpm)是处理多材料大...
基于位置物质质点法的改进物理仿真系统

本技术涉及计算机图形学,特别涉及一种基于位置物质质点法的改进物理仿真系统。

背景技术:

1、物质点法(material point method,mpm)是处理多材料大变形仿真的主流方法之一,其通过拉格朗日粒子与欧拉背景网格的双重离散表征,能够自然处理多种材料的混合与大变形。近年来,有研究者将基于位置的动力学(position based dynamics,pbd)的位置投影思想引入mpm,提出了位置约束物质点法(position based material point method,pbmpm)。该方法在每个时间步内通过多轮迭代就地修正粒子的形变状态,无需计算复杂的本构力,亦无需求解大型矩阵,能够在实时帧率下统一模拟流体、弹性体、沙土等多种连续介质。

2、然而,pbmpm的设计主要面向连续介质,其框架内缺乏对刚体的原生支持。相关技术中,处理刚体与连续介质耦合的方式主要包括两类:一是将刚体表示为静止的有向距离场(signed distance field,sdf)障碍,连续介质可感知刚体边界并被弹开,但刚体本身不响应连续介质的反作用力,耦合为单向;二是将刚体离散为高刚度弹性粒子,虽允许动量交换,但刚体整体姿态由各粒子局部形变隐式拼凑,大角度旋转时各粒子形变不一致将导致刚体扭曲,且惯性张量退化、偏心受力无法产生正确力矩。此外,也有在mpm之外另设独立刚体求解器、通过边界条件松散耦合的方案,但两套求解器积分方式各异,同一时间步内状态不自洽,易产生速度跳变与穿透。

3、因此,如何在pbmpm的统一框架内将刚体作为一类原生材料接入,使其能够利用该框架已有的背景网格、约束求解入口与动量传递机制实现与连续介质的双向耦合,成为亟待解决的技术问题。

技术实现思路

1、本技术实施例的目的是提供一种基于位置物质质点法的改进物理仿真系统,能够将刚体作为原生材料嵌入位置约束物质点法框架,使刚体与流体、弹性体、沙土等连续介质共享同一背景网格、同一约束求解入口与同一动量传递机制,实现刚体与连续介质之间的双向耦合。

2、为了解决上述技术问题,本技术是这样实现的:

3、本技术实施例提供的一种基于位置物质质点法的改进物理仿真系统,至少包括:

4、刚体粒子采样层,用于对刚体进行采样,得到多个刚体粒子并记录每个刚体粒子相对于所属的刚体的质心的局部坐标及每个刚体粒子所属的刚体的编号body_id;所述刚体粒子与连续介质粒子共享同一组位置、位移、仿射矩阵字段;

5、刚体自由度层,用于刚体的质心的世界坐标、刚体的姿态四元数、刚体的线速度、刚体的角速度、刚体的总质量与刚体的惯性张量;

6、模块二,用于实现刚体与连续介质的耦合;

7、每个时间步包括n轮循环迭代,在每个时间步开始时,模块二冻结刚体的质心的世界坐标和姿态四元数;

8、在本轮迭代内,模块二执行以下步骤:

9、在本轮迭代开始时,执行本轮刚体粒子再生:根据刚体的质心的世界坐标、刚体的姿态四元数、刚体的线速度、刚体的角速度、每个刚体粒子相对于所属的刚体的质心的局部坐标,生成本轮刚体粒子;

10、在p2g之前,确定本轮刚体粒子的预测位移;

11、在g2p之后,确定本轮刚体粒子的实际位移;

12、计算差值,将差值作为连续介质对刚体粒子施加的净作用力;基于连续介质对刚体粒子施加的净作用力,将属于同一刚体的刚体粒子聚合投影回刚体,得到刚体的线速度修正量以及刚体的角速度修正量;

13、根据刚体的线速度修正量以及刚体的角速度修正量,对刚体的线速度和角速度进行修正,刚体的修正后线速度和修正后角速度用于下一轮刚体粒子再生;

14、在n轮循环迭代结束后,模块二执行刚体位姿积分,以更新刚体的质心的世界坐标并更新刚体的姿态四元数;模块二根据刚体的质心的更新后世界坐标和更新后姿态四元数,刷新属于该刚体的各个粒子的世界坐标,以供渲染模块按照属于该刚体的各个粒子的刷新后世界坐标进行渲染。

15、可选地,所述系统还包括:

16、模块一,用于按照以下步骤解耦物理粒子的材料刚度与迭代次数:

17、在本轮迭代内,确定物理粒子的乘子增量;根据物理粒子的乘子增量,按照表达式,对物理粒子的当前约束状态、乘子分别进行更新,其中,刚体粒子和连续介质粒子共用乘子增量。

18、可选地,模块一在本轮迭代内,按照以下公式确定物理粒子的乘子增量:

19、,,

20、其中,与物理粒子的材料刚度对应,越大,物理粒子的材料刚度越小;表示物理粒子的目标约束状态,表示物理粒子的当前约束状态。

21、可选地,模块一还用于按照以下步骤实现跨时间步的乘子热启动:

22、在本时间步开始时,根据衰减系数和上一步乘子,按照以下公式确定本时间步的乘子初值,。

23、可选地,还包括:

24、模块三,用于对粒子物理数据在内存中的存储顺序进行重排,使得空间邻近的物理粒子的数据在内存中连续存储;

25、在每个时间步开始时,模块三根据物理粒子的空间位置,确定物理粒子的排序键值,空间邻近的两个物理粒子的排序键值邻近;

26、在n轮循环迭代中,模块三不搬运物理粒子的数据,模块三在每轮迭代中,执行一趟希尔排序子步;

27、在n轮循环迭代结束后,模块三对物理粒子的数据执行一趟搬运。

28、可选地,模块三在每轮迭代中,执行一趟希尔排序子步,包括:

29、模块三在第k轮迭代中,以步长比较并交换相隔的排序键值;k的取值为1至n,步长随迭代轮次递减,并且第n轮迭代的步长为1。

30、可选地,在每个时间步开始时,模块三按照以下步骤,根据物理粒子的空间位置,确定物理粒子的排序键值:

31、,

32、其中,表示morton编码操作,,表示物理粒子的三维空间坐标,表示物理粒子的三维空间坐标所在的网格索引。

33、可选地,模块二在p2g之前,按照以下公式确定本轮刚体粒子的预测位移:

34、,

35、,

36、其中,表示单个时间步的步长;是旋转矩阵。

37、可选地,模块二按照以下公式,基于连续介质对刚体粒子施加的净作用力,将属于同一刚体的刚体粒子聚合投影回刚体,得到刚体的线速度修正量以及刚体的角速度修正量:

38、,

39、其中,表示单个时间步的步长;表示对刚体采样而得到的刚体粒子的数量;表示世界系转动惯量。

40、可选地,模块二按照以下公式,根据刚体的质心的更新后世界坐标和更新后姿态四元数,得到属于该刚体的各个粒子的刷新后世界坐标:

41、。

42、本技术实施例包括以下优点:

43、在本技术实施例中,刚体粒子采样层使刚体以粒子形式参与p2g/g2p动量传递,与连续介质粒子共享同一组位置、位移、仿射矩阵字段,确保刚体能够接入pbmpm的粒子-网格流程,与连续介质在同一背景网格上完成动量交换;刚体自由度层独立维护刚体的质心位置、姿态四元数、线速度、角速度及惯性张量,使刚体保持完整的六自由度状态描述,避免了将刚体离散为弹性粒子时因各粒子局部形变不一致所导致的刚体扭曲以及惯性张量退化、偏心受力无法产生正确力矩的问题。

44、通过在p2g之前确定刚体粒子的预测位移,并在g2p之后以实际位移与预测位移之差提取连续介质对刚体粒子施加的净作用力,能够精确剔除刚体自身已知运动分量和插值噪声,使提取结果中仅保留连续介质经背景网格传递而来的真实反作用力;将属于同一刚体的各粒子净作用力聚合投影回刚体的线速度和角速度,使刚体能够正确响应连续介质的推动与扭转,实现刚体与连续介质之间的双向耦合。

45、每一轮迭代中刚体粒子均以更新后的速度重新再生,使刚体级速度修正与网格动量传递在迭代间形成闭环;n轮迭代结束后再进行位姿积分,将四元数更新这一非线性运算置于迭代循环之外,避免了迭代过程中并发更新的复杂性与不确定性。由于刚体粒子与连续介质粒子共享同一背景网格和约束求解入口,连续介质对刚体的作用力由mpm网格本身作为冲量传递媒介自然产生,避免了不同求解器积分方式各异所导致的状态不自洽与速度跳变问题。