VASP OER实操:四种表面与原子结构优化
从Pt111裸表面、OH、O、OOH开始,展示完整输入和提交步骤,讲清固定晶胞与原子优化。
阅读本篇目录
下载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. 整个流程先看一遍#
- 准备裸表面
*、OH*、O*、OOH*,并分别优化原子位置。 - 对各自最终结构做统一设置的静态能量计算。
- 固定全部Pt,只对吸附物做有限位移振动,得到零点及有限温度振动自由能。
- 计算H₂与H₂O的气相能量、内部振动及理想气体修正,并明确液态水参照。
- 用CHE组合四步反应自由能,加入电势修正,绘图并读取热力学限制步骤。
2. 本例的四种实际表面#

采用Pt晶格常数3.92 Å,每层4个Pt、共12个;底部两层8个Pt固定,最上层4个Pt及吸附物可以移动。平衡表面上下各约8 Å真空。本例O使用fcc位点,OH与OOH使用各自优化后的局部结构;没有穷举全部位点。图按吸附位点附近的周期最小镜像展示,坐标平移不改变实际结构。
这里优化的是原子位置,不优化晶胞。 ISIF=2保持同一晶格与表面积;孤立H₂/H₂O也只优化分子坐标,固定12 Å盒子。不要让表面真空随各个吸附物独立收缩,再直接比较总能量。
3. 准备一次优化#
以OOH为例,参考输入目录保留了实际使用的方法名:
python3 prepare.py Pt-OOH-rmm-polish-opt
cd work/Pt-OOH-rmm-polish-opt
cat POSCAR
cat INCAR
cat KPOINTS
# 在这里准备与POSCAR一致的Pt、O、H POTCAR
sbatch run.slurm
prepare.py创建独立工作目录,保留已有计算;无重启波函数时将ISTART=0、ICHARG=2设为从头开始。下列是资料包中的实际OOH优化INCAR,其原始ISTART=1对应已有重启文件;使用上面准备程序后以生成文件为准。
SYSTEM=Pt-OOH small OER teaching
ENCUT=520
EDIFF=1e-7
EDIFFG=-.005
PREC=Accurate
LREAL=.FALSE.
LASPH=.TRUE.
ISYM=0
NSW=80
IBRION=1
ISIF=2
POTIM=.1
ISTART=1
ICHARG=0
LWAVE=.TRUE.
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 0.0
NBANDS=112
LDIPOL=.TRUE.
IDIPOL=3
DIPOL=.5 .5 .5
NFREE=8
同一任务POSCAR:
Pt O H
1.000000000000000
5.5437171645025325 0.0000000000000000 0.0000000000000000
2.7718585822512662 4.8009998958550284 0.0000000000000000
0.0000000000000000 0.0000000000000000 20.5264261104466641
Pt O H
12 2 1
Selective dynamics
Direct
0.1666666666666643 0.1666666666666643 0.3897414950344640 F F F
0.6666666666666643 0.1666666666666643 0.3897414950344640 F F F
0.1666666666666643 0.6666666666666643 0.3897414950344640 F F F
0.6666666666666643 0.6666666666666643 0.3897414950344640 F F F
0.8333333333333357 0.3333333333333357 0.5000000000000000 F F F
0.3333333333333357 0.3333333333333357 0.5000000000000000 F F F
0.8333333333333357 0.8333333333333357 0.5000000000000000 F F F
0.3333333333333357 0.8333333333333357 0.5000000000000000 F F F
0.9942010713597957 0.9955539102667923 0.6213815473032946 T T T
0.4954757508742847 0.9942830993983345 0.6168314997129201 T T T
0.9945954240563172 0.4944968203497093 0.6177220011329373 T T T
0.4950614822977282 0.4950553789033046 0.6170988324876785 T T T
0.9986910545724644 0.9775628314509232 0.7199395852217840 T T T
0.0346332248245605 0.1885870694555665 0.7499469458065834 T T T
0.2392128982601511 0.1046028630306920 0.7501632142461466 T T T
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
KPOINTS:
TeachingGammaCentred
0
Gamma
2 2 1
0 0 0
Selective dynamics的F/T决定原子哪些方向固定;不要把Pt与O/H顺序重新排序后仍沿用原POTCAR。LDIPOL/IDIPOL=3与非对称表面法向z一致,四种表面的静态设置保持一致。这个2×2×1网格只属于本小模型,需要按自己的表面尺寸检查。
4. 其他结构怎样准备#
# 回到示例根目录后,分别创建
python3 prepare.py Pt-clean-opt
python3 prepare.py Pt-OH-opt
python3 prepare.py Pt-O-fcc-opt
python3 prepare.py H2-opt
python3 prepare.py H2O-opt
进入各个目录,核对元素顺序、准备POTCAR,再用其中的sbatch run.slurm提交。参考包中每种结构都有完整INCAR/POSCAR/KPOINTS。表面含金属和吸附物,使用自旋极化;本例孤立H₂/H₂O为闭壳层。
优化完先检查:
grep -F 'reached required accuracy' OUTCAR
cp CONTCAR POSCAR-final
普通表面与气相采用不超过0.02 eV/Å的受力要求;OOH为分辨软振动进一步细化到0.005 eV/Å,最终最大自由原子受力0.004822 eV/Å,O–O约1.42070 Å、O–H约0.98751 Å。只看电子SCF结束或NSW跑满,不能代替结构优化完成。下一步必须把你自己得到的CONTCAR传给静态和振动任务。