VASP 专题

VASP能带不可约表示与简并标签

用硅的实际波函数,在Γ、X、L点识别简并和对称性标签。

更新于 2026-10-25约 8 分钟阅读按任务与环境选择适用配置
阅读本篇目录

能带图上几条线重合,可能与晶体对称性有关。不可约表示给这些电子态附上对称性标签,帮助整理简并、轨道混合和交叉的分析线索。本例不要求先学完整群论:先准备波函数,再提取标签,最后把标签与能量和简并数放在一起看。

1. 示例和软件#

采用鸢算科技集群实际计算的两原子金刚石硅:Fd-3m空间群,编号227;PBE PAW64、ENCUT=550 eV、EDIFF=1E-6、6×6×6 Gamma网格、12条能带,未包含SOC。晶胞和原子位置固定,使用既有结构优化结果。

VASP 6.6.1的V100版本采用NVHPC 25.3/CUDA 12.8构建。本篇分析前8条能带,在Γ、X、L三点使用IrRep 3.3.0与irreptables 3.1.0读取WAVECAR,不需要修改VASP源码。

这里的“3重简并”指未显式包含SOC时的空间表示维数,没有再乘一个自旋因子2。加入SOC后,需要使用自旋波函数和双群表示,标签也可能改变。

2. 按顺序操作#

下载附件,先建立项目独立分析环境:

bash setup.sh

脚本基于集群的pymatgen/2026.9.24环境建立本目录irrep-env,安装固定版本的IrRep及表示表。首次需要联网,后续可复用。脚本包含Python 3.11的文件命名语法兼容适配,不改变对称性计算算法;不会修改公共软件环境。

在calculations/si-wavefunctions准备合法的Si POTCAR,回到附件根目录提交:

sbatch run.sh

脚本先运行VASP生成自己的WAVECAR,再在三个目录中执行表示分析:ecut50、ecut100、ecut550。WAVECAR是必要输入,不能只拿一张能带图或EIGENVAL代替。

本例需要理解的分析设置为:

-code=vasp
-kpoints=1,112,130
-kpnames=GM,X,L
-IBend=8
-searchcell
-Ecut=50

kpoints中的数字是当前WAVECAR的k点顺序,从1开始,不是任意材料通用编号。这里分别对应原胞倒格坐标(0,0,0)、(0.5,0,0.5)、(0.5,0.5,0.5)。换网格、换晶胞或改变对称性约化后,必须重新核对。

searchcell用于匹配表示表的标准晶胞和原点约定。能带标签必须与同一个晶胞、原点和自旋约定比较。

注意:IrRep的Ecut=50 eV只控制后处理读取的平面波子集,不是把VASP的ENCUT从550 eV降到了50 eV。

3. 实算标签怎样读#

以下能量以Γ点的三重价带为0。每一行代表一个简并能级组:

k点 相对能量 / eV 简并维数 IrRep标签
Gamma -11.8154 1 GM1+
Gamma 0.0000 3 GM5+
Gamma 2.5537 3 GM4-
Gamma 3.1332 1 GM2-
X -7.7467 2 X1
X -2.7954 2 X3
X 0.7487 2 X1
X 9.9343 2 X4
L -9.5364 1 L2-
L -6.8698 1 L1+
L -1.1790 2 L3-
L 1.4651 1 L1+
L 3.3460 2 L3+
L 7.6992 1 L2-

硅高对称点实际能级、简并和不可约表示

例如,Γ点能量零点对应GM5+,维数为3,说明这个能级组包含三个空间简并态。标签中的正负号属于当前标准原点约定下的反演宇称信息,不能直接当作“这是某个原子的s或p轨道”。要研究原子轨道成分,可以同时阅读轨道投影能带教程。

三组后处理截断能50、100、550 eV得到相同标签和简并维数,特征标的最大差异为1.72e-05。这说明本例的标签对该后处理截断设置稳定;并不代替DFT能带本身的k网格、泛函和赝势检查。

4. 提取结果及使用边界#

任务结束后运行:

module load ase/3.29.0
python extract_irrep.py

得到IRREP-DATA.json,包括三组设置的能量、标签、简并维数和稳定性比较。原始分析文件在各ecut目录的irrep-output.json、irreps.dat和irrep.log;参考汇总在RESULTS.json。

本例只选择三个高对称点,并且前8条能带包含空带。因此不使用软件自动打印的拓扑汇总来判断硅的拓扑性质,也不能用这三个点确定完整带隙。研究拓扑指标时,应重新定义占据子空间、所需高对称点集合及SOC/磁性约定。

不同标签为讨论能带混合和交叉提供线索;是否保护一个交叉,还取决于该路径上实际保留的对称性。不要仅凭两条线接近,就把它命名为Weyl点或拓扑节点线。

