如何循环潜力?

时间:2015-10-26 23:07:17

标签: matlab simulation

我目前正致力于溶液中聚合物的分子动力学模拟,这是计算系统势能和施加在每个单体上的力的子程序之一。

WHERE start_time >= (Date + (Hour(Now)<5) + TimeSerial(5, 0, 0))

如何在POT_E下的“33.34 * EPS *功率(sqrt(dist2) - SIG,2)/(2 *功率(SIG,2))”部分进行循环,这是谐波电位,所以它仅评估最近的原子之间的距离(对于j = i + 1到4)。

1 个答案:

答案 0 :(得分:0)

快速查看代码后,我会提出以下建议:

  • 使用pdist一次计算所有距离并将其存储在矩阵中,例如AllDist
  • 基于LENGTH的条件可以直接应用于AllDist
  • 由于您需要找到四个最近邻居,因此需要在AllDist的行(或列)中迭代一个循环,对当前行(或列)进行排序,并为您提供四个最近邻居。请注意,对于每个原子,您将获得0作为最近距离,因为这是“自我距离”。忽略这个。
  • 如果您可以访问Matlab的并行计算工具箱,请尝试在适当的位置使用它(parfor)以加速模拟。