4.12. 范德华修正计算

一般传统的GGA、LDA泛函对弱相互作用处理不好,对色散作用的描述不佳。直接使用它们来研究以弱相互作用为主导的体系会出现很多问题,导致体系结构、能量等计算不准确。 范德华修正就是针对弱相互作用的一个修正,能够解决这些泛函对弱相互作用处理不好的问题。

4.12.1. 石墨的范德华修正计算输入文件

石墨是一种层状材料,层间有弱相互作用,需要使用范德华修正。

../_images/graphite.png

范德华修正可以在各种类型的计算任务中开启,一般情况下需要的输入文件与该类型的计算文件相同。 这里以变晶格结构优化计算作为例子说明范德华修正计算的输入文件JSON文件的参数设置。

JSON文件如下:

{
    "job": {
        "calculation_type": "vc_relax",
        "occupation_method": "smearing",
        "calc_force": true,
        "calc_stress": true,
    },
    "job_io": {
        "prefix": "relax",
        "pp_dir": ".",
        "pp_files": [
            "C_ONCV_PBE_sr.upf"
        ]
    },
    "pw": {
        "ecutwfc": 35,
        "ecutrho": 140
    },
    "kpts": {
        "k_type": "automatic",
        "k_mesh": [
            6,
            6,
            2
        ]
    },
    "smearing": {
        "smearing_alg": "gauss",
        "smearing_width": 0.005
    },
    "electron_step": {
        "elec_e_conv": 5e-7,
        "elec_max_steps": 100
    },
    "ion_step": {
        "ion_e_conv": 0.00002,
        "ion_f_conv": 0.05,
        "ion_use_d_conv": false,
        "ion_use_s_conv": false,
        "ion_alg": "bfgs",
        "ion_max_steps": 100
    },
    "dispersion": {
        "dis": true,
        "dis_scheme": "D2"
    },
    "cell": {
        "lattice": [
            4.66250429,
            0,
            0,
            -2.33125215,
            4.03784716,
            0,
            0,
            0,
            14.745671
        ],
        "cell_units": "bohr"
    },
    "ions": {
        "element_names": [
            "C"
        ],
        "element_nums": [
            4
        ],
        "positions": [
            [
                0,
                0,
                0.25
            ],
            [
                0,
                0,
                0.75
            ],
            [
                0.33333333,
                0.66666667,
                0.25
            ],
            [
                0.66666667,
                0.33333333,
                0.75
            ]
        ]
    }
}

JSON输入参数介绍:

JSON输入文件可以分为几个模块,这里分别是job/job_io/pw/kpts/smearing/electron_step/ion_step/dispersion/cell/ions, 大部分参数设置都和普通的结构优化计算相同,这里只介绍一些与范德华修正计算需要额外设置的参数。 下面将依次进行介绍。

job模块: 用来设置和本次计算类型相关的参数。

  • occupation_method:设置本次计算的轨道占据数的计算方法。由于石墨没有带隙,这里需要设置为smearing。

smearing模块: 用来设置和轨道占据数的计算方法相关的参数。

  • smearing_alg:设置smearing使用的算法,这里设置为gauss。

  • smearing_width:设置smearing的展宽,这里设置为0.005。

dispersion模块: 用来设置和范德华修正相关的参数。

  • dis_scheme:设置使用的范德华修正的方法,这里设为D2,表示使用DFT-D2的方法。

4.12.2. 执行计算

准备好JSON文件和赝势文件之后,按照 Hylanemos运行 中的方法执行计算。

4.12.3. 计算结果分析

relax_OUT 文件中的scf result模块可以看到计算结束后的体系能量中dispersion项的贡献。 在Force calculation和Stress calculation模块中可以看到dispersion项对力和应力的贡献。 dispersion项对应范德华修正。

================================================================================
|                                  scf result                                  |
--------------------------------------------------------------------------------
Electron Step Finish
Total Energy: -24.10819588 Ha / -656.01742918 eV
Fermi level:   7.83097733 eV

Energy by parts:
one_electron contribution   =      -2.85645595 Ha /     -77.72812595 eV
hartree contribution        =       5.75295556 Ha /     156.54589576 eV
xc contribution             =      -8.60402466 Ha /    -234.12743811 eV
ewald contribution          =     -18.37937545 Ha /    -500.12828391 eV
smearing contribution       =      -0.00029058 Ha /      -0.00790720 eV
dispersion contribution     =      -0.02100480 Ha /      -0.57156977 eV             #dispersion项对能量的贡献


