CP-VASP恒电势电极入门
用铜表面展示固定几何下调节电子数、匹配目标电子化学势的实际流程。
阅读本篇目录
通常的VASP计算固定电子数。电极连接外部电子库时,则可以交换电子;恒电势计算需要在电子数变化的同时满足指定电子化学势。本例用CP-VASP与VASPsol++,在固定Cu(111)表面上走通这个过程。
1. 本例的结构与环境#
Cu晶格常数3.63 Å,1×1面内原胞、4层铜,上下各8 Å非原子区域。在连续介质电解液模型中,这些区域由溶剂/电解液填充,不是显式水分子。两侧都接触相同环境,面积均为5.705765 Ų。
本例保留理想固定原子位置,只比较电子充放电响应,不声称完成恒电势结构优化、反应或分子动力学。中性单点原子力可非零,不使用0.02 eV/Å优化标准来判定固定几何扫描。
软件为vasp/6.3.2-8173m-cpvasp,CP-VASP v2结合VASPsol++;Intel oneAPI 2023.2编译,现有模块提供所需运行库。本例在Slurm分配的计算节点使用4个CPU进程,属于CPU程序计算。附件脚本可直接提交,不在登录节点运行VASP。
PBE PAW64、ENCUT=550 eV、EDIFF=1E-6、7×7×1 Gamma网格、40条能带、ISMEAR=0、SIGMA=0.1 eV。溶剂设置为:
LSOL = .TRUE.
ISOL = 2
C_MOLAR = 1.0
R_ION = 2.0
EFERMI_ref = 0.0
EFERMI_ref=0关闭VASPsol++自身的电子数控制,随后由CP-VASP控制;不要同时开启两套恒电势控制。
2. 先计算中性参照#
进入附件calculations/cu-neutral,准备合法Cu POTCAR,运行sbatch run.sh。这一步NELECT=44、LCEP=.FALSE.,仍是固定电子数计算。其费米能为-4.70300 eV。
这里把该模型中性状态作为相对电势零点;这个数值不是通用于其他体系的TARGETMU,也没有完成相对标准氢电极SHE的绝对标定。
3. 生成三个目标电势,再提交#
回附件根目录运行python prepare_targets.py。它读取你自己的中性计算结果,将目标电子化学势设置为μ₀−0.2、μ₀、μ₀+0.2 eV。然后分别进入cu-mu-minus、cu-mu-zero、cu-mu-plus,准备同一套Cu POTCAR,提交sbatch run.sh。
关键参数:
LCEP = .TRUE.
NESCHEME = 1
FERMICONVERGE = 0.001
NELECT = 44
INIT_ECHANGE = 0.01
ECHANGE_MAX = 0.03
CAP_MAX = 2.0
NEADJUST = 1
LSOLOFF = .FALSE.
IBRION = -1
NSW = 0
TARGETMU由准备脚本写入。NELECT=44在这里是起点,程序会调整它。FERMICONVERGE控制化学势残差,与电子自洽EDIFF是不同标准;两者都要满足。电荷调整幅度和电容上限是迭代参数,不是最终物理电容。
4. 检查实际结果#
每个任务的stdout.log含CPM-ion摘要,列出最终电子数、化学势、目标值和GCE。全部完成后,在附件根目录执行:
module load ase/3.29.0
python extract_constant_potential.py
| 目录 | 目标μ / eV | 实际μ / eV | 电子数 |
|---|---|---|---|
| cu-neutral | -4.70300 | -4.70300 | 44.000000 |
| cu-mu-minus | -4.90300 | -4.90340 | 43.976314 |
| cu-mu-zero | -4.70300 | -4.70300 | 44.000000 |
| cu-mu-plus | -4.50300 | -4.50390 | 44.024118 |

本例结果展示电子数如何改变以匹配目标μ。电子化学势增加对应电极电势降低:ΔU=−Δμ/e。文件名的minus、plus指μ变化,不能反过来当成电极电势的正负号。
5. 如何比较能量#
不同电子数的原始总能量不能直接当作反应自由能比较。恒电势需要包含电子库贡献的巨正则势;应按照所用程序的GCE定义、溶剂修正和同一电势参考处理,再补充相应振动、溶液与标准态项。本例只展示定几何充电,不将三个不同目标μ的原始能量差解释成反应势垒。
接下来可看电极电荷与模型电容。更换材料时需要重新检查层数、非原子区域厚度、k点、溶剂参数和电势参照;绝对电势或零电荷电势需要独立标定。