最大化点粒子之间的距离

计算科学 优化 分子动力学
2021-11-27 01:26:20

我有一种情况,我试图最大化一些点粒子之间的距离。例如,我有一个 100 Å 的周期性模拟框3,我正在放入 361 个粒子。理想情况下,径向分布函数在特定 r 之前为零,此时它应该跳转到某个特定值。

我在实际实施时遇到了麻烦。我的第一步(我在 LAMMPS 中执行此操作)是将带 +1 电荷的粒子随机放置在一个盒子中,然后应用能量最小化。不幸的是,这种能量最小化只能达到局部最小值,结果很糟糕。我的下一个尝试是使用 NVT 集合在粒子移动时缓慢地从粒子中汲取能量,我发现我汲取能量的速度越慢,结果就越好。问题是这需要很长时间才能获得好的结果。

必须有更好的方法来解决这个问题。有任何想法吗?

2个回答

我假设您希望将这些点“随机”分布,这样您就不需要太多的长期订单(否则将它们放在某种网格上)。您想要所谓的“蓝噪声点集”,尽管它被称为许多不同的东西。如果您知道在点模式变得过于规则之前何时停止静电方法,那么静电方法的效果相当好,但它通常非常缓慢,并且如果运行收敛,会产生具有大规则斑块的东西。我最近在 2D 中需要它,而图形人员已经在很大程度上解决了这个问题。我正在使用此代码,并且它非常直接地推广到 3D(CGAL 已经有一个 3D 周期性 Delaunay 三角剖分)。这并不是说用 3D 重写整个事情会很容易,因为算法细节非常复杂。我建议您查看参考资料,看看有哪些较旧的、可能不太复杂的方法可用。

您正在寻找球体堆积问题的变体。在这个问题中,你会问如何将尽可能多的已知半径的球体打包到一个盒子中。在您的变体中,您会问球体可以有多大,以便它们仍然可以放入一个盒子中。有大量关于球体堆积问题的文献以及我想的软件。对该术语进行文献检索可能会有用。