Time spent until now is 369.61 seconds
================================================================================

================================================================================
|                              Force calculation                               |
--------------------------------------------------------------------------------
local contribution:
 -0.00853950  -0.01786714  -0.00238844
 -0.01975584  -0.04464902   0.00295852
  0.00904598   0.01341384  -0.00092484
  0.01921267   0.04910296   0.00035077
ewald contribution:
  0.00945327   0.01870914   0.00251180
  0.01975056   0.04667320  -0.00313433
 -0.00985007  -0.01421362   0.00091772
 -0.01935377  -0.05116872  -0.00029520
non-local contribution:
  0.00145779   0.00237942  -0.00013063
  0.00355161   0.00924906   0.00024172
 -0.00141686  -0.00171516   0.00013069
 -0.00357670  -0.00990798  -0.00024520
non-linear core correction contribution:
 -0.00020495  -0.00031670   0.00000158
 -0.00033493  -0.00089342  -0.00000274
  0.00020413   0.00030711  -0.00000099
  0.00033517   0.00090315   0.00000218
hubbard contribution:
  0.00000000   0.00000000   0.00000000
  0.00000000   0.00000000   0.00000000
  0.00000000   0.00000000   0.00000000
  0.00000000   0.00000000   0.00000000
dispersion contribution:                                                            #dispersion项对力的贡献
 -0.00487642  -0.01209733  -0.00000048
 -0.00761514  -0.01816771   0.00000082
  0.00059411  -0.00562305  -0.00000106
  0.00143359   0.00285706   0.00000245
contribution due to not exact scf convergence:
  0.00000834   0.00000604  -0.00005643
  0.00000704   0.00002752   0.00005701
 -0.00000315  -0.00000623  -0.00005554
 -0.00000752  -0.00002820   0.00005770
total force after symmetrization:
 -0.00008133  -0.00093012  -0.00006187
 -0.00177655   0.00049607   0.00012173
  0.00119429   0.00041933   0.00006670
  0.00066359   0.00001473  -0.00012657

Time spent until now is 369.891 seconds
================================================================================

================================================================================
|                              Stress calculation                              |
--------------------------------------------------------------------------------
local contribution:
  0.12204237  -0.00015287  -0.00001448
 -0.00015287   0.12296538   0.00000599
 -0.00001448   0.00000599  -0.15214192

hartree contribution:
 -0.04431823   0.00004151   0.00000427
  0.00004151  -0.04450012  -0.00000177
  0.00000427  -0.00000177   0.03698224

exchange correlation contribution:
  0.00780727   0.00000072   0.00000004
  0.00000072   0.00780197  -0.00000002
  0.00000004  -0.00000002   0.00862182

non-linear core correction contribution:
  0.01469349  -0.00000034  -0.00000002
 -0.00000034   0.01469669   0.00000001
 -0.00000002   0.00000001   0.01434614

ewald contribution:
 -0.01251774   0.00012095   0.00001076
  0.00012095  -0.01338983  -0.00000442
  0.00001076  -0.00000442   0.19151208

dispersion contribution:                                                            #dispersion项对应力的贡献
  0.00012295  -0.00000015   0.00000001
 -0.00000015   0.00012307  -0.00000001
  0.00000001  -0.00000001   0.00041187

kinetic contribution:
 -0.09786864   0.00000291  -0.00000012
  0.00000291  -0.09772433   0.00000018
 -0.00000012   0.00000018  -0.10821566

non-local contribution:
  0.01003659  -0.00000031  -0.00000014
 -0.00000031   0.01003822   0.00000002
 -0.00000014   0.00000002   0.00848157

hubbard contribution:
 -0.00000000  -0.00000000  -0.00000000
 -0.00000000  -0.00000000  -0.00000000
 -0.00000000  -0.00000000  -0.00000000

total stress after symmetrization:
 -0.00000196   0.00001243   0.00000032
  0.00001243   0.00001104  -0.00000003
  0.00000032  -0.00000003  -0.00000186

in kbar units:
     -0.28782960       1.82845086       0.04746919
      1.82845086       1.62456894      -0.00393307
      0.04746919      -0.00393307      -0.27376709

范德华修正计算出的石墨晶格常数的c轴为6.28Å,未使用范德华修正计算出的值为7.80Å,实验值为6.79Å。 可以看到未使用范德华修正时,计算出的c轴相对实验值明显偏大;使用范德华修正后,c轴长度缩短,更加接近实验值。