vasptool提取真实能带与DOS
读取集群实算Si和NaCl输出,解释费米参照并绘制数据。
阅读本篇目录
下载完整输入、结果和复跑脚本。解压后在集群运行 bash run.sh,结果位于 work/,原结果在 reference/。这是19个工具流程的实操资料,不会自动启动新的VASP计算。
1 先有计算结果,再做提取#
本例处理集群已完成的Si能带和NaCl DOS。下载包包含所需科学结果,按 run.sh 先复跑;也可在解压目录分别操作:
module load vasptool/1.5.2
cp -r inputs/bands si-bands
cd si-bands
vasptool 211
该入口从EIGENVAL等文件提取数据,输出 REFORMATTED_BAND.dat 和 FERMI_ENERGY。本例40个k点、32条能带,第一列为路径距离,后32列为能量。
实际Si前置计算使用ENCUT=550 eV、EDIFF=1E-6、32条带,非自洽部分:
ICHARG = 11
ISTART = 0
IBRION = -1
NSW = 0
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LORBIT = 11
NBANDS = 32
需要同一体系共同SCF的电荷作为前置输入。教程完整INCAR在 inputs/bands/INCAR;此处后处理无需重新跑VASP。
本次KPOINTS是两个实际线段:
Si Gamma-X-L
20
Line-mode
Reciprocal
0 0 0 ! GAMMA
0.5 0 0.5 ! X
0.5 0 0.5 ! X
0.5 0.5 0.5 ! L
20点×2段=40点,共用X端点按两段各自保留。这份计算路径与入门页生成的完整六段路径是两个示例,不要互换标签或本征值。
2 明确纵轴的零点#
工具读取的费米参照为5.896093 eV,格式化数据为E−Eref。逐点对照原始EIGENVAL,相差不超过0.00005 eV,来自输出保留四位小数。
对半导体,费米参照不一定等于价带顶,更不是真空能级。若要将价带顶设为0,需要先按占据和实际能带确定VBM,再统一平移;不要直接修改图的标注。

3 NaCl总DOS#
回到解压目录:
cp -r inputs/dos nacl-dos
cd nacl-dos
vasptool 111
按提示输入 1,生成 TDOS.dat。本例301个能量点,DOSCAR中的费米能为−0.50722876 eV。第一列已减去这一参照;不要在画图脚本中再减一次。
module load ase/3.29.0
python - <<'PLOT'
import numpy as np
import matplotlib.pyplot as plt
x = np.loadtxt('TDOS.dat')
plt.plot(x[:, 0], x[:, 1])
plt.xlabel('E - Eref (eV)')
plt.ylabel('DOS (states/eV)')
plt.axvline(0, color='gray', linestyle='--')
plt.tight_layout()
plt.savefig('dos.png', dpi=250)
PLOT
总DOS用于观察态的分布。轨道投影、自旋分量和投影能带需要相应的计算设置及匹配输出,不能从这个总DOS示例直接推断某个原子的轨道贡献。
4 处理自己的结果#
先确认计算正常结束,EIGENVAL/DOSCAR/OUTCAR对应同一任务,结构和k点没有混放,再运行相应菜单。格式化后保留原始文件,以便核对能量零点、单位和点序。多段结果的拼接请沿用分段能带教程。