VASPsol++恒电势实操
用Cu(111)固定几何演示电子数外循环,给出完整INCAR、两目标化学势和逐步收敛结果。
阅读本篇目录
本专题用鸢算科技集群实际计算的H₂O、H₃O⁺与Cu(111)小模型,示范VASPsol++的非线性、非局域电解质和恒电势操作。使用 vasp/6.3.2-8173m-vtst-sol++ 的 vasp_std,原构建采用Intel ifort / oneAPI 2023.2和AVX-512,当前模块提供oneAPI 2024.2运行环境。它是CPU扩展构建,不能把其他版本VASP GPU的模块直接替换进本教程。
下载完整输入、数据、9张图和提取脚本,保存为 vaspsol-plus.zip:
python3 -m zipfile -e vaspsol-plus.zip .
cd vaspsol-plus-practical-wave283
bash preview.sh
ls preview/figures
examples/保存48个实际条件的INCAR、POSCAR和KPOINTS,reference/是相应数值表;预览只读取这些数值,不重新计算。POTCAR和VASP程序需使用您自己的授权资源。新的DFT任务通过Slurm提交。
1 固定电子数与固定电势有什么区别#
普通单点指定电子数,在SCF中求电子密度;恒电势计算还要调整电子数,使费米能接近指定电子化学势。这里使用两个目标:−4.6441和−4.1441 eV,来自本例中性Cu表面的费米能附近±0.25 eV,没有标定到SHE,不能直接把它们称为相对SHE的电极电压。

Cu(111)为8个Cu、2层有限薄板,吸附模型增加一个顶位H。前置结构准备使用PBE、450 eV、3×3×1电子网格,吸附H最后最大自由方向力约0.00483 eV/Å。下面的恒电势扫描冻结所有原子,研究的是同一几何的充电响应,不是重新优化每个电势下的吸附结构。
2 准备能真正调整电子数的外循环#
本构建的电荷更新位于离子外循环中;仅设置 EFERMI_ref却保留 NSW=0,不会完成这里需要的电子数外循环。全冻结结构也不要照搬共轭梯度零步长迭代。本例用阻尼外循环:
SYSTEM=Cu111-clean-mu-high
ENCUT=450
PREC=Accurate
EDIFF=1E-6
NELECT=88
NBANDS=64
ISPIN=1
ISMEAR=0
SIGMA=0.05
ALGO=Normal
NELM=180
IBRION=3
NSW=80
ISYM=0
LREAL=.FALSE.
LASPH=.TRUE.
LWAVE=.TRUE.
LCHARG=.FALSE.
LVHAR=.TRUE.
LSOL=.TRUE.
LSOL_SCF=.TRUE.
ISOL=2
C_MOLAR=1
R_ION=4
EFERMI_ref=-4.1441
EFERMI_tol=0.0001
capacitance_init=0.45
SMASS=2
EDIFFG=-0.02
ISIF=2
POTIM=0.1
ISTART=1
ICHARG=0
IBRION=3、SMASS=2、NSW=80保留外循环;原子在POSCAR中全部标为 F F F。因此即使允许最多80步,核坐标也不会移动,外循环用于达到目标化学势。EDIFFG=-0.02不是恒电势精度,真正控制目标误差的是 EFERMI_tol=0.0001 eV。
C_MOLAR=1提供离子屏蔽,EFERMI_ref<0启动此扩展的恒电势模式;capacitance_init是电子数更新的初始电容估计,单位e/V,本例使用1.0或0.45,不是材料已经测定的电容。
POSCAR:
Cu
1.00000000000000
5.1335952314143354 0.0000000000000000 0.0000000000000000
0.0000000000000000 4.4458238831514674 0.0000000000000000
0.0000000000000000 0.0000000000000000 26.0957814771583401
Cu
8
Selective dynamics
Direct
0.0000000000000000 0.3333333333333357 0.4598444392440797 F F F
0.5000000000000000 0.3333333333333357 0.4598444392440797 F F F
0.2500000000000000 0.8333333333333357 0.4598444392440797 F F F
0.7500000000000000 0.8333333333333357 0.4598444392440797 F F F
0.0000000000000000 0.0000000000000000 0.5401555607559203 F F F
0.5000000000000000 0.0000000000000000 0.5401555607559203 F F F
0.2500000000000000 0.5000000000000000 0.5401555607559203 F F F
0.7500000000000000 0.5000000000000000 0.5401555607559203 F F F
KPOINTS:
Referenceelectronicmesh
0
Gamma
3 3 1
0 0 0
3 提交并观察外循环#
先做同几何、中性固定电子数的1 M参照,保留其WAVECAR用于续算。随后复制相应恒电势输入:
cp -r examples/constant-potential-damped-rest/Cu111-clean-mu-high clean-high
cp submit.sh clean-high/
cp neutral-clean/WAVECAR clean-high/
cp neutral-clean/POTCAR clean-high/
cd clean-high
sbatch submit.sh
grep 'new NELECT' OUTCAR
grep 'EFERMI =' OUTCAR | tail
上面 neutral-clean指您自己已经完成的参照目录,可用 examples/extensions-stack-recovery/Cu111-clean-1M准备。若没有可匹配的WAVECAR,先完成参照;不要把来自不同结构、网格或势文件的波函数直接拼进来。
4 本例实际结果#
| 表面 | 目标μ / eV | 最终μ / eV | 最终NELECT | 外循环次数 |
|---|---|---|---|---|
| Cu8 | −4.6441 | −4.64401976 | 87.88377050 | 11 |
| Cu8 | −4.1441 | −4.14417538 | 88.08919189 | 8 |
| Cu8+H | −4.6441 | −4.64405374 | 89.00544746 | 7 |
| Cu8+H | −4.1441 | −4.14411935 | 89.14750258 | 6 |

这些次数只描述本例。正式研究还需要测试表面层数、横向尺寸、真空、k点、位点与溶剂参数。
下一篇吸附能参照解释为什么恒电势输出不能再重复减一次qμ。
5 提取本例的化学势与电子数#
head reference/constant-potential.csv
cat reference/constant-potential-iterations.csv
第一张表比较最终化学势、电子数与外循环次数;第二张表保存逐步误差。若已完成全部同结构输出目录,可用 bash prepare.sh ./raw 和 bash extract.sh重新提取,不需要为了画图再做电子计算。