参考与下载#

IrRep官方说明、官方代码与标准晶胞约定。本文能量和标签来自集群实际VASP波函数。

下载输入、独立环境脚本、任务脚本及提取器

跟着输入文件操作#

下载本页附件后,先解压到单独目录。下面的目录名与附件一致。

unzip vasp-properties-batch29-*.zip -d vasp-example-29
cd vasp-example-29
cat README.txt

以下展开的是 calculations/si-wavefunctions 这一步的真实示例输入。多结构扫描、位移法和多阶段响应仍按正文顺序准备全部任务;改变材料时,结构、元素顺序和方法参数要一起修改。

cd calculations/si-wavefunctions
ls INCAR POSCAR KPOINTS
nano INCAR
INCAR:展开查看完整示例
SYSTEM = si-sp3
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
IBRION = -1
NSW = 0
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .TRUE.
LCHARG = .TRUE.
NELM = 150
ALGO = Normal
ISYM = -1
NBANDS = 12
POSCAR:展开查看完整示例
Si
 1.0000000000000000
     0.0000000000000000    2.7344629562984917    2.7344629562984917
     2.7344629562984917    0.0000000000000000    2.7344629562984917
     2.7344629562984917    2.7344629562984917    0.0000000000000000
 Si 
   2
Direct
  0.0000000000000000  0.0000000000000000 -0.0000000000000000
  0.2500000000000000  0.2500000000000000  0.2500000000000000
KPOINTS:展开查看完整示例
Gamma mesh
0
Gamma
6 6 6
0 0 0

关键参数对照:

参数 本例值 使用时注意
ISIF 2 决定原子、晶胞形状与体积的自由度;固定晶胞与晶胞优化要按本文目标选择。
IBRION -1 决定离子处理方式:−1为静态,0为分子动力学,2常用于优化;5/6等有限位移任务见正文。
NBANDS 12 控制计算能带数;光谱、响应和Wannier窗口通常需要额外空带。
LCHARG .TRUE. 控制是否写出CHGCAR;后续固定密度计算需要前一步保存该文件。
EDIFF 1E-6 电子自洽收敛阈值,单位eV;本组通常为1E−6。
EDIFFG -0.02 负值以力作为离子优化停止条件;静态、有限位移和MD任务不能据此声称结构已优化。

POSCAR的元素顺序决定POTCAR拼接顺序。Direct表示分数坐标,Cartesian表示笛卡尔坐标;有Selective dynamics时,F/T还限制相应原子的移动。KPOINTS第二行为0通常使用自动网格;显式列表、Line-mode路径和均匀网格用途不同,不能互换来做同一种积分。

这个输入由附件根目录的总脚本组织。按正文为各阶段准备POTCAR后,返回附件根目录提交整个流程:

cd ../..
sbatch run.sh
squeue -u "$USER"
run.sh:整个流程的执行顺序
#!/bin/bash
#SBATCH --job-name=vasp-example
#SBATCH --partition=gpu-8v100-16g-hs
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --gres=gpu:v100-16g:1
#SBATCH --time=04:00:00
#SBATCH --output=vasp-%j.log
set -eo pipefail
source /etc/profile
module purge
module load vasp/6.6.1-v100
ulimit -s unlimited
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1
export OMPI_MCA_coll_hcoll_enable=0 NO_STOP_MESSAGE=1
study_dir="$SLURM_SUBMIT_DIR"
cd "$study_dir/calculations/si-wavefunctions"
mpirun --bind-to none -np 1 vasp_std > stdout.log 2>&1
grep -q 'aborting loop because EDIFF is reached' OUTCAR
for cutoff in 50 100 550; do
mkdir -p "$study_dir/ecut${cutoff}"
cd "$study_dir/ecut${cutoff}"
ln -sf ../calculations/si-wavefunctions/POSCAR POSCAR
ln -sf ../calculations/si-wavefunctions/WAVECAR WAVECAR
"$study_dir/irrep-env/bin/irrep" -code=vasp -Ecut=${cutoff} -IBend=8 -kpoints=1,112,130 -kpnames=GM,X,L -searchcell > irrep.log 2>&1
done

作业结束后,在实际VASP输出目录查看最后几步:

tail -n 12 OSZICAR
grep "EDIFF is reached" OUTCAR | tail -n 3
grep "reached required accuracy" OUTCAR
ls -lh CONTCAR

静态计算不要求出现离子优化完成提示;优化任务还要检查最终自由原子力。性质专用输出和后处理仍按正文执行。附件中的参考图与RESULTS文件不会随着你的新任务自动更新。

需要选择后处理软件时,可对照实算教程中的辅助工具表。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