4.11. 偶极修正计算

偶极修正计算是针对具有极性的slab体系进行的,能够对极性进行修正。

4.11.1. \(TiO\)2 -(011)的偶极修正计算输入文件

\(TiO\)2 的(011)表面结构如下图所示

../_images/TiO2-011.png

可以看到上表面(左侧)为O原子,下表面(右侧)为Ti原子。 由于氧原子是-2价,Ti原子是+4价,所以上表面带负电,下表面带正电,整个slab体系会形成一个内建电场。 这时需要使用偶极修正来消除这个内建电场对体系的影响。

偶极修正可以在各种类型的计算任务中开启,需要的输入文件与该类型的计算文件相同。 这里以scf自洽计算作为例子说明偶极修正计算的输入文件JSON文件的参数设置。

JSON文件如下:

{
    "job": {
        "calculation_type": "scf",
        "plus_u": true,
        "occupation_method": "smearing",
        "is_slab": true
    },
    "job_io": {
        "prefix": "scf",
        "output_rho": true,
        "output_ns": true,
        "pp_dir": ".",
        "pp_files": [
            "Ti_ONCV_PBE_sr.upf",
            "O_ONCV_PBE_sr.upf"
        ]
    },
    "pw": {
        "ecutwfc": 35,
        "ecutrho": 140
    },
    "kpts": {
        "k_type": "automatic",
        "k_mesh": [
            3,
            3,
            1
        ]
    },
    "symmetry": {
        "use_sym": false
    },
    "smearing": {
        "smearing_alg": "gauss",
        "smearing_width": 0.005
    },
    "hubbard": {
        "u_projection_type": "atomic",
        "u": [
            5,
            0
        ]
    },
    "pef": {
        "pef_dir": 3,
        "pef_max_loc": 0.8,
        "pef_dec_region_leng": 0.1,
        "pef_max_e": 0
    },
    "slab": {
        "slab_corr_method": "dipole correction"
    },
    "cell": {
        "lattice": [
            8.67384297,
            0,
            0,
            0,
            10.32103598,
            0,
            0,
            0,
            31.5017347
        ],
        "cell_units": "bohr"
    },
    "ions": {
        "element_names": [
            "Ti",
            "O"
        ],
        "element_nums": [
            6,
            12
        ],
        "positions": [
            [
                0,
                0,
                0.301032
            ],
            [
                0.5,
                0.5,
                0.301032
            ],
            [
                0,
                0.293721,
                0.450258
            ],
            [
                0.5,
                0.793721,
                0.450258
            ],
            [
                0,
                0.587441,
                0.599484
            ],
            [
                0.5,
                0.087441,
                0.599484
            ],
            [
                0.327,
                0.769047,
                0.349829
            ],
            [
                0.827,
                0.024674,
                0.401461
            ],
            [
                0.673,
                0.524674,
                0.401461
            ],
            [
                0.173,
                0.269047,
                0.349829
            ],
            [
                0.327,
                0.062767,
                0.499055
            ],
            [
                0.827,
                0.318395,
                0.550687
            ],
            [
                0.673,
                0.818395,
                0.550687
            ],
            [
                0.173,
                0.562767,
                0.499055
            ],
            [
                0.327,
                0.356488,
                0.648281
            ],
            [
                0.827,
                0.612115,
                0.699913
            ],
            [
                0.673,
                0.112115,
                0.699913
            ],
            [
                0.173,
                0.856488,
                0.648281
            ]
        ]
    }
}

JSON输入参数介绍:

JSON输入文件可以分为几个模块,这里分别是job/job_io/pw/kpts/smearing/electron_step/pef/slab/cell/ions, 这里只介绍一些与自旋极化计算需要额外设置的参数。 下面将依次进行介绍。

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

  • is_slab :设置本次计算是否需要为slab体系进行修正,这里设为true,表示要进行修正。

slab模块: 用来设置slab修正相关的参数。

  • slab_corr_method :设置slab修正的方法。这里设置为dipole correction,表示使用偶极修正。

pef模块: 用来设置电场相关的参数。

  • pef_dir :设置电场沿倒格矢的方向,这里设为3,表示沿倒格矢g3的方向。

  • pef_max_loc :设置电场最大处所在的位置,以分数坐标表示。这里设为0.8。

  • pef_dec_region_leng :设置电场下降的区间长度,电场在下降和上升的转变点必须设置在真空层当中。这里设为0.1,使转变点在0.9处,在真空层当中。

  • pef_max_e :设置电场最大处的值,在偶极修正中必须设为0。

4.11.2. 执行计算

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

4.11.3. 计算结果分析

输出文件与普通的scf计算的是一样的。 在 scf_OUT 文件中的每一个scf迭代步中可以看到与偶极修正相关的部分。

================================================================================
|                         Main part of scf calculation                         |
--------------------------------------------------------------------------------
iteration 1 begins
efield                                                                              #偶极修正相关部分
  buffers.elec_dipole = 2.943328385288919
  v_max_value = 9.225260111011776
  length = 28.35156123
  buffers.e_efield = 2.9701114655392353

E(Ha)          dE(Ha)        estimated scf_diff(Ha)
-524.10960991   0.00000000  17.68189039

Energy by parts:
one_electron contribution   =   -2524.65627872 Ha /  -68699.39706337 eV
hartree contribution        =    1280.76413940 Ha /   34851.36764903 eV
xc contribution             =     -86.55975574 Ha /   -2355.41094430 eV
ewald contribution          =     788.99719214 Ha /   21469.70731887 eV
smearing contribution       =      -0.00000000 Ha /      -0.00000000 eV

iteration 1 ends, not converged yet.
--------------------------------------------------------------------------------

#中间省略

================================================================================
|                                  scf result                                  |
--------------------------------------------------------------------------------
Electron Step Finish
Total Energy: -538.04185808 Ha / -14640.86480053 eV
Fermi level:   1.70745171 eV

Energy by parts:
one_electron contribution   =   -2505.09690549 Ha /  -68167.15940403 eV
hartree contribution        =    1262.74107737 Ha /   34360.93514719 eV
xc contribution             =     -84.67961627 Ha /   -2304.24974289 eV
ewald contribution          =     788.99719214 Ha /   21469.70731887 eV
smearing contribution       =      -0.00736151 Ha /      -0.20031698 eV

使用了偶极修正后得到了体系总能量为-538.04185808 Ha / -14640.86480053 eV。