VASP核空穴与XANES近边吸收
用金刚石C16模型学习吸收原子分组、核空穴输入、空带检查与光谱提取。
阅读本篇目录
XANES关注从指定核能级跃迁到未占据态的近边吸收。它与普通价带光学吸收使用不同的初态,不能把LOPTICS产生的可见/紫外光谱直接当作X射线谱。这里用金刚石模型演示VASP的超胞核空穴流程。
1. 建模并单独标记吸收原子#
本例采用晶格常数3.567 Å的理想金刚石结构,将2原子原胞扩成2×2×2,得到16个C原子。计算保持几何固定,模拟电子激发时的垂直响应,没有优化带核空穴的结构。
把第一个C定义成单独的元素组,POSCAR写成:
C C
1 15
POTCAR也要按两组依次放入相同版本的C PAW数据。这不表示两种元素,而是让程序只在第一组的一个原子上产生核空穴。坐标顺序必须与分组一致。VASP核空穴超胞设置
16原子只是演示规模。真正计算孤立核空穴的体材料谱,需要增大超胞并检查周期核空穴之间的相互作用;本例的96/160条带比较只检查空带数量,没有证明超胞尺寸已收敛。
2. 设置C的K边激发#
本例PBE PAW64、550 eV、EDIFF=1E-6、3×3×3 Gamma网格。关键输入为:
ICORELEVEL = 2
CLNT = 1
CLN = 1
CLL = 0
CLZ = 1.0
CH_LSPEC = .TRUE.
CH_SIGMA = 0.05
CH_NEDOS = 4001
NBANDS = 160
IBRION = -1
NSW = 0
CLNT是元素组编号,CLN=1、CLL=0选中1s。CLZ=1表示一个完整核空穴;本例不手动指定NELECT,采用VASP默认的XCH处理,把激发出的核电子放入价/导带电子数中,保持对应的中性激发模型。其他核空穴电荷处理不能混着比较。
分别进入diamond-xch-96和diamond-xch-160目录,准备好上述两组合法C POTCAR后提交:
sbatch run.sh
核空穴会改变局域受力,但本例是固定几何的电子激发计算,不能用它的受力声称激发态结构已优化。若研究结构弛豫,则是另外的物理问题。
3. 提取并比较光谱#
module load ase/3.29.0
python extract_core_spectra.py
脚本读取核空穴计算自己的vasprun.xml,取三个对角分量平均,并额外施加标准差0.30 eV的高斯展宽用于展示。输入中的0.05 eV是数值谱宽;额外展宽也不是本次计算得到的核空穴寿命。改变展宽应保留原始数据。CH_LSPEC和谱宽说明

图中两条曲线使用同一个强度尺度和同一个横轴零点:160条带计算在输出能量38–65 eV窗口内的展宽后主峰。它仅用于比较谱形,不是实验吸收边的绝对定位。
在VASP输出能量39–60 eV区间,将两条展宽曲线插值到同一网格后,均方根差除以160条带曲线峰高为0.085%。这说明本小模型在该窗口对96→160条带的变化较小;更高能量区间需要更多空带,仍须分别检查。
4. 用于自己的材料#
先确定元素、吸收边和吸收位点,再逐项检查超胞、k点、空带、截断能及展宽。在不等价位点较多的体系中,应分别计算各位点,再按实际占位和测量几何组合;偏振谱不能一律取三个方向平均。
绝对能量对齐、核空穴屏蔽和实验展宽会影响比较。本页展示可复现的C16核空穴与空带检查流程,没有给出已收敛的金刚石实验XANES预测,也不包含远边EXAFS分析。
两组计算均在鸢算科技集群通过Slurm完成,使用NVHPC25.3、CUDA12.8及配套MPI构建的vasp/6.6.1-p100,vasp_std。