VASP 专题

VASP Libxc实操:能量、力与一致性

用五版本80个实际结果读取完整自由能、原子力与应力,解释水分子的小能量偏移及相对能量比较。

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

完成输入与提交后,本篇说明“从哪里读结果、怎么比较、哪些量不能混用”。对照的是同版本、同一固定几何与PAW下的内置泛函和Libxc实现,不用不同方法绝对总能的高低判断谁更准确。

1. 先把参考数据重新提取出来#

下载五版本Libxc实算包,新目录解压:

python3 -m zipfile -e vasp-Libxc-five-version-wave306-*.zip .
cd vasp-Libxc-five-version-wave306
bash run.sh

结果在results/implementation-differences.csv、water-energy-controls.csv和DATA.json;三张图在plots/。reference/fields/保留全部80个条件的完整坐标、力、应力、晶胞、元素和电子自由能数组,不抽样,也不把能量人为平移到重合。

head results/implementation-differences.csv
cat results/water-energy-controls.csv
ls reference/fields | head

2. 从自己的vasprun.xml读完整结果#

若自己的计算放在my-Si:

module purge
module load pymatgen/2026.9.24
python read_vasp_result.py my-Si --output my-result
cat my-result/result.json

读取器已在本组五个版本的实际XML上使用。my-result/fields.npz和JSON包含完整坐标、晶胞、力、应力与e_fr_energy。结构的分数坐标按实际晶胞转成Å;力为eV/Å,应力为kbar。

这里的能量是电子自由能/TOTEN。 要比较energy(sigma→0)或其他定义,须对全部条件统一读取同一字段;不要一边用自由能,一边用零展宽能量。晶胞应力也不应直接改标签当成GPa,1 kbar=0.1 GPa。

3. 六种实际对照怎么看#

下表只展开6.6.1,另外四个版本的完整结果在CSV中。

同几何对照 Libxc−内置 / µeV·cell⁻¹ 最大力分量差 / µeV·Å⁻¹
Si-PBE -0.350000 0.120000
Si-SCAN -2.170000 0.010000
Si-r2SCAN 0.000000 0.000000
Si-PBE0 -0.360000 0.180000
water-PBE -35.310000 8.290000
Fe-PBE -0.210000 0.250000

五版本实际能量与全原子力分量差

图中的能量按原子归一,表格按整个晶胞,使用时注意分母。最大力差取全部原子、三个笛卡尔分量中的最大绝对差,不是某个原子的力模。不同版本各自配对,不把一版内置能量与另一版Libxc能量直接相减。

4. 水分子为什么有一个小偏移#

本组600 eV固定水分子的自由能差为:

VASP版本 Libxc−内置 / µeV·H₂O晶胞⁻¹
6.6.1 -35.310000
6.5.1 -37.190000
6.4.3 -37.180000
6.4.2 -35.310000
6.3.2 -35.310000

这是真实保留的绝对能量差,不是把两个实现拟合到重合。内置与Libxc计算路径的细节并不要求每个绝对能量逐位一致;这组数据也不证明任意体系、任意泛函的差异都不超过表中数值。

实际使用时,选择一种实现并保持一致。比较吸附前后、不同构型或反应物与产物时,不要把内置PBE的一部分绝对能量与Libxc PBE的另一部分拼接。

5. 用相同变化检查响应#

本组还分别做了600→900 eV和同一原子位移的成对计算:

  1. 两个实现都改变相同参数或相同坐标。
  2. 分别计算自己实现内部的能量变化。
  3. 再比较这两个变化的差,而不是先人为减掉一个拟合常数。

水分子绝对偏移与两种实际响应对照

从600提高到900 eV,两个实现的偏移变化约0.04–0.05 µeV/晶胞;同一位移后约0.07–0.09 µeV/晶胞。原始35–37 µeV级绝对偏移仍然存在。这里展示的是这组有限模型的响应一致性,不给出所有材料的误差上限。

cat results/water-energy-controls.csv
cat inputs/6.6.1/water-high-cutoff-libxc/INCAR
cat inputs/6.6.1/water-displaced-libxc/POSCAR

读位移响应时保持相同结构变化、晶胞、赝势、泛函和版本;若又同时更改了基组、展宽或电子数,就不能把差值只归因于那一个位移。

6. 哪些数值需要保留原始精度#

XML的力和晶胞通常比OUTCAR摘要打印得更细。本次OUTCAR体积只保留两位小数,因此与完整XML晶胞行列式存在舍入差别;不能把摘要的小数位数当成新物理差异。资料包保留XML导出的完整数组,没有强行把力舍入为零或把体积改成摘要值。

本文五版本的PBE0对照仍按原始较严格的1E−6 eV/原子能量差、1E−5 eV/Å力分量差检查;SCAN/r²SCAN按原对应范围分别处理。水分子的绝对能量对照高于1E−6 eV/原子的参考精度,因此不建议跨实现混用其绝对能量;相对变化与力应各自核对。

7. 最后留下哪些结果#

自己的新计算保留my-Si/及my-result/;附件参考比较保留results/和plots/。前者回答“我这次算到了什么”,后者回答“本组已知条件下的数值大概怎样”。全部参考为静态比较结构,带较大原子力并不表示它已完成优化;做平衡性质请先用一致设置优化自己的体系。

运行环境与完整输入见Libxc输入教程,一般版本范围见Libxc版本指南。

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

查看配图

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

100%查看原图 ↗