VTST:带中心与能量窗口
实际计算硅p带和钴d带中心,说明积分窗口、自旋符号及Total States输出。
阅读本篇目录
带中心不是只由元素名称决定的一个固定数字。选择哪些原子、哪些轨道、什么能量窗口,都会改变所计算的量。本篇实际运行 dosanalyze.pl,给出Si₂的p轨道与Co的d轨道结果。
1. 先读资料包结果#
下载实际DOSCAR、结构、输入及读取绘图程序,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd vtst-DOS-analysis
bash read.sh
bash plot.sh
默认读取附带结果,CSV在 analysis-read,图片在 figures。需要重新执行轻量后处理时运行 bash run.sh,随后用 bash read.sh work-new 和 bash plot.sh 读取新结果;不会重新提交VASP。

准备文件和列格式见DOS拆分与求和。本篇使用VTST 1040及Perl,直接处理已有VASP输出。
2. 看全能区的Co d带中心#
cd reference-results/Co-oneheader
perl "$VTSTSCRIPTS_ROOT/dosanalyze.pl" d 1-1
d 选择d分量,1-1 选择第1个原子。本目录保留单行注释与19列自旋分辨数据,便于旧式Perl读取。
实际输出:
Total States: 1138.2353361
Average Energy (band center): 1.24791389197324
Standard Deviation: 6.53986641323883
能量已相对费米能,带中心与标准差单位都是eV。
3. 限定−6~2eV后再算#
perl "$VTSTSCRIPTS_ROOT/dosanalyze.pl" e=-6,2 d 1-1
实际结果变成:
Average Energy (band center): -1.61026588365665
Standard Deviation: 1.65144818617366
这是另一种能量范围定义,并不与全能区结果矛盾。论文或报告中应同时写清原子选择、轨道和窗口。
4. 硅为什么选p,而没有照抄d#
本例Si所用投影中d通道为零;把零权重通道交给带中心计算没有意义。应先看实际投影,再选取非零的p通道:
cd ../Si2-oneheader
perl "$VTSTSCRIPTS_ROOT/dosanalyze.pl" p 1-2
perl "$VTSTSCRIPTS_ROOT/dosanalyze.pl" e=-6,2 p 1-2
| 体系与分量 | 全能区中心(eV) | −6~2eV窗口(eV) |
|---|---|---|
| Si₂,两原子p分量 | +6.347553 | −2.298132 |
| Co,d分量 | +1.247914 | −1.610266 |
本例的有限网格与展宽仅用于操作演示,不能将该数值视为任意计算设置下的材料常数。
5. 带中心怎么定义,Total States又是什么#
带中心 = Σ(E_i × DOS_i) / ΣDOS_i
标准差 = sqrt[Σ(E_i² × DOS_i)/ΣDOS_i − 带中心²]
上下自旋画图时常把向下通道画成负值;计算总投影权重时应还原为两个正的物理通道之和。脚本对本篇输入按其符号约定进行组合。
1040版输出的 Total States 实际是所选网格点DOS值的直接求和,没有乘能量步长。因此它不能直接当作积分态数或电子数。带中心中的分母、分子同时采用相同离散权重,相关结果可按上式重建;要报告物理积分态数,应另外明确能量网格、积分方法和单位。
cd ../..
bash read.sh
cat analysis-read/VTST-DOS-band-moments.csv
下载实际带中心结果。read.py 给出独立按数值求和的过程,便于换成自己的原子与能量窗口。