从系统的势能和原子的位置计算原子上的力

计算科学 分子动力学 微分方程
2021-12-29 06:41:53

背景

我正在使用神经网络计算配置中原子的势能,然后添加所有原子的能量以将其与配置(标签)的真实能量进行比较以更新权重。

对于 100K 的液态氩,我正在为 10000 个原子的 10000 个配置这样做。

注意我没有每个原子的实际能量,只有配置的能量。

问题

我需要计算每个原子上的力,以查看所有原子的力之和在 X、Y、Z 轴上是否为零。如果不是,我想知道它从零开始有多差。

如何使用给定轨迹的位置和势能计算原子上的力。我知道我需要做但我的 E 和 r 应该是什么。另外,由于我没有 E(r) 的公式,我的应该分别是什么?dEdrdEdr

1个回答

一般来说,作用在粒子上的力就是(注意减号),其中是梯度算子,是粒子的位置. 但是,请注意,此表达式假定我们正在处理保守势力。但如果是这样的话,能量是按定义守恒的,这意味着力必须平均为 0。iE(ri)rii

但是,要回答您的问题,我想您可以尝试通过沿每个轴移动它,重新计算能量并通过计算来获取数值导数,以数值方式估计作用在每个粒子上的力

FαE(ri+δα)E(ri)δα

其中您应该首先对几个值执行此操作,以便选择最佳值,然后计算给定配置下作用在每个粒子上的力。α=xyzδ