密度泛函理论如何随系统规模缩放?

计算科学 密度泛函理论
2021-11-30 00:36:31

从理论上讲,进行密度泛函理论 (DFT) 计算的时间如何与电子数量成正比?我对“典型”的 DFT 实现感兴趣,例如 VASP、ABINIT 等,而不是 O(N) 代码。

1个回答

最简单的正确答案是 DFT 在O(Ne3). 这是因为您最终将一个哈密顿量对角化,其维度与选举次数成正比,并且对角化在技术上是O(n3).


实际上,DFT 是一堆步骤,不同的步骤在不同的上下文中是速率限制的。如果我们将自己局限于平面波 (PW) DFT(VASP、ABINIT、QE 等),我们可以做出一些更有力的陈述。理解 PW DFT 码的一个重要思想是哈密顿量永远不会存储为大矩阵。相反,哈密顿算子的作用被计算并用于通常是“内部”迭代对角化器(共轭梯度、戴维森等)。这些对角化器是正式的O(neMV), 在哪里MV是计算哈密顿量的成本,但考虑到它们在更大的自洽算法中的作用,它们往往执行得更快。

计算哈密顿量的过程分为几个步骤:

  • 真实空间中的局部电位需要 FFT,O(nvlnnv)
  • 投影可以发生在实空间或 g 空间中,O(nanp)或者O(nanpnv), 分别
  • 非局部势是对角线或块对角线,O(nanp)或者O(nanp2), 分别

所有这些都必须每个电子发生一次(实际上是波函数),所以添加一个因子ne对他们所有人。

通过某种方式(例如,Gram-Schmidt),波函数(哈密顿量的特征函数)必须保持相互正交,O(ne2nv)

最后,波函数需要组合成一个电子密度。在 PW 码中,这是通过每个波函数(和一个总和)的最后一个 FFT 来完成的,O(nenvlnnv).

请注意,我已经放入了一些不同的n的:nv与体积有关(实际上,它是基础尺寸),np是每个原子的投影仪数量,na是原子数,并且ne电子数。正式地nv,na, 和ne都是线性相关的(np是一个小整数),但您可以想象用固定数量的电子增加体积(在板/线几何形状中添加真空)或增加具有固定数量的原子和电子的投影仪的数量(使用更准确的赝势)。

问题通常是 FFT 限制的,在这种情况下,它们是有效的O(n2lnn),这在文献中是一个比较常见的答案,如果在技术上不正确的话。