VASP OER实操:静态、振动与气液参照
传递优化结构,计算吸附物振动,处理H2与H2O气相热力学,并明确液态水外部参照。
阅读本篇目录
下载Pt(111)四步OER自由能示例包,保存为example.zip:
python3 -m zipfile -e example.zip .
cd vasp-oer-free-energy-example
bash results.sh
这里的参考结果来自鸢算科技集群实际VASP计算,包含17个选定的优化、静态或振动任务目录;不是把示意能量填入台阶图。计算使用VASP6.6.1、NVHPC25.3、CUDA12.8、HPC-X2.22.1、MKL2023.2,P100/V10016G单卡;后处理使用ASE3.29.0环境的Python/NumPy。附件不包含POTCAR或WAVECAR,需自行准备有授权、与元素顺序匹配的PBE64势。
本例采用三层2×2 Pt(111)小表面、吸附物谐振近似与理想计算氢电极(CHE),用于说明操作流程。它没有显式水、电解液、电场响应、覆盖度系统比较或反应速率计算,不能将这里的数值当作真实电极的定量性能。
1. 静态能量与优化分开#
为每个优化结构新建静态目录,并传递自己的最终结构:
python3 prepare.py Pt-OH-static
cp work/Pt-OH-opt/CONTCAR work/Pt-OH-static/POSCAR
cd work/Pt-OH-static
# 准备同样顺序与版本的POTCAR
sbatch run.slurm
裸表面、O、OOH也同样处理。OOH静态目录名为Pt-OOH-rmm-polish-static。四个表面保持相同晶胞、k网格、ENCUT、展宽、偶极修正和相同元素的赝势。静态步骤IBRION=-1、NSW=0;读取统一的energy(sigma->0),不要将某一步的F与另一步的E0混合。
grep -F 'energy(sigma->0)' OUTCAR | tail -n 1
2. 只计算吸附物的振动#
OH有两个吸附原子,对应6个自由度;O有3个;OOH有9个。振动任务固定全部12个Pt,是吸附物谐振近似,并假设表面晶格振动贡献大体抵消。
# 回到示例根目录
python3 prepare.py Pt-OH-frequency
cp work/Pt-OH-opt/CONTCAR work/Pt-OH-frequency/POSCAR
cd work/Pt-OH-frequency
/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python ../../freeze_substrate.py
# 准备匹配的POTCAR
sbatch run.slurm
OH振动任务的实际INCAR如下;准备程序会按从头运行修改重启两项:
SYSTEM=Pt-OH small OER teaching
ENCUT=520
EDIFF=1e-6
EDIFFG=-.02
PREC=Accurate
LREAL=.FALSE.
LASPH=.TRUE.
ISYM=0
NSW=1
IBRION=5
ISIF=2
ISTART=1
ICHARG=0
LWAVE=.FALSE.
LCHARG=.FALSE.
LH5=.FALSE.
ISMEAR=0
SIGMA=.05
ALGO=Normal
NELM=160
ISPIN=2
MAGMOM=0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
NBANDS=112
LDIPOL=.TRUE.
IDIPOL=3
DIPOL=.5 .5 .5
NFREE=2
POTIM=.015
关键是IBRION=5、NFREE=2、POTIM=0.015 Å与正确的选择性固定。每个振动任务读取相应优化后的结构,不能拿裸表面的结构加几行原子就直接算热力学。
grep 'cm-1' OUTCAR

本例OH、O、OOH分别得到6、3、9个实频,OOH最低模约48.206 cm⁻¹。吸附物低频很软时,先检查残余力、位移量、SCF精度和局部构型;不能把虚频取绝对值再塞进振动自由能。即便是正低频,谐振子对表面平移/转动的近似也可能较粗,需要按研究目标改进。
3. 用H₂/H₂O建立参照#
python3 prepare.py H2-static
python3 prepare.py H2-frequency
python3 prepare.py H2O-static
python3 prepare.py H2O-frequency
把对应气相优化CONTCAR传入各自POSCAR,准备H或O/H势后逐个提交。孤立分子要将周期晶胞、k点、展宽及赝势定义保持清楚;本例12 Å立方盒子、Γ点。
H₂为线性双原子,只有1个内部伸缩振动;H₂O为非线性分子,有3个内部振动。其余3N−5或3N−6自由度属于刚体转动/平移,按理想气体处理,不再作为谐振振动求和。本例仍保留全部带符号的原始模式,使用真实内部模,不对虚频取绝对值。
| 参照 | 电子能E0/eV | ZPE/eV | 298.15 K、1 bar气相G/eV |
|---|---|---|---|
| H₂ | −6.77244961 | 0.26873826 | −6.81713563 |
| H₂O | −14.23335164 | 0.56757456 | −14.14704882 |
气相热力学由ASE IdealGasThermo计算,温度298.15 K、压力100000 Pa、对称数2、电子自旋0,分别用linear/nonlinear几何。附件read_gas.py包含完整设置。
4. 气态水不能直接冒充液态水#
本例在饱和蒸气压处用气液化学势相等近似,换到液态水参照。NIST在273–303 K范围的Antoine参数给出298.15 K饱和蒸气压0.03166749 bar;相对1 bar理想水蒸气,修正为kBT ln(psat/1 bar) = −0.08870269 eV,得到G(H₂O液) = −14.23575152 eV。
这是外部相态参照修正,不是本例额外做了液态水DFT,也不代表显式电解液的吸附溶剂化能。常数和适用温度范围已写入程序,不能换到高温后仍照抄数值。参照来源:NIST水的蒸气压参数。
气相与液态参照CSV、吸附物振动CSV均可直接下载。下一步把这些修正统一组合到四步OER自由能。