4.3. 能带¶
能带计算是对体系进行一个非自洽计算,得到体系的能带。
注意
在计算能带之前,必须先进行scf自洽计算并输出电荷密度。
4.3.1. Si的能带计算输入文件¶
能带计算的输入文件包含一个JSON文件、元素对应的赝势文件和电荷密度文件。 电荷密度文件需要通过先进行一个输出电荷密度的scf自洽计算来得到。
JSON文件如下:
{
"job": {
"calculation_type": "band",
},
"job_io": {
"rho_init": "file",
"rho_init_file": "scf_DATA/rho.hdf5",
"prefix": "band",
"pp_dir": ".",
"pp_files": [
"Si_ONCV_PBE_sr.upf"
]
},
"kpts": {
"k_type": "path",
"k_data": [
[
0,
0,
0,
20
],
[
0.5,
0,
0.5,
20
],
[
0.5,
0.25,
0.75,
20
],
[
0.375,
0.375,
0.75,
20
],
[
0,
0,
0,
20
],
[
0.5,
0.5,
0.5,
20
],
[
0.625,
0.25,
0.625,
20
],
[
0.5,
0.25,
0.75,
20
],
[
0.5,
0.5,
0.5,
20
],
[
0.375,
0.375,
0.75,
20
],
[
0.625,
0.25,
0.625,
20
],
[
0.5,
0,
0.5,
20
]
]
},
"pw": {
"ecutwfc": 30,
"ecutrho": 120
},
"band": {
"n_empty_bands": 5,
"e_fermi": 0.23245237216852638
},
"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/kpts/pw/band/cell/ions, 与scf自洽计算有大量相同的参数,这里只介绍一些与scf自洽计算不同的参数, 下面将依次进行介绍。
job模块: 用来设置和本次计算类型相关的参数。 除了计算类型外,其他参数应当尽量与scf计算中保持一致。
calculation_type
:设置计算类型,本次计算为band能带计算。
job_io模块: 用来设置和本次计算的输入输出相关的参数。
prefix
:设置计算输出文件的前缀,这里设置为band。rho_init
:设置电荷密度初始化的方法。能带计算为非自洽计算,需要读取之前scf自洽计算得到的电荷密度文件。这里设置为file,表示从文件读取电荷密度。rho_init_file
:设置要读取的电荷密度文件的路径。这里设置为scf_DATA/rho.hdf5。
kpts模块: 用来设置和本次计算的k点相关的参数。
k_type
:设置k点的设置方法,这里设置为path,表示指定高对称点和高对称点之间的连线上的点的数量。k_data
:设置高对称点和高对称点之间的连线上的点的数量。每个数组里面前三个点是k点的坐标,第四个点是这个高对称点到下个高对称点的连线上的k点的数量。
band模块: 用来设置和本次计算能带数目相关的参数。
n_empty_bands
:设置要计算的空带的数目。这里设置为5,表示要计算费米能级以上5条空带。e_fermi
:设置体系的费米能级,这里设为0.23245237216852638,单位为Hartree,这个参数是从scf计算的输出文件中读到的。本参数不是必须设置,不设置不影响能带的计算,只会影响能带输出文件是否会扣除费米能级。
4.3.2. 执行计算¶
准备好JSON文件、赝势文件和电荷密度文件之后,按照 Hylanemos运行 中的方法执行计算。
4.3.3. 计算结果分析¶
根据上述的输入文件,计算完成之后将会得到 band_OUT
、 band_OUT.json
、 band_PROGRESS.yaml
、
band_DATA/band.data
、 band_DATA/parallel_info.json
这5个文件:
band_OUT
:Hylanemos计算过程中输出的日志文件。band_OUT.json
:Hylanemos计算结束之后输出的一个文件,是对整个计算的结果的一个汇总。band_PROGRESS.yaml
:Hylanemos计算过程中输出一个和计算进度相关的文件。band_DATA/band.data
:Hylanemos计算结束之后输出的能带数据文件。band_DATA/parallel_info.json
:Hylanemos计算过程中输出的并行相关的文件。
使用Matter Craft可直接对 band_OUT.json
文件处理,做出能带图。具体的操作方法可参考 Matter Craft用户手册。
也可以使用 band_DATA/band.data
中的数据手动进行能带图的绘制。每一列的数据意义可以参考 OUT文件 中的说明。
Si计算出的能带图如下:
从能带图可以看出Si是一个间接带隙的半导体。