CP-VASP目标电势扫描与收敛
按三个目标逐目录提交,检查每轮电子自洽和最终电势误差,提取电子数与电荷响应。
阅读本篇目录
unzip cpvasp-reference-adsorption-wave253-*.zip
cd cpvasp-wave253
bash run.sh
bash run.sh 只读取附件中已完成的集群计算数值摘录并画图,不启动VASP、不提交新作业。输出在 analysis/ 和 figures/。如需自己计算,下面按步骤准备输入、提交任务,再提取自己的输出。附件中的 .selected.txt 是从真实原生结果逐行选取的内容,不是可供接续计算的完整OUTCAR。
1 中性参照完成后再开恒电势#
先按中性电极与电势参照完成 work/cu-neutral 并运行 python prepare_targets.py。本例三个目标为−4.903、−4.703、−4.503 eV;实际使用时由自己的中性结果决定。
三个裸电极沿用相同Cu4结构、550 eV截断能和7×7×1网格,只改目标电子化学势。下面是中间目标的完整INCAR:
SYSTEM = Cu111 continuum electrolyte cu-mu-zero
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
NELM = 240
ALGO = Normal
ISMEAR = 0
SIGMA = 0.1
ISYM = 0
LREAL = .FALSE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NCORE = 1
NBANDS = 40
AMIX = 0.1
BMIX = 0.0001
NELECT = 44
LSOL = .TRUE.
ISOL = 2
C_MOLAR = 1.0
R_ION = 2.0
EFERMI_ref = 0.0
EDIFFSOL = 1E-8
IBRION = -1
NSW = 0
LCEP = .TRUE.
NESCHEME = 1
FERMICONVERGE = 0.001
INIT_ECHANGE = 0.01
ECHANGE_MAX = 0.03
CAP_MAX = 2.0
NEADJUST = 1
LSOLOFF = .FALSE.
TARGETMU = -4.70300000
NELECT=44是初始电子数,不是最终约束。LCEP=.TRUE.允许电子与外界交换。NESCHEME=1用于这里的静态恒电势自洽,FERMICONVERGE=0.001要求最终电子化学势接近目标,单位eV。INIT_ECHANGE设置首次电子数调整,ECHANGE_MAX限制单步变化,CAP_MAX限制割线更新幅度。它们影响收敛过程,不能替代最终误差检查。
LSOLOFF=.FALSE.使本例最终能量保留连续介质溶剂作用。不要把这一静态输入直接改几个温度参数当作恒电势MD;官方的 NESCHEME=2、3、4、5 有不同含义,动态电子数的虚质量和温控参数也不是静态扫描中已验证的参数。
2 三个目录分别提交#
为三个目录准备与中性计算相同的Cu POTCAR后,在附件根目录执行:
for name in cu-mu-minus cu-mu-zero cu-mu-plus; do
(cd "work/$name" && sbatch submit.sh)
done
CPU分区需要可用;每个任务使用附件中的CPU模板。任务完成后先看原生输出,而不是仅看队列里任务是否消失:
cd work/cu-mu-minus
grep "CPM-scf" stdout.log | tail
grep "CPM-ion" stdout.log | tail -1
grep "E-fermi" OUTCAR | tail -1
本例−4.903 eV目标的最终原生记录为:
CPM-ion: NSTEP= 1 N_ele= 43.976314 mu_e= -4.903443 TARGETMU= -4.903000 GCE= -.14091531E+02 cap= 0.222164
这里最终电子数43.976314,电子化学势误差−0.000443 eV,小于0.001 eV。内层SCF需要达到 EDIFF,外层电子数调整也需要达到 FERMICONVERGE;只满足其中一个不够。
3 看懂电荷和电位方向#
中性电子数 N₀=44。N−N₀>0 表示多了电子、带负电;N−N₀<0 表示失去电子、带正电。电子化学势降低对应本文定义的相对电极电位升高。

三点拟合得到本模型的小窗口单面电容约 16.779 μF/cm²。它依赖当前小胞、固定结构、溶剂与取样窗口,不是经体系尺寸、网格和溶剂参数收敛的铜电极常数。
4 自己的数据怎样提取#
整个附件还包含吸氢和H₂参照目录。11个目录都完成后,在附件根目录运行:
python analyze.py --results work --output own-analysis
python plot.py --analysis own-analysis --structures work --output own-figures
head own-analysis/charge-scan.csv
输出 calculations.csv 列出各目录的电子数、目标和最终化学势、电子能量及GCE;charge-scan.csv 只处理三组裸电极;adsorption.csv 比较相同目标下吸附前后的电子巨正则能量。只想看现有例子时用 bash run.sh,其输入是标明来源的原生数值摘录。
若电子数在目标两侧反复摆动,先减小 ECHANGE_MAX 和 CAP_MAX,检查每轮SCF,再看最终电势误差。已有氢吸附位点教程给出了使用更小更新幅度的实际输入。不要通过放宽最终目标误差掩盖震荡,也不要只取中途能量作为最终结果。
本页使用CP-VASP v2与VASP6.3.2/VASPsol++组合。6.4.2/VASPsol是另一兼容组合,不能把sol++专属输入不加检查地复制过去,详见官方仓库及Version 2手册。本组数据不代表全部补丁参数和MD分支均已覆盖。
参数、短MD与原子位置优化#
继续参考14个补丁参数与电子数方案、短程MD与溶剂切换和原子优化及溶剂版本。这些实例区分每步收敛与动态电子数波动、离子和电子温控、晶胞固定下的原子优化,并给出6.4.2经典溶剂E-fermi+FERMI_SHIFT参照与实际终端提取方式。当前动态4/5方案不直接使用原生GCE列做反应能比较;参数及版本适用范围见对应教程。