4.5. 投影态密度

投影态密度计算是对体系进行一个非自洽计算,得到体系的电子态密度,并把态密度投影到每个原子及其轨道上。

注意

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

4.5.1. Si的投影态密度计算输入文件

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

JSON文件如下:

{
    "job": {
        "calculation_type": "pdos"
    },
    "job_io": {
        "rho_init": "file",
        "rho_init_file": "scf_DATA/rho.hdf5",
        "prefix": "pdos",
        "pp_dir": ".",
        "pp_files": [
            "Si_ONCV_PBE_sr.upf"
        ]
    },
    "pw": {
        "ecutwfc": 20,
        "ecutrho": 80
    },
    "kpts": {
        "k_type": "automatic",
        "k_mesh": [
            9,
            9,
            9
        ],
    },
    "pdos": {
        "pdos_emin": -10,
        "pdos_emax": 10,
        "pdos_dE": 0.1,
        "pdos_use_tetra": false,
        "pdos_smearing_alg": "gauss",
        "pdos_smearing_width": 0.01
    },
    "band": {
        "n_empty_bands": 5
    },
    "cell": {
        "lattice": [
            6.32850049,
            0,
            3.65376308,
            2.10949923,
            5.96656808,
            3.65376264,
            0,
            0,
            7.30752373
        ],
        "cell_units": "bohr"
    },
    "ions": {
        "element_names": [
            "Si"
        ],
        "element_nums": [
            2
        ],
        "positions": [
            [
                0,
                0,
                0
            ],
            [
                0.75,
                0.75,
                0.75
            ]
        ]
    }
}

JSON输入参数介绍:

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

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

  • calculation_type :设置计算类型,本次计算为pdos投影态密度计算。

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

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

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

  • pdos_emin :设置投影态密度计算时的能量最小值,单位eV。这里设置为-10。

  • pdos_emax :设置投影态密度计算时的能量最大值,单位eV。这里设置为20。

  • pdos_dE:设置投影态密度计算时的能量间隔,单位eV。这里设置为0.05。

  • pdos_use_tetra:设置投影态密度计算是否使用四面体法,这里设置为false。

  • pdos_smearing_alg:设置投影态密度计算使用的smearing算法,这里设置为gauss。

  • pdos_smearing_width:设置投影态密度计算时的smearing的展宽,单位为Hartree。这里设置为0.01。

4.5.2. 执行计算

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

4.5.3. 计算结果分析

根据上述的输入文件,计算完成之后将会得到 pdos_OUTpdos_OUT.jsonpdos_PROGRESS.yamlpdos_DATA/pdos.datapdos_DATA/parallel_info.json 这5个文件:

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

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

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

  • pdos_DATA/pdos.data :Hylanemos计算结束之后输出的投影态密度数据文件。

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

使用Matter Craft可直接对 pdos_OUT.json 文件处理,做出投影态密度图。具体的操作方法可参考 Matter Craft用户手册

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

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

../_images/Si投影态密度.png