Python 脚本通过 vaspkit 生成的能带数据文本 BAND.dat 计算有效质量

计算理论解释:

https://blog.csdn.net/yong1585855343/article/details/109823300

0.环境

anaconda (Python3 版本)

1. vasp 计算能带

chen@chen225:~/3_band> ls
CONTCAR       get_effective_mass.py  KLINES.dat  log          output  PROCAR                vasprun.xml
DOSCAR        INCAR                  KPOINTS     OSZICAR      PCDAT   REFORMATTED_BAND.dat  vtotav.py
EIGENVAL      input                  LOCPOT      OUTCAR       POSCAR  REPORT                XDATCAR
FERMI_ENERGY  KLABELS                LOCPOT_Z    OUTCAR_band  POTCAR  time.info

2. 使用 vaspkit 提取能带数据,生成 BAND.dat(输入文件)

chen@chen225:~/3_band> vaspkit -task 211
 +---------------------------------------------------------------+
 |             VASPKIT Version: 1.2.0 (20 Aug. 2020)             |
 |            Running VASPKIT Under Command-Line Mode            |
 +---------------------------------------------------------------+
  -->> (01) Reading Input Parameters From INCAR File...
 oooooooooo The Fermi Energy will be set to zero eV oooooooooooooo
  -->> (02) Reading Fermi-Energy from DOSCAR File...
  -->> (03) Reading Structural Parameters from POSCAR File...
  -->> (04) Reading Energy-Levels From EIGENVAL File...
  -->> (05) Reading K-Paths From KPOINTS File...
  -->> (06) Written BAND.dat File!
  -->> (07) Written REFORMATTED_BAND.dat File!
  -->> (08) Written KLINES.dat File!
  -->> (09) Written KLABELS File!
  -->> (10) Written BAND_GAP File!
 +---------------------------------------------------------------+
 |                          * CITATIONS *                        |
 | If You Find VASPKIT Code Useful in Your Work, PLEASE Cite:    |
 | [1] V. WANG, N. XU, J.C. LIU, G. TANG, W.T. Geng, VASPKIT: A  |
 | User-Friendly Interface Facilitating High-Throughput Computing|
 | and Analysis Using VASP Code, arXiv:1908.08269 (2019)         |
 +---------------------------------------------------------------+

3. 准备 get_effective_mass.py 放置与 BAND.dat 同一目录下

脚本链接:

https://github.com/Chenzhiyong47/VASP/blob/main/scripts/get_effective_mass.py

在这里插入图片描述

4. 根据 KPOINTS 修改get_effective_mass.py 的 33 行

k-points along high symmetry lines
80
Line mode
Rec
0       0       0       ! G
0.5     0       0       ! X

0.5     0       0       ! X
0.5     0.5     0       ! S

0.5     0.5     0       ! S
0       0.5     0       ! Y

0       0.5     0       ! Y
0       0       0       ! G

在这里插入图片描述

高对称点路径有 4 条,每条 80 个点,所以
K_lists = [80, 80, 80, 80]
修改拟合的点数,第 39 行,设置 num_sample_points (一般 3-6 个):
    def __init__(self, num_sample_points=3):

5. 运行:

python3 get_effective_mass.py
结果(每一条路径都对应着 KPOINTS 中的高对称点的路径):
chen@chen225:~/3_band> python3 get_effective_mass.py 
第 1 条路径的 VBM 的有效质量: -2.63613 m0
第 2 条路径的 VBM 的有效质量: -5.66817 m0
第 3 条路径的 VBM 的有效质量: -2.08253 m0
第 4 条路径的 VBM 的有效质量: -1.99425 m0
第 1 条路径的 CBM 的有效质量:  0.18930 m0
第 2 条路径的 CBM 的有效质量:  0.28097 m0
第 3 条路径的 CBM 的有效质量:  0.19301 m0
第 4 条路径的 CBM 的有效质量:  0.18294 m0
......

6. 手动验证:

结果中会生成 “VBM” 和 “CBM” 两个文件

VBM: 里面放着最高价带的数据

chen@chen225:~/3_band> cat VBM
           K     bands
0    2.42152 -0.186250
1    2.41591 -0.186102
2    2.41030 -0.185659
3    2.40469 -0.184932
4    2.39908 -0.183932
5    2.39347 -0.182678
6    2.38786 -0.181191
7    2.38225 -0.179495
.
.
.

CBM: 里面放着最低导带的数据

chen@chen225:~/3_band> cat CBM
           K     bands
0    0.00000  1.289283
1    0.00972  1.291278
2    0.01943  1.297230
3    0.02915  1.307045
4    0.03887  1.320572
5    0.04858  1.337613
6    0.05830  1.357930
7    0.06801  1.381264
8    0.07773  1.407335
9    0.08745  1.435859
.
.
.
手动导入 Origin 画图分析:

Python 脚本通过 vaspkit 生成的能带数据文本 BAND.dat 计算有效质量_第1张图片



origin 拟合的二次系数: -1.439

In [30]: c = -1.439   # 二次系数

In [31]: from scipy.constants import physical_constants
    ...: 
    ...: eV_to_hartree = physical_constants['electron volt-hartree relationship'][0]
    ...: bohr_to_m = physical_constants['Bohr radius'][0]
    ...: angstrom_to_bohr = bohr_to_m / 1e-10

In [32]: cof_ = angstrom_to_bohr**2 / eV_to_hartree  # 单位转换系数

In [33]: effective_mass = 1 / 2 / c * cof_

In [34]: effective_mass
Out[34]: -2.6476595664633207
和上面 “第 1 条路径的 VBM 的有效质量: -2.63613 m0” 结果相近

你可能感兴趣的:(Python,python)