VASP 专题

VASP的TDDFT与Casida光学响应

从Si基态和空带出发,实际计算Casida线性光学响应并提取介电函数。

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

已经会做独立粒子光学计算后,可以进一步学习如何加入响应核。本例用Si原胞演示基态→空带→Casida响应→介电谱的流程,使用PBE的局域交换关联核与Hartree项,没有开启电子空穴ladder项。

1. 先完成基态计算#

准备两原子Si原胞,PBE PAW64,ENCUT=550 eV、EDIFF=1E-6、3×3×3 Gamma网格,固定几何。附件si-manybody-scf目录使用LWAVE=.TRUE.保存自己的WAVECAR。

sbatch run.sh

等该任务完成,再在下载包根目录运行python prepare_response.py,选1,将自己的基态WAVECAR复制到si-manybody-exact目录。

2. 补充空带和光学矩阵元#

si-manybody-exact使用ALGO=Exact、NELM=1、NBANDS=64、LOPTICS=.TRUE.,读取上一步波函数并对角化,得到WAVECAR和WAVEDER。这里NELM=1是固定已收敛基态的空带步骤,不是只做一轮SCF就接受未收敛基态。

任务完成后再次运行prepare_response.py,选2,复制这两个文件到Casida和时间传播目录。更换结构、k点、PAW或NBANDS后,应重新生成相应文件,不能混用其他任务的波函数或矩阵元。

3. 提交Casida响应任务#

进入si-pbe-casida,准备同一套POTCAR后sbatch run.sh。关键设置:

ALGO = TDHF
NBANDS = 64
NBANDSO = 4
NBANDSV = 8
LHARTREE = .TRUE.
LFXC = .TRUE.
LADDER = .FALSE.
ANTIRES = 2
IBSE = 2
CSHIFT = 0.1
OMEGAMAX = 15

ALGO标签虽然叫TDHF,本次具体核设置对应TDDFT的PBE局域核近似,不是100%精确交换的TDHF。NBANDS是文件中的总带数,NBANDSO/NBANDSV是纳入响应的占据/空带数,本例使用第1–4与第5–12条带;ANTIRES=2包含反共振部分。VASP的TDDFT计算说明

4. 提取介电函数和跃迁信息#

module load ase/3.29.0
python extract_tddft.py

脚本读取Casida与时间传播两个目录的vasprun.xml、OUTCAR,生成结果JSON。只想先看单个结果,也可直接读取XML中的dielectricfunction;光学跃迁写在opticaltransitions数组。

vasp-tddft-casida 实算结果

当前小网格中,最低列出的跃迁能为2.5182 eV;按输出强度大于0.001筛选的第一个亮跃迁为2.5213 eV。1–10 eV范围内ε₂,xx最大值位于2.700 eV,峰值187.1847。这些数值属于当前有限k点、有限跃迁空间,不作为Si实验吸收峰预测。

最低跃迁、首个亮跃迁和展宽后的最大谱峰是不同概念。也不能用这几个数直接宣布得到激子结合能;本次局域核没有完整长程电子空穴吸引描述。

5. 换成自己的材料#

先收敛基态,再逐项增加k点与响应空带数,检查谱峰和强度。CSHIFT控制数值展宽,不能当作计算得到的材料寿命。响应截断本例ENCUTGW=150 eV,也应做相应检查;不能只因图形平滑就认为谱已收敛。

本次响应使用VASP6.6.1 CPU构建,oneAPI2024.2,4个MPI进程,通过Slurm在兼容宿主CPU上运行,不宣称TDDFT GPU加速。前置基态/空带使用对应P100构建,流程中各步模块已写入run.sh。

下载输入、结果与提取脚本(ZIP)

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

查看配图

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

100%查看原图 ↗