不同周期性HF程序的对比

2023-09-03 14:18:29 浏览数 (2)

如文献[1]所指出,不同PBC-HF程序之间的严格对比是不可能的,原因包括不同的实现方法、不同的优化水平、不同的license类型等。本文对比了几个PBC-HF程序对金刚石3-21G的计算结果。结果先列在下表里,后文再稍微做点分析。其中Gaussian、CRYSTAL和PySCF的结果是笔者算的,MPQC的结果来自文献[1],未给出Gap和

vec{k}

采样信息。

Gaussian

CRYSTAL

PySCF

MPQC

总能量/(a.u.)

-75.34302

-75.34286

-75.34170

-75.34296

Gap/eV

12.20

12.25

13.06

/

k

52×52×52

8×8×8

4×4×4

/

时间

1小时

5分钟

3天

/

可以看出,四个程序的结果是比较一致的。PySCF稍有差别,可能是

vec{k}

采样没收敛导致的。更密的

vec{k}

会算很久,就先不做了。

简单讨论一下PBC-HF的理论。PBC-HF求解每个

vec{k}

的Roothaan方程:

mathbf{F}(vec{k})mathbf{C}(vec{k})=mathbf{S}(vec{k})mathbf{C}(vec{k})mathbf{varepsilon}(vec{k}) quad(1)

所以核心问题自然是怎么构造

mathbf{F}(vec{k})

。有两种方法[2],以交换作用

mathbf{K}(vec{k})

为例(库伦作用也是类似的,但因为是长程作用会复杂点):

  • 实空间方法 先用实空间的AO构造实空间的交换矩阵
mathbf{K}(vec{L})

,再傅立叶变换成

mathbf{K}(vec{k})

K_{mu nu}(vec{L}) = sum_{lambda sigma} sum_{vec{M},vec{N}}(mu0,sigma vec{M} vec{N} | lambda vec{M}, nu vec{L})D_{lambda sigma}(vec{N})quad(2)
mathbf{K}(vec{k}) = sum_{vec{L}}e^{ivec{k}vec{L}}mathbf{K}(vec{L})quad(3)
  • 倒空间方法 先把实空间的AO傅立叶变换到倒空间,然后直接构造倒空间的
mathbf{K}(vec{k})

chi_{mu}(vec{k}) =sum_{vec{L}}e^{ivec{k}vec{L}}chi_{mu}(vec{L})quad(4)\
K_{munu}(vec{k}) = sum_{lambdasigma}sum_{vec{q}}(muvec{k}, sigmavec{q} | lambdavec{q}, nuvec{k})D_{lambda sigma}(vec{q})quad(5)

这两种方法最明显的区别体现在

vec{k}

采样。有两个方面:

  1. 计算量:注意实空间方法的决速步骤
(2)

不含

vec{k}

,所以往往用到非常密的

vec{k}

(如

20times20times20

)计算时间仍没什么变化。而倒空间方法的决速步骤

(5)

vec{k}

,所以用

4times4times4

就会明显比

2times2times2

慢很多倍。在

vec{k}

采样很重要的体系里,实空间方法比倒空间方法有优势。

  1. 收敛性:注意实空间方法的
(2)

是热力学极限公式,但实际计算时密度仍然是

vec{k}

采样的密度,所以必须用比较密的

vec{k}

,否则HF容易不收敛。这在算HF时不算劣势,因为决速步骤不含

vec{k}

,但如果要做post-HF(如PBC-MP2),就会因

vec{k}

过多导致计算量巨大。

实现了这两种方法的软件有(CP2K也有PBC-HF[3],但暂时还没搞明白):

  • 实空间方法:CRYSTAL[4], Gaussian, MPQC, FHI-aims[2]
  • 倒空间方法:PySCF[5], VASP

下面是Gaussian, CRYSTAL和PySCF三者的PBC-HF随

vec{k}

的变化,将看到和上文的分析是一致的。

  • Gaussian Г-30×30×30 32×32×32 52×52×52 不收敛-75.34301-75.34302

Gaussian的迭代圈数很不稳定,就不统计时间了。

  • CRYSTAL 2×2×2 4×4×4 6×6×6 8×8×8 不收敛不收敛-75.34325-75.34286//5分钟5分钟
  • PySCF Г 2×2×2 3×3×3 4×4×4 74.50429-75.27248-75.33561-75.341705秒100分钟9小时3天 注意PySCF的HF必须使用density fitting,此处使用的是MDF方法。[5]

Gaussian和CRYSTAL采用了实空间方法,所以

vec{k}

很少时难收敛,计算时间和

vec{k}

几乎无关。PySCF采用了倒空间方法,所以

vec{k}

较少时的(如

Gamma

点计算)收敛性更好,但计算时间随

vec{k}

的数目增长迅速。

[1] Xiao Wang, Cannada A. Lewis, and Edward F. Valeev. J. Chem. Phys.,153(12):124116, 2020.

[2] Sergey V. Levchenko, Xinguo Ren, Jürgen Wieferink, Rainer Johanni, Patrick Rinke, Volker Blum, and Matthias Scheffler. Comput. Phys. Comm.,192:60–69, 2015.

[3] Augustin Bussy, Ole Schütt, and Jürg Hutter. J. Chem. Phys., 158(16):164109, 2023.

[4] Roberto Dovesi, Fabien Pascale, Bartolomeo Civalleri, Klaus Doll, Nicholas M. Harrison, Ian Bush, Philippe D’Arco, Yves Noël, Michel Rérat, Philippe Carbonnière, Mauro Causà, Simone Salustro, Valentina Lacivita, Bernard Kirtman, Anna Maria Ferrari, Francesco Silvio Gentile, Jacopo Baima, Mauro Ferrero, Raffaella Demichelis, and Marco De La Pierre. J. Chem. Phys., 152(20):204111, 2020.

[5] Qiming Sun, Timothy C. Berkelbach, James D. McClain, and Garnet Kin-Lic Chan. J. Chem. Phys., 147(16):164119, 2017.

0 人点赞