deepmd-kit内置了多个descriptor,不同的descriptor的机制有微小差异。
下面是论文里的示意图:
DOI: 10.1103/PhysRevLett.120.143001
可以看出模型总体思路是
下面这张图详细解释了descriptor的过程:
arXiv:1805.09003v2 [physics.comp-ph] 20 Dec 2018
还有这张
DOI: 10.1103/PhysRevLett.120.143001
更多解释可以看原文。
下面简要介绍各个descriptor
首先se开头的指smooth_edition
s ( r j i ) s(r_{ji}) s(rji)在构建的时候使用了平滑值,e2指构造embedding net 的时候使用了两原子间的信息。
两篇文章的模型有点混乱(可能是我自己看不清),反正第二篇end to end开头的那篇,引入了平滑的机制。我们以下面这张图为准。
可以看出最终的descriptor由两部分组成,一部分是embedding过后的,另一部分是环境矩阵。
se_e2_a
指环境矩阵是4列,包含了距离信息(第一列)和角度信息(2,3,4列),e2指 两 原子间的信息,即距离信息,embedding net的输入信息是环境矩阵的第一列,距离信息。
se_e2_r
指环境矩阵只有一列,距离信息。embedding net的输入就是这一列。
se_e3
指环境矩阵是4列,包含了距离信息(第一列)和角度信息(2,3,4列),e3指 三 原子间的信息,即角度信息,embedding net的输入信息是环境矩阵的第2,3,4列,角度信息。
loc_frame
指在每个原子周围定义一个局域帧,Decriptor就在这个局域帧里进行计算。
hybrid
指将几个descriptor糅合,形成一个新的。