VASP与外部DFT-D4色散修正
用双层石墨烯固定结构实算,演示PBE能量与独立D4修正的组合。
阅读本篇目录
如果手中的VASP可执行文件没有链接外部D4库,仍可以对固定结构单独计算D4色散能,再与同一几何的基础DFT能量组合。本例展示这个能量后处理流程,不把它称为已经接入VASP结构优化器。
1. 先计算不含色散项的PBE能量#
沿用层间距离扫描的4C双层石墨烯:层间距3.0、3.4、3.8、4.4 Å,横向晶胞和堆垛不变,z方向20 Å。VASP 6.6.1 P100,PBE PAW64,11×11×1 k网格、ENCUT=550 eV、EDIFF=1E-6、NSW=0、IVDW=0。
VASP构建使用NVHPC 25.3、CUDA 12.8、MKL 2023.2及配套MPI。这里全部是固定结构单点能,不需要把瞬时力压到结构优化阈值。
2. 对同一POSCAR运行D4#
本例调用集群CP2K工具链内的独立DFT-D4 4.2.0程序,CPU执行,链接OpenBLAS 0.3.33。它是独立色散程序;不会因为Slurm资源位于GPU节点就自动使用GPU加速。
在每个模型目录提交附件的run_d4.sh。实际调用的核心选项是:
dftd4 POSCAR --func pbe --json
附件脚本已写好集群程序位置,客户只需sbatch run_d4.sh。POSCAR保留周期晶胞,D4会按周期格式处理;不要为了方便转换成不含晶胞的普通XYZ,否则周期模型就变了。DFT-D4官方说明
本次使用默认EEQ电荷模型、PBE的阻尼参数与ATM三体项(s9=1)。它不是从VASP读取Bader电荷,也不是另一个名为libMBD的多体色散实现。
3. 统一单位并相加#
ED4(eV) = ED4(Hartree) × 27.211386245988
EPBE+D4 = EPBE + ED4
DFT-D4的JSON能量单位为Hartree,本例通过文本输出中的Eh标识一并核对。只有同一结构、同一基础泛函、相同周期边界的能量才可以这样组合。若VASP已加入D3、D4或其他色散项,不能再直接加一次本修正。
4. 本次结果#
| 层间距 / Å | D4修正 / eV每4C晶胞 | PBE相对能 / meV C⁻¹ | PBE+D4相对能 / meV C⁻¹ |
|---|---|---|---|
| 3.0 | -0.603897 | 34.4826 | 1.8140 |
| 3.4 | -0.554260 | 8.3217 | -11.9376 |
| 3.8 | -0.513784 | 1.5728 | -8.5676 |
| 4.4 | -0.473222 | 0.0000 | 0.0000 |

两条曲线各减去自己的4.4 Å参照,再除以4个C原子。本模型四个采样点中,PBE+D4在3.4 Å点能量最低;这只是离散扫描结果,不能把3.4 Å直接当作已经精确优化的平衡距离。
D4修正的绝对值包含层内和层间等周期贡献。4.4 Å也并非无限分离,所以相对能不能称为严格层间结合能;求结合能还需要一致的分离层参照。
5. 怎样用于结构优化#
固定几何后处理只给出本次选定结构的能量。若要用PBE+D4优化结构或晶胞,需要在每个优化步一致地提供D4力与应力,或使用已正确链接D4的VASP分支。不能先用纯PBE得到结构,再只加一个能量数字就说完成了PBE+D4优化。
输入和提取#
先在四个graphene-bilayer-pbe目录运行VASP的run.sh,再在相同目录提交run_d4.sh。全部结束后,在包根目录运行python extract_d4.py,读取自己的vasprun.xml和dftd4.json,输出D4-DATA.json。附件不含POTCAR;原始图是本次实际计算的参考结果。