【问题标题】:How to check overlap between to particle in Molecular Dynamics如何检查分子动力学中粒子之间的重叠
【发布时间】:2017-04-13 10:28:52
【问题描述】:

假设我有 10 个粒子,每个粒子都有三个坐标。我想随机放置它们,使两个粒子之间的距离总是大于某个值(比如 1)。 任何想法如何做到这一点。

【问题讨论】:

  • 一个简单的建议是:(i) 随机化 3 个值 (x, y, z),(ii) 将新坐标与所有旧坐标进行比较,(iii) 如果距离 > 一些值,放置它,否则,转到i。你试过什么?
  • 我试过了,但无法完全消除重叠。

标签: python physics montecarlo


【解决方案1】:

由于您没有提到粒子被限制在某个体积内,即它们可以在 R^3 中的任何位置,您可以只引入随机数

n = 10
pos = np.random.random(3*n).reshape(n,3)

然后计算所有成对距离,请参阅this question 了解如何有效地做到这一点,然后将整个数组 pos 与最小距离相除(如果您使用值 1 作为没有的距离两个粒子应该永远小于)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2014-07-15
    • 1970-01-01
    • 2011-01-23
    相关资源
    最近更新 更多