4.6. COHP

共价键轨道相互作用(Covalent Bonding Orbital Overlap Population, COHP)可以理解成加权的态密度。COHP 提供了描述共价键形成和强度的信息,可用于研究分子、晶体和材料中的化学键性质。

是对体系进行一个非自洽计算,得到体系的电子态密度,并把态密度分到每一对原子上,然后用这一对原子间的成键信息对态密度进行加权。通过不同的加权方法,我们可以得到COOP或COHP。在得到每一对原子间的COOP/COHP后,我们也可以求和得到每一对元素间的COOP/COHP。

对于一对原子,我们有它们的波函数 \(|ψ\)A> 和 \(|ψ\)B>。大致可以理解为,COOP使用的权重是用重叠算符作用在波函数上,而COHP使用的权重是用哈密顿算符作用在波函数上。

注意

在计算COHP之前,必须先进行scf自洽计算并输出电荷密度。

4.6.1. Si的COHP计算输入文件

COHP计算的输入文件包含一个JSON文件、元素对应的赝势文件和电荷密度文件。 电荷密度文件需要通过先进行一个输出电荷密度的scf自洽计算来得到。

JSON文件如下:

{
    "job": {
        "calculation_type": "cohp",
        "calc_force": true,
        "calc_stress": true,
        "occupation_method": "insulator"
    },
    "job_io": {
        "pp_dir": "../../../pseudopotentials/abinit",
        "pp_files": ["Si_ONCV_PBE_sr.upf"],
        "prefix": "cohp",
        "rho_init": "file",
        "rho_init_file": "./scf_DATA/rho.hdf5"
    },
    "cell": {
        "cell_type": "ibrav",
        "ibrav": 2,
        "ibrav_param_type": "abc",
        "ibrav_params": [10.599478]
    },
    "ions": {
        "element_names": ["Si"],
        "element_nums": [2],
        "positions": [
            [0.00, 0.00, 0.00],
            [0.25, 0.25, 0.25]
        ]
    },
    "pw": {
        "ecutwfc": 30.0
    },
    "kpts": {
        "k_type": "automatic",
        "k_mesh": [12, 12, 12]
    },
    "electron_step": {
        "elec_e_conv": 5e-13
    },
    "cohp": {
        "cohp_emin": -7,
        "cohp_emax": 23,
        "cohp_dE": 0.1,
        "cohp_smearing_alg": "gauss",
        "cohp_smearing_width": 0.005
    },
    "band": {
        "n_bands": 20
    }
}

JSON输入参数介绍:

JSON输入文件可以分为几个模块,这里分别是job/job_io/pw/kpts/band/pdos/cell/ions, 与投影态密度计算有大量相同的参数,这里只介绍一些与投影态密度计算不同的参数, 下面将依次进行介绍。

job模块: 用来设置和本次计算类型相关的参数。 除了计算类型外,其他参数应当尽量与scf计算中保持一致。

  • calculation_type :设置计算类型,本次计算为cohp计算。

job_io模块: 用来设置和本次计算的输入输出相关的参数。

  • prefix :设置计算输出文件的前缀,这里设置为cohp。

cohp模块: 用来设置和本次计算的能量的范围和间隔相关的参数。

  • cohp_emin :设置COHP计算时的能量最小值,单位eV。这里设置为-7。

  • cohp_emax :设置COHP计算时的能量最大值,单位eV。这里设置为23。

  • cohp_dE:设置COHP计算时的能量间隔,单位eV。这里设置为0.1。

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

  • cohp_smearing_width:设置COHP计算时的smearing的展宽,单位为Hartree。这里设置为0.005。

4.6.2. 执行计算

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

4.6.3. 计算结果分析

根据上述的输入文件,计算完成之后将会得到 cohp_OUTcohp_OUT.jsoncohp_PROGRESS.yamlcohp_DATA/cohp.datacohp_DATA/cohp.hdf5cohp_DATA/parallel_info.json 这5个文件:

  • cohp_OUT :Hylanemos计算过程中输出的日志文件。

  • cohp_OUT.json :Hylanemos计算结束之后输出的一个文件,是对整个计算的结果的一个汇总。

  • cohp_PROGRESS.yaml :Hylanemos计算过程中输出一个和计算进度相关的文件。

  • cohp_DATA/cohp.data :Hylanemos计算结束之后输出的COHP数据文件。

  • cohp_DATA/cohp.hdf5 :Hylanemos计算结束之后输出的COHP数据文件,和 cohp_DATA/cohp.data 类似,但文件格式不同。

  • cohp_DATA/parallel_info.json :Hylanemos计算过程中输出的并行相关的文件。

使用Matter Craft可直接对 cohp_OUT.json 文件处理,做出COHP图。具体的操作方法可参考 Matter Craft用户手册

也可以使用 cohp_DATA/cohp.data 中的数据手动进行COHP图的绘制。每一列的数据意义可以参考 其他文件 中的说明。

直接使用cohp.data的数据绘制的Si计算出的投影态密度图如下:

../_images/Si-cohp.png