用DFT算出来的能量,严格来说只是电子结构的基态能量——也就是0K下的内能。想要得到常温常压下的吉布斯自由能,需要把振动熵、零点能、热容矫正一层层加上去。
这个过程不复杂,但参数设置上有很多坑。比如用什么方法算振动频率?热力学矫正的温度范围怎么选?固体的熵贡献要不要算?这些问题处理不好,算出来的自由能偏差能到零点几电子伏特,对催化反应来说就是几个eV的误差。

室温下DFT能量和吉布斯自由能的关系是:G = E_DFT + ΔE_ZPE + ΔH(T) – TΔS。其中E_DFT是DFT计算的总能量,ΔE_ZPE是零点振动能,ΔH(T)是热焓矫正(包含热容积分),TΔS是熵贡献。固体材料的自由能计算主要在三个方面:振动分析(算零点能和熵)、热容矫正、热力学数据插入。
几何优化必须充分收敛。力的收敛标准设到0.01 eV/Å以下,电子收敛标准1E-6.优化完成后,用优化好的POSCAR做频率计算。
在IBRION=5或6的模式下,VASP会计算声子振动频率:
EDIFF = 1E-8
IBRION = 6
NFREE = 2
POTIM = 0.015
注意EDIFF要设得非常小,否则频率计算会不稳定。POTIM=0.015是常用值,NFREE=2用中心差分。
频率计算完成后,用vaspkit提取热力学数据:
vaspkit >> 21 >> 71
这一步会自动计算零点能(ZPE)、焓矫正 H(T) – H(0)、熵 S(T)、吉布斯矫正 G_corr。vaspkit会在当前目录生成thermo.out文件,里面有从0K到1000K不同温度下的热力学数据。
对于催化反应,ΔG = G(产物) – G(反应物)。以合成氨为例:ΔG = G(NH3) – [0.5G(N2) + 1.5G(H2)]。每种分子的自由能都用DFT能量加vaspkit输出的热力学矫正值。零点能、熵、温度效应全在里面了。
有一个重要细节:气态分子(N2、H2、O2等)的熵贡献很大,而且DFT对H2的能量计算本身就有系统误差。常用做法是用实验热力学数据替代DFT计算的熵和零点能:G(gas) = E_DFT + ZPE_exp + H_corr – T*S_exp。这样处理更接近实验值。
频率计算出现虚频说明结构不稳定。检查优化是否充分,或者结构本身是否在势能面上处于亚稳态。虚频会导致热力学矫正发散,必须先消除。表面物种(吸附态)的振动频率需要单独算,用来矫正其自由能。气体分子的振动频率可以用实验值。
回过头看,DFT计算吉布斯自由能的核心是振动分析——它把一个冷冰冰的0K能量,转化成了有温度、有熵、有物理意义的热力学量。这个转化过程本身,才是这门技术的价值所在。