QE专题

QE:吸收谱重绘、展宽与偏振方向

用真实XSpectra数据比较占据态裁剪、两档展宽、缓存重绘及独立x/z偏振。

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

1. SCF之后再算吸收谱#

接续金刚石模型与芯态准备。这里比较实际计算的有/无芯空穴两套吸收谱,说明哪些参数可以直接重绘,哪些参数需要新的Lanczos计算。

下载两套SCF与XSpectra完整输入、实际输出、光谱CSV和绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd qe-xspectra-carbon
module load ase/3.29.0
bash read.sh
bash plot.sh

这会读取实际完成的结果生成图表,不会重新运行电子结构计算。新计算需先准备赝势,再提交作业。

2. 完整XSpectra输入#

xas.in:

&input_xspectra calculation='xanes_dipole',prefix='diamond',outdir='./tmp',xniter=1000,xcheck_conv=50,xepsilon(1)=1.,xepsilon(2)=0.,xepsilon(3)=0.,xiabs=1,x_save_file='diamond.xspectra.sav',xerror=.001 /
&plot xnepoint=401,xgamma=.8,xemin=-10.,xemax=30.,terminator=.true.,cut_occ_states=.false. /
&pseudos filecore='C.wfc',r_paw(1)=3.2 /
&cut_occ /
2 2 2 1 1 1

xiabs=1 选择第一种原子类型C_h;xepsilon 是偏振方向;x_save_file 保存本次Lanczos系数。xniter=1000 是最大迭代次数,xcheck_conv=50 是每50步检查一次;本例主要k点在约200步达到设定谱误差。xgamma 是原生展宽参数,单位eV。

filecore 指向上一步提取的1s芯态,r_paw 按此官方示例设为3.2。最后一行不是普通SCF K_POINTS卡片,而是XSpectra使用的网格和位移。

在相应计算目录、已分配CPU资源中运行:

xspectra.x -in xas.in > xas.out
mv xanes.dat xas.dat
grep "END JOB XSpectra" xas.out
head xas.dat

本版原生输出谱文件名为 xanes.dat,下一次运行会覆盖它,所以每次立即改为有意义的文件名。数据有两列:相对能量和程序原生sigma;本页保留native sigma口径,不额外假定实验单位。

3. 先观察占据态的影响#

原始 xas.in 设置 cut_occ_states=.false.,包括占据态贡献。这个版本是帮助理解选项的对照,不应直接把它当成只含空态跃迁的最终吸收谱。

两种模型实际原始谱与去占据态谱

打开占据态裁剪的重绘输入 replot-cut.in:

&input_xspectra calculation='xanes_dipole',prefix='diamond',outdir='./tmp',xonly_plot=.true.,xniter=1000,xcheck_conv=50,xepsilon(1)=1.,xepsilon(2)=0.,xepsilon(3)=0.,xiabs=1,x_save_file='diamond.xspectra.sav',xerror=.001 /
&plot xnepoint=401,xgamma=.8,xemin=-10.,xemax=30.,terminator=.true.,cut_occ_states=.true. /
&pseudos filecore='C.wfc',r_paw(1)=3.2 /
&cut_occ cut_desmooth=.1,cut_stepl=.01 /
2 2 2 1 1 1

执行:

xspectra.x -in replot-cut.in > replot-cut.out
mv xanes.dat replot-cut.dat

这里 xonly_plot=.true. 从同一个 diamond.xspectra.sav 重绘,不重新做SCF或Lanczos。cut_desmooth 和 cut_stepl 是裁剪数值控制,不是给整个材料引入新的温度或化学势。

4. 改展宽无需重算SCF#

replot-narrow.in:

&input_xspectra calculation='xanes_dipole',prefix='diamond',outdir='./tmp',xonly_plot=.true.,xniter=1000,xcheck_conv=50,xepsilon(1)=1.,xepsilon(2)=0.,xepsilon(3)=0.,xiabs=1,x_save_file='diamond.xspectra.sav',xerror=.001 /
&plot xnepoint=401,xgamma=.4,xemin=-10.,xemax=30.,terminator=.true.,cut_occ_states=.true. /
&pseudos filecore='C.wfc',r_paw(1)=3.2 /
&cut_occ cut_desmooth=.1,cut_stepl=.01 /
2 2 2 1 1 1
xspectra.x -in replot-narrow.in > replot-narrow.out
mv xanes.dat replot-narrow.dat

相同Lanczos系数在0.8和0.4 eV展宽下的实际谱

展宽变小后峰会更尖、细节更明显,也更容易暴露粗k网格和有限Lanczos精度。峰高变大不等于跃迁总强度变大,更不等于材料性能变好。

资料包另有 replot-identical.in:所有绘图条件与原始谱相同,仅打开缓存重绘,实际得到逐点一致的谱。用户可以先用它确认自己读取了正确的缓存文件,再改参数。

5. 换偏振方向需要新计算#

改变偏振向量会改变跃迁矩阵元,不能仅修改重绘输入就认为已算了新方向。xas-z.in 把偏振改为(0,0,1),关闭仅重绘,使用新的 diamond.z.xspectra.sav,保留原x方向缓存。

xspectra.x -in xas-z.in > xas-z.out
mv xanes.dat xas-z.dat

立方模型独立x和z方向的实际Lanczos光谱

本例两种模型的x/z有限窗口积分相对差都小于4×10⁻⁸,符合立方结构的方向等价关系。这个结果不能推广为所有晶体都没有偏振差异;低对称、二维和分子体系往往需要按实际测量方向计算。

6. 横轴不能直接当成绝对吸收边#

本例不显式指定谱零点,程序对绝缘体采用各自SCF的最高占据能级作为能量参考。因此图中能量是相对各自HOMO的能量,不是绝对X射线光子能量;两种模型也没有做绝对边对齐。

模型 去占据态,gamma=0.8 eV时峰位置/eV 相同条件峰高/native sigma
无芯空穴 13.1 0.166112
单芯空穴 11.6 0.195192

这些是本例有限窗口、各自能量参考下的数值,不应把1.5 eV差值直接写为绝对化学位移。正式比较实验还需要统一能量对齐、芯空穴近似、超胞、网格及寿命/仪器展宽。

7. CSV和图像#

head analysis-read/spectra.csv
cat analysis-read/spectral-summary.csv
ls figures

spectra.csv 汇总模型、处理阶段、相对能量和原生强度;摘要列出各自HOMO、峰位置、峰高和−10至30 eV有限窗口积分。有限窗口积分只是图中数据的积分,不等于完整吸收和规则或所有能量下的总振子强度。

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

查看配图

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

100%查看原图 ↗