Taichi DEM模拟问题

大家好, 本人Taichi新手,在学习前辈用Taichi 做DEM 模拟时有个小问题想请教一下:做完DEM 模拟后,在检查每个粒子对之间的距离时,总是会出现两个粒子相互接触的情况,但貌似没有前辈在程序里有做过这个检查。借鉴的程序为 【活动已结束】Taichi DEM 代码优化挑战赛来了!Airpods 胶囊咖啡机还有更多社区周边等你来拿~ - Show Your Demos - Taichi 中文论坛 (taichi-lang.cn)中的一个。

我放上自己检查的小程序,应该没什么问题。请问这个是怎么解决呢:

p = gf.p.to_torch()
r = gf.r.to_torch()
def status_check(status, p, r):
sum_r = torch.add(r[:, None], r[None, :]).reshape(-1)
dist = torch.cdist(p, p, p=2).reshape(-1)
dist = torch.where(dist == 0., 1e8, dist)
spreading = dist - sum_r
if torch.min(spreading) > 0:
status = False

number = torch.argwhere(spreading<0)

当然,我改成了3D的 DEM